Packages

p

at.logic.gapt.proofs

expansion

package expansion

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. expansion
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. trait BinaryExpansionTree extends ExpansionTree

    An expansion tree with two subtrees.

  2. case class ETAnd (child1: ExpansionTree, child2: ExpansionTree) extends BinaryExpansionTree with Product with Serializable

    A tree representing A ∧ B.

    A tree representing A ∧ B.

    child1

    A tree representing A.

    child2

    A tree representing B.

  3. case class ETAtom (atom: Atom, polarity: Polarity) extends ExpansionTree with Product with Serializable

    A tree representing an atomic formula.

    A tree representing an atomic formula.

    atom

    The represented atom.

  4. case class ETBottom (polarity: Polarity) extends ExpansionTree with Product with Serializable

    A tree representing ⊥.

  5. case class ETDefinition (shallow: Formula, child: ExpansionTree) extends UnaryExpansionTree with Product with Serializable

    Expansion tree node for definitions.

    Expansion tree node for definitions.

    shallow

    An atom P(x1,..., xn) where P stands for a more complex formula.

    child

    An expansion tree of ψ(x1,...,xn).

  6. case class ETImp (child1: ExpansionTree, child2: ExpansionTree) extends BinaryExpansionTree with Product with Serializable

    A tree representing A ⊃ B.

    A tree representing A ⊃ B.

    child1

    A tree representing A.

    child2

    A tree representing B.

  7. case class ETMerge (child1: ExpansionTree, child2: ExpansionTree) extends BinaryExpansionTree with Product with Serializable

    A node signifying that two trees need to be merged.

    A node signifying that two trees need to be merged.

    The two trees must have the same shallow formula.

    child1

    The left subtree.

    child2

    The right subtree.

  8. case class ETNeg (child: ExpansionTree) extends UnaryExpansionTree with Product with Serializable

    A tree representing ¬A.

    A tree representing ¬A.

    child

    A tree representing A.

  9. case class ETOr (child1: ExpansionTree, child2: ExpansionTree) extends BinaryExpansionTree with Product with Serializable

    A tree representing A ∨ B.

    A tree representing A ∨ B.

    child1

    A tree representing A.

    child2

    A tree representing B.

  10. trait ETQuantifier extends ExpansionTree

    A general trait for trees representing quantified formulas.

  11. case class ETSkolemQuantifier (shallow: Formula, skolemTerm: Expr, skolemDef: Expr, child: ExpansionTree) extends ETQuantifier with UnaryExpansionTree with Product with Serializable

    A tree representing a formula beginning with a strong quantifier, i.e., a positive universal or a negative existential.

    A tree representing a formula beginning with a strong quantifier, i.e., a positive universal or a negative existential.

    As an example let us consider an expansion proof of ∀z P(c,z) :- ∃x ∀y P(x,y). For Skolemization we introduce the Skolem function s_1 (for the single strong quantifier), this function has the Skolem definition λx ∀y P(x,y) (see at.logic.gapt.expr.hol.SkolemFunctions for details). The natural expansion proof has the deep formula P(c,s_1(c)) :- P(c,s_1(c)), so we need a Skolem node with the shallow formula ∀y P(c,y), and deep formula P(c,s_1(c)). This Skolem node is constructed as ETSkolemQuantifier(∀y P(c,y), s_1(c), λx ∀y P(x,y), ETAtom(P(c,s_1(c)), InSuc)).

    shallow

    Shallow formula of the expansion tree.

    skolemTerm

    Skolem term that instantiates the strong quantifier, e.g. s_3(c)

    skolemDef

    Skolem definition for the Skolem symbol, see at.logic.gapt.expr.hol.SkolemFunctions

    child

    Expansion tree of the instantiated formula.

  12. case class ETStrongQuantifier (shallow: Formula, eigenVariable: Var, child: ExpansionTree) extends ETQuantifier with UnaryExpansionTree with Product with Serializable

    A tree representing a formula beginning with a strong quantifier, i.e., a positive universal or a negative existential.

    A tree representing a formula beginning with a strong quantifier, i.e., a positive universal or a negative existential.

    It has the form Qx.A +α E, where α is a variable (called the eigenvariable) and E is an expansion tree of A[x\α].

    Its deep formula is the deep formula of E.

    shallow

    The formula A.

    eigenVariable

    The variable α.

    child

    The subtree E.

  13. case class ETTop (polarity: Polarity) extends ExpansionTree with Product with Serializable

    A tree representing ⊤.

  14. case class ETWeakQuantifier (shallow: Formula, instances: Map[Expr, ExpansionTree]) extends ETQuantifier with Product with Serializable

    A tree representing a formula beginning with a weak quantifier, i.e., a positive existential or negative universal.

    A tree representing a formula beginning with a weak quantifier, i.e., a positive existential or negative universal.

    It has the form Qx.A +t1 E1 + … +tn En, where t1,…,tn are lambda terms of the same type as x and Ei is an expansion tree of A[x\ti].

    Its deep formula is E1.deep ∨ … ∨ En.deep (in the case of an existential) or E1.deep ∧ … ∧ En.deep (in the case of a universal).

    shallow

    The formula Qx.A.

    instances

    A map containing the pairs t1 → E1,…,tn → En.

  15. case class ETWeakening (formula: Formula, polarity: Polarity) extends ExpansionTree with Product with Serializable

    A tree representing a formula that originates from a weakening.

    A tree representing a formula that originates from a weakening.

    formula

    The represented formula.

  16. case class ExpansionProof (expansionSequent: Sequent[ExpansionTree]) extends Product with Serializable
  17. class ExpansionProofToLK extends SolveUtils
  18. case class ExpansionProofWithCut (expansionWithCutAxiom: ExpansionProof) extends Product with Serializable
  19. type ExpansionSequent = Sequent[ExpansionTree]
  20. trait ExpansionTree extends DagProof[ExpansionTree]

    A tree collecting instances of a formula.

    A tree collecting instances of a formula. See, e.g., M. Baaz, S. Hetzl, D. Weller: On the complexity of proof deskolemization, Journal of Symbolic Logic, 77(2), 2012 for a formulation close to the one implemented here.

  21. class ExpansionTreePrettyPrinter extends BabelExporter
  22. class InstanceTermEncoding extends AnyRef

    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.

  23. implicit class RichExpansionSequent extends AnyRef

    Extension class that allows calling shallow and deep on sequents.

  24. trait UnaryExpansionTree extends ExpansionTree

    An expansion tree with one subtree.

  25. class deskolemizeET extends AnyRef

