X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_unification%2FcicRefine.ml;h=a9593c67fb617782815a6631fcc3cfa18c9b5f06;hb=acf29bdbdcdc6ad8c2d9d27e8a47500981b605cd;hp=25af88f4feffb1b46ec477571b4848aab35fb7c1;hpb=c8c7bcfd5fd3086be09c2f949b90c614596489b2;p=helm.git diff --git a/helm/ocaml/cic_unification/cicRefine.ml b/helm/ocaml/cic_unification/cicRefine.ml index 25af88f4f..a9593c67f 100644 --- a/helm/ocaml/cic_unification/cicRefine.ml +++ b/helm/ocaml/cic_unification/cicRefine.ml @@ -506,9 +506,9 @@ and type_of_aux' metasenv context t ugraph = (Some candidate),ugraph4,metasenv,subst | (constructor_args_no,_,instance,_)::tl -> try - let instance' = - CicSubstitution.delift constructor_args_no - (CicMetaSubst.apply_subst subst instance) + let instance',subst,metasenv = + CicMetaSubst.delift_rels subst metasenv + constructor_args_no instance in let candidate,ugraph,metasenv,subst = List.fold_left ( @@ -518,30 +518,17 @@ and type_of_aux' metasenv context t ugraph = | None -> None,ugraph,metasenv,subst | Some ty -> try - let instance' = - CicSubstitution.delift - constructor_args_no - (CicMetaSubst.apply_subst subst instance) + let instance',subst,metasenv = + CicMetaSubst.delift_rels subst metasenv + constructor_args_no instance in -prerr_endline ("PRIMA subst:\n" ^ CicMetaSubst.ppsubst subst ^ "\nmetasenv:\n" ^ CicMetaSubst.ppmetasenv metasenv subst); let subst,metasenv,ugraph = fo_unif_subst subst context metasenv instance' ty ugraph in -prerr_endline ("DOPO subst:\n" ^ CicMetaSubst.ppsubst subst ^ "\nmetasenv:\n" ^ CicMetaSubst.ppmetasenv metasenv subst); candidate_oty,ugraph,metasenv,subst -(* CSC: XXX - let b,ugraph1 = - CicReduction.are_convertible context - instance' ty ugraph - in - if b then - candidate_oty,ugraph1,metasenv - else - None,ugraph,metasenv -*) with - Failure _ + CicMetaSubst.DeliftingARelWouldCaptureAFreeVariable | CicUnification.UnificationFailure _ | CicUnification.Uncertain _ -> None,ugraph,metasenv,subst @@ -561,7 +548,7 @@ prerr_endline ("DOPO subst:\n" ^ CicMetaSubst.ppsubst subst ^ "\nmetasenv:\n" ^ Some (add_lambdas 0 t arity_instantiated_with_left_args), ugraph,metasenv,subst - with Failure s -> + with CicMetaSubst.DeliftingARelWouldCaptureAFreeVariable -> None,ugraph4,metasenv,subst in match candidate with