<term> ::= if <term> then <term> else <term>
| <subterm>
<subterm> ::= <subterm> ( <simpleOp> <subterm> )+
| ( <simpleOp> | <quantifier> )* <simpleOp> <secondary>
| ( <simpleOp> | <quantifier> )* <quantifier> <primary>
| <secondary> <simpleOp>*
<secondary> ::= <primary>
| [ <bracketPre> ] <bracketed> [ <bracketPost> ]
<primary> ::= <primaryHead> <primaryTail>*
<primaryHead> ::= <simpleId> [ "(" <term>+, ")" ]
| "(" <term> ")"
<primaryTail> ::= "." <primaryHead> | <qualification>
<qualification> ::= ":" <sort>
<bracketPre> ::= <primaryHead> | <primary> . <primaryHead>
<bracketed> ::= <openSym> <term>*, <closeSym> [ <qualification> ]
<bracketPost> ::= <primary> | . <primaryHead> <primaryTail>*
Restrictions: Terms must