src/Pure/meta_simplifier.ML
changeset 20972 db0425645cc7
parent 20905 33cf09dc9956
child 21286 b5e7b80caa6a
--- a/src/Pure/meta_simplifier.ML	Wed Oct 11 10:49:29 2006 +0200
+++ b/src/Pure/meta_simplifier.ML	Wed Oct 11 10:49:36 2006 +0200
@@ -549,7 +549,7 @@
         Const ("==", _) $ lhs $ rhs =>
           let val (x, xs) = strip_comb lhs and (y, ys) = strip_comb rhs in
             is_Var x andalso forall is_Bound xs andalso
-            null (findrep xs) andalso xs = ys andalso
+            not (has_duplicates (op =) xs) andalso xs = ys andalso
             member (op =) varpairs (x, y) andalso
             is_full_cong_prems prems (remove (op =) (x, y) varpairs)
           end
@@ -561,7 +561,7 @@
     val (lhs, rhs) = Logic.dest_equals concl;
     val (f, xs) = strip_comb lhs and (g, ys) = strip_comb rhs;
   in
-    f = g andalso null (findrep (xs @ ys)) andalso length xs = length ys andalso
+    f = g andalso not (has_duplicates (op =) (xs @ ys)) andalso length xs = length ys andalso
     is_full_cong_prems prems (xs ~~ ys)
   end;