src/ZF/Cardinal.thy
changeset 13784 b9f6154427a4
parent 13615 449a70d88b38
child 14046 6616e6c53d48
equal deleted inserted replaced
13783:3294f727e20d 13784:b9f6154427a4
   493 lemma nat_lepoll_imp_le [rule_format]:
   493 lemma nat_lepoll_imp_le [rule_format]:
   494      "m:nat ==> ALL n: nat. m \<lesssim> n --> m le n"
   494      "m:nat ==> ALL n: nat. m \<lesssim> n --> m le n"
   495 apply (induct_tac m)
   495 apply (induct_tac m)
   496 apply (blast intro!: nat_0_le)
   496 apply (blast intro!: nat_0_le)
   497 apply (rule ballI)
   497 apply (rule ballI)
   498 apply (erule_tac n = "n" in natE)
   498 apply (erule_tac n = n in natE)
   499 apply (simp (no_asm_simp) add: lepoll_def inj_def)
   499 apply (simp (no_asm_simp) add: lepoll_def inj_def)
   500 apply (blast intro!: succ_leI dest!: succ_lepoll_succD)
   500 apply (blast intro!: succ_leI dest!: succ_lepoll_succD)
   501 done
   501 done
   502 
   502 
   503 lemma nat_eqpoll_iff: "[| m:nat; n: nat |] ==> m \<approx> n <-> m = n"
   503 lemma nat_eqpoll_iff: "[| m:nat; n: nat |] ==> m \<approx> n <-> m = n"
   857 apply (subgoal_tac "EX u. u:A")
   857 apply (subgoal_tac "EX u. u:A")
   858 apply (erule exE)
   858 apply (erule exE)
   859 apply (rule Diff_sing_eqpoll [THEN revcut_rl])
   859 apply (rule Diff_sing_eqpoll [THEN revcut_rl])
   860 prefer 2 apply assumption
   860 prefer 2 apply assumption
   861 apply assumption
   861 apply assumption
   862 apply (rule_tac b = "A" in cons_Diff [THEN subst], assumption)
   862 apply (rule_tac b = A in cons_Diff [THEN subst], assumption)
   863 apply (rule Fin.consI, blast)
   863 apply (rule Fin.consI, blast)
   864 apply (blast intro: subset_consI [THEN Fin_mono, THEN subsetD])
   864 apply (blast intro: subset_consI [THEN Fin_mono, THEN subsetD])
   865 (*Now for the lemma assumed above*)
   865 (*Now for the lemma assumed above*)
   866 apply (unfold eqpoll_def)
   866 apply (unfold eqpoll_def)
   867 apply (blast intro: bij_converse_bij [THEN bij_is_fun, THEN apply_type])
   867 apply (blast intro: bij_converse_bij [THEN bij_is_fun, THEN apply_type])
   905 apply (unfold Finite_def)
   905 apply (unfold Finite_def)
   906 apply (case_tac "a:A")
   906 apply (case_tac "a:A")
   907 apply (subgoal_tac [2] "A-{a}=A", auto)
   907 apply (subgoal_tac [2] "A-{a}=A", auto)
   908 apply (rule_tac x = "succ (n) " in bexI)
   908 apply (rule_tac x = "succ (n) " in bexI)
   909 apply (subgoal_tac "cons (a, A - {a}) = A & cons (n, n) = succ (n) ")
   909 apply (subgoal_tac "cons (a, A - {a}) = A & cons (n, n) = succ (n) ")
   910 apply (drule_tac a = "a" and b = "n" in cons_eqpoll_cong)
   910 apply (drule_tac a = a and b = n in cons_eqpoll_cong)
   911 apply (auto dest: mem_irrefl)
   911 apply (auto dest: mem_irrefl)
   912 done
   912 done
   913 
   913 
   914 (*Sidi Ehmety.  And the contrapositive of this says
   914 (*Sidi Ehmety.  And the contrapositive of this says
   915    [| ~Finite(A); Finite(B) |] ==> ~Finite(A-B) *)
   915    [| ~Finite(A); Finite(B) |] ==> ~Finite(A-B) *)
   974 apply (rule_tac P =  "x:Z" in case_split_thm)
   974 apply (rule_tac P =  "x:Z" in case_split_thm)
   975  txt{*x:Z case*}
   975  txt{*x:Z case*}
   976  apply (drule_tac x = x in bspec, assumption)
   976  apply (drule_tac x = x in bspec, assumption)
   977  apply (blast elim: mem_irrefl mem_asym)
   977  apply (blast elim: mem_irrefl mem_asym)
   978 txt{*other case*} 
   978 txt{*other case*} 
   979 apply (drule_tac x = "Z" in spec, blast) 
   979 apply (drule_tac x = Z in spec, blast) 
   980 done
   980 done
   981 
   981 
   982 lemma nat_well_ord_converse_Memrel: "n:nat ==> well_ord(n,converse(Memrel(n)))"
   982 lemma nat_well_ord_converse_Memrel: "n:nat ==> well_ord(n,converse(Memrel(n)))"
   983 apply (frule Ord_nat [THEN Ord_in_Ord, THEN well_ord_Memrel])
   983 apply (frule Ord_nat [THEN Ord_in_Ord, THEN well_ord_Memrel])
   984 apply (unfold well_ord_def)
   984 apply (unfold well_ord_def)