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.
Non-logical symbol all" and "there exists". The equality symbol is sometimes treated as a non-logical symbol and sometimes treated as a symbol of logic. If it is treated as a logical symbol, then any interpretation will be required to interpret the equality sign using true equality; if interpreted as a non-logical symbol, it may be interpreted by an arbitrary equivalence relation. A "signature" is a set of non-logical constants together with additional information identifying each symbol as either a constant symbol, or a function symbol of a specific arity "n" (a natural number), or a relation symbol of a specific arity. The