next up previous contents index
Next: Future Developments Up: The Library Previous: Theory Commands

Object Dependencies and Ordering

 

A correct library  in Nuprl is one where every definition and theorem refers only to objects occurring previously in the library. Unfortunately, Nuprl does not guarantee that this property is maintained when functions are used that modify the library. For example, it is possible to create a circular chain of lemma references.

There is only one way to guarantee that a theory (or collection of theories) is correct. This is to load it (them, sequentially) using one of the load-fully functions described at the end of the last section. This will force a theorem's proof to be expanded before the theorem is loaded into the library, and so guarantee that proofs only reference theorems that occur previously in the library.

Loading without using these load-fully functions and then using check_objects or check_theory will not guarantee that the library is correct, since during the checking of a theorem, all later theorems will be present in the library and will retain the statuses they had when they were dumped. However it is recommended that one always preceed a load-fully check, by loading the relevant theories without expanding theorems, and then using check_objects or check_theory. There are two reasons for this. Firstly, just to check that all proofs do indeed expand properly. Secondly, the current load-fully functions will blithely continue loading a library after an error has occurred, often creating a cascade of further errors. This bad behaviour will be corrected in the near future.

Nuprl does do some dependency checking  with definitions. For example, if a definition is deleted then the status of any entry depending on these objects is set to bad.

Because of the general lack of dependency checking, a user must be careful to keep library objects correctly ordered or reloading may fail. The move  function can be used to repair incorrect orderings and ensure that objects occur before their uses.

Here is a list of some of the main object dependencies  one should be aware of:

In addition, there are other dependencies one should be aware of:



next up previous contents index
Next: Future Developments Up: The Library Previous: Theory Commands



Karla Consroe
Wed Oct 23 13:48:45 EDT 1996