constr-decl | ::= | constr-name [ annotation ] |
| | constr-name of typeexpr [ annotation ] |
annotation | ::= | begin { relation | completion_hint }+ end |
side | ::= | left |
| | right |
invopp | ::= | inverse |
| | opposite |
rpo_status | ::= | lexicographic |
| | multiset |
completion_hint | ::= | completion precedence int |
| | completion status rpo_status |
relation | ::= | commutative [ ( comp ) ] |
| | associative | |
| | involutive | |
| | idempotent [side] | |
| | nilpotent [side] | |
| | neutral [side] ( constr-name ) | |
| | absorbent [side] ( constr-name ) | |
| | absorbing [side] ( constr-name ) | |
| | distributive [invopp] [side] ( constr-name [,constr-name] ) | |
| | rule pattern -> expression | |
| | completion completion_hint |