package rocq-runtime
Install
Dune Dependency
Authors
Maintainers
Sources
md5=8d522602d23e7a665631826dab9aa92b
sha512=f4f76a6a178e421c99ee7a331a2fd97a06e9c5d0168d7e60c44e3820d8e1a124370ea104ad90c7f87a9a1e9d87b2d0d7d2d387c998feeaed4a75ed04e176a4be
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.
}
val define_constructor :
?warn:UserWarn.t ->
Tac2expr.ltac_constructor ->
constructor_data ->
unit
Useful 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 ->
unit
Toplevel 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 ->
unit
Emit warning if any for the constructor.
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. ('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_type
Ltac2 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_type
Ltac2 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