(* Title: ZF/AC/WO2_AC16.thy Author: Krzysztof Grabczewski
The proof of WO2 \<Longrightarrow> AC16(k #+ m, k) The main part of the proof is the inductive reasoning concerning properties of constructed family T_gamma. The proof deals with three cases for ordinals: 0, succ and limit ordinal. The first instance is trivial, the third not difficult, but the second is very complicated requiring many lemmas. We also need to prove that at any stage gamma the set (s - \<Union>(...) - k_gamma) (Rubin & Rubin page 15) contains m distinct elements (in fact is equipollent to s)
*)
theory WO2_AC16 imports AC_Equiv AC16_lemmas Cardinal_aux begin
(**** A recursive definition used in the proof of WO2 \<Longrightarrow> AC16 ****)
definition
recfunAC16 :: "[i,i,i,i] \ i" where "recfunAC16(f,h,i,a) \
transrec2(i, 0, \<lambda>g r. if (\<exists>y \<in> r. h`g \<subseteq> y) then r
else r \<union> {f`(\<mu> i. h`g \<subseteq> f`i \<and>
(\<forall>b<a. (h`b \<subseteq> f`i \<longrightarrow> (\<forall>t \<in> r. \<not> h`b \<subseteq> t))))})"
lemma recfunAC16_mono: "i\j \ recfunAC16(f, g, i, a) \ recfunAC16(f, g, j, a)" unfolding recfunAC16_def apply (rule transrec2_mono, auto) done
(* ********************************************************************** *) (* case of limit ordinal *) (* ********************************************************************** *)
lemma lemma3_1: "\\yzY \ F(y). f(z)<=Y) \ (\! Y. Y \ F(y) \ f(z)<=Y); \<forall>i j. i\<le>j \<longrightarrow> F(i) \<subseteq> F(j); j\<le>i; i<x; z<a;
V \<in> F(i); f(z)<=V; W \<in> F(j); f(z)<=W\<rbrakk> \<Longrightarrow> V = W" apply (erule asm_rl allE impE)+ apply (drule subsetD, assumption, blast) done
lemma lemma3: "\\yzY \ F(y). f(z)<=Y) \ (\! Y. Y \ F(y) \ f(z)<=Y); \<forall>i j. i\<le>j \<longrightarrow> F(i) \<subseteq> F(j); i<x; j<x; z<a;
V \<in> F(i); f(z)<=V; W \<in> F(j); f(z)<=W\<rbrakk> \<Longrightarrow> V = W" apply (rule_tac j=j in Ord_linear_le [OF lt_Ord lt_Ord], assumption+) apply (erule lemma3_1 [symmetric], assumption+) apply (erule lemma3_1, assumption+) done
lemma lemma4: "\\y X \
(\<forall>x<a. x < y | (\<exists>Y \<in> F(y). h(x) \<subseteq> Y) \<longrightarrow>
(\<exists>! Y. Y \<in> F(y) \<and> h(x) \<subseteq> Y));
x < a\<rbrakk> \<Longrightarrow> \<forall>y<x. \<forall>z<a. z < y | (\<exists>Y \<in> F(y). h(z) \<subseteq> Y) \<longrightarrow>
(\<exists>! Y. Y \<in> F(y) \<and> h(z) \<subseteq> Y)" apply (intro oallI impI) apply (drule ospec, assumption, clarify) apply (blast elim!: oallE ) done
lemma lemma5: "\\y X \
(\<forall>x<a. x < y | (\<exists>Y \<in> F(y). h(x) \<subseteq> Y) \<longrightarrow>
(\<exists>! Y. Y \<in> F(y) \<and> h(x) \<subseteq> Y));
x < a; Limit(x); \<forall>i j. i\<le>j \<longrightarrow> F(i) \<subseteq> F(j)\<rbrakk> \<Longrightarrow> (\<Union>x<x. F(x)) \<subseteq> X \<and>
(\<forall>xa<a. xa < x | (\<exists>x \<in> \<Union>x<x. F(x). h(xa) \<subseteq> x) \<longrightarrow> (\<exists>! Y. Y \<in> (\<Union>x<x. F(x)) \<and> h(xa) \<subseteq> Y))" apply (rule conjI) apply (rule subsetI) apply (erule OUN_E) apply (drule ospec, assumption, fast) apply (drule lemma4, assumption) apply (rule oallI) apply (rule impI) apply (erule disjE) apply (frule ospec, erule Limit_has_succ, assumption) apply (drule_tac A = a and x = xa in ospec, assumption) apply (erule impE, rule le_refl [THEN disjI1], erule lt_Ord) apply (blast intro: lemma3 Limit_has_succ) apply (blast intro: lemma3) done
(* ********************************************************************** *) (* case of successor ordinal *) (* ********************************************************************** *)
(* First quite complicated proof of the fact used in the recursive construction of the family T_gamma (WO2 \<Longrightarrow> AC16(k #+ m, k)) - the fact that at any stage gamma the set (s - \<Union>(...) - k_gamma) is equipollent to s (Rubin & Rubin page 15).
*)
lemma in_Least_Diff: "\z \ F(x); Ord(x)\ \<Longrightarrow> z \<in> F(\<mu> i. z \<in> F(i)) - (\<Union>j<(\<mu> i. z \<in> F(i)). F(j))" by (fast elim: less_LeastE elim!: LeastI)
lemma Least_eq_imp_ex: "\(\ i. w \ F(i)) = (\ i. z \ F(i));
w \<in> (\<Union>i<a. F(i)); z \<in> (\<Union>i<a. F(i))\<rbrakk> \<Longrightarrow> \<exists>b<a. w \<in> (F(b) - (\<Union>c<b. F(c))) \<and> z \<in> (F(b) - (\<Union>c<b. F(c)))" apply (elim OUN_E) apply (drule in_Least_Diff, erule lt_Ord) apply (frule in_Least_Diff, erule lt_Ord) apply (rule oexI, force) apply (blast intro: lt_Ord Least_le [THEN lt_trans1]) done
lemma two_in_lepoll_1: "\A \ 1; a \ A; b \ A\ \ a=b" by (fast dest!: lepoll_1_is_sing)
(* ********************************************************************** *) (* Lemmas needed to prove ex_next_set, which means that for any successor *) (* ordinal there is a set satisfying certain properties *) (* ********************************************************************** *)
lemma ex_subset_eqpoll: "\A\a; \ Finite(a); Ord(a); m \ nat\ \ \X \ Pow(A). X\m" apply (rule lepoll_imp_eqpoll_subset [of m A, THEN exE]) apply (rule lepoll_trans, rule leI [THEN le_imp_lepoll]) apply (blast intro: lt_trans2 [OF ltI nat_le_infinite_Ord] Ord_nat) apply (erule eqpoll_sym [THEN eqpoll_imp_lepoll]) apply (fast elim!: eqpoll_sym) done
lemma subset_Un_disjoint: "\A \ B \ C; A \ C = 0\ \ A \ B" by blast
lemma Int_empty: "\X \ Pow(A - \(B) -C); T \ B; F \ T\ \ F \ X = 0" by blast
(* ********************************************************************** *) (* equipollent subset (and finite) is the whole set *) (* ********************************************************************** *)
lemma subset_imp_eq_lemma: "m \ nat \ \A B. A \ B \ m \ A \ B \ m \ A=B" apply (induct_tac "m") apply (fast dest!: lepoll_0_is_0) apply (intro allI impI) apply (elim conjE) apply (rule succ_lepoll_imp_not_empty [THEN not_emptyE], assumption) apply (frule subsetD [THEN Diff_sing_lepoll], assumption+) apply (frule lepoll_Diff_sing) apply (erule allE impE)+ apply (rule conjI) prefer 2 apply fast apply fast apply (blast elim: equalityE) done
lemma subset_imp_eq: "\A \ B; m \ A; B \ m; m \ nat\ \ A=B" by (blast dest!: subset_imp_eq_lemma)
(* ********************************************************************** *) (* Lemma ex_next_Ord states that for any successor *) (* ordinal there is a number of the set satisfying certain properties *) (* ********************************************************************** *)
(* ********************************************************************** *) (* The main part of the proof: inductive proof of the property of T_gamma *) (* lemma main_induct *) (* ********************************************************************** *)
(* ********************************************************************** *) (* Lemma to simplify the inductive proof *) (* - the desired property is a consequence of the inductive assumption *) (* ********************************************************************** *)
lemma lemma_simp_induct: "\\b. b F(b) \ S \ (\xY \ F(b). f`x \ Y)) \<longrightarrow> (\<exists>! Y. Y \<in> F(b) \<and> f`x \<subseteq> Y));
f \<in> a->f``(a); Limit(a); \<forall>i j. i\<le>j \<longrightarrow> F(i) \<subseteq> F(j)\<rbrakk> \<Longrightarrow> (\<Union>j<a. F(j)) \<subseteq> S \<and>
(\<forall>x \<in> f``a. \<exists>! Y. Y \<in> (\<Union>j<a. F(j)) \<and> x \<subseteq> Y)" apply (rule conjI) apply (rule subsetI) apply (erule OUN_E, blast) apply (rule ballI) apply (erule imageE) apply (drule ltI, erule Limit_is_Ord) apply (drule Limit_has_succ, assumption) apply (frule_tac x1="succ(xa)"in spec [THEN mp], assumption) apply (erule conjE) apply (drule ospec) (** LEVEL 10 **) apply (erule leI [THEN succ_leE]) apply (erule impE) apply (fast elim!: leI [THEN succ_leE, THEN lt_Ord, THEN le_refl]) apply (drule apply_equality, assumption) apply (elim conjE ex1E) (** LEVEL 15 **) apply (rule ex1I, blast) apply (elim conjE OUN_E) apply (erule_tac i="succ(xa)"and j=aa in Ord_linear_le [OF lt_Ord lt_Ord], assumption) prefer 2 apply (drule spec [THEN spec, THEN mp, THEN subsetD], assumption+, blast) (** LEVEL 20 **) apply (drule_tac x1=aa in spec [THEN mp], assumption) apply (frule succ_leE) apply (drule spec [THEN spec, THEN mp, THEN subsetD], assumption+, blast) done
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.