Package

at.logic.gapt.proofs

gaptic

Permalink

package gaptic

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

Type Members

  1. trait BinaryTactic[+T] extends Tactic[T]

    Permalink

    Trait for tactics that create two new subgoals.

    Trait for tactics that create two new subgoals. Provides the left and right methods.

  2. case class OnLabel(label: String) extends TacticApplyMode with Product with Serializable

    Permalink

    Apply a tactic to a specific label.

    Apply a tactic to a specific label.

    label

    The label that the tactic should be applied to.

  3. case class OpenAssumption(labelledSequent: Sequent[(String, HOLFormula)], index: OpenAssumptionIndex = new OpenAssumptionIndex) extends InitialSequent with Product with Serializable

    Permalink

    Defines the case class open assumption which considers an arbitrary labelled sequence an axiom.

  4. class OpenAssumptionIndex extends AnyRef

    Permalink

    The globally unique index of an open assumption in a proof state.

  5. case class ProofState extends Product with Serializable

    Permalink
  6. class QedFailureException extends Throwable

    Permalink
  7. trait Tactic[+T] extends Tactical[T]

    Permalink
  8. sealed abstract class TacticApplyMode extends AnyRef

    Permalink

    Class that describes how a tactic should be applied: to a label, to the unique fitting formula, or to any fitting formula.

  9. trait TacticCommands extends AnyRef

    Permalink
  10. class TacticFailureException extends Throwable

    Permalink
  11. trait Tactical[+T] extends AnyRef

    Permalink
  12. case class TacticalFailure(tactical: Tactical[_], goal: Option[OpenAssumption], message: String) extends Product with Serializable

    Permalink
  13. implicit class TacticalOptionOps[T] extends AnyRef

    Permalink
  14. class TacticsProof extends AnyRef

    Permalink

