X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=helm%2Fsoftware%2Fcomponents%2Fng_refiner%2FnCicUnification.ml;h=1f03755ffbd9cde673cc3be5c9cbeffe9809d23f;hb=63047f8ff8ef477ac32939985b0b41b70e918054;hp=466c0ef855bf93b0bbd4a84ac06eee43558d8fde;hpb=a6f4d10cfad6b1ba9c9e32b2d095346ab5f7aa3f;p=helm.git diff --git a/helm/software/components/ng_refiner/nCicUnification.ml b/helm/software/components/ng_refiner/nCicUnification.ml index 466c0ef85..1f03755ff 100644 --- a/helm/software/components/ng_refiner/nCicUnification.ml +++ b/helm/software/components/ng_refiner/nCicUnification.ml @@ -241,9 +241,11 @@ let tipify exc metasenv subst context t ty = if is_type attrs then metasenv,subst,true else + let _,cc,ty = NCicUtils.lookup_meta n metasenv in + let metasenv,subst,ty = sortfy exc metasenv subst cc ty in let metasenv = NCicUntrusted.replace_in_metasenv n - (fun attrs,cc,ty -> NCicUntrusted.set_kind `IsType attrs, cc, ty) + (fun attrs,cc,_ -> NCicUntrusted.set_kind `IsType attrs, cc, ty) metasenv in metasenv,subst,false @@ -253,9 +255,11 @@ let tipify exc metasenv subst context t ty = if is_type attrs then metasenv,subst,true else + let _,cc,_,ty = NCicUtils.lookup_subst n subst in + let metasenv,subst,ty = sortfy exc metasenv subst cc ty in let subst = NCicUntrusted.replace_in_subst n - (fun attrs,cc,bo,ty->NCicUntrusted.set_kind `IsType attrs,cc,bo,ty) + (fun attrs,cc,bo,_->NCicUntrusted.set_kind `IsType attrs,cc,bo,ty) subst in optimize_meta metasenv subst (NCicSubstitution.subst_meta lc bo)) @@ -354,8 +358,8 @@ let rec instantiate rdb test_eq_only metasenv subst context n lc t swap = | _ -> assert false) | `IsType | `IsTerm -> - (match ty,t with - NCic.Implicit (`Typeof _), _ -> + (match ty with + NCic.Implicit (`Typeof _) -> let (metasenv, subst), ty_t = try NCicMetaSubst.delift @@ -375,7 +379,7 @@ let rec instantiate rdb test_eq_only metasenv subst context n lc t swap = in delift_to_subst test_eq_only n lc (attrs,cc,ty_t) t context metasenv subst - | _, _ -> + | _ -> let lty = NCicSubstitution.subst_meta lc ty in pp (lazy ("On the types: " ^ ppterm ~metasenv ~subst ~context lty ^ "=<=" ^ @@ -615,7 +619,7 @@ and unify rdb test_eq_only metasenv subst context t1 t2 swap = metasenv, subst | (C.Match (Ref.Ref (_,Ref.Ind (_,tyno,_)) as ref1,outtype1,term1,pl1), - C.Match (ref2,outtype2,term2,pl2)) -> + C.Match (ref2,outtype2,term2,pl2)) when Ref.eq ref1 ref2 -> let _,_,itl,_,_ = NCicEnvironment.get_checked_indtys ref1 in let _,_,ty,_ = List.nth itl tyno in let rec remove_prods ~subst context ty = @@ -631,9 +635,9 @@ and unify rdb test_eq_only metasenv subst context t1 t2 swap = | C.Sort C.Prop -> true | _ -> false in - if not (Ref.eq ref1 ref2) then + (* if not (Ref.eq ref1 ref2) then raise (Uncertain (mk_msg metasenv subst context t1 t2)) - else + else*) let metasenv, subst = unify rdb test_eq_only metasenv subst context outtype1 outtype2 swap in let metasenv, subst =