src/ZF/Cardinal.ML
changeset 803 4c8333ab3eae
parent 792 5d2a7634da46
child 833 ba386650df2c
equal deleted inserted replaced
802:2f2fbf0a7e4f 803:4c8333ab3eae
   183 by (etac Ord_ordertype 2);
   183 by (etac Ord_ordertype 2);
   184 by (rtac exI 1);
   184 by (rtac exI 1);
   185 by (etac (ordermap_bij RS bij_converse_bij) 1);
   185 by (etac (ordermap_bij RS bij_converse_bij) 1);
   186 qed "well_ord_cardinal_eqpoll";
   186 qed "well_ord_cardinal_eqpoll";
   187 
   187 
   188 val Ord_cardinal_eqpoll = well_ord_Memrel RS well_ord_cardinal_eqpoll 
   188 bind_thm ("Ord_cardinal_eqpoll", well_ord_Memrel RS well_ord_cardinal_eqpoll);
   189                           |> standard;
       
   190 
   189 
   191 goal Cardinal.thy
   190 goal Cardinal.thy
   192     "!!X Y. [| well_ord(X,r);  well_ord(Y,s);  |X| = |Y| |] ==> X eqpoll Y";
   191     "!!X Y. [| well_ord(X,r);  well_ord(Y,s);  |X| = |Y| |] ==> X eqpoll Y";
   193 by (rtac (eqpoll_sym RS eqpoll_trans) 1);
   192 by (rtac (eqpoll_sym RS eqpoll_trans) 1);
   194 by (etac well_ord_cardinal_eqpoll 1);
   193 by (etac well_ord_cardinal_eqpoll 1);
   339 by (fast_tac (ZF_cs addSIs [nat_0_le]) 1);
   338 by (fast_tac (ZF_cs addSIs [nat_0_le]) 1);
   340 by (rtac ballI 1);
   339 by (rtac ballI 1);
   341 by (eres_inst_tac [("n","n")] natE 1);
   340 by (eres_inst_tac [("n","n")] natE 1);
   342 by (asm_simp_tac (ZF_ss addsimps [inj_def, succI1 RS Pi_empty2]) 1);
   341 by (asm_simp_tac (ZF_ss addsimps [inj_def, succI1 RS Pi_empty2]) 1);
   343 by (fast_tac (ZF_cs addSIs [succ_leI] addSDs [inj_succ_succD]) 1);
   342 by (fast_tac (ZF_cs addSIs [succ_leI] addSDs [inj_succ_succD]) 1);
   344 qed "nat_lepoll_imp_le_lemma";
   343 val nat_lepoll_imp_le_lemma = result();
   345 val nat_lepoll_imp_le = nat_lepoll_imp_le_lemma RS bspec RS mp |> standard;
   344 
       
   345 bind_thm ("nat_lepoll_imp_le", nat_lepoll_imp_le_lemma RS bspec RS mp);
   346 
   346 
   347 goal Cardinal.thy
   347 goal Cardinal.thy
   348     "!!m n. [| m:nat; n: nat |] ==> m eqpoll n <-> m = n";
   348     "!!m n. [| m:nat; n: nat |] ==> m eqpoll n <-> m = n";
   349 by (rtac iffI 1);
   349 by (rtac iffI 1);
   350 by (asm_simp_tac (ZF_ss addsimps [eqpoll_refl]) 2);
   350 by (asm_simp_tac (ZF_ss addsimps [eqpoll_refl]) 2);