Booleans

All arguments are assumed to be of the same type.

Conjunction

(and [B0 = BOOL] ... [BN = BOOL])

Standard conjunction (minimum of 2 arguments).

Disjunction

(or [B0 = BOOL] ... [BN = BOOL])

Standard disjunction (minimum of 2 arguments).

Negation

(not [BOOL])

Standard negation.

Implication

(implies [B0 = BOOL] [B1 = BOOL])

Standard implication.

Exclusivity

(one_in [B0 = BOOL] ... [BN = BOOL])

true if, and only if, exactly one of the operands is true. There needs to be at least one argument.

Equality

(= [C0 = COMPUTATION*] ... [CN = COMPUTATION*])
True if, and only if, all operands are equal. Takes at least 2 arguments.

Strictly less than

(< [C0 = COMPARABLE] [C1 = COMPARABLE])

True if, and only if, C0 is strictly lower than C1.

Less than

(=< [C0 = COMPARABLE] [C1 = COMPARABLE])

True if, and only if, C0 is lower or equal to/than C1.

Strictly more than

(> [C0 = COMPARABLE] [C1 = COMPARABLE])

True if, and only if, C0 is strictly higher than C1.

More than

(>= [C0 = COMPARABLE] [C1 = COMPARABLE])

True if, and only if, C0 is higher or equal to/than C1.