419 "!!K. [| x<z; y<z; z<K |] ==> <<x,y>, <z,z>> : csquare_rel(K)"; |
419 "!!K. [| x<z; y<z; z<K |] ==> <<x,y>, <z,z>> : csquare_rel(K)"; |
420 by (subgoals_tac ["x<K", "y<K"] 1); |
420 by (subgoals_tac ["x<K", "y<K"] 1); |
421 by (REPEAT (eresolve_tac [asm_rl, lt_trans] 2)); |
421 by (REPEAT (eresolve_tac [asm_rl, lt_trans] 2)); |
422 by (REPEAT (etac ltE 1)); |
422 by (REPEAT (etac ltE 1)); |
423 by (asm_simp_tac (!simpset addsimps [rvimage_iff, rmult_iff, Memrel_iff, |
423 by (asm_simp_tac (!simpset addsimps [rvimage_iff, rmult_iff, Memrel_iff, |
424 Un_absorb, Un_least_mem_iff, ltD]) 1); |
424 Un_absorb, Un_least_mem_iff, ltD]) 1); |
425 qed "csquare_ltI"; |
425 qed "csquare_ltI"; |
426 |
426 |
427 (*Part of the traditional proof. UNUSED since it's harder to prove & apply *) |
427 (*Part of the traditional proof. UNUSED since it's harder to prove & apply *) |
428 goalw CardinalArith.thy [csquare_rel_def] |
428 goalw CardinalArith.thy [csquare_rel_def] |
429 "!!K. [| x le z; y le z; z<K |] ==> \ |
429 "!!K. [| x le z; y le z; z<K |] ==> \ |
756 by (etac Fin_induct 1); |
756 by (etac Fin_induct 1); |
757 by (simp_tac (!simpset addsimps [lepoll_0_iff]) 1); |
757 by (simp_tac (!simpset addsimps [lepoll_0_iff]) 1); |
758 by (subgoal_tac "cons(x,cons(xa,y)) = cons(xa,cons(x,y))" 1); |
758 by (subgoal_tac "cons(x,cons(xa,y)) = cons(xa,cons(x,y))" 1); |
759 by (Asm_simp_tac 1); |
759 by (Asm_simp_tac 1); |
760 by (fast_tac (!claset addSDs [cons_lepoll_consD]) 1); |
760 by (fast_tac (!claset addSDs [cons_lepoll_consD]) 1); |
761 by (fast_tac eq_cs 1); |
761 by (Fast_tac 1); |
762 qed "Fin_imp_not_cons_lepoll"; |
762 qed "Fin_imp_not_cons_lepoll"; |
763 |
763 |
764 goal CardinalArith.thy |
764 goal CardinalArith.thy |
765 "!!a A. [| Finite(A); a~:A |] ==> |cons(a,A)| = succ(|A|)"; |
765 "!!a A. [| Finite(A); a~:A |] ==> |cons(a,A)| = succ(|A|)"; |
766 by (rewtac cardinal_def); |
766 by (rewtac cardinal_def); |