Constraint logic programming: Difference between revisions

Content deleted Content added
Semantics: rm sentence (concept already in next section) + formal semantics
m Semantics: rm brackets
Line 30:
 
* an element of <math>G</math> is a constraint <math>C</math>, <math>G'=G \backslash \{C\}</math> and <math>S'=S \cup \{C\}</math>; in other words, a constraint can be moved from the goal to the constraint store
* an element of <math>G</math> is a literal <math>L(t_1,\ldots,t_n)</math>, there exists a clause that, rewritten using new variables, is <math>L(t_1',\ldots,t_n') :- B</math>, <math>G'</math> is <math>G</math> with <math>\{L(t_1,\ldots,t_n)\}</math> replaced by <math>t_1=t_1',\ldots,t_n=t_n',B</math>, and <math>S'=S</math>; in other words, a literal can be replaced by the body of a rewritten clause having the same predicate as the head, adding its body and the equalities of terms to the goal
* <math>S</math> and <math>S'</math> are equivalent according to the specific constraint semantics