OP-DEFN ::= op-defn OP-NAME OP-HEAD TERM OP-HEAD ::= TOTAL-OP-HEAD | PARTIAL-OP-HEAD TOTAL-OP-HEAD ::= total-op-head ARG-DECL* SORT PARTIAL-OP-HEAD ::= partial-op-head ARG-DECL* SORT ARG-DECL ::= arg-decl VAR+ SORT VAR ::= SIMPLE-ID
A definition OP-DEFN of a total operation with some arguments is written:
ON (V11, ..., V1m1:S1; ...; Vn1, ..., Vnmn:Sn):S = TWhen the list of arguments is empty, the definition is simply written:
ON :S = T
A definition OP-DEFN of a partial operation with some arguments is written:
ON (V11, ..., V1m1:S1; ...; Vn1, ..., Vnmn:Sn):?S = TWhen the list of arguments is empty, the definition is simply written:
ON :?S = T
It declares the operation name ON as a total, respectively partial operation, with a profile having argument sorts S1 (m1 times), ..., Sn (mn times) and result sort S. It also asserts the strong equation:
ON(V11, ..., Vnmn) = Tuniversally quantified over the declared argument variables, or just `ON = T' when the list of arguments is empty.
In each of the above cases, the operation name ON may occur in the term T, and may have any interpretation satisfying the equation--not necessarily the least fixed point.