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.
Interpretation (logic) valid or tautologous. An "interpretation of a theory" is the relationship between a theory and some subject matter when there is a many-to-one correspondence between certain elementary statements of the theory, and certain statements related to the subject matter. If every elementary statement in the theory has a correspondent it is called a "full interpretation", otherwise it is called a "partial interpretation". The formal language for propositional logic consists of formulas built up from propositional symbols (also called sentential symbols, sentential variables, and propositional variables) and logical connectives. The only non-logical symbols in a formal language for propositional logic are