]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/cic_unification/cicRefine.ml
prima implementazione di demodulate, superposition_left e superposition_right
[helm.git] / helm / ocaml / cic_unification / cicRefine.ml
index e64499b3b94a819723a603fe803efab7fc067a91..a9593c67fb617782815a6631fcc3cfa18c9b5f06 100644 (file)
@@ -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' = 
-                         CicMetaSubst.delift_rels 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,10 +518,9 @@ and type_of_aux' metasenv context t ugraph =
                                | None -> None,ugraph,metasenv,subst
                                | Some ty ->
                                  try 
-                                   let instance' = 
-                                     CicMetaSubst.delift_rels
-                                      constructor_args_no
-                                       (CicMetaSubst.apply_subst subst instance)
+                                   let instance',subst,metasenv = 
+                                     CicMetaSubst.delift_rels subst metasenv
+                                      constructor_args_no instance
                                    in
                                    let subst,metasenv,ugraph =
                                     fo_unif_subst subst context metasenv