]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/tactics/paramodulation/indexing.ml
errata corrige.
[helm.git] / helm / software / components / tactics / paramodulation / indexing.ml
index 8f696d6f3e330b960c0d3782c62f2d3720f46ece..7cdbf43d38a2242938c5f83c710f08f3cfe08761 100644 (file)
@@ -367,6 +367,7 @@ let rec find_all_matches ?(unif_fun=Founif.unification)
   let module S = CicSubstitution in
   let module M = CicMetaSubst in
   let module HL = HelmLibraryObjects in
+  (* prerr_endline ("matching " ^  CicPp.ppterm term); *)
   let cmp = !Utils.compare_terms in
   let check = match termty with C.Implicit None -> false | _ -> true in
   function
@@ -537,7 +538,7 @@ let subsumption_aux_all use_unification env table target =
           let what' = Subst.apply_subst subst what in
           let other' = Subst.apply_subst subst other in
           let subst', menv', ug' =
-            unif_fun metasenv m context what' other' ugraph
+            unif_fun [] menv context what' other' ugraph
           in
           (match Subst.merge_subst_if_possible subst subst' with
           | None -> ok_all what leftorright tl
@@ -555,7 +556,7 @@ let subsumption_all x y z =
 ;;
 
 let unification_all x y z = 
-  subsumption_aux_all true x y z
+  prerr_endline "unification_all"; subsumption_aux_all true x y z
 ;;
 
 let rec demodulation_aux bag ?from ?(typecheck=false) 
@@ -752,7 +753,7 @@ let rec demodulation_equality bag ?from eq_uri newmeta env table target =
   in
 
   let res = 
-    demodulation_aux bag ~from:"3" metasenv' context ugraph table 0 left 
+    demodulation_aux bag ~from:"from3" metasenv' context ugraph table 0 left 
   in
   if Utils.debug_res then check_res res "demod result";
   let newmeta, newtarget = 
@@ -1074,10 +1075,9 @@ let build_newg bag context goal rule expansion =
       Utils.guarded_simpl context 
         (apply_subst subst (CicSubstitution.subst other t)) 
     in
-    let bo' = apply_subst subst t in
-    let ty = apply_subst subst ty in 
-    let name = Cic.Name "x" in 
-    let newgoalproofstep = (rule,pos,id,subst,Cic.Lambda (name,ty,bo')) in
+    let name = Cic.Name "x" in     
+    let pred = apply_subst subst (Cic.Lambda (name,ty,t)) in 
+    let newgoalproofstep = (rule,pos,id,subst,pred) in
     bo, (newgoalproofstep::goalproof)
   in
   let newmetasenv = (* Founif.filter subst *) menv in
@@ -1149,10 +1149,9 @@ let build_newgoal bag context goal posu rule expansion =
       Utils.guarded_simpl context 
         (apply_subst subst (CicSubstitution.subst other t)) 
     in
-    let bo' = apply_subst subst t in
-    let ty = apply_subst subst ty in 
     let name = Cic.Name "x" in 
-    let newgoalproofstep = (rule,pos,id,subst,Cic.Lambda (name,ty,bo')) in
+    let pred = apply_subst subst (Cic.Lambda (name,ty,t)) in 
+    let newgoalproofstep = (rule,pos,id,subst,pred) in
     bo, (newgoalproofstep::goalproof)
   in
   let newmetasenv = (* Founif.filter subst *) menv in
@@ -1177,6 +1176,8 @@ let superposition_left bag (metasenv, context, ugraph) table goal maxmeta =
       prerr_endline (string_of_int (List.length expansionsl));
       prerr_endline (string_of_int (List.length expansionsr));
       *)
+      if expansionsl <> [] then prerr_endline "expansionl";
+      if expansionsr <> [] then prerr_endline "expansionr";
       List.map (build_newgoal bag context goal Utils.Right Equality.SuperpositionLeft) expansionsl
       @
       List.map (build_newgoal bag context goal Utils.Left Equality.SuperpositionLeft) expansionsr