Module UGraph
val set_type_in_type : bool -> t -> tval type_in_type : t -> boolWhen
type_in_type, functions adding constraints do not fail and may instead ignore inconsistent constraints.Checking functions such as
check_leqalways returntrue.
type 'a check_function= t -> 'a -> 'a -> bool
val check_leq : Univ.Universe.t check_functionval check_eq : Univ.Universe.t check_functionval check_eq_level : Univ.Level.t check_functionval initial_universes : tThe initial graph of universes: Prop < Set
val initial_universes_with : t -> tInitial universes, but keeping options such as type in type from the argument.
val check_eq_instances : Univ.Instance.t check_functionCheck equality of instances w.r.t. a universe graph
...
val enforce_constraint : Univ.univ_constraint -> t -> tval merge_constraints : Univ.Constraint.t -> t -> tval check_constraint : t -> Univ.univ_constraint -> boolval check_constraints : Univ.Constraint.t -> t -> boolval enforce_leq_alg : Univ.Universe.t -> Univ.Universe.t -> t -> Univ.Constraint.t * tPicks an arbitrary set of constraints sufficient to ensure
u <= v.
module Bound : sig ... endval add_universe : Univ.Level.t -> lbound:Bound.t -> strict:bool -> t -> tval add_universe_unconstrained : Univ.Level.t -> t -> tAdd a universe without (Prop,Set) <= u
exceptionUndeclaredLevel of Univ.Level.tCheck that the universe levels are declared. Otherwise
- raises UndeclaredLevel
l for the first undeclared level found.
val check_declared_universes : t -> Univ.LSet.t -> unit
Pretty-printing of universes.
val pr_universes : (Univ.Level.t -> Pp.t) -> t -> Pp.tval empty_universes : tThe empty graph of universes
val sort_universes : t -> tval constraints_of_universes : t -> Univ.Constraint.t * Univ.LSet.t listconstraints_of_universes greturnscstsandpartitionwherecstsare the non-Eq constraints andpartitionis the partition of the universes into equivalence classes.
val choose : (Univ.Level.t -> bool) -> t -> Univ.Level.t -> Univ.Level.t optionchoose p g upicks a universe verifyingpand equal touing.
val constraints_for : kept:Univ.LSet.t -> t -> Univ.Constraint.tconstraints_for ~kept greturns the constraints about the universeskeptingup to transitivity.eg if
gisa <= b <= cthenconstraints_for ~kept:{a, c} gisa <= c.
val domain : t -> Univ.LSet.tKnown universes
val check_subtype : lbound:Bound.t -> Univ.AUContext.t check_functioncheck_subtype univ ctx1 ctx2checks whetherctx2is an instance ofctx1.
Dumping to a file
val dump_universes : (Univ.constraint_type -> Univ.Level.t -> Univ.Level.t -> unit) -> t -> unitval check_universes_invariants : t -> unitDebugging