The primary top-level defining forms being supported are:
A domain theory is a finite set of top-level forms. This implies that the order of forms in a domain theory is irrelevant and that implementations must allow for use before definition. This property of the language follows from its logical semantics. It is also a practical necessity because of the way in which time is handled. Because time must be made explicit, it is necessary to know whether a particular relation or function is time-dependent. This information is only available in the appropriate defining form.
The general syntax of a form is the form identifier (e.g., defQuantityFunction), followed by its name, followed by a series of keyword / value pairs. Some keywords are optional, as indicated by the surrounding brackets in the grammar (i.e., []). If an optional field is absent, its value defaults to NIL.
Wherever a keyword/value pair appears, an arbitrary number of other,
implementation specific, keywords are allowed. If the domain theories
employing such keywords are to be portable, however, the following
restriction must be satisfied. If the keywords affect the behavioral
inferences entailed by the domain theory, then they should only
strengthen or annotate the behavioral inferences. This
allows other implementations to ignore the additional keywords and
still draw correct, if weaker conclusions. Domain theories that
employ an extension that satisfies this criterion will be sharable
across implementations.
The semantics of each top level form is defined by an axiom schema.