diff options
| author | Gaëtan Gilbert | 2020-09-25 15:31:51 +0200 |
|---|---|---|
| committer | Gaëtan Gilbert | 2020-09-28 14:56:22 +0200 |
| commit | 316592a31b463568f5136757c3570eaa8e1f0167 (patch) | |
| tree | b61967b917707ff576979e48c5d71def43a229f9 /engine | |
| parent | b9f385cb43de4c463e649f8f6e33f32288e88a6c (diff) | |
Put type-in-type flag in ugraph.
Fix #13086.
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) |
