Next: Evaluation Constraint Predicates
Up: The Finite Domains Library
Previous: Arithmetic Constraint Predicates
Index
The logical constraints can be used to combine simpler constraints
and to build complex logical constraint expressions.
These constraints are preprocessed by the system and transformed
into a sequence of evaluation constraints and arithmetic constraints.
The logical operators are declared with the following precedences::- op(750, fy, #\+).
:- op(760, yfx, #/\).
:- op(770, yfx, #\/).
:- op(780, yfx, #=>).
:- op(790, yfx, #<=>).
- #
\
+ +E1
-
E1 is false, i.e. the logical negation of the constraint
expression E1 is imposed.
- +E1 #
/\
+E2
-
Both constraint expressions E1 and E2 are true.
This is equivalent to normal conjunction (E1, E2).
- +E1 #
\/
+E2
-
At least one of constraint expressions E1 and E2 is true.
As soon as one of E1 or E2 becomes false, the other constraint
is imposed.
- +E1 #=> +E2
-
The constraint expression E1 implies the
constraint expression E2.
If E1 becomes true, then E2 is imposed.
If E2 becomes false, then the negation of E1
will be imposed.
- +E1 #<=> +E2
-
The constraint expression E1 is equivalent to the
constraint expression E2.
If one expression becomes true, the other one will be imposed.
If one expression becomes false, the negation of the other one will be imposed.
Next: Evaluation Constraint Predicates
Up: The Finite Domains Library
Previous: Arithmetic Constraint Predicates
Index
Warwick Harvey
2004-08-07