src/ZF/AC/AC16_WO4.thy
changeset 12960 e4b2c9d3bf4b
parent 12820 02e2ff3e4d37
child 13175 81082cfa5618
equal deleted inserted replaced
12959:bf48fd86a732 12960:e4b2c9d3bf4b
   211       and GG_def:    "GG  == \<lambda>v \<in> LL. (THE w. w \<in> MM & v \<subseteq> w) - v"
   211       and GG_def:    "GG  == \<lambda>v \<in> LL. (THE w. w \<in> MM & v \<subseteq> w) - v"
   212       and s_def:     "s(u) == {v \<in> t_n. u \<in> v & k \<lesssim> v Int y}"
   212       and s_def:     "s(u) == {v \<in> t_n. u \<in> v & k \<lesssim> v Int y}"
   213   assumes all_ex:    "\<forall>z \<in> {z \<in> Pow(x Un y) . z \<approx> succ(k)}.
   213   assumes all_ex:    "\<forall>z \<in> {z \<in> Pow(x Un y) . z \<approx> succ(k)}.
   214 	               \<exists>! w. w \<in> t_n & z \<subseteq> w "
   214 	               \<exists>! w. w \<in> t_n & z \<subseteq> w "
   215     and disjoint[iff]:  "x Int y = 0"
   215     and disjoint[iff]:  "x Int y = 0"
   216     and includes:  "t_n \<subseteq> {v \<in> Pow(x Un y). v \<approx> succ(k #+ m)}"
   216     and "includes":  "t_n \<subseteq> {v \<in> Pow(x Un y). v \<approx> succ(k #+ m)}"
   217     and WO_R[iff]:      "well_ord(y,R)"
   217     and WO_R[iff]:      "well_ord(y,R)"
   218     and lnat[iff]:      "l \<in> nat"
   218     and lnat[iff]:      "l \<in> nat"
   219     and mnat[iff]:      "m \<in> nat"
   219     and mnat[iff]:      "m \<in> nat"
   220     and mpos[iff]:      "0<m"
   220     and mpos[iff]:      "0<m"
   221     and Infinite[iff]:  "~ Finite(y)"
   221     and Infinite[iff]:  "~ Finite(y)"
   319          \<forall>v \<in> s(u). succ(l) \<approx> v Int y |] 
   319          \<forall>v \<in> s(u). succ(l) \<approx> v Int y |] 
   320       ==> w Int (x - {u}) \<approx> m"
   320       ==> w Int (x - {u}) \<approx> m"
   321 apply (erule CollectE)
   321 apply (erule CollectE)
   322 apply (subst w_Int_eq_w_Diff)
   322 apply (subst w_Int_eq_w_Diff)
   323 apply (fast dest!: s_subset [THEN subsetD] 
   323 apply (fast dest!: s_subset [THEN subsetD] 
   324                    includes [simplified k_def, THEN subsetD])
   324                    "includes" [simplified k_def, THEN subsetD])
   325 apply (blast dest: s_subset [THEN subsetD] 
   325 apply (blast dest: s_subset [THEN subsetD] 
   326                    includes [simplified k_def, THEN subsetD] 
   326                    "includes" [simplified k_def, THEN subsetD] 
   327              dest: eqpoll_sym [THEN cons_eqpoll_succ, THEN eqpoll_sym] 
   327              dest: eqpoll_sym [THEN cons_eqpoll_succ, THEN eqpoll_sym] 
   328                    in_s_imp_u_in
   328                    in_s_imp_u_in
   329             intro!: eqpoll_sum_imp_Diff_eqpoll)
   329             intro!: eqpoll_sum_imp_Diff_eqpoll)
   330 done
   330 done
   331 
   331 
   392 done
   392 done
   393 
   393 
   394 
   394 
   395 lemma (in AC16) LL_subset: "LL \<subseteq> {z \<in> Pow(y). z \<lesssim> succ(k #+ m)}"
   395 lemma (in AC16) LL_subset: "LL \<subseteq> {z \<in> Pow(y). z \<lesssim> succ(k #+ m)}"
   396 apply (unfold LL_def MM_def)
   396 apply (unfold LL_def MM_def)
   397 apply (insert includes)
   397 apply (insert "includes")
   398 apply (blast intro: subset_imp_lepoll eqpoll_imp_lepoll lepoll_trans)
   398 apply (blast intro: subset_imp_lepoll eqpoll_imp_lepoll lepoll_trans)
   399 done
   399 done
   400 
   400 
   401 lemma (in AC16) well_ord_LL: "\<exists>S. well_ord(LL,S)"
   401 lemma (in AC16) well_ord_LL: "\<exists>S. well_ord(LL,S)"
   402 apply (rule well_ord_subsets_lepoll_n [THEN exE, of "succ(k#+m)"])
   402 apply (rule well_ord_subsets_lepoll_n [THEN exE, of "succ(k#+m)"])
   440 
   440 
   441 lemma (in AC16) the_in_MM_subset:
   441 lemma (in AC16) the_in_MM_subset:
   442      "v \<in> LL ==> (THE x. x \<in> MM & v \<subseteq> x) \<subseteq> x Un y"
   442      "v \<in> LL ==> (THE x. x \<in> MM & v \<subseteq> x) \<subseteq> x Un y"
   443 apply (drule unique_superset1)
   443 apply (drule unique_superset1)
   444 apply (unfold MM_def)
   444 apply (unfold MM_def)
   445 apply (fast dest!: unique_superset1 includes [THEN subsetD])
   445 apply (fast dest!: unique_superset1 "includes" [THEN subsetD])
   446 done
   446 done
   447 
   447 
   448 lemma (in AC16) GG_subset: "v \<in> LL ==> GG ` v \<subseteq> x"
   448 lemma (in AC16) GG_subset: "v \<in> LL ==> GG ` v \<subseteq> x"
   449 apply (unfold GG_def)
   449 apply (unfold GG_def)
   450 apply (frule the_in_MM_subset)
   450 apply (frule the_in_MM_subset)
   471 lemma (in AC16) exists_proper_in_s: "u \<in> x ==> \<exists>v \<in> s(u). succ(k) \<lesssim> v Int y"
   471 lemma (in AC16) exists_proper_in_s: "u \<in> x ==> \<exists>v \<in> s(u). succ(k) \<lesssim> v Int y"
   472 apply (rule ccontr)
   472 apply (rule ccontr)
   473 apply (subgoal_tac "\<forall>v \<in> s (u) . k \<approx> v Int y")
   473 apply (subgoal_tac "\<forall>v \<in> s (u) . k \<approx> v Int y")
   474 prefer 2 apply (simp add: s_def, blast intro: succ_not_lepoll_imp_eqpoll)
   474 prefer 2 apply (simp add: s_def, blast intro: succ_not_lepoll_imp_eqpoll)
   475 apply (unfold k_def)
   475 apply (unfold k_def)
   476 apply (insert all_ex includes lnat)
   476 apply (insert all_ex "includes" lnat)
   477 apply (rule ex_subset_eqpoll_n [THEN exE], assumption)
   477 apply (rule ex_subset_eqpoll_n [THEN exE], assumption)
   478 apply (rule noLepoll [THEN notE])
   478 apply (rule noLepoll [THEN notE])
   479 apply (blast intro: lepoll_trans [OF y_lepoll_subset_s subset_s_lepoll_w])
   479 apply (blast intro: lepoll_trans [OF y_lepoll_subset_s subset_s_lepoll_w])
   480 done
   480 done
   481 
   481 
   514 (* Every element of the family is less than or equipollent to n-k (m)     *)
   514 (* Every element of the family is less than or equipollent to n-k (m)     *)
   515 (* ********************************************************************** *)
   515 (* ********************************************************************** *)
   516 
   516 
   517 lemma (in AC16) in_MM_eqpoll_n: "w \<in> MM ==> w \<approx> succ(k #+ m)"
   517 lemma (in AC16) in_MM_eqpoll_n: "w \<in> MM ==> w \<approx> succ(k #+ m)"
   518 apply (unfold MM_def)
   518 apply (unfold MM_def)
   519 apply (fast dest: includes [THEN subsetD])
   519 apply (fast dest: "includes" [THEN subsetD])
   520 done
   520 done
   521 
   521 
   522 lemma (in AC16) in_LL_eqpoll_n: "w \<in> LL ==> succ(k) \<lesssim> w"
   522 lemma (in AC16) in_LL_eqpoll_n: "w \<in> LL ==> succ(k) \<lesssim> w"
   523 by (unfold LL_def MM_def, fast)
   523 by (unfold LL_def MM_def, fast)
   524 
   524 
   529       "well_ord(LL,S) ==>       
   529       "well_ord(LL,S) ==>       
   530        \<forall>b<ordertype(LL,S). GG ` (converse(ordermap(LL,S)) ` b) \<lesssim> m"
   530        \<forall>b<ordertype(LL,S). GG ` (converse(ordermap(LL,S)) ` b) \<lesssim> m"
   531 apply (unfold GG_def)
   531 apply (unfold GG_def)
   532 apply (rule oallI)
   532 apply (rule oallI)
   533 apply (simp add: ltD ordermap_bij [THEN bij_converse_bij, THEN bij_is_fun, THEN apply_type])
   533 apply (simp add: ltD ordermap_bij [THEN bij_converse_bij, THEN bij_is_fun, THEN apply_type])
   534 apply (insert includes)
   534 apply (insert "includes")
   535 apply (rule eqpoll_sum_imp_Diff_lepoll)
   535 apply (rule eqpoll_sum_imp_Diff_lepoll)
   536 apply (blast del: subsetI
   536 apply (blast del: subsetI
   537 	     dest!: ltD 
   537 	     dest!: ltD 
   538 	     intro!: eqpoll_sum_imp_Diff_lepoll in_LL_eqpoll_n
   538 	     intro!: eqpoll_sum_imp_Diff_lepoll in_LL_eqpoll_n
   539 	     intro: in_LL   unique_superset1 [THEN in_MM_eqpoll_n] 
   539 	     intro: in_LL   unique_superset1 [THEN in_MM_eqpoll_n]