(************************************************************************) (* * 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 Constr
(** This module defines the entry types for global declarations. This informationisenteredintheenvironments.Thisincludesglobal constants/axioms,mutualinductivedefinitions,modulesandmodule
types *)
type universes_entry =
| Monomorphic_entry
| Polymorphic_entry of UVars.UContext.t
type inductive_universes_entry =
| Monomorphic_ind_entry
| Polymorphic_ind_entry of UVars.UContext.t
| Template_ind_entry of {
uctx : UVars.UContext.t; (* The quality part of default_univs must be all qtype *)
default_univs : UVars.Instance.t;
}
type variance_entry = UVars.Variance.t option array
type'a in_universes_entry = 'a * universes_entry
(** {6 Declaration of inductive types. } *)
(** Assume the following definition in concrete syntax: {vInductiveI1(x1:X1)...(xn:Xn):A1:=c11:T11|...|c1n1:T1n1 ... withIp(x1:X1)...(xn:Xn):Ap:=cp1:Tp1|...|cpnp:Tpnp.v}
type mutual_inductive_entry = {
mind_entry_record : (Id.t array option) option; (** Some (Some ids): primitive records with ids the binder name of each recordintheirrespectiveprojections.Notusedbythekernel.
Some None: non-primitive record *)
mind_entry_finite : Declarations.recursivity_kind;
mind_entry_params : Constr.rel_context;
mind_entry_inds : one_inductive_entry list;
mind_entry_universes : inductive_universes_entry;
mind_entry_variance : variance_entry option; (* [None] if non-cumulative, otherwise associates each universe of theentryto[None]iftobeinferredor[Somev]iftobe
checked. *)
mind_entry_private : booloption;
}
(** {6 Constants (Definition/Axiom) } *)
type definition_entry = {
definition_entry_body : constr; (* List of section variables *)
definition_entry_secctx : Id.Set.t option;
definition_entry_type : types option;
definition_entry_universes : universes_entry;
definition_entry_inline_code : bool;
}
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.