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 nonvanishing 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 Bächler et al. (2010) 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.Keywords: disjoint triangular decomposition, simple systems, polynomial systems, differential systems, involutivity input by means of regular chains (if the input only consists of equations) or regular systems. However, the Thomas decomposition differs noticeably from this decomposition, since the Thomas decomposition is finer and demands disjointness of the solution set. For a detailed description of algorithms related to regular chains, we refer the reader to Moreno Maza (1999).The disjointness of the Thomas decomposition combined with the structural properties of simple systems provide a useful platform for counting solutions of polynomial systems. In fact, the Thomas decomposition is the only known method to compute the counting polynomial introduced by Plesken (2009a). We refer to §2.3 for details on this structure, counting and their applications.During his research on triangular decomposition, Thomas was motivated by the Riquier-Janet theory (cf. Riquier (1910); Janet (1929)), extending it to non-linear systems of partial differential equations. For this purpose he developed a theory of (Thomas) monomials, which generate an involutive monomial division nowadays called Thomas division (cf. Gerdt and Blinkov (1998a)). He gave a recipe for decomposing a non-linear differential system into algebraically simple and passive subsystems (cf. Thomas (1937)). A modified version of the differential Thomas decomposition was considered by Gerdt (2008) with its link to the theory of involutive bases (cf. Gerdt and Blinkov (1998a);Gerdt (2005Gerdt ( , 1999; Seiler (2010)). In this decomposition, the output systems are Janet-involutive in accordance to the involutivity criterion from Gerdt (2008) and hence they are coherent. For a linear differential system it is a Janet basis of the corresponding differential ideal, as computed by the Maple package Janet (cf. Blinkov et al. (2003)).The differential Thomas decomposition differs from that computed by the Rosenfeld-Gröbner algorithm (cf. Boulier et al. (2009, 1995)). The latter decomposition forms a basis of the diffalg, DifferentialAlgebra and BLAD packages (cf. Hubert (1996-2004); Boulier (2004Boulier ( -2009). Experimentally, we f...