(defRelation <relconst> (<var>+)
:=> <atomic sentence>
:<=> <atomic sentence>
:function <boolean>
:time-dependent <boolean>
:documentation <string>)
(defQuantityFunction <funconst> (<var>+)
:=> <atomic sentence>
:dimension <dimension expression>
:non-numeric <boolean>
:piecewise-continuous <boolean>
:step-quantity <boolean>
:count-quantity <boolean>
:documentation <string>)
(defModelFragment <relconst>
:subclass-of (<relconst>*)
:participants ({(<funconst> :type <relconst> ) }* )
:conditions (<literal>+)
:quantities ({(<funconst> :dimension <dimension expression>
:non-numeric <boolean>
:piecewise-continuous <boolean>
:step-quantity <boolean>
:count-quantity <boolean>)}*)
:attributes ({(<funconst> :type <relconst>
:documentation <string>)}*)
:consequences (<literal>*)
:documentation <string>
:substitutions ({(<symbol> <lisp form>)}*))
(defEntity <relconst>
:subclass-of (<relconst>*)
:quantities ({(<funconst> :dimension <dimension expression>
:non-numeric <boolean>
:piecewise-continuous <boolean>
:step-quantity <boolean>
:count-quantity <boolean>)}*)
:attributes ({(<funconst> :type <relconst>
:documentation <string>)}*)
:consequences (<literal>*)
:documentation <string>
:substitutions ({(<symbol> <lisp form>)}*))
(defScenario <objconst>
:individuals ({(<objconst> :type <relconst> ) }* )
:initially (<literal>*)
:throughout (<literal>*)
:boundary (<quantity condition>*)
:documentation <string>)
(defDimension <objconst> [ <dimension expression> ]
:documentation <string>)
(defUnit <objconst>
:= <quantity expression>
:dimension <dimension expression>
:documentation <string>)
(defConstantQuantity <objconst>
:= <quantity expression>
:dimension <dimension expression>
:documentation <string>)