aboutsummaryrefslogtreecommitdiff
path: root/kernel/uGraph.mli
diff options
context:
space:
mode:
authorGaëtan Gilbert2018-10-30 00:10:50 +0100
committerGaëtan Gilbert2018-11-27 13:12:52 +0100
commitfb4978ce2cf0a2d4fc871d5d739eda8618a5184b (patch)
tree85ac88a24bdaf956131869b634a41de23db41694 /kernel/uGraph.mli
parentf6a2d21b6c2a93cb70fde235fc897fb75ea51384 (diff)
Fix #8364: making univ algebraic when already equal to another.
When making a universe a variable we iterate through the universes we're equal to and if we find one we update the substitution accordingly. NB: The bug called make_flexible_variable on Top.15 and ~~~ {Top.15 Top.14} |= Top.11 < Top.6 Top.14 < Top.5 Top.11 = Top.15 ALGEBRAIC UNIVERSES:{Top.17 Top.16} UNDEFINED UNIVERSES:Top.17 := Top.14+1 Top.16 := Top.14+1 WEAK CONSTRAINTS: ~~~ so now we would add [Top.15 := Top.11].
Diffstat (limited to 'kernel/uGraph.mli')
-rw-r--r--kernel/uGraph.mli4
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/uGraph.mli b/kernel/uGraph.mli
index a389b35993..4dbfac5c73 100644
--- a/kernel/uGraph.mli
+++ b/kernel/uGraph.mli
@@ -73,6 +73,10 @@ val sort_universes : t -> t
of the universes into equivalence classes. *)
val constraints_of_universes : t -> Constraint.t * LSet.t list
+val choose : (Level.t -> bool) -> t -> Level.t -> Level.t option
+(** [choose p g u] picks a universe verifying [p] and equal
+ to [u] in [g]. *)
+
(** [constraints_for ~kept g] returns the constraints about the
universes [kept] in [g] up to transitivity.