UVarsSourceConvenient function to compare the result of Instance.length, UContext.size etc
type 'a pconstraints_function =
'a ->
'a ->
(QPairSet.t * Univ.UnivConstraints.t) ->
QPairSet.t * Univ.UnivConstraints.tA vector of universe levels with universe PConstraints.t, representing local universe variables and associated PConstraints.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.
Substitution of universes.
val subst_univs_constraints :
universe_level_subst ->
Univ.UnivConstraints.t ->
Univ.UnivConstraints.tval pr_quality_level_subst :
(Sorts.QVar.t -> Pp.t) ->
Sorts.Quality.t Sorts.QVar.Map.t ->
Pp.tval subst_univs_level_abstract_universe_context :
sort_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