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.
Logical equivalence Logical equivalence In logic, statements formula_1 and formula_2 are logically equivalent if they have the same logical content. That is, if they have the same truth value in every model (Mendelson 1979:56). The logical equivalence of formula_1 and formula_2 is sometimes expressed as formula_5, formula_6, or formula_7. However, these symbols are also used for material equivalence. Proper interpretation depends on the context. Logical equivalence is different from material equivalence, although the two concepts are closely related. Logical equivalences involving conditional statements： Logical equivalences involving biconditionals： The following statements are logically equivalent: Syntactically, (1) and (2) are derivable from each other