  In this paper, we consider systems of algebraic and non-linear partial
differential equations and inequations. We decompose these systems into
so-called simple subsystems and thereby partition the set of solutions. For
algebraic systems, simplicity means triangularity, square-freeness and
non-vanishing initials. Differential simplicity extends algebraic simplicity
with involutivity. We build upon the constructive ideas of J. M. Thomas and
develop them into a new algorithm for disjoint decomposition. The given paper
is a revised version of a previous paper and includes the proofs of correctness
and termination of our decomposition algorithm. In addition, we illustrate the
algorithm with further instructive examples and describe its Maple
implementation together with an experimental comparison to some other
triangular decomposition algorithms.
