| <Constraints> | ::= | <Constraint> | single constraint | 
| | | <Constraint> , <Constraints> | conjunction | |
| | | <Constraint> ; <Constraints> | disjunction | |
| <Constraint> | ::= | <Expression> <<Expression> | less than | 
| | | <Expression> ><Expression> | greater than | |
| | | <Expression> =<<Expression> | less or equal | |
| | | <=(<Expression>, <Expression>) | less or equal | |
| | | <Expression> >=<Expression> | greater or equal | |
| | | <Expression> =\=<Expression> | not equal | |
| | | <Expression> =:= <Expression> | equal | |
| | | <Expression> = <Expression> | equal | |
| <Expression> | ::= | <Variable> | Prolog variable | 
| | | <Number> | Prolog number | |
| | | +<Expression> | unary plus | |
| | | -<Expression> | unary minus | |
| | | <Expression> + <Expression> | addition | |
| | | <Expression> - <Expression> | substraction | |
| | | <Expression> * <Expression> | multiplication | |
| | | <Expression> / <Expression> | division | |
| | | abs(<Expression>) | absolute value | |
| | | sin(<Expression>) | sine | |
| | | cos(<Expression>) | cosine | |
| | | tan(<Expression>) | tangent | |
| | | exp(<Expression>) | exponent | |
| | | pow(<Expression>) | exponent | |
| | | <Expression> ^<Expression> | exponent | |
| | | min(<Expression>, <Expression>) | minimum | |
| | | max(<Expression>, <Expression>) | maximum |