Module UVars.UContext

A value in a universe context.

type t
val empty : t
val is_empty : t -> bool
val hcons : t -> int * t
val instance : t -> Instance.t
val constraints : t -> PConstraints.t
val univ_constraints : t -> Univ.UnivConstraints.t
val elim_constraints : t -> Sorts.ElimConstraints.t
val union : t -> t -> t

Keeps the order of the instances

val size : t -> int * int

The number of universes in the context

val names : t -> bound_names

Return the user names of the universes

val refine_names : bound_names -> t -> t

Use names to name the possibly yet unnamed universes

val sort_levels : Univ.Level.t array -> Univ.Level.t array

Arbitrary choice of linear order of the variables

val sort_qualities : Sorts.Quality.t array -> Sorts.Quality.t array

Arbitrary choice of linear order of the variables

val of_context_set : (Instance.t -> bound_names) -> (Sorts.QContextSet.t * Univ.ContextSet.t) -> t

Build a vector of universe levels assuming a function generating names

val to_context_set : t -> Sorts.QContextSet.t * Univ.ContextSet.t

Discard the names and order of the universes

val pr : (Sorts.QVar.t -> Pp.t) -> (Univ.Level.t -> Pp.t) -> ?variance:Variance.t array -> t -> Pp.t