src/ZF/upair.ML
changeset 673 023cef668158
parent 572 13c30ac40f8f
child 686 be908d8d41ef
--- a/src/ZF/upair.ML	Mon Oct 31 18:07:29 1994 +0100
+++ b/src/ZF/upair.ML	Mon Oct 31 18:09:32 1994 +0100
@@ -177,11 +177,9 @@
 
 (* Only use this if you already know EX!x. P(x) *)
 val the_equality2 = prove_goal ZF.thy
-    "[| EX! x. P(x);  P(a) |] ==> (THE x. P(x)) = a"
- (fn major::prems=>
-  [ (rtac the_equality 1),
-    (rtac (major RS ex1_equalsE) 2),
-    (REPEAT (ares_tac prems 1)) ]);
+    "!!P. [| EX! x. P(x);  P(a) |] ==> (THE x. P(x)) = a"
+ (fn _ =>
+  [ (deepen_tac (lemmas_cs addSIs [the_equality]) 1 1) ]);
 
 val theI = prove_goal ZF.thy "EX! x. P(x) ==> P(THE x. P(x))"
  (fn [major]=>
@@ -243,13 +241,12 @@
 (*** Foundation lemmas ***)
 
 (*was called mem_anti_sym*)
-val mem_asym = prove_goal ZF.thy "[| a:b;  b:a |] ==> P"
- (fn prems=>
-  [ (rtac disjE 1),
-    (res_inst_tac [("A","{a,b}")] foundation 1),
+val mem_asym = prove_goal ZF.thy "!!P. [| a:b;  b:a |] ==> P"
+ (fn _=>
+  [ (res_inst_tac [("A1","{a,b}")] (foundation RS disjE) 1),
     (etac equals0D 1),
     (rtac consI1 1),
-    (fast_tac (lemmas_cs addIs (prems@[consI1,consI2]) 
+    (fast_tac (lemmas_cs addIs [consI1,consI2]
 		         addSEs [consE,equalityE]) 1) ]);
 
 (*was called mem_anti_refl*)
@@ -299,11 +296,10 @@
 (* succ(c) <= B ==> c : B *)
 val succ_subsetD = succI1 RSN (2,subsetD);
 
-val succ_inject = prove_goal ZF.thy "succ(m) = succ(n) ==> m=n"
- (fn [major]=>
-  [ (rtac (major RS equalityE) 1),
-    (REPEAT (eresolve_tac [asm_rl, sym, succE, make_elim succ_subsetD,
-			   mem_asym] 1)) ]);
+val succ_inject = prove_goal ZF.thy "!!m n. succ(m) = succ(n) ==> m=n"
+ (fn _ =>
+  [ (fast_tac (lemmas_cs addSEs [succE, equalityE, make_elim succ_subsetD] 
+                         addEs [mem_asym]) 1) ]);
 
 val succ_inject_iff = prove_goal ZF.thy "succ(m) = succ(n) <-> m=n"
  (fn _=> [ (fast_tac (FOL_cs addSEs [succ_inject]) 1) ]);