amended uncond_skel to observe notion of cong_name properly -- may affect simplification with Free congs;
authorwenzelm
Sat, 30 Mar 2013 17:27:21 +0100
changeset 51591 e4aeb102ad70
parent 51590 c52891242de2
child 51592 c3a7d6592e3f
amended uncond_skel to observe notion of cong_name properly -- may affect simplification with Free congs;
src/Pure/raw_simplifier.ML
--- a/src/Pure/raw_simplifier.ML	Sat Mar 30 17:13:21 2013 +0100
+++ b/src/Pure/raw_simplifier.ML	Sat Mar 30 17:27:21 2013 +0100
@@ -883,7 +883,10 @@
 
 fun uncond_skel ((_, weak), (lhs, rhs)) =
   if null weak then rhs  (*optimization*)
-  else if exists_Const (fn (c, _) => member (op =) weak (true, c)) lhs then skel0
+  else if exists_subterm
+    (fn Const (a, _) => member (op =) weak (true, a)
+      | Free (a, _) => member (op =) weak (false, a)
+      | _ => false) lhs then skel0
   else rhs;
 
 (*Behaves like unconditional rule if rhs does not contain vars not in the lhs.