UVars.AbstractContextAn abstract context serves to quantify over a graph of universes represented using de Bruijn indices, as in: u0, ..., u(n-1), Var i < Var j, .., Var k <= Var l |- term(Var 0 .. Var (n-1)) \-------------/ \-------------------------------/ \---------------------/ names for constraints expressed on de Bruijn judgement in abstract printing representation of the n univ vars context expected to use de Bruijn indices
val make : bound_names -> PConstraints.t -> tBuild an abstract context. PConstraints may be between sorts/universe variables.
val repr : t -> UContext.trepr ctx is (Var(0), ... Var(n-1) |= cstr where n is the length of the context and cstr the abstracted UnivConstraints.t.
val empty : tval is_empty : t -> boolval is_constant : t -> boolEmpty instance, but may have constraints
val size : t -> int * intThe constraints are expected to be relative to the concatenated set of universes
val instantiate : Instance.t -> t -> PConstraints.tGenerate the set of instantiated PConstraints.t *
val names : t -> bound_namesReturn the names of the bound universe variables
val pr : (Sorts.QVar.t -> Pp.t) -> (Univ.Level.t -> Pp.t) -> ?variance:Variance.t array -> t -> Pp.t