203 rtac @{thm Cinfinite_cexp} THEN' |
203 rtac @{thm Cinfinite_cexp} THEN' |
204 (rtac ordLeq_csum2 ORELSE' rtac @{thm ordLeq_refl}) THEN' |
204 (rtac ordLeq_csum2 ORELSE' rtac @{thm ordLeq_refl}) THEN' |
205 rtac Card_order_ctwo THEN' |
205 rtac Card_order_ctwo THEN' |
206 (TRY o (rtac @{thm Cinfinite_csum} THEN' rtac disjI1) THEN' rtac (hd Fbd_Cinfs) ORELSE' |
206 (TRY o (rtac @{thm Cinfinite_csum} THEN' rtac disjI1) THEN' rtac (hd Fbd_Cinfs) ORELSE' |
207 rtac (hd Fbd_Cinfs)) THEN' |
207 rtac (hd Fbd_Cinfs)) THEN' |
208 rtac disjI1 THEN' |
|
209 TRY o rtac csum_Cnotzero2 THEN' |
|
210 rtac ctwo_Cnotzero THEN' |
|
211 rtac Gbd_Card_order THEN' |
208 rtac Gbd_Card_order THEN' |
212 rtac @{thm cexp_cprod} THEN' |
209 rtac @{thm cexp_cprod} THEN' |
213 TRY o rtac csum_Cnotzero2 THEN' |
210 rtac @{thm Card_order_csum}) 1 |
214 rtac ctwo_Cnotzero) 1 |
|
215 end; |
211 end; |
216 |
212 |
217 val comp_wit_thms = @{thms Union_empty_conv o_apply collect_def SUP_def |
213 val comp_wit_thms = @{thms Union_empty_conv o_apply collect_def SUP_def |
218 Union_image_insert Union_image_empty}; |
214 Union_image_insert Union_image_empty}; |
219 |
215 |
298 rtac @{thm ordIso_refl} THEN' |
294 rtac @{thm ordIso_refl} THEN' |
299 (rtac card_of_Card_order ORELSE' rtac Card_order_csum)) 1 |
295 (rtac card_of_Card_order ORELSE' rtac Card_order_csum)) 1 |
300 else all_tac) THEN |
296 else all_tac) THEN |
301 (rtac @{thm csum_com} THEN' |
297 (rtac @{thm csum_com} THEN' |
302 rtac bd_Card_order THEN' |
298 rtac bd_Card_order THEN' |
303 rtac disjI1 THEN' |
|
304 rtac csum_Cnotzero2 THEN' |
|
305 rtac ctwo_Cnotzero THEN' |
|
306 rtac disjI1 THEN' |
|
307 rtac csum_Cnotzero2 THEN' |
|
308 TRY o rtac csum_Cnotzero1 THEN' |
|
309 rtac Cnotzero_UNIV THEN' |
|
310 rtac @{thm ordLeq_ordIso_trans} THEN' |
299 rtac @{thm ordLeq_ordIso_trans} THEN' |
311 rtac @{thm cexp_mono1} THEN' |
300 rtac @{thm cexp_mono1} THEN' |
312 rtac ctrans THEN' |
301 rtac ctrans THEN' |
313 rtac @{thm csum_mono2} THEN' |
302 rtac @{thm csum_mono2} THEN' |
314 rtac @{thm ordLeq_cprod1} THEN' |
303 rtac @{thm ordLeq_cprod1} THEN' |
320 rtac Cnotzero_UNIV THEN' |
309 rtac Cnotzero_UNIV THEN' |
321 rtac bd_Cinfinite THEN' |
310 rtac bd_Cinfinite THEN' |
322 ((rtac Card_order_ctwo THEN' rtac @{thm ordLeq_refl}) ORELSE' |
311 ((rtac Card_order_ctwo THEN' rtac @{thm ordLeq_refl}) ORELSE' |
323 (rtac Card_order_csum THEN' rtac ordLeq_csum2)) THEN' |
312 (rtac Card_order_csum THEN' rtac ordLeq_csum2)) THEN' |
324 rtac Card_order_ctwo THEN' |
313 rtac Card_order_ctwo THEN' |
325 rtac disjI1 THEN' |
|
326 rtac csum_Cnotzero2 THEN' |
|
327 TRY o rtac csum_Cnotzero1 THEN' |
|
328 rtac Cnotzero_UNIV THEN' |
|
329 rtac bd_Card_order THEN' |
314 rtac bd_Card_order THEN' |
330 rtac @{thm cexp_cprod_ordLeq} THEN' |
315 rtac @{thm cexp_cprod_ordLeq} THEN' |
331 TRY o rtac csum_Cnotzero2 THEN' |
316 resolve_tac @{thms Card_order_csum Card_order_ctwo} THEN' |
332 rtac ctwo_Cnotzero THEN' |
|
333 rtac @{thm Cinfinite_cprod2} THEN' |
317 rtac @{thm Cinfinite_cprod2} THEN' |
334 TRY o rtac csum_Cnotzero1 THEN' |
318 TRY o rtac csum_Cnotzero1 THEN' |
335 rtac Cnotzero_UNIV THEN' |
319 rtac Cnotzero_UNIV THEN' |
336 rtac bd_Cinfinite THEN' |
320 rtac bd_Cinfinite THEN' |
337 rtac bd_Cnotzero THEN' |
321 rtac bd_Cnotzero THEN' |
372 rtac ordLeq_csum2 THEN' |
356 rtac ordLeq_csum2 THEN' |
373 (rtac Card_order_csum ORELSE' rtac card_of_Card_order)) 1) THEN |
357 (rtac Card_order_csum ORELSE' rtac card_of_Card_order)) 1) THEN |
374 (rtac ordLeq_csum2 THEN' |
358 (rtac ordLeq_csum2 THEN' |
375 (rtac Card_order_csum ORELSE' rtac card_of_Card_order)) 1) ORELSE |
359 (rtac Card_order_csum ORELSE' rtac card_of_Card_order)) 1) ORELSE |
376 (rtac ordLeq_csum2 THEN' rtac Card_order_ctwo) 1) THEN |
360 (rtac ordLeq_csum2 THEN' rtac Card_order_ctwo) 1) THEN |
377 (rtac disjI1 THEN' TRY o rtac csum_Cnotzero2 THEN' rtac ctwo_Cnotzero |
361 (rtac bd_Card_order) 1; |
378 THEN' rtac bd_Card_order) 1; |
|
379 |
362 |
380 |
363 |
381 |
364 |
382 (* Permute operation *) |
365 (* Permute operation *) |
383 |
366 |
397 mk_rotate_eq_tac |
380 mk_rotate_eq_tac |
398 (rtac @{thm ordIso_refl} THEN' |
381 (rtac @{thm ordIso_refl} THEN' |
399 FIRST' [rtac card_of_Card_order, rtac Card_order_csum]) |
382 FIRST' [rtac card_of_Card_order, rtac Card_order_csum]) |
400 ordIso_transitive @{thm csum_assoc} @{thm csum_com} @{thm csum_cong} |
383 ordIso_transitive @{thm csum_assoc} @{thm csum_com} @{thm csum_cong} |
401 src dest THEN' |
384 src dest THEN' |
402 rtac bd_Card_order THEN' |
385 rtac bd_Card_order) 1; |
403 rtac disjI1 THEN' |
|
404 TRY o rtac csum_Cnotzero2 THEN' |
|
405 rtac ctwo_Cnotzero THEN' |
|
406 rtac disjI1 THEN' |
|
407 TRY o rtac csum_Cnotzero2 THEN' |
|
408 rtac ctwo_Cnotzero) 1; |
|
409 |
386 |
410 fun mk_map_wpull_tac comp_in_alt inner_map_wpulls outer_map_wpull = |
387 fun mk_map_wpull_tac comp_in_alt inner_map_wpulls outer_map_wpull = |
411 (rtac (@{thm wpull_cong} OF (replicate 3 comp_in_alt)) THEN' rtac outer_map_wpull) 1 THEN |
388 (rtac (@{thm wpull_cong} OF (replicate 3 comp_in_alt)) THEN' rtac outer_map_wpull) 1 THEN |
412 WRAP (fn thm => rtac thm 1 THEN REPEAT_DETERM (atac 1)) (K all_tac) inner_map_wpulls all_tac THEN |
389 WRAP (fn thm => rtac thm 1 THEN REPEAT_DETERM (atac 1)) (K all_tac) inner_map_wpulls all_tac THEN |
413 TRY (REPEAT_DETERM (atac 1 ORELSE rtac @{thm wpull_id} 1)); |
390 TRY (REPEAT_DETERM (atac 1 ORELSE rtac @{thm wpull_id} 1)); |