Expansion tree node for definitions.
Expansion tree node for definitions.
An atom P(x1,..., xn) where P stands for a more complex formula.
The expression that P abbreviates. Must have the same type as P.
An expansion tree with shallowFormula definedExpr(x1,...,xn)
Encodes instances of an end-sequent as terms.
Encodes instances of an end-sequent as terms.
Only instances of weak quantifiers are recorded, instances of strong quantifiers or free variables are ignored.
The end-sequent will be internally transformed into one which is in variable normal form.
In the case of cut-introduction, the end-sequent has no free variables and no strong quantifiers and we're encoding a Herbrand sequent as a set of terms. A term r_i(t_1,...,t_n) encodes an instance of the formula "forall x_1 ... x_n, phi(x_1,...,x_n)" using the instances (t_1,...,t_n).
In the case of inductive proofs, the end-sequent contains strong quantifiers variable (alpha). Here, we consider proofs of instance sequents, which are obtained by e.g. substituting a numeral for alpha. Hence the formulas occurring in the end-sequents of instance proofs are substitution instances of endSequent; the encoded terms still only capture the instances used in the instance proofs--i.e. not alpha.
Extension class that allows calling shallow and deep on sequents.
Given an expansion sequent S which is a quasi-tautology (modulo symmetry), returns an expansion sequent S' which is S extended by the symmetry instances needed to make it a tautology.
Extracts the instances used in a prenex FOL Pi_1 expansion tree / Sigma_1 expansion sequent.
Extracts the instances used in a prenex FOL Pi_1 expansion tree / Sigma_1 expansion sequent.
Each expansion tree is transformed into a list of instances of its shallow formula.
In contrast to ExpansionProof.deep, this function doesn't produce conjunctions of instances, but instead increases the number of formulas in the antecedent/succedent.
Builds an expansion tree from a formula and a map from variables to terms.
Builds an expansion tree from a formula and a map from variables to terms. The paremeter pos is true if the formula is to be considered positive (right side of the sequent).
Given an expansion sequent S, this algorithm computes a single expansion sequents below S that is valid and minimal.
Given an expansion sequent S, this algorithm computes a single expansion sequents below S that is valid and minimal. This algorithm is considerably faster than the one implemented in minimalExpansionSequents.
Given an expansion sequent S, this algorithm computes the list of expansion sequents below S that are valid and minimal.
Replaces terms in an expansion tree according to a replacement context.