Represents Skolemized form of Qx A +u E:
Represents Qx A +u E:
Represents Qx A +u1 E_1 ...
Represents Qx A +u1 E_1 ... +u_n E_n this way:
Represents a weakening in an expansion tree, i.e.
Represents a weakening in an expansion tree, i.e. a subformula which is not needed for making the deep formula a tautology.
the (weak) formula at this node
Feigns being a subclass of ExpansionTreeWithMerges.
Feigns being a subclass of ExpansionTreeWithMerges. The apply methods in the pseudo case classes return ETs in case the arguments forming the children are ETs. As the children are immutable, this ensures that the tree does not contain merges. The classes also contain methods that have ETs as formal input and output parameters, which eliminates the need for a lot of casting in client code.
General class for expansion trees with pseudo case classes including for MergeNodes, which only occur during merging/substituting
Encodes instances of a prenex FOL Sigma_1 end-sequent as FOL terms.
Encodes instances of a prenex FOL Sigma_1 end-sequent as FOL terms.
In the case of cut-introduction, the end-sequent has no free variables 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 simple inductive proofs, the end-sequent contains one free variable (alpha). Here, we consider proofs of instance sequents, which are obtained by substituting a numeral for alpha. Hence the formulas occuring 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.
Models a conjunction.
Models a conjunction.
E1 ∧ E2
The tree E1.
The tree E2.
Models an atomic expansion tree.
Models an atomic expansion tree.
Atom(f)
The formula f.
Models an implication.
Models an implication.
E1 → E2
The tree E1.
The tree E2.
Models a negation.
Models a negation.
¬ E
The tree E.
Models a disjunction.
Models a disjunction.
E1 ∨ E2
The tree E1.
The tree E2.
Models a block of Skolem quantifiers.
Models a block of Skolem quantifiers.
Qx1 … Qxn F +c E
The formula expanded by this tree.
The vector c of skolem symbols used for the quantifiers.
The expansion tree E.
Models a block of strong quantifiers.
Models a block of strong quantifiers.
Qx1 … Qxn F +α E
The formula expanded by this tree.
The vector α of eigenvariables used for the quantifiers.
The expansion tree E.
Models a block of weak quantifiers.
Models a block of weak quantifiers.
Qx1 … Qxn F +t1 E1 … +tn En
The formula expanded by this tree.
The instance blocks used for the weak quantifiers.
Models a weakening in an expansion tree.
These trees are the same as expansion trees but consider sequential quantifiers of the same type as quantification over a vector of variables.
These trees are the same as expansion trees but consider sequential quantifiers of the same type as quantification over a vector of variables. I.e. an expansion tree having two strong quantifiers over x and y will have a StrongQuantifer child over x and a Strong Quantifier grandchild over y while a multi expansion tree over the same formula will have only StrongQuantifier child over the vector <x,y>
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.
Converts an ExpansionTree to a MultiExpansionTree by squishing quantifiers together into blocks.
Converts an ExpansionTree to a MultiExpansionTree by squishing quantifiers together into blocks. Can also be called on ExpansionSequents.
Converts a MultiExpansionTree to an ExpansionTree by picking quantifier blocks apart.
Converts a MultiExpansionTree to an ExpansionTree by picking quantifier blocks apart. Can also be called on MultiExpansionSequents. The interesting parts happen in the private methods decompress{Strong,Weak,Skolem}.
Extracts the instance terms used in a prenex FOL Pi_1 expansion tree / Sigma_1 expansion sequent.
Extracts the instance terms used in a prenex FOL Pi_1 expansion tree / Sigma_1 expansion sequent.
Each expansion tree is transformed into a list of pairs of its shallow formula and a tuple containing the terms used to instantiate the outermost weak quantifier block.
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 toDeep, 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).
Gets expansion tree of a formula from expansion sequent.
Counts the number of instances of the expansion trees in a MultiExpansionSequent and provides human-readable formatting of this data.
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.
Returns number of quantifiers
Returns the expansion sequent with certain expansions trees removed
Created by sebastian on 7/15/15.