199 |
199 |
200 goalw Cardinal.thy [cardinal_def] "!!i. Ord(i) ==> |i| le i"; |
200 goalw Cardinal.thy [cardinal_def] "!!i. Ord(i) ==> |i| le i"; |
201 by (etac (eqpoll_refl RS Least_le) 1); |
201 by (etac (eqpoll_refl RS Least_le) 1); |
202 val Ord_cardinal_le = result(); |
202 val Ord_cardinal_le = result(); |
203 |
203 |
204 goalw Cardinal.thy [Card_def] "!!i. Card(i) ==> |i| = i"; |
204 goalw Cardinal.thy [Card_def] "!!K. Card(K) ==> |K| = K"; |
205 by (etac sym 1); |
205 by (etac sym 1); |
206 val Card_cardinal_eq = result(); |
206 val Card_cardinal_eq = result(); |
207 |
207 |
208 val prems = goalw Cardinal.thy [Card_def,cardinal_def] |
208 val prems = goalw Cardinal.thy [Card_def,cardinal_def] |
209 "[| Ord(i); !!j. j<i ==> ~(j eqpoll i) |] ==> Card(i)"; |
209 "[| Ord(i); !!j. j<i ==> ~(j eqpoll i) |] ==> Card(i)"; |
214 goalw Cardinal.thy [Card_def, cardinal_def] "!!i. Card(i) ==> Ord(i)"; |
214 goalw Cardinal.thy [Card_def, cardinal_def] "!!i. Card(i) ==> Ord(i)"; |
215 by (etac ssubst 1); |
215 by (etac ssubst 1); |
216 by (rtac Ord_Least 1); |
216 by (rtac Ord_Least 1); |
217 val Card_is_Ord = result(); |
217 val Card_is_Ord = result(); |
218 |
218 |
219 goalw Cardinal.thy [cardinal_def] "Ord( |A| )"; |
219 goalw Cardinal.thy [cardinal_def] "Ord(|A|)"; |
220 by (rtac Ord_Least 1); |
220 by (rtac Ord_Least 1); |
221 val Ord_cardinal = result(); |
221 val Ord_cardinal = result(); |
222 |
222 |
223 goal Cardinal.thy "Card(0)"; |
223 goal Cardinal.thy "Card(0)"; |
224 by (rtac (Ord_0 RS CardI) 1); |
224 by (rtac (Ord_0 RS CardI) 1); |
225 by (fast_tac (ZF_cs addSEs [ltE]) 1); |
225 by (fast_tac (ZF_cs addSEs [ltE]) 1); |
226 val Card_0 = result(); |
226 val Card_0 = result(); |
227 |
227 |
228 goalw Cardinal.thy [cardinal_def] "Card( |A| )"; |
228 goalw Cardinal.thy [cardinal_def] "Card(|A|)"; |
229 by (excluded_middle_tac "EX i. Ord(i) & i eqpoll A" 1); |
229 by (excluded_middle_tac "EX i. Ord(i) & i eqpoll A" 1); |
230 by (etac (Least_0 RS ssubst) 1 THEN rtac Card_0 1); |
230 by (etac (Least_0 RS ssubst) 1 THEN rtac Card_0 1); |
231 by (rtac (Ord_Least RS CardI) 1); |
231 by (rtac (Ord_Least RS CardI) 1); |
232 by (safe_tac ZF_cs); |
232 by (safe_tac ZF_cs); |
233 by (rtac less_LeastE 1); |
233 by (rtac less_LeastE 1); |
263 by (REPEAT_SOME assume_tac); |
263 by (REPEAT_SOME assume_tac); |
264 by (etac (lt_trans2 RS lt_irrefl) 1); |
264 by (etac (lt_trans2 RS lt_irrefl) 1); |
265 by (etac cardinal_mono 1); |
265 by (etac cardinal_mono 1); |
266 val cardinal_lt_imp_lt = result(); |
266 val cardinal_lt_imp_lt = result(); |
267 |
267 |
268 goal Cardinal.thy "!!i j. [| |i| < k; Ord(i); Card(k) |] ==> i < k"; |
268 goal Cardinal.thy "!!i j. [| |i| < K; Ord(i); Card(K) |] ==> i < K"; |
269 by (asm_simp_tac (ZF_ss addsimps |
269 by (asm_simp_tac (ZF_ss addsimps |
270 [cardinal_lt_imp_lt, Card_is_Ord, Card_cardinal_eq]) 1); |
270 [cardinal_lt_imp_lt, Card_is_Ord, Card_cardinal_eq]) 1); |
271 val Card_lt_imp_lt = result(); |
271 val Card_lt_imp_lt = result(); |
|
272 |
|
273 goal Cardinal.thy "!!i j. [| Ord(i); Card(K) |] ==> (|i| < K) <-> (i < K)"; |
|
274 by (fast_tac (ZF_cs addEs [Card_lt_imp_lt, Ord_cardinal_le RS lt_trans1]) 1); |
|
275 val Card_lt_iff = result(); |
|
276 |
|
277 goal Cardinal.thy "!!i j. [| Ord(i); Card(K) |] ==> (K le |i|) <-> (K le i)"; |
|
278 by (asm_simp_tac (ZF_ss addsimps |
|
279 [Card_lt_iff, Card_is_Ord, Ord_cardinal, |
|
280 not_lt_iff_le RS iff_sym]) 1); |
|
281 val Card_le_iff = result(); |
272 |
282 |
273 |
283 |
274 (** The swap operator [NOT USED] **) |
284 (** The swap operator [NOT USED] **) |
275 |
285 |
276 goalw Cardinal.thy [swap_def] |
286 goalw Cardinal.thy [swap_def] |