The library contains four kinds of objects: DEF, THM, EVAL and ML. DEF objects define new notations that can be used whenever text is being entered. THM objects contain proofs in the form of proof trees. Each node of the proof tree contains a number of assumptions, a conclusion, a refinement rule and a list of children produced by applying the refinement rule to the assumptions and conclusion. THM objects are checked only when a check command is issued or they are viewed or used as objects from which code is extracted.
EVAL objects contain lists of bindings, where
a binding has the form and is terminated by a
double semicolon, `` ;;''.
Checking an EVAL object adds its bindings to the evaluator
environment so that they available to the eval command.
All EVAL objects are checked when they are loaded into the library.
ML objects contain
ML programs, including tactics, which
provide a general way of combining the primitive refinement
rules to form more powerful refinement rules.
Checking an ML object enriches the ML environment.
All ML objects are checked when they are loaded into the library.