10.35.13.2 Syntax of Arithmetic Expressions

N ::= integer

LinExpr ::= N
| var
| N * var
| N * N
| - LinExpr
| LinExpr + LinExpr
| LinExpr - LinExpr
| ConstraintBody { if true then 1 else 0 }

Expr ::= LinExpr
| - Expr
| Expr + Expr
| Expr - Expr
| Expr * Expr
| Expr / Expr { integer division }
| Expr mod Expr
| Expr rem Expr
| min(Expr,Expr)
| max(Expr,Expr)
| abs(Expr)

RelOp ::= #= | #\= | #< | #=< | #> | #>=

Send feedback on this subject.