equal
deleted
inserted
replaced
39 by (Blast_tac 1) ; |
39 by (Blast_tac 1) ; |
40 qed "subset_succI"; |
40 qed "subset_succI"; |
41 |
41 |
42 (*But if j is an ordinal or is transitive, then i:j implies i<=j! |
42 (*But if j is an ordinal or is transitive, then i:j implies i<=j! |
43 See ordinal/Ord_succ_subsetI*) |
43 See ordinal/Ord_succ_subsetI*) |
44 qed_goalw "succ_subsetI" thy [succ_def] |
44 Goalw [succ_def] "[| i:j; i<=j |] ==> succ(i)<=j"; |
45 "!!i j. [| i:j; i<=j |] ==> succ(i)<=j" |
45 by (Blast_tac 1) ; |
46 (fn _=> [ (Blast_tac 1) ]); |
46 qed "succ_subsetI"; |
47 |
47 |
48 qed_goalw "succ_subsetE" thy [succ_def] |
48 val major::prems= Goalw [succ_def] |
49 "[| succ(i) <= j; [| i:j; i<=j |] ==> P \ |
49 "[| succ(i) <= j; [| i:j; i<=j |] ==> P \ |
50 \ |] ==> P" |
50 \ |] ==> P"; |
51 (fn major::prems=> |
51 by (rtac (major RS cons_subsetE) 1); |
52 [ (rtac (major RS cons_subsetE) 1), |
52 by (REPEAT (ares_tac prems 1)) ; |
53 (REPEAT (ares_tac prems 1)) ]); |
53 qed "succ_subsetE"; |
54 |
54 |
55 (*** singletons ***) |
55 (*** singletons ***) |
56 |
56 |
57 Goal "a:C ==> {a} <= C"; |
57 Goal "a:C ==> {a} <= C"; |
58 by (Blast_tac 1) ; |
58 by (Blast_tac 1) ; |