  In this paper we study possibilities of efficient reasoning in combinations
of theories over possibly non-disjoint signatures. We first present a class of
theory extensions (called local extensions) in which hierarchical reasoning is
possible, and give several examples from computer science and mathematics in
which such extensions occur in a natural way. We then identify situations in
which combinations of local extensions of a theory are again local extensions
of that theory. We thus obtain criteria both for recognizing wider classes of
local theory extensions, and for modular reasoning in combinations of theories
over non-disjoint signatures.