Value Members

  1. val ExpansionSequent: Sequent.type
  2. implicit val expansionProofsAreClosedUnderSubstitution: ClosedUnderSub[ExpansionProof]
  3. implicit val expansionProofsWithCutAreClosedUnderSubstitution: ClosedUnderSub[ExpansionProofWithCut]
  4. implicit val expansionTreesAreClosedUnderAdmissibleSubstitutions: ClosedUnderSub[ExpansionTree]
  5. object ETDefinition extends Serializable
  6. object ETMerge extends Serializable
  7. object ETQuantifier
  8. object ETStrongQuantifierBlock
  9. object ETWeakQuantifier extends Serializable
  10. object ETWeakQuantifierBlock

    Creates or matches a block of weak quantifiers.

  11. object ExpansionProofToLK extends ExpansionProofToLK
  12. object ExpansionProofWithCut extends Serializable
  13. object InstanceTermEncoding
  14. object PropositionalExpansionProofToLK extends ExpansionProofToLK
  15. object addSymmetry

    Given an expansion sequent S which is a tautology modulo symmetry of equality, returns an expansion sequent S' which is S extended by the symmetry instances needed to make it a tautology.

  16. object cleanStructureET

    Cleans up an expansion tree by introducing weakenings as late as possible.

  17. object commuteReplacementCtxWithDefEq
  18. object deskolemizeET extends deskolemizeET

    Deskolemization of expansion trees.

    Deskolemization of expansion trees.

    We first gather the skolem terms in a given ExpansionProof from the ETSkolemQuantifiers. Then replace each ETSkolemQuantifier by ETStrongQuantifier, and each skolem term within, by a fresh eigenvariable.

  19. object eigenVariablesET

    Returns the eigenvariables in an expansion tree or expansion sequent.

  20. object eliminateCutsET
  21. object eliminateDefsET
  22. object eliminateMerges
  23. implicit object expansionProofsAreReplaceable extends ClosedUnderReplacement[ExpansionProof]
  24. implicit object expansionProofsWithCutAreReplaceable extends ClosedUnderReplacement[ExpansionProofWithCut]
  25. implicit object expansionTreesAreReplaceable extends ClosedUnderReplacement[ExpansionTree]
  26. object extractInstances

    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.

  27. object formulaToExpansionTree
  28. object freeVariablesET
  29. object generalizeET
  30. object groundTerms
  31. object insertDefinition

    Inserts a definition into an expansion tree by either creating an ETDefinition node at the appropriate place or else just replacing terms.

  32. object instReplCtx

    Instantiates the quantifier inside a replacement context.

    Instantiates the quantifier inside a replacement context.

    Given λx ∀y P(x,y) and f(c), it will return λx P(x,f(c)).

  33. object isPropositionalET
  34. object minimalExpansionSequent

    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.

  35. object minimalExpansionSequents

    Given an expansion sequent S, this algorithm computes the list of expansion sequents below S that are valid and minimal.

  36. object moveDefsUpward
  37. object numberOfInstancesET
  38. object prenexifyET
  39. object replaceAtHOLPosition
  40. object replaceWithContext

    Replaces terms in an expansion tree according to a replacement context.

  41. object unifyInstancesET

    Decreases the number of instances in an expansion proof by unifying the instance terms.

Inherited from AnyRef

Inherited from Any

Ungrouped