package lambdapi
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=1066aed2618fd8e6a400c5147dbf55ea977ce8d3fe2e518ac6785c6775a1b8be
sha512=f7f499626aba92e070ae69581299a58525973fdbfd04a160ed3ac89209fb6cbe307b816d0b23e1b75bc83467ce8b4b0530c6f9816eaf58f7a07fde65a450106c
doc/lambdapi.handle/Handle/Tactic/index.html
Module Handle.Tactic
Source
Handling of tactics.
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.
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.
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
.
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
.
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
.
count_products a
returns the number of consecutive products at the top of the term a
.
get_prod_ids env do_whnf t
returns the list v1;..;vn
if do_whnf
is true and whnf t
is of the form Π v1:A1, .., Π vn:An, u
with u
not a product, or if do_whnf
is false and t
is of the form Π v1:A1, .., Π vn:An, u
with u
not a product.
Builtin tactic names.
get_config ss pos
build the configuration using ss
.
val p_term :
Common.Pos.popt ->
int Lplib.Extra.StrMap.t ->
Core.Term.term ->
Parsing.Syntax.p_term
p_term pos t
converts the term t
into a p_term at position pos
.
val p_rw_patt_of_string :
Common.Pos.popt ->
Core.Term.term ->
Parsing.Syntax.p_rw_patt option
val p_tactic :
Core.Sig_state.t ->
Common.Pos.popt ->
int Lplib.Extra.StrMap.t ->
Core.Term.term ->
Parsing.Syntax.p_tactic
p_tactic t
interprets the term t
as a tactic.
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.