diff options
Diffstat (limited to 'engine')
| -rw-r--r-- | engine/uState.ml | 4 | ||||
| -rw-r--r-- | engine/univMinim.ml | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/engine/uState.ml b/engine/uState.ml index 8d1584cd95..2cb88c7fff 100644 --- a/engine/uState.ml +++ b/engine/uState.ml @@ -286,6 +286,10 @@ let process_universe_constraints ctx cstrs = if not (drop_weak_constraints ()) then weak := UPairSet.add (l,r) !weak; local | UEq (l, r) -> equalize_universes l r local in + let unify_universes cst local = + if not (UGraph.type_in_type univs) then unify_universes cst local + else try unify_universes cst local with UniverseInconsistency _ -> local + in let local = UnivProblem.Set.fold unify_universes cstrs Constraint.empty in diff --git a/engine/univMinim.ml b/engine/univMinim.ml index 1c7e716fc2..c5854e27f3 100644 --- a/engine/univMinim.ml +++ b/engine/univMinim.ml @@ -306,8 +306,9 @@ let normalize_context_set ~lbound g ctx us algs weak = let csts, partition = (* We first put constraints in a normal-form: all self-loops are collapsed to equalities. *) + let g = UGraph.initial_universes_with g in let g = LSet.fold (fun v g -> UGraph.add_universe ~lbound ~strict:false v g) - ctx UGraph.initial_universes + ctx g in let add_soft u g = if not (Level.is_small u || LSet.mem u ctx) |
