src/ZF/CardinalArith.ML
changeset 2493 bdeb5024353a
parent 2469 b50b8c0eec01
child 2925 b0ae2e13db93
equal deleted inserted replaced
2492:88f15198950f 2493:bdeb5024353a
   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);