(************************************************************************) (* * The Rocq Prover / The Rocq Development Team *) (* v * Copyright INRIA, CNRS and contributors *) (* <O___,, * (see version control and CREDITS file for authors & dates) *) (* \VV/ **************************************************************) (* // * This file is distributed under the terms of the *) (* * GNU Lesser General Public License Version 2.1 *) (* * (see LICENSE file for the text of the license) *) (************************************************************************)
open Names open Evd open Environ open Libnames open Glob_term open Pattern open EConstr open Constrexpr open Notation_term open Pretyping
(** Translation from front abstract syntax of term to untyped terms (glob_constr) *)
(** This collects relevant information for interning local variables: -theircoqdockind(arecursivecallinainductive,fixpointofclass;oraboundvariable) e.g.whiletypingtheconstructorofJMeq,"JMeq"behavesasavariableoftypeInductive -theirimplicitarguments
- their argument scopes *) type var_internalization_data
(** A map of free variables to their implicit arguments and scopes *) type internalization_env = var_internalization_data Id.Map.t
val empty_internalization_env : internalization_env
val compute_internalization_env : env -> evar_map -> ?impls:internalization_env -> ?force:Id.Set.t list -> var_internalization_type ->
Id.t list -> types list -> Impargs.manual_implicits list ->
internalization_env
val implicits_of_decl_in_internalization_env :
Id.t -> internalization_env -> Impargs.implicit_status list
type ltac_sign = {
ltac_vars : Id.Set.t; (** Variables of Ltac which may be bound to a term *)
ltac_bound : Id.Set.t; (** Other variables of Ltac *)
ltac_extra : Genintern.Store.t; (** Arbitrary payload *)
}
val empty_ltac_sign : ltac_sign
(** {6 Internalization performs interpretation of global names and notations } *)
val intern_constr : env -> evar_map -> constr_expr -> glob_constr val intern_type : env -> evar_map -> constr_expr -> glob_constr
(** Returns None if it's an abbreviation not bound to a name, raises an error
if not existing *) val intern_reference : qualid -> GlobRef.t option
(** Returns None if not a reference or a abbrev not bound to a name *) val intern_name_alias :
constr_expr -> (GlobRef.t * Glob_term.glob_instance option) option
(** Expands abbreviations; raise an error if not existing *) val interp_reference : ltac_sign -> qualid -> glob_constr
(** Locating references of constructions, possibly via a syntactic definition
(these functions do not modify the glob file) *)
val locate_reference : Libnames.qualid -> GlobRef.t option val is_global : Id.t -> bool
(** Interprets a term as the left-hand side of a notation. The returned map is
guaranteed to have the same domain as the input one. *) val interp_notation_constr : env -> ?impls:internalization_env ->
notation_interp_env -> constr_expr ->
(bool * subscopes * Id.Set.t) Id.Map.t * notation_constr * reversibility_status
(** Idem but to glob_constr (weaker check of binders) *)
(** Globalization options *) val parsing_explicit : boolref
(** Placeholder for global option, should be moved to a parameter *) val get_asymmetric_patterns : unit -> bool
val check_duplicate : ?loc:Loc.t -> (qualid * constr_expr) list -> unit (** Check that a list of record field definitions doesn't contain
duplicates. *)
val interp_cumul_univ_decl_opt : Environ.env -> cumul_univ_decl_expr option ->
Evd.evar_map * UState.universe_decl * Entries.variance_entry (** BEWARE the variance entry needs to be adjusted by
[ComInductive.variance_of_entry] if the instance is extensible. *)
val interp_mutual_univ_decl_opt : Environ.env -> universe_decl_expr optionlist ->
Evd.evar_map * UState.universe_decl (** Check that all defined udecls of a list of udecls associated to a mutual definition
are the same and interpret this common udecl *)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.