Trait for tactics that create two new subgoals.
Trait for tactics that create two new subgoals. Provides the left
and right
methods.
Apply a tactic to a specific label.
Apply a tactic to a specific label.
The label that the tactic should be applied to.
Defines the case class open assumption which considers an arbitrary labelled sequence an axiom.
The globally unique index of an open assumption in a proof state.
Class that describes how a tactic should be applied: to a label, to the unique fitting formula, or to any fitting formula.
Apply a tactic if there is a formula that fits.
Object that wraps helper function to generate new label from an existing one
Predefined tactics in gaptic.
Implementation of the scalaz.Monad typeclass for Tacticals.
Apply a tactic only if there is exactly one formula that fits.
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!
The term t1
.
The terms t2,...,tn
.
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, Γ :- Δ
.
The label of the formula ∀x1,...,∀xn.A
.
The term t1
.
The terms t2,...,tn
.
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!
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
.
The label of the formula ∀x.A
.
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!
The variable α
.
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\α]
.
The label of the formula ∀x.A
.
The variable α
.
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!
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, Γ :- Δ
.
The label of the formula A ∧ B
.
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!
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
.
The label of the formula A ∧ B
.
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.
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.
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.
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.
Retrieves the current subgoal.
Retrieves the current subgoal.
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, Γ :- Δ
.
The label of C
.
The formula C
.
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
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
.
The label of s = t
.
The label of A
.
Calls escargot
on the current subgoal.
Calls escargot
on the current subgoal.
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!
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, Γ :- Δ
.
The label of the formula ∃x.A
.
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!
The variable α
.
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\α], Γ :- Δ
.
The label of the formula ∃x.A
.
The variable α
.
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!
The term t1
.
The terms t2,...,tn
.
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]
.
The label of the formula ∃x1...∃xn.A
.
The term t1
.
The terms t2,...,tn
.
Tactic that immediately fails.
Tactic that immediately fails.
Moves the specified goal to the front of the goal list.
Moves the specified goal to the front of the goal list.
The index of the goal.
Moves the specified goal to the front of the goal list.
Moves the specified goal to the front of the goal list.
The index of the goal.
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.
The label L1
.
The labels L2
,...,Ln
.
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!
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, Γ :- Δ
.
The label of the formula A → B
.
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!
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
.
The label of the formula A → B
.
Uses an LKProof as a lemma.
Uses an LKProof as a lemma.
If proof
ends in Γ :- φ
, then the current goal
Γ, Π :- Λ
is reduced to
Γ, Π, φ :- Λ
the label for φ in the subgoal
The proof to insert as a lemma by a cut.
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
.
The label of the formula ∀x.A
.
A at.logic.gapt.proofs.Context. It must contain an inductive definition of the type of x
.
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!
A at.logic.gapt.proofs.Context. It must contain an inductive definition of the type of x
.
Inserts an LKProof for the current subgoal.
Inserts an LKProof for the current subgoal.
The proof to be inserted. Its end-sequent must subsume the current goal.
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!
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
.
The label of the formula ¬A
.
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!
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, Γ :- Δ
.
The label of the formula ¬A
.
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!
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, Γ :- Δ
.
The label of the formula A ∨ B
.
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!
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
.
The label of the formula A ∨ B
.
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.
Calls prover9
on the current subgoal.
Calls prover9
on the current subgoal.
Synonym for axiomRefl.
Synonym for axiomRefl.
Changes the provided label.
Changes the provided label. Syntax:
renameLabel("foo") to "bar"
The label to be renamed.
Repeats a tactical until it fails.
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)
Does nothing.
Does nothing.
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.
A at.logic.gapt.proofs.Context. The current subgoal must be contained in its background theory.
Attempts to apply the tactics axiomTop
, axiomBot
, axiomRefl
, and axiomLog
.
Attempts to apply the tactics axiomTop
, axiomBot
, axiomRefl
, and axiomLog
.
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
.
The definition def1
.
The definitions def2
,...,defn
.
A at.logic.gapt.proofs.Context. The definitions you want to unfold need to be present in ctx
.
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.
(Since version the dawn of time) Proof not finished!