Univmodule UGlobal : sig ... endQualified global universe level
module Level : sig ... endUniverses.
module Universe : sig ... enduniv_level_mem l u Is l is mentioned in u ?
val univ_level_mem : Level.t -> Universe.t -> booluniv_level_rem u v min removes u from v, resulting in min if v was exactly u.
val univ_level_rem : Level.t -> Universe.t -> Universe.t -> Universe.ttype univ_constraint = Level.t * constraint_type * Level.tmodule Constraints : sig ... endtype 'a constrained = 'a * Constraints.tA value with universe Constraints.t.
val constraints_of : 'a constrained -> Constraints.tConstrained
type 'a constraint_function = 'a -> 'a -> Constraints.t -> Constraints.tEnforcing Constraints.t.
val enforce_eq_level : Level.t constraint_functionval enforce_leq_level : Level.t constraint_functionmodule Variance : sig ... endmodule Instance : sig ... endval enforce_eq_instances : Instance.t constraint_functionval enforce_eq_variance_instances : Variance.t array -> Instance.t constraint_functionval enforce_leq_variance_instances : Variance.t array -> Instance.t constraint_functiontype 'a puniverses = 'a * Instance.tval out_punivs : 'a puniverses -> 'aval in_punivs : 'a -> 'a puniversesval eq_puniverses : ('a -> 'a -> bool) -> 'a puniverses -> 'a puniverses -> boolA vector of universe levels with universe Constraints.t, representing local universe variables and associated Constraints.t; the names are user-facing names for printing
module UContext : sig ... endmodule AbstractContext : sig ... endA value with bound universe levels.
val map_univ_abstracted : ('a -> 'b) -> 'a univ_abstracted -> 'b univ_abstractedUniverse contexts (as sets)
A set of universes with universe Constraints.t. We linearize the set to a list after typechecking. Beware, representation could change.
module ContextSet : sig ... endtype 'a in_universe_context = 'a * UContext.tA value in a universe context (resp. context set).
type 'a in_universe_context_set = 'a * ContextSet.tval extend_in_context_set : 'a in_universe_context_set -> ContextSet.t -> 'a in_universe_context_settype universe_level_subst = Level.t Level.Map.tval empty_level_subst : universe_level_substval is_empty_level_subst : universe_level_subst -> boolval subst_univs_level_level : universe_level_subst -> Level.t -> Level.tSubstitution of universes.
val subst_univs_level_universe : universe_level_subst -> Universe.t -> Universe.tval subst_univs_level_constraints : universe_level_subst -> Constraints.t -> Constraints.tval subst_univs_level_abstract_universe_context : universe_level_subst -> AbstractContext.t -> AbstractContext.tval subst_univs_level_instance : universe_level_subst -> Instance.t -> Instance.tLevel to universe substitutions.
val subst_instance_instance : Instance.t -> Instance.t -> Instance.tSubstitution of instances
val subst_instance_universe : Instance.t -> Universe.t -> Universe.tval make_instance_subst : Instance.t -> universe_level_substCreates u(0) ↦ 0; ...; u(n-1) ↦ n - 1 out of u(0); ...; u(n - 1)
val abstract_universes : UContext.t -> Instance.t * AbstractContext.tTODO: move universe abstraction out of the kernel
val make_abstract_instance : AbstractContext.t -> Instance.tval compact_univ : Universe.t -> Universe.t * int listcompact_univ u remaps local variables in u such that their indices become consecutive. It returns the new universe and the mapping. Example: compact_univ (Var 0, i); (Prop, 0); (Var 2; j)) = (Var 0,i); (Prop, 0); (Var 1; j), 0; 2
val pr_constraint_type : constraint_type -> Pp.tval pr_constraints : (Level.t -> Pp.t) -> Constraints.t -> Pp.tval pr_universe_context : (Level.t -> Pp.t) -> ?variance:Variance.t array -> UContext.t -> Pp.tval pr_abstract_universe_context : (Level.t -> Pp.t) -> ?variance:Variance.t array -> AbstractContext.t -> Pp.tval pr_universe_context_set : (Level.t -> Pp.t) -> ContextSet.t -> Pp.tval pr_universe_level_subst : universe_level_subst -> Pp.tval hcons_univ : Universe.t -> Universe.tval hcons_constraints : Constraints.t -> Constraints.tval hcons_universe_set : Level.Set.t -> Level.Set.tval hcons_universe_context : UContext.t -> UContext.tval hcons_abstract_universe_context : AbstractContext.t -> AbstractContext.tval hcons_universe_context_set : ContextSet.t -> ContextSet.ttype explanation = Level.t * (constraint_type * Level.t) list