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.
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.
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).
(Since version 2016-01-13) Substitute and merge expansion trees instead