package coq
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=513e953b7183d478acb75fd6e80e4dc32ac1a918cf4343ac31a859cfb4e9aad2
doc/ltac2_plugin/Ltac2_plugin/Tac2env/index.html
Module Ltac2_plugin.Tac2env
Source
Ltac2 global environment
Toplevel definition of values
type global_data = {
gdata_expr : Tac2expr.glb_tacexpr;
gdata_type : Tac2expr.type_scheme;
gdata_mutable : bool;
gdata_deprecation : Deprecation.t option;
}
Toplevel definition of types
Toplevel definition of algebraic constructors
type constructor_data = {
cdata_prms : int;
(*Type parameters
*)cdata_type : Tac2expr.type_constant;
(*Inductive definition to which the constructor pertains
*)cdata_args : int Tac2expr.glb_typexpr list;
(*Types of the constructor arguments
*)cdata_indx : int option;
(*Index of the constructor in the ADT. Numbering is duplicated between argumentless and argument-using constructors, e.g. in type
*)'a option
None
andSome
have both index 0. This field is empty whenever the constructor is a member of an open type.
}
Toplevel definition of projections
type projection_data = {
pdata_prms : int;
(*Type parameters
*)pdata_type : Tac2expr.type_constant;
(*Record definition to which the projection pertains
*)pdata_ptyp : int Tac2expr.glb_typexpr;
(*Type of the projection
*)pdata_mutb : bool;
(*Whether the field is mutable
*)pdata_indx : int;
(*Index of the projection
*)
}
Toplevel definition of aliases
val define_alias :
?deprecation:Deprecation.t ->
Tac2expr.ltac_constant ->
Tac2expr.raw_tacexpr ->
unit
Name management
val push_constructor :
Nametab.visibility ->
Libnames.full_path ->
Tac2expr.ltac_constructor ->
unit
val push_projection :
Nametab.visibility ->
Libnames.full_path ->
Tac2expr.ltac_projection ->
unit
Toplevel definitions of ML tactics
This state is not part of the summary, contrarily to the ones above. It is intended to be used from ML plugins to register ML-side functions.
ML primitive types
type ('a, 'b) ml_object = {
ml_intern : 'r. (Tac2expr.raw_tacexpr, Tac2expr.glb_tacexpr, 'r) intern_fun -> ('a, 'b or_glb_tacexpr, 'r) intern_fun;
ml_subst : Mod_subst.substitution -> 'b -> 'b;
ml_interp : environment -> 'b -> Tac2ffi.valexpr Proofview.tactic;
ml_print : Environ.env -> Evd.evar_map -> 'b -> Pp.t;
}
Absolute paths
Path where primitive datatypes are defined in Ltac2 plugin.
Path where Ltac-specific datatypes are defined in Ltac2 plugin.
Path where the Ltac1 legacy FFI is defined.
Generic arguments
val wit_ltac2 :
(Names.Id.t CAst.t list * Tac2expr.raw_tacexpr,
Names.Id.t list * Tac2expr.glb_tacexpr,
Util.Empty.t)
Genarg.genarg_type
Ltac2 quotations in Ltac1 code
Embedding Ltac2 closures of type Ltac1.t -> Ltac1.t
inside Ltac1. There is no relevant data because arguments are passed by conventional names.
val wit_ltac2_constr :
(Tac2expr.raw_tacexpr, Names.Id.Set.t * Tac2expr.glb_tacexpr, Util.Empty.t)
Genarg.genarg_type
Ltac2 quotations in Gallina terms
val wit_ltac2_quotation :
(Names.Id.t Loc.located, Names.Id.t, Util.Empty.t) Genarg.genarg_type
Ltac2 quotations for variables "$x" in Gallina terms