diff options
author | Gaëtan Gilbert <gaetan.gilbert@skyskimmer.net> | 2018-03-01 18:28:36 +0100 |
---|---|---|
committer | Gaëtan Gilbert <gaetan.gilbert@skyskimmer.net> | 2018-03-09 16:30:12 +0100 |
commit | 2e30531e78519a5b9c3773c2524e4fd4759cc5c8 (patch) | |
tree | ad7effee5b9ad3904ab84d81e1583d233ae5033a /pretyping/unification.ml | |
parent | d640b676282285d52ac19038d693080e64eb5ea7 (diff) |
Delayed weak constraints for cumulative inductive types.
When comparing 2 irrelevant universes [u] and [v] we add a "weak
constraint" [UWeak(u,v)] to the UState. Then at minimization time a
weak constraint between unrelated universes where one is flexible
causes them to be unified.
Diffstat (limited to 'pretyping/unification.ml')
-rw-r--r-- | pretyping/unification.ml | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/pretyping/unification.ml b/pretyping/unification.ml index 76bd88cc0..f2f922fd5 100644 --- a/pretyping/unification.ml +++ b/pretyping/unification.ml @@ -566,7 +566,8 @@ let force_eqs c = Constraints.fold (fun c acc -> let c' = match c with - | ULub (l, r) -> UEq (Univ.Universe.make l,Univ.Universe.make r) + (* Should we be forcing weak constraints? *) + | ULub (l, r) | UWeak (l, r) -> UEq (Univ.Universe.make l,Univ.Universe.make r) | ULe _ | UEq _ -> c in Constraints.add c' acc) |