Object

at.logic.gapt.proofs.lk

ReductiveCutElim

Related Doc: package lk

Permalink

object ReductiveCutElim

This object implements a version of Gentzen's cut-elimination proof for our sequent calculus LK. For details, please refer to the documentation of the apply methods.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. ReductiveCutElim
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. def apply(proof: LKProof, steps: Boolean = false): LKProof

    Permalink

    This methods implements a version of Gentzen's cut-elimination proof using the (known to be terminating) strategy of reducing a left-uppermost cut.

    This methods implements a version of Gentzen's cut-elimination proof using the (known to be terminating) strategy of reducing a left-uppermost cut. The algorithm terminates when all cuts have been eliminated.

    proof

    The proof to subject to cut-elimination.

    steps

    Collect the list of subproofs arising during cut-elimination.

    returns

    The cut-free proof.

  5. def apply(proof: LKProof, _steps: Boolean, pred_done: (LKProof) ⇒ Boolean, pred_cut: (LKProof, LKProof) ⇒ Boolean): LKProof

    Permalink

    This methods implements a version of Gentzen's cut-elimination proof parameterized by a strategy given by pred_cut and pred_done.

    This methods implements a version of Gentzen's cut-elimination proof parameterized by a strategy given by pred_cut and pred_done.

    The method traverses an LKProof recursively from the bottom up. When it reaches a cut, the method calls pred_cut(global, sub), where global is complete proof under consideration, while sub is the subproof of global ending in the cut. If this call returns true, the cut is reduced using the usual Gentzen cut-elimination rules. If the call returns false, the traversion continues.

    After every application of a reduction, pred_done(global) is called. If it returns true, the algorithm terminates, returning the current proof. If it returns false, the algorithm continues to traverse the proof.

    This means that pred_cut and pred_done allow the definition of a (not necessarily terminating!) cut-elimination strategy. A standard implementation (reducing left-uppermost cuts until the proof is cut-free) is provided by another apply method in this class.

    Note: We assume that proof is regular, i.e. that an eigenvariable of a quantifier rule in proof is used by exactly one such quantifier rule. Further regularization is done during cut-elimination whenever necessary.

    proof

    The proof to subject to cut-elimination.

    _steps

    Collect the list of subproofs arising during cut-elimination. This list can be obtained by the proofs method.

    pred_done

    A predicate deciding when to terminate the algorithm.

    pred_cut

    A predicate deciding whether or not to reduce a cut encountered when traversing the proof.

    returns

    The proof as it is after pred_done returns true.

  6. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  7. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. def eliminateAllByUppermost(proof: LKProof, steps: Boolean): LKProof

    Permalink

    This methods implements a version of Gentzen's cut-elimination proof using the (known to be terminating) strategy of reducing a left-uppermost cut.

    This methods implements a version of Gentzen's cut-elimination proof using the (known to be terminating) strategy of reducing a left-uppermost cut. The algorithm terminates when all cuts have been eliminated.

    proof

    The proof to subject to cut-elimination.

    steps

    Collect the list of subproofs arising during cut-elimination.

    returns

    The cut-free proof.

  9. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  13. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  14. def isCutFree(proof: LKProof): Boolean

    Permalink

    This method checks whether a proof is cut-free.

    This method checks whether a proof is cut-free.

    proof

    The proof to check for cut-freeness.

    returns

    True if proof does not contain the cut rule, False otherwise.

  15. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  16. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  17. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  18. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  19. def proofs: List[LKProof]

    Permalink

    After calling apply with steps = true, the list of proofs arising during cut-elimination can be obtained from this method.

    After calling apply with steps = true, the list of proofs arising during cut-elimination can be obtained from this method.

    returns

    The list of proofs arising during cut-elimination after apply() has been called. Nil otherwise.

  20. def proofs_=(plist: List[LKProof]): Unit

    Permalink
  21. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  22. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  23. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped