(* Title: ZF/AC/WO2_AC16.thy Author: Krzysztof Grabczewski The proof of WO2 ==> 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 - ∪(...) - 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, λg r. if (∃y ∈ r. h`g ⊆ y) then r else r ∪ {f`(μ i. h`g ⊆ f`i ∧ (∀b⊆ f`i ⟶ (∀t ∈ r. ¬ h`b ⊆ 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: "[∀y∀z∃Y ∈ F(y). f(z)<=Y) ⟶ (∃! Y. Y ∈ F(y) ∧ f(z)<=Y); ∀i j. i≤j ⟶ F(i) ⊆ F(j); j≤i; i V ∈ F(i); f(z)<=V; W ∈ F(j); f(z)<=W] ==> V = W" apply (erule asm_rl allE impE)+ apply (drule subsetD, assumption, blast) done
lemma lemma3: "[∀y∀z∃Y ∈ F(y). f(z)<=Y) ⟶ (∃! Y. Y ∈ F(y) ∧ f(z)<=Y); ∀i j. i≤j ⟶ F(i) ⊆ F(j); i V ∈ F(i); f(z)<=V; W ∈ F(j); f(z)<=W] ==> 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 ∧ (∀x∃Y ∈ F(y). h(x) ⊆ Y) ⟶ (∃! Y. Y ∈ F(y) ∧ h(x) ⊆ Y)); x < a] ==>∀y∀z∃Y ∈ F(y). h(z) ⊆ Y) ⟶ (∃! Y. Y ∈ F(y) ∧ h(z) ⊆ Y)" apply (intro oallI impI) apply (drule ospec, assumption, clarify) apply (blast elim!: oallE ) done
lemma lemma5: "[∀y⊆ X ∧ (∀x∃Y ∈ F(y). h(x) ⊆ Y) ⟶ (∃! Y. Y ∈ F(y) ∧ h(x) ⊆ Y)); x < a; Limit(x); ∀i j. i≤j ⟶ F(i) ⊆ F(j)] ==> (∪x⊆ X ∧ (∀xa∃x ∈∪x⊆ x) ⟶ (∃! Y. Y ∈ (∪x∧ h(xa) ⊆ 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 ==> AC16(k #+ m, k)) - the fact that at any stage gamma the set (s - ∪(...) - k_gamma) is equipollent to s (Rubin & Rubin page 15). *)
lemma ex_next_set: "[recfunAC16(f, h, y, a) ⊆ {X ∈ Pow(A) . X≈succ(k #+ m)}; Card(a); ¬ Finite(a); A≈a; k ∈ nat; m ∈ nat; y h ∈ bij(a, {Y ∈ Pow(A). Y≈succ(k)}); ¬ (∃Y ∈ recfunAC16(f, h, y, a). h`y ⊆ Y)] ==>∃X ∈ {Y ∈ Pow(A). Y≈succ(k #+ m)}. h`y ⊆ X ∧ (∀b⊆ X ⟶ (∀T ∈ recfunAC16(f, h, y, a). ¬ h`b ⊆ T))" apply (erule_tac m1=m in dbl_Diff_eqpoll [THEN ex_subset_eqpoll, THEN bexE],
assumption+) apply (erule Card_is_Ord, assumption) apply (frule Un_in_Collect, (erule asm_rl nat_succI)+) apply (erule CollectE) apply (rule rev_bexI, simp) apply (rule conjI, blast) apply (intro ballI impI oallI notI) apply (drule subset_Un_disjoint, rule Int_empty, assumption+) apply (blast dest: bij_imp_arg_eq) done
(* ********************************************************************** *) (* 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 ∧ (∀x∃Y ∈ F(b). f`x ⊆ Y)) ⟶ (∃! Y. Y ∈ F(b) ∧ f`x ⊆ Y)); f ∈ a->f``(a); Limit(a); ∀i j. i≤j ⟶ F(i) ⊆ F(j)] ==> (∪j⊆ S ∧ (∀x ∈ f``a. ∃! Y. Y ∈ (∪j∧ x ⊆ 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 und die Messung sind noch experimentell.