| <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 |