Download Tps3 Programmer`s Guide Peter B. Andrews Dan
Transcript
1. DATA STRUCTURES 115 1.2. The Expansion Proof. In the mate toplevel, we have an expansion proof stored in the special variable current-eproof, which is an eproofstructure. current-eproof has a attribute etree, whose value is often used to update variable current-topnode. Actually, a whole formula is represented by a tree, each node of which is an etree. At first, current-topnode is the root of the tree. Each node in the tree can be one of the following structures, all of which are derived from the structure etree, described above. We note only the differences between these structures and etrees. (1) econjunction is just an etree without any additional new attributes. components is a list containing two elements, and junctive should be dis or con. (2) edisjunction is like econjunction. (3) implication is like econjunction (4) negation is just an etree. components contains one element and junctive is neutral. (5) skolem is an etree with two additional attributes: (a) shallow: contains the shallow formula that the attribute skolem represents. Never forget to make the corresponding changes in it if you have changed some other parts of this node; otherwise the proof cannot be transformed into natural deduction style by etree-nat since the function get-shallow would not work normally. (b) terms: is a skolem-term structure, containing a term replacing the original variable, and something else. (6) selection is also an etree with attributes shallow and terms, just as skolem etree nodes. Whether the etree contains selection or skolem nodes depends on the values of SKOLEM-DEFAULT. (7) expansion is an etree with three additional properties: (a) shallow: is the same as in skolem. (b) terms: is an exp-var structure, containing the expansion variable for this expansion. (c) prim-vars (8) rewrite is an etree that rewrites the wff in some way. Rewrite nodes have the following four additional attributes: shallow, justification, ruleq-shallow, and reverse. The justification attribute is a symbol which can currently be one of the following values (this list may not be exhaustive): (a) EQUIVWFFS: Usually means there have been some definition expansions. In case dual instantiation is being used, it may mean the wff has been rewritten to a conjunction or disjunction of the wff and the instantiated form. (b) LAMBDA, BETA, ETA: The wff is the result of the appropriate normalization.