This representation is very efficient, and allows many combinatorial problems to be solved with good performance. Q True if P and Q are both true. They are useful for forcing certain variables of an equation to be treated as input parameters. This checks the consistency of the expression wrt. Otherwise, it fails.
Variables is a list of variables.
The variables are instantiated to a list of 0s and 1s, in a way that satisfies any accumulated constraints. Enumerates all solutions by backtracking, but creates choicepoints only if necessary. First, any accumulated constraints affecting the top-level variables are displayed as floundered goals, since the query is not true for all X and Y . Notice that the formula in this query is a tautology, and so it is entailed by an empty set of constraints. This illustrates the fact that the implicit universal quantifiers introduced by symbolic constants are placed in front of the entire expression.