src/ZF/Cardinal.ML
changeset 5147 825877190618
parent 5143 b94cd208f073
child 5242 3087dafb70ec
equal deleted inserted replaced
5146:1ea751ae62b2 5147:825877190618
   107 
   107 
   108 Goal "X eqpoll Y <-> X lepoll Y & Y lepoll X";
   108 Goal "X eqpoll Y <-> X lepoll Y & Y lepoll X";
   109 by (blast_tac (claset() addIs [eqpollI] addSEs [eqpollE]) 1);
   109 by (blast_tac (claset() addIs [eqpollI] addSEs [eqpollE]) 1);
   110 qed "eqpoll_iff";
   110 qed "eqpoll_iff";
   111 
   111 
   112 Goalw [lepoll_def, inj_def] "!!A. A lepoll 0 ==> A = 0";
   112 Goalw [lepoll_def, inj_def] "A lepoll 0 ==> A = 0";
   113 by (blast_tac (claset() addDs [apply_type]) 1);
   113 by (blast_tac (claset() addDs [apply_type]) 1);
   114 qed "lepoll_0_is_0";
   114 qed "lepoll_0_is_0";
   115 
   115 
   116 (*0 lepoll Y*)
   116 (*0 lepoll Y*)
   117 bind_thm ("empty_lepollI", empty_subsetI RS subset_imp_lepoll);
   117 bind_thm ("empty_lepollI", empty_subsetI RS subset_imp_lepoll);
   301     "[| Ord(i);  !!j. j<i ==> ~(j eqpoll i) |] ==> Card(i)";
   301     "[| Ord(i);  !!j. j<i ==> ~(j eqpoll i) |] ==> Card(i)";
   302 by (stac Least_equality 1);
   302 by (stac Least_equality 1);
   303 by (REPEAT (ares_tac ([refl,eqpoll_refl]@prems) 1));
   303 by (REPEAT (ares_tac ([refl,eqpoll_refl]@prems) 1));
   304 qed "CardI";
   304 qed "CardI";
   305 
   305 
   306 Goalw [Card_def, cardinal_def] "!!i. Card(i) ==> Ord(i)";
   306 Goalw [Card_def, cardinal_def] "Card(i) ==> Ord(i)";
   307 by (etac ssubst 1);
   307 by (etac ssubst 1);
   308 by (rtac Ord_Least 1);
   308 by (rtac Ord_Least 1);
   309 qed "Card_is_Ord";
   309 qed "Card_is_Ord";
   310 
   310 
   311 Goal "Card(K) ==> K le |K|";
   311 Goal "Card(K) ==> K le |K|";