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 : UVars.Instance.t check_functionCheck equality of instances w.r.t. a universe graph
...
type path_explanationtype explanation=|Path of path_explanation|Other of Pp.ttype univ_inconsistency= Univ.constraint_type * Sorts.t * Sorts.t * explanation option
exceptionUniverseInconsistency of univ_inconsistency
val enforce_constraint : Univ.univ_constraint -> t -> tval merge_constraints : Univ.Constraints.t -> t -> tval check_constraint : t -> Univ.univ_constraint -> boolval check_constraints : Univ.Constraints.t -> t -> boolval check_eq_sort : t -> Sorts.t -> Sorts.t -> boolval check_leq_sort : t -> Sorts.t -> Sorts.t -> boolval enforce_leq_alg : Univ.Universe.t -> Univ.Universe.t -> t -> Univ.Constraints.t * t
module Bound : sig ... endval add_universe : Univ.Level.t -> lbound:Bound.t -> strict:bool -> t -> t
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.Level.Set.t -> unitval empty_universes : tThe empty graph of universes
val constraints_of_universes : t -> Univ.Constraints.t * Univ.Level.Set.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.Level.Set.t -> t -> Univ.Constraints.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.Level.Set.tKnown universes
val check_subtype : UVars.AbstractContext.t check_functioncheck_subtype univ ctx1 ctx2checks whetherctx2is an instance ofctx1.
Dumping
type node=|Alias of Univ.Level.t|Node of bool Univ.Level.Map.tNodes v s.t. u < v (true) or u <= v (false)
val repr : t -> node Univ.Level.Map.t
Pretty-printing of universes.
val pr_universes : (Univ.Level.t -> Pp.t) -> node Univ.Level.Map.t -> Pp.tval explain_universe_inconsistency : (Sorts.QVar.t -> Pp.t) -> (Univ.Level.t -> Pp.t) -> univ_inconsistency -> Pp.tval check_universes_invariants : t -> unitDebugging