diff options
| author | Gaëtan Gilbert | 2018-10-30 00:10:50 +0100 |
|---|---|---|
| committer | Gaëtan Gilbert | 2018-11-27 13:12:52 +0100 |
| commit | fb4978ce2cf0a2d4fc871d5d739eda8618a5184b (patch) | |
| tree | 85ac88a24bdaf956131869b634a41de23db41694 /kernel/uGraph.mli | |
| parent | f6a2d21b6c2a93cb70fde235fc897fb75ea51384 (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.mli | 4 |
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. |
