Logical operations are the standard operators of Boolean logic.

Functions and Predicates
◀test '->'(bool: x, bool: y)

Usage: x->y

Return truth value of x implies y

◀predicate '->'(var bool: x, var bool: y)

Usage: x->y

Return truth value of x implies y

◀test '/\'(bool: x, bool: y)

Usage: x/\y

Return truth value of x ∧ y

◀predicate '/\'(var bool: x, var bool: y)

Usage: x/\y

Return truth value of x ∧ y

◀test '<-'(bool: x, bool: y)

Usage: x<-y

Return truth value of y implies x

◀predicate '<-'(var bool: x, var bool: y)

Usage: x<-y

Return truth value of y implies x

◀test '<->'(bool: x, bool: y)

Usage: x<->y

Return truth value of x if-and-only-if y

◀predicate '<->'(var bool: x, var bool: y)

Usage: x<->y

Return truth value of x if-and-only-if y

◀test '\/'(bool: x, bool: y)

Usage: x\/y

Return truth value of x ∨ y

◀predicate '\/'(var bool: x, var bool: y)

Usage: x\/y

Return truth value of x ∨ y

◀test 'not'(bool: x)

Usage: not x

Return truth value of the negation of x

◀predicate 'not'(var bool: x)

Usage: not x

Return truth value of the negation of x

◀test 'xor'(bool: x, bool: y)

Usage: x xor y

Return truth value of x xor y

◀predicate 'xor'(var bool: x, var bool: y)

Usage: x xor y

Return truth value of x xor y

◀predicate clause(array [$T] of var bool: x, array [$T] of var bool: y)

Return truth value of \((\bigvee_i {\bf x}[i]) \lor (\bigvee_j \lnot {\bf y}[j])\)

◀predicate clause(array [$T] of bool: x, array [$T] of bool: y)

Return truth value of \((\bigvee_i {\bf x}[i]) \lor (\bigvee_j \lnot {\bf y}[j])\)

◀test exists(array [$T] of bool: x)

Return truth value of \(\bigvee_i {\bf x}[i]\)

◀predicate exists(array [$T] of var bool: x)

Return truth value of \(\bigvee_i {\bf x}[i]\)

◀test forall(array [$T] of bool: x)

Return truth value of \(\bigwedge_i {\bf x}[i]\)

◀predicate forall(array [$T] of var bool: x)

Return truth value of \(\bigwedge_i {\bf x}[i]\)

◀test iffall(array [$T] of bool: x)

Return truth value of \(\text{true}\oplus (\oplus_i {\bf x}[i])\)

◀predicate iffall(array [$T] of var bool: x) =
array_bool_xor(array1d(x)++[true])
(standard decomposition from builtins.mzn:593)

Return truth value of \(\text{true}\oplus (\oplus_i {\bf x}[i])\)

◀test xorall(array [$T] of bool: x)

Return truth value of \(\oplus_i {\bf x}[i]\)

◀predicate xorall(array [$T] of var bool: x) =
array_bool_xor(array1d(x))
(standard decomposition from builtins.mzn:588)

Return truth value of \(\oplus_i {\bf x}[i]\)