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.
Indian logic in what way knowledge can be said to be reliable. Jain logic developed and flourished from 6th century BCE to 17th century CE. According to Jains, the ultimate principle should always be logical and no principle can be devoid of logic or reason. Thus one finds in the , deliberative exhortations on any subject in all its facts, may they be constructive or obstructive, inferential or analytical, enlightening or destructive. In the process, the Jains came out with their doctrines of relativity used for logic and reasoning: These Jain philosophical concepts made most important contributions to the ancient Indian philosophy,