atomize: borrowed HOL version, which checks for both Trueprop
authorlcp
Fri, 17 Jun 1994 17:49:03 +0200
changeset 429 888bbb4119f8
parent 428 49cc52442678
child 430 89e1986125fe
atomize: borrowed HOL version, which checks for both Trueprop and == as main connective (avoids using wildcard)
src/FOL/simpdata.ML
--- a/src/FOL/simpdata.ML	Fri Jun 17 17:47:42 1994 +0200
+++ b/src/FOL/simpdata.ML	Fri Jun 17 17:49:03 1994 +0200
@@ -55,14 +55,19 @@
 fun gen_all th = forall_elim_vars (#maxidx(rep_thm th)+1) th;
 
 (*Make atomic rewrite rules*)
-fun atomize th = case concl_of th of 
-    _ $ (Const("op &",_) $ _ $ _)   => atomize(th RS conjunct1) @
-				       atomize(th RS conjunct2)
-  | _ $ (Const("op -->",_) $ _ $ _) => atomize(th RS mp)
-  | _ $ (Const("All",_) $ _)        => atomize(th RS spec)
-  | _ $ (Const("True",_))           => []
-  | _ $ (Const("False",_))          => []
-  | _                               => [th];
+fun atomize r =
+  case concl_of r of
+    Const("Trueprop",_) $ p =>
+      (case p of
+	 Const("op -->",_)$_$_ => atomize(r RS mp)
+       | Const("op &",_)$_$_   => atomize(r RS conjunct1) @
+	  		          atomize(r RS conjunct2)
+       | Const("All",_)$_      => atomize(r RS spec)
+       | Const("True",_)       => []	(*True is DELETED*)
+       | Const("False",_)      => []	(*should False do something?*)
+       | _                     => [r])
+  | _ => [r];
+
 
 val P_iff_F = int_prove_fun "~P ==> (P <-> False)";
 val iff_reflection_F = P_iff_F RS iff_reflection;