package rocq-runtime
- Toplevel definition of values
- Toplevel definition of types
- Toplevel definition of algebraic constructors
- Toplevel definition of projections
- Toplevel definition of aliases
- Toplevel definition of notations
- Name management
- Toplevel definitions of ML tactics
- ML primitive types
- Absolute paths
- Generic arguments
- Helper functions
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=051f7bf702ff0a3b370449728921e5a95e18bc2b31b8eb949d48422888c98af4
doc/ltac2_plugin/Ltac2_plugin/Tac2env/index.html
Module Ltac2_plugin.Tac2envSource
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 optionNoneandSomehave both index 0. This field is empty whenever the constructor is a member of an open type.
}val define_constructor :
?warn:UserWarn.t ->
Tac2expr.ltac_constructor ->
constructor_data ->
unitUseful for printing info about currently defined constructors of open types.
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 ->
unitToplevel definition of notations
type notation_data = | UntypedNota of Tac2expr.raw_tacexpr| TypedNota of {nota_prms : int;nota_argtys : int Tac2expr.glb_typexpr Names.Id.Map.t;nota_ty : int Tac2expr.glb_typexpr;nota_body : Tac2expr.glb_tacexpr;
}
Name management
val push_constructor :
Nametab.visibility ->
Libnames.full_path ->
Tac2expr.ltac_constructor ->
unitEmit warning if any for the constructor.
val push_projection :
Nametab.visibility ->
Libnames.full_path ->
Tac2expr.ltac_projection ->
unitToplevel 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. ('a, 'b or_glb_tacexpr, 'r) intern_fun;ml_subst : Mod_subst.substitution -> 'b -> 'b;ml_interp : environment -> 'b -> Tac2val.valexpr Proofview.tactic;ml_print : Environ.env -> Evd.evar_map -> 'b -> Pp.t;ml_raw_print : Environ.env -> Evd.evar_map -> 'a -> Pp.t;
}Absolute paths
Path where primitive datatypes are defined in Ltac2 plugin.
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_constr :
(Tac2expr.raw_tacexpr, Names.Id.Set.t * Tac2expr.glb_tacexpr, Util.Empty.t)
Genarg.genarg_typeLtac2 quotations in Gallina terms
val wit_ltac2_var_quotation :
(Names.lident option * Names.lident,
var_quotation_kind * Names.Id.t,
Util.Empty.t)
Genarg.genarg_typeLtac2 quotations for variables "$x" or "$kind:foo" in Gallina terms. NB: "$x" means "$constr:x"
Helper functions
- Toplevel definition of values
- Toplevel definition of types
- Toplevel definition of algebraic constructors
- Toplevel definition of projections
- Toplevel definition of aliases
- Toplevel definition of notations
- Name management
- Toplevel definitions of ML tactics
- ML primitive types
- Absolute paths
- Generic arguments
- Helper functions