Module Refiner
Legacy proof engine. Do not use in newly written code.
type tactic
= Proofview.V82.tac
The refiner (handles primitive rules and high-level tactics).
val sig_it : 'a Evd.sigma -> 'a
val project : 'a Evd.sigma -> Evd.evar_map
val pf_env : Goal.goal Evd.sigma -> Environ.env
val pf_hyps : Goal.goal Evd.sigma -> EConstr.named_context
val refiner : check:bool -> Constr.t -> tactic
Tacticals.
val tclIDTAC : tactic
tclIDTAC
is the identity tactic without message printing
val tclIDTAC_MESSAGE : Pp.t -> tactic
val tclEVARS : Evd.evar_map -> tactic
tclEVARS sigma
changes the current evar map
val tclEVARUNIVCONTEXT : UState.t -> tactic
val tclPUSHCONTEXT : Evd.rigid -> Univ.ContextSet.t -> tactic -> tactic
val tclPUSHEVARUNIVCONTEXT : UState.t -> tactic
val tclPUSHCONSTRAINTS : Univ.Constraint.t -> tactic
val tclTHEN : tactic -> tactic -> tactic
tclTHEN tac1 tac2 gls
applies the tactictac1
togls
and appliestac2
to every resulting subgoals
val tclTHENLIST : tactic list -> tactic
tclTHENLIST [t1;..;tn]
appliest1
THENt2
... THENtn
. More convenient thantclTHEN
whenn
is large
val tclTHEN_i : tactic -> (int -> tactic) -> tactic
tclTHEN_i tac1 tac2 gls
applies the tactictac1
togls
and applies(tac2 i)
to thei
th resulting subgoal (starting from 1)
val tclTHENLAST : tactic -> tactic -> tactic
tclTHENLAST tac1 tac2 gls
applies the tactictac1
togls
andtac2
to the last resulting subgoal (previously calledtclTHENL
)
val tclTHENFIRST : tactic -> tactic -> tactic
tclTHENFIRST tac1 tac2 gls
applies the tactictac1
togls
andtac2
to the first resulting subgoal
val tclTHENSV : tactic -> tactic array -> tactic
tclTHENS tac1 [|t1 ; ... ; tn|] gls
applies the tactictac1
togls
and appliest1
,...,tn
to then
resulting subgoals. Raises an error if the number of resulting subgoals is notn
val tclTHENS3PARTS : tactic -> tactic array -> tactic -> tactic array -> tactic
tclTHENS3PARTS tac1 [|t1 ; ... ; tn|] tac2 [|t'1 ; ... ; t'm|] gls
applies the tactictac1
togls
then, appliest1
, ...,tn
to the firstn
resulting subgoals,t'1
, ...,t'm
to the lastm
subgoals andtac2
to the rest of the subgoals in the middle. Raises an error if the number of resulting subgoals is strictly less thann+m
val tclTHENSLASTn : tactic -> tactic -> tactic array -> tactic
tclTHENSLASTn tac1 [t1 ; ... ; tn] tac2 gls
appliest1
,...,tn
on the lastn
resulting subgoals andtac2
on the remaining first subgoals
val tclTHENSFIRSTn : tactic -> tactic array -> tactic -> tactic
tclTHENSFIRSTn tac1 [t1 ; ... ; tn] tac2 gls
first appliestac1
, then appliest1
,...,tn
on the firstn
resulting subgoals andtac2
for the remaining last subgoals (previously called tclTHENST)
val tclTHENLASTn : tactic -> tactic array -> tactic
tclTHENLASTn tac1 [t1 ; ... ; tn] gls
first appliestac1
then, appliest1
,...,tn
on the lastn
resulting subgoals and leaves unchanged the other subgoals
val tclTHENFIRSTn : tactic -> tactic array -> tactic
tclTHENFIRSTn tac1 [t1 ; ... ; tn] gls
first appliestac1
then, appliest1
,...,tn
on the firstn
resulting subgoals and leaves unchanged the other subgoals (previously calledtclTHENSI
)
exception
FailError of int * Pp.t Stdlib.Lazy.t
A special exception for levels for the Fail tactic
val catch_failerror : Exninfo.iexn -> unit
Takes an exception and either raise it at the next level or do nothing.
val tclORELSE0 : tactic -> tactic -> tactic
val tclORELSE : tactic -> tactic -> tactic
val tclREPEAT : tactic -> tactic
val tclREPEAT_MAIN : tactic -> tactic
val tclFIRST : tactic list -> tactic
val tclSOLVE : tactic list -> tactic
val tclTRY : tactic -> tactic
val tclTHENTRY : tactic -> tactic -> tactic
val tclCOMPLETE : tactic -> tactic
val tclAT_LEAST_ONCE : tactic -> tactic
val tclFAIL : int -> Pp.t -> tactic
val tclFAIL_lazy : int -> Pp.t Stdlib.Lazy.t -> tactic
val tclDO : int -> tactic -> tactic
val tclPROGRESS : tactic -> tactic
val tclSHOWHYPS : tactic -> tactic
val tclIFTHENELSE : tactic -> tactic -> tactic -> tactic
tclIFTHENELSE tac1 tac2 tac3 gls
first appliestac1
togls
then, if it succeeds, appliestac2
to the resulting subgoals, and if not appliestac3
to the initial goalgls