Rocqlib
Indirection between logical names and global references.
This module provides a mechanism to bind “names” to constants and to look up these constants using their names.
The two main functions are register_ref n r
which binds the name n
to the reference r
and lib_ref n
which returns the previously registered reference under name n
.
The first function is meant to be available through the vernacular command Register r as n
, so that plug-ins can refer to a constant without knowing its user-facing name, the precise module path in which it is defined, etc.
For instance, lib_ref "core.eq.type"
returns the proper GlobRef.t
for the type of the core equality type.
val register_ref : Libobject.locality -> string -> Names.GlobRef.t -> unit
Registers a global reference under the given name.
val lib_ref : string -> Names.GlobRef.t
Retrieves the reference bound to the given name (by a previous call to register_ref
). Raises NotFoundRef
if no reference is bound to this name.
val lib_ref_opt : string -> Names.GlobRef.t option
As lib_ref
but returns None
instead of raising.
Checks whether a name refers to a registered constant. For any name n
, if has_ref n
returns true
, lib_ref n
will succeed.
val check_ref : string -> Names.GlobRef.t -> bool
Checks whether a name is bound to a known reference.
val check_ind_ref : string -> Names.inductive -> bool
Checks whether a name is bound to a known inductive.
val get_lib_refs : unit -> (string * Names.GlobRef.t) list
List of all currently bound names.
type rocq_sigma_data = {
proj1 : Names.GlobRef.t; |
proj2 : Names.GlobRef.t; |
elim : Names.GlobRef.t; |
intro : Names.GlobRef.t; |
typ : Names.GlobRef.t; |
}
val build_sigma_type : rocq_sigma_data Util.delayed
val build_sigma : rocq_sigma_data Util.delayed
val build_prod : rocq_sigma_data Util.delayed
type rocq_eq_data = {
eq : Names.GlobRef.t; |
ind : Names.GlobRef.t; |
refl : Names.GlobRef.t; |
sym : Names.GlobRef.t; |
trans : Names.GlobRef.t; |
congr : Names.GlobRef.t; |
}
val build_rocq_eq_data : rocq_eq_data Util.delayed
val build_rocq_identity_data : rocq_eq_data Util.delayed
val build_rocq_jmeq_data : rocq_eq_data Util.delayed