X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Fng_kernel%2FnCicEnvironment.ml;fp=helm%2Fsoftware%2Fcomponents%2Fng_kernel%2FnCicEnvironment.ml;h=9cad0554cea2381845aaf63a654e008507481dbb;hb=4f0397e0faf85e400e244c815de4780660652faa;hp=0ddd3601db02f4502f0cc0d9780adaff6b74584a;hpb=48ccd3ca2b890b89775f1fbf7827bf617cf7aa19;p=helm.git diff --git a/helm/software/components/ng_kernel/nCicEnvironment.ml b/helm/software/components/ng_kernel/nCicEnvironment.ml index 0ddd3601d..9cad0554c 100644 --- a/helm/software/components/ng_kernel/nCicEnvironment.ml +++ b/helm/software/components/ng_kernel/nCicEnvironment.ml @@ -21,6 +21,12 @@ exception BadConstraint of string Lazy.t;; let type0 = [] +let max l1 l2 = + HExtlib.list_uniq ~eq:(fun (b1,u1) (b2,u2) -> b1=b2 && NUri.eq u1 u2) + (List.sort (fun (b1,u1) (b2,u2) -> + let res = compare b1 b2 in if res = 0 then NUri.compare u1 u2 else res) + (l1 @ l2)) + let le_constraints = ref [] (* strict,a,b *) let rec le_path_uri avoid strict a b = @@ -41,7 +47,15 @@ let universe_leq a b = raise (BadConstraint (lazy "trying to check if a universe is less or equal than an inferred universe")) -let universe_eq a b = universe_leq b a && universe_leq a b +let universe_eq a b = + match a,b with + | [(false,_)], [(false,_)] -> universe_leq b a && universe_leq a b + | _, [(false,_)] + | [(false,_)],_ -> false + | _ -> + raise (BadConstraint + (lazy "trying to check if two inferred universes are equal")) +;; let pp_constraint b x y = NUri.name_of_uri x ^ (if b then " < " else " <= ") ^ NUri.name_of_uri y