]> matita.cs.unibo.it Git - helm.git/commitdiff
fix convertibility in case of application test_eq_only is =true for
authorEnrico Tassi <enrico.tassi@inria.fr>
Fri, 30 Jan 2009 14:51:27 +0000 (14:51 +0000)
committerEnrico Tassi <enrico.tassi@inria.fr>
Fri, 30 Jan 2009 14:51:27 +0000 (14:51 +0000)
arguments, since we dont know if reduction eventually moves them in
contravariant position

helm/software/components/ng_kernel/nCicReduction.ml

index 6105dd3a08c68739c3a0e208c19923c38bd86a09..8012f0b753990745d037e3ee0a4d678f1f6c4398 100644 (file)
@@ -257,7 +257,7 @@ let are_convertible ~metasenv ~subst =
          in
          (try
              HExtlib.list_forall_default3_var
-              (fun t1 t2 b -> not b || aux test_eq_only context t1 t2 )
+              (fun t1 t2 b -> not b || aux true context t1 t2 )
               tl1 tl2 true relevance
             with Invalid_argument _ -> false
               | HExtlib.FailureAt fail ->
@@ -272,7 +272,7 @@ let are_convertible ~metasenv ~subst =
                   let _,tl2 = HExtlib.split_nth (fail+1) tl2 in
                     try
                         HExtlib.list_forall_default3
-                        (fun t1 t2 b -> not b || aux test_eq_only context t1 t2)
+                        (fun t1 t2 b -> not b || aux true context t1 t2)
                         tl1 tl2 true relevance
                      with Invalid_argument _ -> false
                 else false)
@@ -282,7 +282,7 @@ let are_convertible ~metasenv ~subst =
           let relevance = !get_relevance ~metasenv ~subst context hd1 tl1 in
             (try
              HExtlib.list_forall_default3
-              (fun t1 t2 b -> not b || aux test_eq_only context t1 t2)
+              (fun t1 t2 b -> not b || aux true context t1 t2)
               tl1 tl2 true relevance
             with Invalid_argument _ -> false)
 
@@ -339,7 +339,7 @@ let are_convertible ~metasenv ~subst =
         R.reduce ~delta ~subst context m1,
         R.reduce ~delta ~subst context m2
      in
-     let rec convert_machines 
+     let rec convert_machines test_eq_only
        ((k1,e1,t1,s1),norm1 as m1),((k2,e2,t2,s2), norm2 as m2) 
      =
        (alpha_eq test_eq_only
@@ -354,11 +354,11 @@ let are_convertible ~metasenv ~subst =
              not b ||
              let t1 = RS.from_stack t1 in
              let t2 = RS.from_stack t2 in
-             convert_machines (put_in_whd t1 t2)) s1 s2 true relevance
+             convert_machines true (put_in_whd t1 t2)) s1 s2 true relevance
         with Invalid_argument _ -> false) || 
-       (not (norm1 && norm2) && convert_machines (small_delta_step m1 m2))
+       (not (norm1 && norm2) && convert_machines test_eq_only (small_delta_step m1 m2))
      in
-     convert_machines (put_in_whd (0,[],t1,[]) (0,[],t2,[]))
+     convert_machines test_eq_only (put_in_whd (0,[],t1,[]) (0,[],t2,[]))
  in
   aux false 
 ;;