Package

at.logic.gapt

proofs

Permalink

package proofs

Source
package.scala
Linear Supertypes
Content Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. proofs
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. case class Ant(k: Int) extends SequentIndex with Product with Serializable

    Permalink
  2. trait BackgroundTheory extends AnyRef

    Permalink

    Represents the background theory of a proof.

  3. type Clause[+A] = Sequent[A]

    Permalink
  4. trait Context extends BabelSignature

    Permalink

    Captures constants, types, definitions, and background theory used in a proof.

    Captures constants, types, definitions, and background theory used in a proof.

    There are several inferences in our LK proofs for which it is not enough that are syntactically valid: An induction inference might follow the syntactical scheme of an induction inference and satisfy the eigenvariable criterion, however if it excludes a constructor of the inductive type, then it still allows us to prove non-theorems. The same is also true for definition rules and theory axioms.

    Hence we store all information necessary to validate these inferences inside a Context object. For completeness, it also includes the collection of constant symbols.

    TODO: implement validation

    Having this information available is also important for a second reason: it allows us make decisions based on the current context:

    • The induction tactic uses the information about inductive types to create the necessary subgoals.
    • The Babel parser uses the information about constants to decide whether a free identifier is a variable or a constant, and if it is a constant, what type it should have.
    • The unfold tactic uses the information about definitions to unfold them.
    • The inductive prover can automatically generate random instances for base types.
    • at.logic.gapt.proofs.expansion.ExpansionProofToLK uses the information about the background theory to produce LK proofs modulo the background theory.
  5. trait ContextRule[Formula, This <: SequentProof[Formula, This]] extends SequentProof[Formula, This]

    Permalink
  6. trait DagProof[Proof <: DagProof[Proof]] extends Product

    Permalink

    DAG-like proof.

    DAG-like proof.

    Proofs are recursive structures that are represented as case classes. Equality is standard case class equality (but implemented in such a way that it is efficient on DAGs).

    Proof

    The type of proof, e.g. at.logic.gapt.proofs.lk.LKProof.

  7. type FOLClause = Sequent[FOLAtom]

    Permalink
  8. type FOLSequent = Sequent[FOLFormula]

    Permalink
  9. case class FOTheory(solver: ResolutionProver, axioms: HOLFormula*) extends BackgroundTheory with Product with Serializable

    Permalink

    Background theory that validates clauses which are first-order consequences of the axioms.

    Background theory that validates clauses which are first-order consequences of the axioms.

    The consequence is checked using a first-order prover.

  10. case class FiniteContext(constants: Set[Const] = Set(), definitions: Map[Const, LambdaExpression] = Map(), typeDefs: Set[TypeDef] = Set( Context.oTypeDef ), backgroundTheory: BackgroundTheory = FOTheory()) extends BabelSignature with Context with Product with Serializable

    Permalink

    A finite Context.

  11. type HOLClause = Sequent[HOLAtom]

    Permalink
  12. type HOLSequent = Sequent[HOLFormula]

    Permalink
  13. case class OccConnector[+A](lowerSequent: Sequent[A], upperSequent: Sequent[A], parentsSequent: Sequent[Seq[SequentIndex]]) extends Product with Serializable

    Permalink

    This class models the connection of formula occurrences between two sequents in a proof.

    This class models the connection of formula occurrences between two sequents in a proof.

    The most basic use case is that of connecting the conclusion of an LK inference with one of the premises. This is the origin of the names "lowerSequent" and "upperSequent".

    A

    The type of sequents that this connects.

    lowerSequent

    One of the two sequents to be connected.

    upperSequent

    The other of the two sequents to be connected.

    parentsSequent

    A sequent of lists of indices such that for each index i of lowerSequent, parentsSequent(i) is the list of indices of the parents of i in upperSequent.

  14. implicit class RichClause[+A] extends AnyRef

    Permalink
  15. implicit class RichFOLSequent extends AnyRef

    Permalink
  16. implicit class RichFormulaSequent extends AnyRef

    Permalink
  17. class Sequent[+A] extends AnyRef

    Permalink

    A sequent is a pair of sequences of elements of type A, typically written as a1,…,am :- b1,…,bn.

    A sequent is a pair of sequences of elements of type A, typically written as a1,…,am :- b1,…,bn.

    A

    The type of the elements of the sequent.

  18. sealed abstract class SequentIndex extends Ordered[SequentIndex]

    Permalink

    Represents an index of an element in a sequent.

    Represents an index of an element in a sequent.

    In a sequent, the elements have the following indices: Ant(0), Ant(1), ..., Ant(m) :- Suc(0), Suc(1), ..., Suc(n)

  19. trait SequentProof[+Formula, This <: SequentProof[Formula, This]] extends DagProof[This]

    Permalink
  20. case class SubsumptionTheory(axioms: HOLFormula*) extends BackgroundTheory with Product with Serializable

    Permalink

    Background theory that only validates clauses that are subsumed by axioms.

  21. case class Suc(k: Int) extends SequentIndex with Product with Serializable

    Permalink

Value Members

  1. val Clause: Sequent.type

    Permalink
  2. object Context

    Permalink
  3. object DagProof

    Permalink
  4. val FOLClause: Sequent.type

    Permalink
  5. object FOTheory extends Serializable

    Permalink
  6. val HOLClause: Sequent.type

    Permalink
  7. val HOLSequent: Sequent.type

    Permalink
  8. object OccConnector extends Serializable

    Permalink
  9. object Sequent

    Permalink
  10. package ceres

    Permalink
  11. package ceres_omega

    Permalink
  12. package ceres_schema

    Permalink
  13. package drup

    Permalink
  14. package epsilon

    Permalink
  15. package expansion

    Permalink
  16. package gaptic

    Permalink
  17. package hoare

    Permalink
  18. package lk

    Permalink
  19. package lkOld

    Permalink
  20. package lksk

    Permalink
  21. package lkskNew

    Permalink
  22. package occurrences

    Permalink
  23. package proofs

    Permalink
  24. package ral

    Permalink
  25. package reduction

    Permalink
  26. package resolution

    Permalink
  27. package shlk

    Permalink
  28. package sketch

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped