Node:Syntax of Indexicals, Next:, Up:Syntax Summary

#### Syntax of Indexicals

 X ::= variable { domain variable } Constant ::= integer | `inf` { minus infinity } | `sup` { plus infinity } Term ::= Constant | X { suspend until assigned } | `min(X)` { min. of domain of X } | `max(X)` { max. of domain of X } | `card(X)` { size of domain of X } | `-` Term | Term `+` Term | Term `-` Term | Term `*` Term | Term `/>` Term { division rounded up } | Term `/<` Term { division rounded down } | Term `mod` Term TermSet ::= `{Term,...,Term}` Range ::= TermSet | `dom(X)` { domain of X } | Term `..` Term { interval } | Range `/\` Range { intersection } | Range `\/` Range { union } | `\` Range { complement } | `-` Range { pointwise negation } | Range `+` Range { pointwise addition } | Range `-` Range { pointwise subtraction } | Range `mod` Range { pointwise modulo } | Range `+` Term { pointwise addition } | Range `-` Term { pointwise subtraction } | Term `-` Range { pointwise subtraction } | Range `mod` Term { pointwise modulo } | Range `?` Range | `unionof(X,Range,Range)` | `switch(Term,MapList)` ConstantSet ::= `{integer,...,integer}` ConstantRange ::= ConstantSet | Constant `..` Constant | ConstantRange `/\` ConstantRange | ConstantRange `\/` ConstantRange | `\` ConstantRange MapList ::= `[]` | `[integer-ConstantRange|MapList]` CList ::= `[]` | `[integer|CList]` Indexical ::= X `in` Range Indexicals ::= Indexical | Indexical `,` Indexicals ConstraintBody ::= Indexicals | LinExpr RelOp LinExpr | `element(X,CList,X)` | `relation(X,MapList,X)` Head ::= term { a compound term with unique variable args } TellPos ::= Head `+:` ConstraintBody TellNeg ::= Head `-:` ConstraintBody AskPos ::= Head `+?` Indexical AskNeg ::= Head `-?` Indexical ConstraintDef ::= TellPos. ?(TellNeg.) ?(AskPos.) ?(AskNeg.)