Up Next
Go up to B Abbreviated Abstract Syntax
Go forward to B.2 Structured Specifications

B.1 Basic and Subsorted Specifications

BASIC-SPEC       ::= basic-spec BASIC-ITEMS*

BASIC-ITEMS      ::= SIG-ITEMS 
                   | free-datatype DATATYPE-DECL+
                   | sort-gen SIG-ITEMS+
                   | var-items VAR-DECL+ 
                   | local-var-axioms VAR-DECL+ FORMULA+
                   | axiom-items FORMULA+

SIG-ITEMS        ::= sort-items SORT-ITEM+
                   | op-items OP-ITEM+
                   | pred-items PRED-ITEM+
                   | datatype-items DATATYPE-DECL+

SORT-ITEM        ::= sort-decl SORT+
                   | subsort-decl SORT+ SORT
                   | subsort-defn SORT VAR SORT FORMULA
                   | iso-decl SORT+

OP-ITEM          ::= op-decl OP-NAME+ OP-TYPE OP-ATTR*
                   | op-defn OP-NAME  OP-HEAD TERM
OP-TYPE          ::= total-op-type   SORT-LIST SORT
                   | partial-op-type SORT-LIST SORT
SORT-LIST        ::= sort-list SORT*
OP-ATTR          ::= assoc-op-attr | comm-op-attr | idem-op-attr
                   | unit-op-attr TERM
OP-HEAD          ::= total-op-head   ARG-DECL* SORT
                   | partial-op-head ARG-DECL* SORT
ARG-DECL         ::= arg-decl VAR+ SORT

PRED-ITEM        ::= pred-decl PRED-NAME+ PRED-TYPE
                   | pred-defn PRED-NAME  PRED-HEAD FORMULA
PRED-TYPE        ::= pred-type SORT-LIST
PRED-HEAD        ::= pred-head ARG-DECL*

DATATYPE-DECL    ::= datatype-decl SORT ALTERNATIVE+
ALTERNATIVE      ::= total-construct   OP-NAME COMPONENTS*
                   | partial-construct OP-NAME COMPONENTS+
                   | subsorts SORT+
COMPONENTS       ::= total-select   OP-NAME+ SORT
                   | partial-select OP-NAME+ SORT
                   | SORT

VAR-DECL         ::= var-decl VAR+ SORT

FORMULA          ::= quantification QUANTIFIER VAR-DECL+ FORMULA
                   | conjunction FORMULA+
                   | disjunction FORMULA+
                   | implication FORMULA FORMULA
                   | equivalence FORMULA FORMULA
                   | negation FORMULA
                   | true-atom | false-atom
                   | predication PRED-SYMB TERMS
                   | definedness TERM
                   | existl-equation TERM TERM
                   | strong-equation TERM TERM
                   | membership TERM SORT
QUANTIFIER       ::= universal | existential | unique-existential
PRED-SYMB        ::= PRED-NAME | qual-pred-name PRED-NAME PRED-TYPE

TERMS            ::= terms TERM*
TERM             ::= SIMPLE-ID
                   | qual-var VAR SORT
                   | application OP-SYMB TERMS
                   | sorted-term TERM SORT
                   | cast TERM SORT
                   | conditional TERM FORMULA TERM
OP-SYMB          ::= OP-NAME | qual-op-name OP-NAME OP-TYPE

SORT             ::= TOKEN-ID
OP-NAME          ::= ID
PRED-NAME        ::= ID
VAR              ::= SIMPLE-ID

SIMPLE-ID        ::= WORDS
ID               ::= TOKEN-ID | MIXFIX-ID
TOKEN-ID         ::= TOKEN
MIXFIX-ID        ::= TOKEN-PLACES
TOKEN-PLACES     ::= token-places TOKEN-OR-PLACE+
TOKEN-OR-PLACE   ::= TOKEN | PLACE
TOKEN            ::= WORDS | DOT-WORDS | SIGNS | DIGIT | QUOTED-CHAR

CoFI Document: CASL/Summary -- Version: 1.0 -- 22 July 1999.
Comments to cofi-language@brics.dk

Up Next