equal
deleted
inserted
replaced
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) |