lemma ClosedD: "\Closed(P); I \ 0; \i. i\I \ Ord(i); \i. i\I \ P(i)\ \<Longrightarrow> P(\<Union>(I))" by (simp add: Closed_def)
lemma UnboundedD: "\Unbounded(P); Ord(i)\ \ \j. i P(j)" by (simp add: Unbounded_def)
lemma Closed_Unbounded_imp_Unbounded: "Closed_Unbounded(C) \ Unbounded(C)" by (simp add: Closed_Unbounded_def)
text\<open>The universal class, V, is closed and unbounded.
A bit odd, since C. U. concerns only ordinals, but it's used below!\ theorem Closed_Unbounded_V [simp]: "Closed_Unbounded(\x. True)" by (unfold Closed_Unbounded_def Closed_def Unbounded_def, blast)
text\<open>The class of ordinals, \<^term>\<open>Ord\<close>, is closed and unbounded.\<close> theorem Closed_Unbounded_Ord [simp]: "Closed_Unbounded(Ord)" by (unfold Closed_Unbounded_def Closed_def Unbounded_def, blast)
text\<open>The class of limit ordinals, \<^term>\<open>Limit\<close>, is closed and unbounded.\<close> theorem Closed_Unbounded_Limit [simp]: "Closed_Unbounded(Limit)" proof - have"\j. i < j \ Limit(j)" if "Ord(i)" for i apply (rule_tac x="i++nat"in exI) apply (blast intro: oadd_lt_self oadd_LimitI Limit_has_0 that) done thenshow ?thesis by (auto simp: Closed_Unbounded_def Closed_def Unbounded_def Limit_Union) qed
text\<open>The class of cardinals, \<^term>\<open>Card\<close>, is closed and unbounded.\<close> theorem Closed_Unbounded_Card [simp]: "Closed_Unbounded(Card)" proof - have"\i. Ord(i) \ (\j. i < j \ Card(j))" by (blast intro: lt_csucc Card_csucc) thenshow ?thesis by (simp add: Closed_Unbounded_def Closed_def Unbounded_def) qed
subsubsection\<open>The intersection of any set-indexed family of c.u. classes is
c.u.\<close>
text\<open>The constructions below come from Kunen, \emph{Set Theory}, page 78.\<close> locale cub_family = fixes P and A fixes next_greater \<comment> \<open>the next ordinal satisfying class \<^term>\<open>A\<close>\<close> fixes sup_greater \<comment> \<open>sup of those ordinals over all \<^term>\<open>A\<close>\<close> assumes closed: "a\A \ Closed(P(a))" and unbounded: "a\A \ Unbounded(P(a))" and A_non0: "A\0" defines"next_greater(a,x) \ \ y. x P(a,y)" and"sup_greater(x) \ \a\A. next_greater(a,x)"
begin
text\<open>Trivial that the intersection is closed.\<close> lemma Closed_INT: "Closed(\x. \i\A. P(i,x))" by (blast intro: ClosedI ClosedD [OF closed])
text\<open>All remaining effort goes to show that the intersection is unbounded.\<close>
lemma Ord_sup_greater: "Ord(sup_greater(x))" by (simp add: sup_greater_def next_greater_def)
lemma Ord_next_greater: "Ord(next_greater(a,x))" by (simp add: next_greater_def)
text\<open>\<^term>\<open>next_greater\<close> works as expected: it returns a larger value and one that belongs toclass\<^term>\<open>P(a)\<close>.\<close> lemma assumes"Ord(x)""a\A" shows next_greater_in_P: "P(a, next_greater(a,x))" and next_greater_gt: "x < next_greater(a,x)" proof - obtain y where"x < y""P(a,y)" using assms UnboundedD [OF unbounded] by blast thenhave"P(a, next_greater(a,x)) \ x < next_greater(a,x)" unfolding next_greater_def by (blast intro: LeastI2 lt_Ord2) thenshow"P(a, next_greater(a,x))""x < next_greater(a,x)" by auto qed
lemma sup_greater_gt: "Ord(x) \ x < sup_greater(x)" using A_non0 unfolding sup_greater_def by (blast intro: UN_upper_lt next_greater_gt Ord_next_greater)
theorem Closed_Unbounded_INT: assumes"\a. a\A \ Closed_Unbounded(P(a))" shows"Closed_Unbounded(\x. \a\A. P(a, x))" proof (cases "A=0") case False with assms [unfolded Closed_Unbounded_def] show ?thesis by (intro cub_family.Closed_Unbounded_INT [OF cub_family.intro]) auto qed auto
lemma Int_iff_INT2: "P(x) \ Q(x) \ (\i\2. (i=0 \ P(x)) \ (i=1 \ Q(x)))" by auto
lemma Normal_increasing: assumes i: "Ord(i)"and F: "Normal(F)"shows"i \ F(i)" using i proof (induct i rule: trans_induct3) case 0 thus ?caseby (simp add: subset_imp_le F) next case (succ i) hence"F(i) < F(succ(i))"using F by (simp add: Normal_def mono_Ord_def) thus ?caseusing succ.hyps by (blast intro: lt_trans1) next case (limit l) hence"l = (\y by (simp add: Limit_OUN_eq) alsohave"... \ (\y by (blast intro: ltD le_implies_OUN_le_OUN) finallyhave"l \ (\y moreoverhave"(\y F(l)" using limit F by (simp add: Normal_imp_cont lt_Ord) ultimatelyshow ?case by (blast intro: le_trans) qed
subsubsection\<open>The class of fixedpoints is closed and unbounded\<close>
text\<open>The proof is from Drake, pages 113--114.\<close>
text\<open>Function \<open>normalize\<close> maps a function \<open>F\<close> to a
normal function that bounds it above. The result is normal ifand
only if\<open>F\<close> is continuous: succ is not bounded above by any
normal function, by @{thm [source] Normal_imp_fp_Unbounded}. \<close> definition
normalize :: "[i\i, i] \ i" where "normalize(F,a) \ transrec2(a, F(0), \x r. F(succ(x)) \ succ(r))"
lemma normalize_increasing: assumes ab: "a < b"and F: "\x. Ord(x) \ Ord(F(x))" shows"normalize(F,a) < normalize(F,b)" proof - have"Ord(b)"using ab by (blast intro: lt_Ord2) hence"x < b \ normalize(F,x) < normalize(F,b)" for x proof (induct b arbitrary: x rule: trans_induct3) case 0 thus ?caseby simp next case (succ b) thus ?case by (auto simp add: le_iff def_transrec2 [OF normalize_def] intro: Un_upper2_lt F) next case (limit l) hence sc: "succ(x) < l" by (blast intro: Limit_has_succ) hence"normalize(F,x) < normalize(F,succ(x))" by (blast intro: limit elim: ltE) hence"normalize(F,x) < (\j by (blast intro: OUN_upper_lt lt_Ord F sc) thus ?caseusing limit by (simp add: def_transrec2 [OF normalize_def]) qed thus ?thesis using ab . qed
theorem Normal_normalize: assumes"\x. Ord(x) \ Ord(F(x))" shows "Normal(normalize(F))" proof (rule NormalI) show"\i j. i < j \ normalize(F,i) < normalize(F,j)" using assms by (blast intro!: normalize_increasing) show"\l. Limit(l) \ normalize(F, l) = (\i by (simp add: def_transrec2 [OF normalize_def]) qed
theorem le_normalize: assumes a: "Ord(a)"and coF: "cont_Ord(F)"and F: "\x. Ord(x) \ Ord(F(x))" shows"F(a) \ normalize(F,a)" using a proof (induct a rule: trans_induct3) case 0 thus ?caseby (simp add: F def_transrec2 [OF normalize_def]) next case (succ a) thus ?case by (simp add: def_transrec2 [OF normalize_def] Un_upper1_le F ) next case (limit l) thus ?caseusing F coF [unfolded cont_Ord_def] by (simp add: def_transrec2 [OF normalize_def] le_implies_OUN_le_OUN ltD) qed
subsection \<open>The Alephs\<close> text\<open>This is the well-known transfinite enumeration of the cardinal
numbers.\<close>
definition
Aleph :: "i \ i" (\(\open_block notation=\prefix \\\\_)\ [90] 90) where "\a \ transrec2(a, nat, \x r. csucc(r))"
lemma Aleph_increasing: assumes ab: "a < b"shows"Aleph(a) < Aleph(b)" proof - have"Ord(b)"using ab by (blast intro: lt_Ord2) hence"x < b \ Aleph(x) < Aleph(b)" for x proof (induct b arbitrary: x rule: trans_induct3) case 0 thus ?caseby simp next case (succ b) thus ?case by (force simp add: le_iff def_transrec2 [OF Aleph_def]
intro: lt_trans lt_csucc Card_is_Ord) next case (limit l) hence sc: "succ(x) < l" by (blast intro: Limit_has_succ) hence"\x < (\jj)" using limit by (blast intro: OUN_upper_lt Card_is_Ord ltD lt_Ord) thus ?caseusing limit by (simp add: def_transrec2 [OF Aleph_def]) qed thus ?thesis using ab . qed
theorem Normal_Aleph: "Normal(Aleph)" proof (rule NormalI) show"i < j \ \i < \j" for i j by (blast intro!: Aleph_increasing) show"Limit(l) \ \l = (\ii)" for l by (simp add: def_transrec2 [OF Aleph_def]) qed
end
¤ Dauer der Verarbeitung: 0.20 Sekunden
(vorverarbeitet)
¤
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.