src/Pure/meta_simplifier.ML
changeset 16305 5e7b6731b004
parent 16042 8e15ff79851a
child 16378 8af448f67cef
--- a/src/Pure/meta_simplifier.ML	Mon Jun 06 18:58:34 2005 +0200
+++ b/src/Pure/meta_simplifier.ML	Mon Jun 06 19:09:49 2005 +0200
@@ -412,6 +412,12 @@
     orelse
   is_Var (head_of lhs)
     orelse
+(* turns t = x around, which causes a headache if x is a local variable -
+   usually it is very useful :-(
+  is_Free rhs andalso not(is_Free lhs) andalso not(Logic.occs(rhs,lhs))
+  andalso not(exists_subterm is_Var lhs)
+    orelse
+*)
   exists (apl (lhs, Logic.occs)) (rhs :: prems)
     orelse
   null prems andalso Pattern.matches (Sign.tsig_of sign) (lhs, rhs)