aboutsummaryrefslogtreecommitdiffhomepage
path: root/engine/uState.ml
diff options
context:
space:
mode:
authorGravatar Maxime Dénès <mail@maximedenes.fr>2018-01-17 15:17:10 +0100
committerGravatar Maxime Dénès <mail@maximedenes.fr>2018-01-17 15:17:10 +0100
commit79b6f227664df61948c535039522fdd2aeb2e9a9 (patch)
treee3f15349037f648da5f1eed59536c3c1f1ba09be /engine/uState.ml
parentd4f965678dcffb836fb9cf8790e3e969d3bfc364 (diff)
parent8acf32377b67c08568215a89c31cdc382883dbf6 (diff)
Merge PR #6298: Fix #6297: handle constraints like (u+1 <= Set/Prop)
Diffstat (limited to 'engine/uState.ml')
-rw-r--r--engine/uState.ml20
1 files changed, 12 insertions, 8 deletions
diff --git a/engine/uState.ml b/engine/uState.ml
index 6f2b3c4b2..4b650c9c9 100644
--- a/engine/uState.ml
+++ b/engine/uState.ml
@@ -201,14 +201,18 @@ let process_universe_constraints ctx cstrs =
| None -> user_err Pp.(str "Algebraic universe on the right")
| Some r' ->
if Univ.Level.is_small r' then
- let levels = Univ.Universe.levels l in
- let fold l' local =
- let l = Univ.Universe.make l' in
- if Univ.Level.is_small l' || is_local l' then
- equalize_variables false l l' r r' local
- else raise (Univ.UniverseInconsistency (Univ.Le, l, r, None))
- in
- Univ.LSet.fold fold levels local
+ if not (Univ.Universe.is_levels l)
+ then
+ raise (Univ.UniverseInconsistency (Univ.Le, l, r, None))
+ else
+ let levels = Univ.Universe.levels l in
+ let fold l' local =
+ let l = Univ.Universe.make l' in
+ if Univ.Level.is_small l' || is_local l' then
+ equalize_variables false l l' r r' local
+ else raise (Univ.UniverseInconsistency (Univ.Le, l, r, None))
+ in
+ Univ.LSet.fold fold levels local
else
Univ.enforce_leq l r local
end