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.
Paraconsistent logic disjunction. As one can verify, LP preserves most other inference patterns that one would expect to be valid, such as De Morgan's laws and the usual introduction and elimination rules for negation, conjunction, and disjunction. Surprisingly, the logical truths (or tautologies) of LP are precisely those of classical propositional logic. (LP and classical logic differ only in the "inferences" they deem valid.) Relaxing the requirement that every formula be either true or false yields the weaker paraconsistent logic commonly known as first-degree entailment (FDE). Unlike LP, FDE contains no logical truths. It must be emphasized that LP is but one