module Coq:sig..end
Interface with Coq where we define some handlers for Coq's API, and we import several definitions from Coq's standard library.
This general purpose library could be reused by other plugins.
Some salient points:
typetactic =unit Proofview.tactic
typelazy_ref =Names.GlobRef.t Stdlib.Lazy.t
val get_fresh : lazy_ref -> Constr.constr
val get_efresh : lazy_ref -> EConstr.constr
val find_global : string -> lazy_refval cps_resolve_one_typeclass : ?error:Pp.t -> EConstr.types -> (EConstr.constr -> tactic) -> tactic
val evar_binary : Environ.env ->
Evd.evar_map -> EConstr.constr -> Evd.evar_map * EConstr.constr
val evar_relation : Environ.env ->
Evd.evar_map -> EConstr.constr -> Evd.evar_map * EConstr.constr
val cps_mk_letin : string -> EConstr.constr -> (EConstr.constr -> tactic) -> tacticcps_mk_letin name v binds the constr v using a letin tactic
val mk_letin : string -> EConstr.constr -> EConstr.constr Proofview.tactic
val retype : EConstr.constr -> tactic
val tclRETYPE : EConstr.constr -> unit Proofview.tactic
val decomp_term : Evd.evar_map ->
EConstr.constr ->
(EConstr.constr, EConstr.types, EConstr.ESorts.t, EConstr.EInstance.t)
Constr.kind_of_termmodule List:sig..end
Coq lists
module Pair:sig..end
Coq pairs
module Option:sig..end
module Pos:sig..end
Coq positive numbers (pos)
module Nat:sig..end
Coq unary numbers (peano)
module Classes:sig..end
Coq typeclasses
module Relation:sig..end
module Equivalence:sig..end
val match_as_equation : ?context:EConstr.rel_context ->
Environ.env ->
Evd.evar_map ->
EConstr.constr -> (EConstr.constr * EConstr.constr * Relation.t) optionmatch_as_equation ?context env sigma c try to decompose c as a
relation applied to two terms.
val tclTIME : string -> tactic -> tactictime the execution of a tactic
val tclDEBUG : string -> unit Proofview.tacticemit debug messages to see which tactics are failing
val tclPRINT : unit Proofview.tacticprint the current goal
val anomaly : string -> 'a
val user_error : Pp.t -> 'a
val warning : string -> unitval show_proof : Declare.Proof.t -> unitprint the current proof term
module Rewrite:sig..end