Value Members

  1. object AnyFormula extends TacticApplyMode with Product with Serializable

    Permalink

    Apply a tactic if there is a formula that fits.

  2. object Lemma

    Permalink
  3. object LemmaMacros

    Permalink
  4. object NewLabel

    Permalink
  5. object NewLabels

    Permalink

    Object that wraps helper function to generate new label from an existing one

  6. object ProofState extends Serializable

    Permalink
  7. object TacticCommands extends TacticCommands

    Permalink

    Predefined tactics in gaptic.

  8. object Tactical

    Permalink
  9. implicit object TacticalMonad extends Monad[Tactical]

    Permalink

    Implementation of the scalaz.Monad typeclass for Tacticals.

  10. object UniqueFormula extends TacticApplyMode with Product with Serializable

    Permalink

    Apply a tactic only if there is exactly one formula that fits.

  11. def allL(term: LambdaExpression, terms: LambdaExpression*): ForallLeftTactic

    Permalink

    Applies the ForallLeft tactic to the current subgoal: The goal

    Applies the ForallLeft tactic to the current subgoal: The goal

    ∀x1,...,∀xn.A, Γ :- Δ

    is reduced to

    A[x1\t1,...,xn\tn], ∀x1,...,∀xn.A, Γ :- Δ.

    This will only work if there is exactly one universal formula in the antecedent!

    term

    The term t1.

    terms

    The terms t2,...,tn.

    Definition Classes
    TacticCommands
  12. def allL(applyToLabel: String, term: LambdaExpression, terms: LambdaExpression*): ForallLeftTactic

    Permalink

    Applies the ForallLeft tactic to the current subgoal: The goal

    Applies the ForallLeft tactic to the current subgoal: The goal

    ∀x1,...,∀xn.A, Γ :- Δ

    is reduced to

    A[x1\t1,...,xn\tn], ∀x1,...,∀xn.A, Γ :- Δ.

    applyToLabel

    The label of the formula ∀x1,...,∀xn.A.

    term

    The term t1.

    terms

    The terms t2,...,tn.

    Definition Classes
    TacticCommands
  13. def allR: ForallRightTactic

    Permalink

    Applies the ForallRight tactic to the current subgoal: The goal

    Applies the ForallRight tactic to the current subgoal: The goal

    Γ :- Δ, ∀x.A

    is reduced to

    Γ :- Δ, A.

    This will only work if there is exactly one universal formula in the succedent!

    Definition Classes
    TacticCommands
  14. def allR(applyToLabel: String): ForallRightTactic

    Permalink

    Applies the ForallRight tactic to the current subgoal: The goal

    Applies the ForallRight tactic to the current subgoal: The goal

    Γ :- Δ, ∀x.A

    is reduced to

    Γ :- Δ, A.

    applyToLabel

    The label of the formula ∀x.A.

    Definition Classes
    TacticCommands
  15. def allR(eigenVariable: Var): ForallRightTactic

    Permalink

    Applies the ForallRight tactic to the current subgoal: The goal

    Applies the ForallRight tactic to the current subgoal: The goal

    Γ :- Δ, ∀x.A

    is reduced to

    Γ :- Δ, A[x\α].

    This will only work if there is exactly one universal formula in the succedent!

    eigenVariable

    The variable α.

    Definition Classes
    TacticCommands
  16. def allR(applyToLabel: String, eigenVariable: Var): ForallRightTactic

    Permalink

    Applies the ForallRight tactic to the current subgoal: The goal

    Applies the ForallRight tactic to the current subgoal: The goal

    Γ :- Δ, ∀x.A

    is reduced to

    Γ :- Δ, A[x\α].

    applyToLabel

    The label of the formula ∀x.A.

    eigenVariable

    The variable α.

    Definition Classes
    TacticCommands
  17. def andL: AndLeftTactic

    Permalink

    Applies the AndLeft tactic to the current subgoal: The goal

    Applies the AndLeft tactic to the current subgoal: The goal

    A ∧ B, Γ :- Δ

    is reduced to

    A, B, Γ :- Δ.

    This will only work if there is exactly one conjunctive formula in the antecedent!

    Definition Classes
    TacticCommands
  18. def andL(applyToLabel: String): AndLeftTactic

    Permalink

    Applies the AndLeft tactic to the current subgoal: The goal

    Applies the AndLeft tactic to the current subgoal: The goal

    A ∧ B, Γ :- Δ

    is reduced to

    A, B, Γ :- Δ.

    applyToLabel

    The label of the formula A ∧ B.

    Definition Classes
    TacticCommands
  19. def andR: AndRightTactic

    Permalink

    Applies the AndRight tactic to the current subgoal: The goal

    Applies the AndRight tactic to the current subgoal: The goal

    Γ :- Δ, A ∧ B

    is reduced to

    Γ :- Δ, A and Γ :- Δ, B.

    This will only work if there is exactly one conjunctive formula in the succedent!

    Definition Classes
    TacticCommands
  20. def andR(applyToLabel: String): AndRightTactic

    Permalink

    Applies the AndRight tactic to the current subgoal: The goal

    Applies the AndRight tactic to the current subgoal: The goal

    Γ :- Δ, A ∧ B

    is reduced to

    Γ :- Δ, A and Γ :- Δ, B.

    applyToLabel

    The label of the formula A ∧ B.

    Definition Classes
    TacticCommands
  21. def axiomBot: BottomAxiomTactic.type

    Permalink

    Applies the BottomAxiom tactic to the current subgoal: A subgoal of the form ⊥, Γ :- Δ will be closed.

    Applies the BottomAxiom tactic to the current subgoal: A subgoal of the form ⊥, Γ :- Δ will be closed.

    Definition Classes
    TacticCommands
  22. def axiomLog: LogicalAxiomTactic.type

    Permalink

    Applies the LogicalAxiom tactic to the current subgoal: A subgoal of the form A, Γ :- Δ, A will be closed.

    Applies the LogicalAxiom tactic to the current subgoal: A subgoal of the form A, Γ :- Δ, A will be closed.

    Definition Classes
    TacticCommands
  23. def axiomRefl: ReflexivityAxiomTactic.type

    Permalink

    Applies the ReflexivityAxiom tactic to the current subgoal: A subgoal of the form Γ :- Δ, s = s will be closed.

    Applies the ReflexivityAxiom tactic to the current subgoal: A subgoal of the form Γ :- Δ, s = s will be closed.

    Definition Classes
    TacticCommands
  24. def axiomTop: TopAxiomTactic.type

    Permalink

    Applies the TopAxiom tactic to the current subgoal: A subgoal of the form Γ :- Δ, ⊤ will be closed.

    Applies the TopAxiom tactic to the current subgoal: A subgoal of the form Γ :- Δ, ⊤ will be closed.

    Definition Classes
    TacticCommands
  25. def chain(h: String): ChainTactic

    Permalink
    Definition Classes
    TacticCommands
  26. def currentGoal: Tactic[OpenAssumption]

    Permalink

    Retrieves the current subgoal.

    Retrieves the current subgoal.

    Definition Classes
    TacticCommands
  27. def cut(label: String, cutFormula: HOLFormula): CutTactic

    Permalink

    Applies the Cut tactic to the current subgoal: The goal

    Applies the Cut tactic to the current subgoal: The goal

    Γ :- Δ

    is reduced to

    Γ :- Δ, C and C, Γ :- Δ.

    label

    The label of C.

    cutFormula

    The formula C.

    Definition Classes
    TacticCommands
  28. def decompose: DecomposeTactic.type

    Permalink

    Decomposes the current subgoal by applying all "simple" rules as often as possible.

    Decomposes the current subgoal by applying all "simple" rules as often as possible. These rules are: - ¬:l and ¬:r - ∧:l - ∨:r - ⊃:r - ∃:l - ∀:r

    Definition Classes
    TacticCommands
  29. def destruct(label: String): DestructTactic

    Permalink
    Definition Classes
    TacticCommands
  30. def eql(eq: String, fm: String): EqualityTactic

    Permalink

    Applies the Equality tactic to the current subgoal: Given an equation s = t and a formula A, some occurrences of s in A are replaced by t or vice versa.

    Applies the Equality tactic to the current subgoal: Given an equation s = t and a formula A, some occurrences of s in A are replaced by t or vice versa. The exact behavior can be controlled with additional commands:

    - fromLeftToRight: Occurrences of s will be replaced by t. - fromRightToLeft: Occurrences of t will be replaced by s. - yielding(f): The tactic will attempt to replace occurences in such a way that the end result is f.

    If neither fromLeftToRight nor fromRightToLeft is used, the direction of replacement needs to be unambiguous, i.e. s and t may not both occur in A.

    eq

    The label of s = t.

    fm

    The label of A.

    Definition Classes
    TacticCommands
  31. def escargot: EscargotTactic.type

    Permalink

    Calls escargot on the current subgoal.

    Calls escargot on the current subgoal.

    Definition Classes
    TacticCommands
  32. def exL: ExistsLeftTactic

    Permalink

    Applies the ExistsLeft tactic to the current subgoal: The goal

    Applies the ExistsLeft tactic to the current subgoal: The goal

    ∃x.A, Γ :- Δ

    is reduced to

    A, Γ :- Δ.

    This will only work if there is exactly one existential formula in the antecedent!

    Definition Classes
    TacticCommands
  33. def exL(applyToLabel: String): ExistsLeftTactic

    Permalink

    Applies the ExistsLeft tactic to the current subgoal: The goal

    Applies the ExistsLeft tactic to the current subgoal: The goal

    ∃x.A, Γ :- Δ

    is reduced to

    A, Γ :- Δ.

    applyToLabel

    The label of the formula ∃x.A.

    Definition Classes
    TacticCommands
  34. def exL(eigenVariable: Var): ExistsLeftTactic

    Permalink

    Applies the ExistsLeft tactic to the current subgoal: The goal

    Applies the ExistsLeft tactic to the current subgoal: The goal

    ∃x.A, Γ :- Δ

    is reduced to

    A[x\α], Γ :- Δ.

    This will only work if there is exactly one existential formula in the antecedent!

    eigenVariable

    The variable α.

    Definition Classes
    TacticCommands
  35. def exL(applyToLabel: String, eigenVariable: Var): ExistsLeftTactic

    Permalink

    Applies the ExistsLeft tactic to the current subgoal: The goal

    Applies the ExistsLeft tactic to the current subgoal: The goal

    ∃x.A, Γ :- Δ

    is reduced to

    A[x\α], Γ :- Δ.

    applyToLabel

    The label of the formula ∃x.A.

    eigenVariable

    The variable α.

    Definition Classes
    TacticCommands
  36. def exR(term: LambdaExpression, terms: LambdaExpression*): ExistsRightTactic

    Permalink

    Applies the ExistsRight tactic to the current subgoal: The goal

    Applies the ExistsRight tactic to the current subgoal: The goal

    Γ :- Δ, ∃x1...∃xn.A

    is reduced to

    Γ :- Δ, ∃x1...∃xn.A, A[x1\t1,...,xn\tn].

    This will only work if there is exactly one existential formula in the succedent!

    term

    The term t1.

    terms

    The terms t2,...,tn.

    Definition Classes
    TacticCommands
  37. def exR(applyToLabel: String, term: LambdaExpression, terms: LambdaExpression*): ExistsRightTactic

    Permalink

    Applies the ExistsRight tactic to the current subgoal: The goal

    Applies the ExistsRight tactic to the current subgoal: The goal

    Γ :- Δ, ∃x1...∃xn.A

    is reduced to

    Γ :- Δ, ∃x1...∃xn.A, A[x1\t1,...,xn\tn].

    applyToLabel

    The label of the formula ∃x1...∃xn.A.

    term

    The term t1.

    terms

    The terms t2,...,tn.

    Definition Classes
    TacticCommands
  38. def fail: Tactical[Nothing]

    Permalink

    Tactic that immediately fails.

    Tactic that immediately fails.

    Definition Classes
    TacticCommands
  39. def focus(indexOfSubGoal: OpenAssumptionIndex): FocusTactical

    Permalink

    Moves the specified goal to the front of the goal list.

    Moves the specified goal to the front of the goal list.

    indexOfSubGoal

    The index of the goal.

    Definition Classes
    TacticCommands
  40. def focus(indexOfSubGoal: Int): FocusTactical

    Permalink

    Moves the specified goal to the front of the goal list.

    Moves the specified goal to the front of the goal list.

    indexOfSubGoal

    The index of the goal.

    Definition Classes
    TacticCommands
  41. def forget(l: String, ls: String*): Tactical[Unit]

    Permalink

    Lets you "forget" a sequence of formulas, i.e.

    Lets you "forget" a sequence of formulas, i.e. the tactics version of the weakening rule. The formulas with labels L1,...,Ln will be removed from the current goal.

    l

    The label L1.

    ls

    The labels L2,...,Ln.

    Definition Classes
    TacticCommands
  42. def impL: ImpLeftTactic

    Permalink

    Applies the ImpLeft tactic to the current subgoal: The goal

    Applies the ImpLeft tactic to the current subgoal: The goal

    A → B, Γ :- Δ

    is reduced to

    Γ :- Δ, A and B, Γ :- Δ.

    This will only work if there is exactly one implicative formula in the antecedent!

    Definition Classes
    TacticCommands
  43. def impL(applyToLabel: String): ImpLeftTactic

    Permalink

    Applies the ImpLeft tactic to the current subgoal: The goal

    Applies the ImpLeft tactic to the current subgoal: The goal

    A → B, Γ :- Δ

    is reduced to

    Γ :- Δ, A and B, Γ :- Δ.

    applyToLabel

    The label of the formula A → B.

    Definition Classes
    TacticCommands
  44. def impR: ImpRightTactic

    Permalink

    Applies the ImpRight tactic to the current subgoal: The goal

    Applies the ImpRight tactic to the current subgoal: The goal

    Γ :- Δ, A → B

    is reduced to

    A, Γ :- Δ, B.

    This will only work if there is exactly one implicative formula in the succedent!

    Definition Classes
    TacticCommands
  45. def impR(applyToLabel: String): ImpRightTactic

    Permalink

    Applies the ImpRight tactic to the current subgoal: The goal

    Applies the ImpRight tactic to the current subgoal: The goal

    Γ :- Δ, A → B

    is reduced to

    A, Γ :- Δ, B.

    applyToLabel

    The label of the formula A → B.

    Definition Classes
    TacticCommands
  46. def include(label: String, proof: LKProof): Tactical[Unit]

    Permalink

    Uses an LKProof as a lemma.

    Uses an LKProof as a lemma.

    If proof ends in Γ :- φ, then the current goal

    Γ, Π :- Λ

    is reduced to

    Γ, Π, φ :- Λ

    label

    the label for φ in the subgoal

    proof

    The proof to insert as a lemma by a cut.

    Definition Classes
    TacticCommands
  47. def induction(label: String)(implicit ctx: Context): InductionTactic

    Permalink

    Applies the Induction tactic to the current subgoal: The goal

    Applies the Induction tactic to the current subgoal: The goal

    Γ, :- Δ, ∀x.A

    is reduced to n new subgoals, where n is the number of constructors of the type of x.

    label

    The label of the formula ∀x.A.

    ctx

    A at.logic.gapt.proofs.Context. It must contain an inductive definition of the type of x.

    Definition Classes
    TacticCommands
  48. def induction(implicit ctx: Context): InductionTactic

    Permalink

    Applies the Induction tactic to the current subgoal: The goal

    Applies the Induction tactic to the current subgoal: The goal

    Γ, :- Δ, ∀x.A

    is reduced to n new subgoals, where n is the number of constructors of the type of x.

    This will only work if there is exactly one universal formula in the succedent!

    ctx

    A at.logic.gapt.proofs.Context. It must contain an inductive definition of the type of x.

    Definition Classes
    TacticCommands
  49. def insert(proof: LKProof): InsertTactic

    Permalink

    Inserts an LKProof for the current subgoal.

    Inserts an LKProof for the current subgoal.

    proof

    The proof to be inserted. Its end-sequent must subsume the current goal.

    Definition Classes
    TacticCommands
  50. def negL: NegLeftTactic

    Permalink

    Applies the NegLeft tactic to the current subgoal: The goal

    Applies the NegLeft tactic to the current subgoal: The goal

    ¬A, Γ :- Δ

    is reduced to

    Γ :- Δ, A.

    This will only work if there is exactly one negated formula in the antecedent!

    Definition Classes
    TacticCommands
  51. def negL(applyToLabel: String): NegLeftTactic

    Permalink

    Applies the NegLeft tactic to the current subgoal: The goal

    Applies the NegLeft tactic to the current subgoal: The goal

    ¬A, Γ :- Δ

    is reduced to

    Γ :- Δ, A.

    applyToLabel

    The label of the formula ¬A.

    Definition Classes
    TacticCommands
  52. def negR: NegRightTactic

    Permalink

    Applies the NegRight tactic to the current subgoal: The goal

    Applies the NegRight tactic to the current subgoal: The goal

    Γ :- Δ, A

    is reduced to

    A, Γ :- Δ.

    This will only work if there is exactly one negated formula in the succedent!

    Definition Classes
    TacticCommands
  53. def negR(applyToLabel: String): NegRightTactic

    Permalink

    Applies the NegRight tactic to the current subgoal: The goal

    Applies the NegRight tactic to the current subgoal: The goal

    Γ :- Δ, ¬A

    is reduced to

    A, Γ :- Δ.

    applyToLabel

    The label of the formula ¬A.

    Definition Classes
    TacticCommands
  54. def orL: OrLeftTactic

    Permalink

    Applies the OrLeft tactic to the current subgoal: The goal

    Applies the OrLeft tactic to the current subgoal: The goal

    A ∨ B, Γ :- Δ

    is reduced to

    A, Γ :- Δ and B, Γ :- Δ.

    This will only work if there is exactly one disjunctive formula in the antecedent!

    Definition Classes
    TacticCommands
  55. def orL(applyToLabel: String): OrLeftTactic

    Permalink

    Applies the OrLeft tactic to the current subgoal: The goal

    Applies the OrLeft tactic to the current subgoal: The goal

    A ∨ B, Γ :- Δ

    is reduced to

    A, Γ :- Δ and B, Γ :- Δ.

    applyToLabel

    The label of the formula A ∨ B.

    Definition Classes
    TacticCommands
  56. def orR: OrRightTactic

    Permalink

    Applies the OrRight tactic to the current subgoal: The goal

    Applies the OrRight tactic to the current subgoal: The goal

    Γ :- Δ, A ∨ B

    is reduced to

    Γ :- Δ, A, B.

    This will only work if there is exactly one disjunctive formula in the succedent!

    Definition Classes
    TacticCommands
  57. def orR(applyToLabel: String): OrRightTactic

    Permalink

    Applies the OrRight tactic to the current subgoal: The goal

    Applies the OrRight tactic to the current subgoal: The goal

    Γ :- Δ, A ∨ B

    is reduced to

    Γ :- Δ, A, B.

    applyToLabel

    The label of the formula A ∨ B.

    Definition Classes
    TacticCommands
  58. def prop: PropTactic.type

    Permalink

    Calls the builtin tableau prover on the current subgoal.

    Calls the builtin tableau prover on the current subgoal. If the goal is a tautology, a proof will automatically be found and inserted.

    Definition Classes
    TacticCommands
  59. def prover9: Prover9Tactic.type

    Permalink

    Calls prover9 on the current subgoal.

    Calls prover9 on the current subgoal.

    Definition Classes
    TacticCommands
  60. def refl: ReflexivityAxiomTactic.type

    Permalink

    Synonym for axiomRefl.

    Synonym for axiomRefl.

    Definition Classes
    TacticCommands
  61. def renameLabel(oldLabel: String): RenameTactic

    Permalink

    Changes the provided label.

    Changes the provided label. Syntax:

    renameLabel("foo") to "bar"
    oldLabel

    The label to be renamed.

    Definition Classes
    TacticCommands
  62. def repeat[T](t: Tactical[T]): RepeatTactic[T]

    Permalink

    Repeats a tactical until it fails.

    Repeats a tactical until it fails.

    t

    A tactical.

    Definition Classes
    TacticCommands
  63. def rewrite: RewriteTactic

    Permalink

    Rewrites the formula specified by target using (possibly universally quantified) equations.

    Rewrites the formula specified by target using (possibly universally quantified) equations.

    rewrite.many ltr "equation1" in "target"
    rewrite.many ltr ("equation1", "eq2") rtl ("eq3", "eq4") in "target"

    ltr: rewrite left-to-right using this equation rtl: rewrite right-to-left using this equation many: rewrite as long as possible (default is to only rewrite once)

    Definition Classes
    TacticCommands
  64. def skip: SkipTactical.type

    Permalink

    Does nothing.

    Does nothing.

    Definition Classes
    TacticCommands
  65. package tactics

    Permalink
  66. def theory(implicit ctx: Context): Tactical[Unit]

    Permalink

    Declares the current subgoal as a theory axiom, i.e.

    Declares the current subgoal as a theory axiom, i.e. a sequent that is contained in the background theory. This closes the goal.

    ctx

    A at.logic.gapt.proofs.Context. The current subgoal must be contained in its background theory.

    Definition Classes
    TacticCommands
  67. def trivial: Tactic[Unit]

    Permalink

    Attempts to apply the tactics axiomTop, axiomBot, axiomRefl, and axiomLog.

    Attempts to apply the tactics axiomTop, axiomBot, axiomRefl, and axiomLog.

    Definition Classes
    TacticCommands
  68. def unfold(definition: String, definitions: String*)(implicit ctx: Context): UnfoldTacticHelper

    Permalink

    Replaces a defined constant with its definition.

    Replaces a defined constant with its definition. Syntax:

    unfold("def1", "def2",...,"defn") in ("label1", "label2",...,"labelk")

    NB: This will only replace the first definition it finds in each supplied formula. If you want to unfold all definitions, use repeat.

    definition

    The definition def1.

    definitions

    The definitions def2,...,defn.

    ctx

    A at.logic.gapt.proofs.Context. The definitions you want to unfold need to be present in ctx.

    Definition Classes
    TacticCommands

Deprecated Value Members

  1. def sorry: InsertTactic

    Permalink

    Leaves a hole in the current proof by inserting a dummy proof of the empty sequent.

    Leaves a hole in the current proof by inserting a dummy proof of the empty sequent.

    Definition Classes
    TacticCommands
    Annotations
    @deprecated
    Deprecated

    (Since version the dawn of time) Proof not finished!

Inherited from TacticCommands

Inherited from AnyRef

Inherited from Any

Ungrouped