Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Handling of tactics.
val log : 'a Lplib.Base.outfmt -> 'a
Number of admitted axioms in the current signature. Used to name the generated axioms. This reference is reset in Compile
for each new compiled module.
val add_axiom :
Core.Sig_state.t ->
Common.Pos.popt ->
Core.Term.meta ->
Core.Term.sym
add_axiom ss sym_pos m
adds in signature state ss
a new axiom symbol of type !(m.meta_type)
and instantiate m
with it. WARNING: It does not check whether the type of m
contains metavariables. Return updated signature state ss
and the new axiom symbol.
val admit_meta : Core.Sig_state.t -> Common.Pos.popt -> Core.Term.meta -> unit
admit_meta ss sym_pos m
adds as many axioms as needed in the signature state ss
to instantiate the metavariable m
by a fresh axiom added to the signature ss
.
val tac_admit :
Core.Sig_state.t ->
Common.Pos.popt ->
Proof.proof_state ->
Proof.goal_typ ->
Proof.proof_state
tac_admit ss pos ps gt
admits typing goal gt
.
val tac_solve : Common.Pos.popt -> Proof.proof_state -> Proof.proof_state
tac_solve pos ps
tries to simplify the unification goals of the proof state ps
and fails if constraints are unsolvable.
val tac_refine :
?check:bool ->
Common.Pos.popt ->
Proof.proof_state ->
Proof.goal_typ ->
Proof.goal list ->
Core.Term.problem ->
Core.Term.term ->
Proof.proof_state
tac_refine pos ps gt gs p t
refines the typing goal gt
with t
. p
is the set of metavariables created by the scoping of t
.
val ind_data :
Common.Pos.popt ->
Core.Env.t ->
Core.Term.term ->
Core.Sign.ind_data
ind_data t
returns the ind_data
structure of s
if t
is of the form s t1 .. tn
with s
an inductive type. Fails otherwise.
val tac_induction :
Common.Pos.popt ->
Proof.proof_state ->
Proof.goal_typ ->
Proof.goal list ->
Proof.proof_state
tac_induction pos ps gt
tries to apply the induction tactic on the typing goal gt
.
val count_products : Core.Term.ctxt -> Core.Term.term -> int
count_products a
returns the number of consecutive products at the top of the term a
.
type tac_output = Proof.proof_state * Query.result
Representation of a tactic output.
val handle :
Core.Sig_state.t ->
Common.Pos.popt ->
bool ->
tac_output ->
Parsing.Syntax.p_tactic ->
int ->
tac_output
handle sym_pos prv r tac n
applies the tactic tac
from the previous tactic output r
and checks that the number of goals of the new proof state is compatible with the number n
of subproofs.