Tactics

TOC

Name Works on Type Needs ATP
InitTactic Empty Tree


InitTactic2 Empty Tree


StepOutTactic Any


StepInPostFormulaTactic ProgramAnn


ReplaceFormulaTactic TermBool


RetValTactic UnknownProg


StepIntoUnknownProgIdTactic ProgramAnn


StepIntoUnknownProgIdxTactic ProgramAnn


RCVInPostTactic UnknownProg


RTVInPostTactic UnknownProg


DeleteConjunctTactic UnknownProg


IntroWhileTactic UnknownProg


AssumeAssignmentTactic UnknownProg


AssumeSkipTactic UnknownProg


IntroVariableTactic ProgramAnn


InsertAssignmentEndTactic UnknownProg


ReplaceByEquivTactic TermBool


AssignmentDerivationTactic UnknownProg


StartAsgnDerivationTactic UnknownProg


GuessExprValuesTactic AsgnDerivation


GuessExprValuesTactic2 AsgnDerivation2


ApplyHintTactic AsgnDerivation


StepIntoConsequentTactic CalcProofStep


ReplaceByEquivDisplayIdTactic CalcProofStep


StepIntoFormulaTactic CalcProofStep



Program Tactics

InitTactic

Description Init Tactic
Applies to
Results in FunctionProg
Inputs
name: String Name of the function
params: List[Var] Parameter list
retVar: Var Return Variable
preF: TermBool precondition of the function
postF: TermBool postcondition of the function
Hint InitTactic
 

InitTactic2

Description InitTactic2
Applies to Any
Results in ProgramAnn
Inputs
initP: ProgramAnn Initial Program
Hint InitTactic2

StepOutTactic

Description Steps out of the most recently applied step in tactic
Applies to
Results in
Inputs
x
y
Hint

StepInPostFormulaTactic

Description Steps into postcondition of an annotated program
Applies to ProgramAnn
Results in Formula
Inputs
Hint StepInPostFormula

ReplaceFormulaTactic

Description Replaces a formula with a new formula
Applies to TermBool
Results in TermBool
Inputs
newf: TermBool new formula that will replace the formula to which the tactic is applied to.
Hint ReplaceFormula

RetValTactic

Description
Applies to
Results in
Inputs


Hint

StepIntoUnknownProgIdTactic

Description Step into the UnknownProg of given id
Applies to ProgramAnn
Results in UnknownProg
Inputs
id: Int
Id of an UnknownProg
Hint StepIntoUnknownProgId

StepIntoUnknownProgIdxTactic

Description Step into the idx-th UnknownProg
Applies to ProgramAnn
Results in UnknownProg
Inputs
idx: Int
Serial number of the UnknownProg you want to step in ( TODO: starts with 0/1?)
Hint StepIntoUnknownProgIdx

RCVInPostTactic

Description Replaces a constant by a fresh variable
Applies to UnknownProg
Results in UnknownProg
Inputs
const0: Var
constant to be replaced
variable0: Var fresh variable that will replace the constant
initValue0: Term initial value of the fresh variable
bounds: TermBool bounds on the fresh variable
Hint Composition

RTVInPostTactic

Description Replaces a term by a fresh variable
Applies to UnknownProg
Results in UnknownProg
Inputs
const0: Term (todo: rename as term0)
constant to be replaced
variable0: Var
fresh variable that will replace the constant
initValue0: Term
initial value of the fresh variable
bounds: TermBool
bounds on the fresh variable
Hint RTVInPost

DeleteConjunctTactic

Description Introduce a while loop. Remove conjuct in the postcondition and take rest of the postcondition as the loop invariant
Applies to UnknownProg
Results in Composition
Inputs
conjunct: TermBool
conjuct in the postcondition
variant: Term loop variant
Hint DeleteConjunct

IntroWhileTactic

Description Introduce a while loop
Applies to UnknownProg
Results in UnknownProg
Inputs
loopInvF: TermBool
loop invariant of the while loop
guardF: TermBool guard of the while loop
todo: add variant
Hint

AssumeAssignmentTactic

Description Assume an Assignment in place of an UnknownProg
Applies to UnknownProg
Results in Assignment
Inputs
lhsRhsTuples:List[(Var, Term)]
assignment lhs rhs tuples
Hint AssumeAssignment

AssumeSkipTactic

Description Assume a SkipProg in place of an UnknownProg
Applies to UnknownProg
Results in SkipProg
Inputs


Hint AssumeSkip

IntroVariableTactic

Description Replace ProgramAnn by composition of variable declaration and the input ProgramAnn
Applies to ProgramAnn
Results in Composition
Inputs
aVar: Var

initVal: Term
Hint IntroVariable

InsertAssignmentEndTactic

Description Insert given assignement at the end
Applies to UnknownProg
Results in Composition
Inputs
lhs: Var

rhs: Term
Hint InsertAssignmentEnd

ReplaceByEquivTactic

Description Replace a subformula with a new formula
Applies to TermBool
Results in TermBool
Inputs
oldF: TermBool y
newF: TermBool
Hint ReplaceByEquiv

AssignmentDerivationTactic

Description Replace a UnknownProg with a pseudo assignment and steps into the assignment proof obligation
Applies to UnknownProg
Results in AsgnDerivation
Inputs
lhsVars: List[Var]
List of variables that can be changed by the assignment
Hint AsgnDerivation

StartAsgnDerivationTactic

Description Replace a UnknownProg with AssignmentProof object
Applies to UnknownProg
Results in AsgnDerivation2
Inputs
lhsVars: List[Var] List of variables that can be changed by the assignment
Hint StartAsgnDerivation

Formula Tactics

GuessExprValuesTactic

Description Replace the meta variables with the given terms
Applies to AsgnDerivation
Results in AsgnDerivation
Inputs
primedVarTermList: List[(Var, Term)]
variables and corresponding guessed terms
Hint GuessExprValues

ApplyHintTactic

Description Works on the last formula in the derivation.
 *  1. Ensures that all the antecedents are in the axioms of the proof
 *  2. Proves that conjunction of antecedents implies conjunction of consequents.
 *  3. Replaces the consequents in the last formula is derivation by True and simplify the formula
 To Prove
 a /\ b  => c /\ d
 ---
Start with the RHS
 c /\ d
 = < some previous hint>
  p /\ q /\ r
 = < apply hint: a /\ b => q /\ r >
  p
 = ...
Applies to AsgnDerivation
Results in AsgnDerivation
Inputs
antecedents: List[TermBool]

consequents: List[TermBool]
Hint

StepIntoConsequentTactic

Description Steps into the consequent of an implication. The antecedent is added to the context.
Applies to CalcProofStep with an Implication formula
Results in CalcProofStep
Inputs
Hint Step into consequent of an implication formula

ReplaceByEquivDisplayIdTactic

Description Replaces a subformula with an equivalent formula with the given display id.
Applies to CalcProofStep
Results in CalcProofStep
Inputs
oldSubFId: Int, DisplayID of the subformula to be replaced
newSubF: TermBool new subformula that will replace the formula with id oldSubFId
Hint Replace formula by an equivalent formula.


StepIntoFormulaTactic

Description Steps into the consequent of an implication. The antecedent is added to the context.
Applies to CalcProofStep with an Implication formula
Results in CalcProofStep
Inputs
Hint Step into consequent of an implication formula