Relaxed the precondition of UN_upper_le
authorpaulson
Thu, 13 Dec 2001 12:33:23 +0100
changeset 12485 3df60299a6d0
parent 12484 7ad150f5fc10
child 12486 0ed8bdd883e0
Relaxed the precondition of UN_upper_le
src/ZF/Epsilon.ML
src/ZF/Ordinal.ML
--- a/src/ZF/Epsilon.ML	Wed Dec 12 20:37:31 2001 +0100
+++ b/src/ZF/Epsilon.ML	Thu Dec 13 12:33:23 2001 +0100
@@ -218,7 +218,7 @@
 by (rtac le_anti_sym 1);
 by (rtac UN_upper_le 2);
 by (rtac UN_least_le 1);
-by (auto_tac (claset() addIs [rank_mono], simpset()));
+by (auto_tac (claset() addIs [rank_mono], simpset() addsimps [Ord_UN]));
 qed "rank_Pow";
 
 Goal "rank(0) = 0";
--- a/src/ZF/Ordinal.ML	Wed Dec 12 20:37:31 2001 +0100
+++ b/src/ZF/Ordinal.ML	Thu Dec 13 12:33:23 2001 +0100
@@ -635,21 +635,18 @@
 by (REPEAT (ares_tac [jlti, succ_leI, limit] 1));
 qed "UN_succ_least_lt";
 
-val prems = Goal
-    "[| a: A;  i le b(a);  !!x. x:A ==> Ord(b(x)) |] ==> i le (UN x:A. b(x))";
-by (resolve_tac (prems RL [ltE]) 1);
+Goal "[| a: A;  i le b(a);  Ord(UN x:A. b(x)) |] ==> i le (UN x:A. b(x))";
+by (ftac ltD 1); 
 by (rtac (le_imp_subset RS subset_trans RS subset_imp_le) 1);
-by (REPEAT (ares_tac (prems @ [UN_upper, Ord_UN]) 1));
+by (REPEAT (ares_tac [lt_Ord, UN_upper] 1));
 qed "UN_upper_le";
 
 val [leprem] = Goal
     "[| !!x. x:A ==> c(x) le d(x) |] ==> (UN x:A. c(x)) le (UN x:A. d(x))";
 by (rtac UN_least_le 1);
 by (rtac UN_upper_le 2);
-by (REPEAT (ares_tac [leprem] 2));
-by (rtac Ord_UN 1);
-by (REPEAT (eresolve_tac [asm_rl, leprem RS ltE] 1
-     ORELSE dtac Ord_succD 1));
+by (etac leprem 3);
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [Ord_UN, leprem RS le_Ord2])));
 qed "le_implies_UN_le_UN";
 
 Goal "Ord(i) ==> (UN y:i. succ(y)) = i";