]> matita.cs.unibo.it Git - helm.git/commitdiff
Bug fixed: terms with a Cast used to raise assert false when whd was avoided
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Thu, 30 Mar 2006 11:12:53 +0000 (11:12 +0000)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Thu, 30 Mar 2006 11:12:53 +0000 (11:12 +0000)
by the conversion strategy.

components/cic_proof_checking/cicReduction.ml

index bd8d07b8dd9a516bac801de533b1329864acc58b..de3bf61f4dd6e5a8092cca6466476023e99cbb14 100644 (file)
@@ -792,7 +792,7 @@ let (===) x y =
 let are_convertible whd ?(subst=[]) ?(metasenv=[])  =
  let heuristic = ref true in
  let rec aux test_equality_only context t1 t2 ugraph =
-  let aux2 test_equality_only t1 t2 ugraph =
+  let rec aux2 test_equality_only t1 t2 ugraph =
 
    (* this trivial euristic cuts down the total time of about five times ;-) *)
    (* this because most of the time t1 and t2 are "sintactically" the same   *)
@@ -1008,7 +1008,8 @@ prerr_endline ("%%%%%%: " ^ CicPp.ppterm term' ^ " <==> " ^ CicPp.ppterm t1);
              fl1 fl2 (true,ugraph)
             else
               false,ugraph
-        | (C.Cast _, _) | (_, C.Cast _)
+        | C.Cast (bo,_),t -> aux2 test_equality_only bo t ugraph
+        | t,C.Cast (bo,_) -> aux2 test_equality_only t bo ugraph
         | (C.Implicit _, _) | (_, C.Implicit _) -> assert false
         | (_,_) -> false,ugraph
     end