UnivProblemWhen doing conversion of universes, not only do we have =/<= constraints but also Lub constraints which correspond to unification of two levels which might not be necessary if unfolding is performed.
UWeak constraints come from irrelevant universes in cumulative polymorphism.
type t = | QEq of Sorts.Quality.t * Sorts.Quality.t |
| QLeq of Sorts.Quality.t * Sorts.Quality.t |
| ULe of Sorts.t * Sorts.t |
| UEq of Sorts.t * Sorts.t |
| ULub of Univ.Level.t * Univ.Level.t |
| UWeak of Univ.Level.t * Univ.Level.t |
val is_trivial : t -> boolval check_eq_level : UGraph.t -> Univ.Level.t -> Univ.Level.t -> boolWrapper around the UGraph function to handle Prop
module Set : sig ... endval enforce_eq_instances_univs : bool -> UVars.Instance.t constraint_functionval enforce_eq_qualities : Sorts.Quality.t array constraint_functionval compare_cumulative_instances : Conversion.conv_pb -> UVars.Variance.t array -> UVars.Instance.t constraint_function