UVarsSourceConvenient function to compare the result of Instance.length, UContext.size etc
A vector of universe levels with universe Constraints.t, representing local universe variables and associated Constraints.t; the names are user-facing names for printing
A value in a universe context.
type 'a univ_abstracted = {univ_abstracted_value : 'a;univ_abstracted_binder : AbstractContext.t;}A value with bound universe levels.
val pr_quality_level_subst :
(Sorts.QVar.t -> Pp.t) ->
Sorts.Quality.t Sorts.QVar.Map.t ->
Pp.tval subst_univs_level_abstract_universe_context :
Univ.universe_level_subst ->
AbstractContext.t ->
AbstractContext.tThere are no constraints on qualities, so this only needs a subst for univs
Level to universe substitutions.
Substitution of instances
Creates u(0) ↦ 0; ...; u(n-1) ↦ n - 1 out of u(0); ...; u(n - 1)
TODO: move universe abstraction out of the kernel
val pr_universe_context :
(Sorts.QVar.t -> Pp.t) ->
(Univ.Level.t -> Pp.t) ->
?variance:Variance.t array ->
UContext.t ->
Pp.tval pr_abstract_universe_context :
(Sorts.QVar.t -> Pp.t) ->
(Univ.Level.t -> Pp.t) ->
?variance:Variance.t array ->
AbstractContext.t ->
Pp.t