Logic programming that computational steps cannot be logically deduced. However, in concurrent logic programming, any result of a terminating computation is a logical consequence of the program, and any partial result of a partial computation is a logical consequence of the program and the residual goal (process network). Consequently, the indeterminacy of computations implies that not all logical consequences of the program can be deduced. Concurrent constraint logic programming combines concurrent logic programming and constraint logic programming, using constraints to control concurrency. A clause can contain a guard, which is a set of constraints that may block the applicability of the clause.
Multiple-conclusion logic Multiple-conclusion logic A multiple-conclusion logic is one in which logical consequence is a relation, formula_1, between two sets of sentences (or propositions). formula_2 is typically interpreted as meaning that whenever each element of formula_3 is true, some element of formula_4 is true; and whenever each element of formula_4 is false, some element of formula_3 is false. This form of logic was developed in the 1970s by D. J. Shoesmith and Timothy Smiley but has not been widely adopted. Some logicians favor a multiple-conclusion consequence relation over the more traditional single-conclusion relation on the grounds that the latter is asymmetric (in