# HG changeset patch # User popescua # Date 1369415396 -7200 # Node ID 667961fa6a605a5627c2e4261adb7c0166ab55f3 # Parent 57b4fdc59d3b09194036f73bd1b696b5959201c8 fixed files broken due to Zorn changes (cf. 59e5dd7b8f9a) diff -r 57b4fdc59d3b -r 667961fa6a60 src/HOL/Cardinals/Constructions_on_Wellorders.thy --- a/src/HOL/Cardinals/Constructions_on_Wellorders.thy Fri May 24 18:11:57 2013 +0200 +++ b/src/HOL/Cardinals/Constructions_on_Wellorders.thy Fri May 24 19:09:56 2013 +0200 @@ -441,7 +441,7 @@ moreover {assume "a \ Field r \ a' \ Field r'" hence "a \ Field(r - Id) \ a' \ Field (r' - Id)" - using assms rel.Total_Id_Field by blast + using assms Total_Id_Field by blast hence ?thesis unfolding Osum_def by auto } ultimately show ?thesis using * unfolding Osum_def by blast diff -r 57b4fdc59d3b -r 667961fa6a60 src/HOL/Hahn_Banach/Hahn_Banach.thy --- a/src/HOL/Hahn_Banach/Hahn_Banach.thy Fri May 24 18:11:57 2013 +0200 +++ b/src/HOL/Hahn_Banach/Hahn_Banach.thy Fri May 24 19:09:56 2013 +0200 @@ -71,7 +71,7 @@ from E have F: "vectorspace F" .. note FE = `F \ E` { - fix c assume cM: "c \ chain M" and ex: "\x. x \ c" + fix c assume cM: "c \ chains M" and ex: "\x. x \ c" have "\c \ M" -- {* Show that every non-empty chain @{text c} of @{text M} has an upper bound in @{text M}: *} -- {* @{text "\c"} is greater than any element of the chain @{text c}, so it suffices to show @{text "\c \ M"}. *} @@ -103,7 +103,7 @@ \ (\x \ H. h x \ p x)" by blast qed } - then have "\g \ M. \x \ M. g \ x \ g = x" + then have "\g \ M. \x \ M. g \ x \ x = g" -- {* With Zorn's Lemma we can conclude that there is a maximal element in @{text M}. \skp *} proof (rule Zorn's_Lemma) -- {* We show that @{text M} is non-empty: *} diff -r 57b4fdc59d3b -r 667961fa6a60 src/HOL/Hahn_Banach/Hahn_Banach_Sup_Lemmas.thy --- a/src/HOL/Hahn_Banach/Hahn_Banach_Sup_Lemmas.thy Fri May 24 18:11:57 2013 +0200 +++ b/src/HOL/Hahn_Banach/Hahn_Banach_Sup_Lemmas.thy Fri May 24 19:09:56 2013 +0200 @@ -23,12 +23,12 @@ of @{text c}. Every element in @{text H} is member of one of the elements of the chain. *} -lemmas [dest?] = chainD -lemmas chainE2 [elim?] = chainD2 [elim_format] +lemmas [dest?] = chainsD +lemmas chainsE2 [elim?] = chainsD2 [elim_format] lemma some_H'h't: assumes M: "M = norm_pres_extensions E p F f" - and cM: "c \ chain M" + and cM: "c \ chains M" and u: "graph H h = \c" and x: "x \ H" shows "\H' h'. graph H' h' \ c @@ -63,7 +63,7 @@ lemma some_H'h': assumes M: "M = norm_pres_extensions E p F f" - and cM: "c \ chain M" + and cM: "c \ chains M" and u: "graph H h = \c" and x: "x \ H" shows "\H' h'. x \ H' \ graph H' h' \ graph H h @@ -77,8 +77,7 @@ "graph F f \ graph H' h'" "\x \ H'. h' x \ p x" by (rule some_H'h't [elim_format]) blast from x_hx have "x \ H'" .. - moreover from cM u c have "graph H' h' \ graph H h" - by (simp only: chain_ball_Union_upper) + moreover from cM u c have "graph H' h' \ graph H h" by blast ultimately show ?thesis using * by blast qed @@ -91,7 +90,7 @@ lemma some_H'h'2: assumes M: "M = norm_pres_extensions E p F f" - and cM: "c \ chain M" + and cM: "c \ chains M" and u: "graph H h = \c" and x: "x \ H" and y: "y \ H" @@ -137,8 +136,7 @@ finally have xh:"(x, h x) \ graph H' h'" . then have "x \ H'" .. moreover from y_hy have "y \ H'" .. - moreover from cM u and c' have "graph H' h' \ graph H h" - by (simp only: chain_ball_Union_upper) + moreover from cM u and c' have "graph H' h' \ graph H h" by blast ultimately show ?thesis using * by blast next assume ?case2 @@ -148,8 +146,7 @@ also have "\ \ graph H'' h''" by fact finally have "(y, h y) \ graph H'' h''" . } then have "y \ H''" .. - moreover from cM u and c'' have "graph H'' h'' \ graph H h" - by (simp only: chain_ball_Union_upper) + moreover from cM u and c'' have "graph H'' h'' \ graph H h" by blast ultimately show ?thesis using ** by blast qed qed @@ -161,7 +158,7 @@ lemma sup_definite: assumes M_def: "M \ norm_pres_extensions E p F f" - and cM: "c \ chain M" + and cM: "c \ chains M" and xy: "(x, y) \ \c" and xz: "(x, z) \ \c" shows "z = y" @@ -214,7 +211,7 @@ lemma sup_lf: assumes M: "M = norm_pres_extensions E p F f" - and cM: "c \ chain M" + and cM: "c \ chains M" and u: "graph H h = \c" shows "linearform H h" proof @@ -268,7 +265,7 @@ lemma sup_ext: assumes graph: "graph H h = \c" and M: "M = norm_pres_extensions E p F f" - and cM: "c \ chain M" + and cM: "c \ chains M" and ex: "\x. x \ c" shows "graph F f \ graph H h" proof - @@ -294,7 +291,7 @@ lemma sup_supF: assumes graph: "graph H h = \c" and M: "M = norm_pres_extensions E p F f" - and cM: "c \ chain M" + and cM: "c \ chains M" and ex: "\x. x \ c" and FE: "F \ E" shows "F \ H" @@ -317,7 +314,7 @@ lemma sup_subE: assumes graph: "graph H h = \c" and M: "M = norm_pres_extensions E p F f" - and cM: "c \ chain M" + and cM: "c \ chains M" and ex: "\x. x \ c" and FE: "F \ E" and E: "vectorspace E" @@ -373,7 +370,7 @@ lemma sup_norm_pres: assumes graph: "graph H h = \c" and M: "M = norm_pres_extensions E p F f" - and cM: "c \ chain M" + and cM: "c \ chains M" shows "\x \ H. h x \ p x" proof fix x assume "x \ H" diff -r 57b4fdc59d3b -r 667961fa6a60 src/HOL/Hahn_Banach/Zorn_Lemma.thy --- a/src/HOL/Hahn_Banach/Zorn_Lemma.thy Fri May 24 18:11:57 2013 +0200 +++ b/src/HOL/Hahn_Banach/Zorn_Lemma.thy Fri May 24 19:09:56 2013 +0200 @@ -20,13 +20,13 @@ *} theorem Zorn's_Lemma: - assumes r: "\c. c \ chain S \ \x. x \ c \ \c \ S" + assumes r: "\c. c \ chains S \ \x. x \ c \ \c \ S" and aS: "a \ S" - shows "\y \ S. \z \ S. y \ z \ y = z" + shows "\y \ S. \z \ S. y \ z \ z = y" proof (rule Zorn_Lemma2) - show "\c \ chain S. \y \ S. \z \ c. z \ y" + show "\c \ chains S. \y \ S. \z \ c. z \ y" proof - fix c assume "c \ chain S" + fix c assume "c \ chains S" show "\y \ S. \z \ c. z \ y" proof cases @@ -47,7 +47,7 @@ show "\c \ S" proof (rule r) from `c \ {}` show "\x. x \ c" by fast - show "c \ chain S" by fact + show "c \ chains S" by fact qed qed qed diff -r 57b4fdc59d3b -r 667961fa6a60 src/HOL/Library/Zorn.thy --- a/src/HOL/Library/Zorn.thy Fri May 24 18:11:57 2013 +0200 +++ b/src/HOL/Library/Zorn.thy Fri May 24 19:09:56 2013 +0200 @@ -414,6 +414,10 @@ definition Chains :: "('a \ 'a) set \ 'a set set" where "Chains r = {C. \a\C. \b\C. (a, b) \ r \ (b, a) \ r}" +lemma chains_extend: + "[| c \ chains S; z \ S; \x \ c. x \ (z:: 'a set) |] ==> {z} Un c \ chains S" + by (unfold chains_def chain_subset_def) blast + lemma mono_Chains: "r \ s \ Chains r \ Chains s" unfolding Chains_def by blast @@ -441,12 +445,20 @@ lemma Zorn_Lemma: "\C\chains A. \C \ A \ \M\A. \X\A. M \ X \ X = M" - using subset_Zorn' [of A] by (auto simp: chains_alt_def) + using subset_Zorn' [of A] by (force simp: chains_alt_def) lemma Zorn_Lemma2: "\C\chains A. \U\A. \X\C. X \ U \ \M\A. \X\A. M \ X \ X = M" using subset_Zorn [of A] by (auto simp: chains_alt_def) +text{*Various other lemmas*} + +lemma chainsD: "[| c \ chains S; x \ c; y \ c |] ==> x \ y | y \ x" +by (unfold chains_def chain_subset_def) blast + +lemma chainsD2: "!!(c :: 'a set set). c \ chains S ==> c \ S" +by (unfold chains_def) blast + lemma Zorns_po_lemma: assumes po: "Partial_order r" and u: "\C\Chains r. \u\Field r. \a\C. (a, u) \ r" diff -r 57b4fdc59d3b -r 667961fa6a60 src/HOL/NSA/Filter.thy --- a/src/HOL/NSA/Filter.thy Fri May 24 18:11:57 2013 +0200 +++ b/src/HOL/NSA/Filter.thy Fri May 24 19:09:56 2013 +0200 @@ -256,23 +256,23 @@ by (rule superfrechetI [OF filter_frechet subset_refl]) lemma lemma_mem_chain_filter: - "\c \ chain superfrechet; x \ c\ \ filter x" -by (unfold chain_def superfrechet_def, blast) + "\c \ chains superfrechet; x \ c\ \ filter x" +by (unfold chains_def superfrechet_def, blast) subsubsection {* Unions of chains of superfrechets *} text "In this section we prove that superfrechet is closed with respect to unions of non-empty chains. We must show - 1) Union of a chain is a filter, + 1) Union of a chain is afind_theorems name: Union_chain_UNIV filter, 2) Union of a chain contains frechet. Number 2 is trivial, but 1 requires us to prove all the filter rules." lemma Union_chain_UNIV: - "\c \ chain superfrechet; c \ {}\ \ UNIV \ \c" + "\c \ chains superfrechet; c \ {}\ \ UNIV \ \c" proof - - assume 1: "c \ chain superfrechet" and 2: "c \ {}" + assume 1: "c \ chains superfrechet" and 2: "c \ {}" from 2 obtain x where 3: "x \ c" by blast from 1 3 have "filter x" by (rule lemma_mem_chain_filter) hence "UNIV \ x" by (rule filter.UNIV) @@ -280,9 +280,9 @@ qed lemma Union_chain_empty: - "c \ chain superfrechet \ {} \ \c" + "c \ chains superfrechet \ {} \ \c" proof - assume 1: "c \ chain superfrechet" and 2: "{} \ \c" + assume 1: "c \ chains superfrechet" and 2: "{} \ \c" from 2 obtain x where 3: "x \ c" and 4: "{} \ x" .. from 1 3 have "filter x" by (rule lemma_mem_chain_filter) hence "{} \ x" by (rule filter.empty) @@ -290,14 +290,14 @@ qed lemma Union_chain_Int: - "\c \ chain superfrechet; u \ \c; v \ \c\ \ u \ v \ \c" + "\c \ chains superfrechet; u \ \c; v \ \c\ \ u \ v \ \c" proof - - assume c: "c \ chain superfrechet" + assume c: "c \ chains superfrechet" assume "u \ \c" then obtain x where ux: "u \ x" and xc: "x \ c" .. assume "v \ \c" then obtain y where vy: "v \ y" and yc: "y \ c" .. - from c xc yc have "x \ y \ y \ x" by (rule chainD) + from c xc yc have "x \ y \ y \ x" using c unfolding chains_def chain_subset_def by auto with xc yc have xyc: "x \ y \ c" by (auto simp add: Un_absorb1 Un_absorb2) with c have fxy: "filter (x \ y)" by (rule lemma_mem_chain_filter) @@ -308,9 +308,9 @@ qed lemma Union_chain_subset: - "\c \ chain superfrechet; u \ \c; u \ v\ \ v \ \c" + "\c \ chains superfrechet; u \ \c; u \ v\ \ v \ \c" proof - - assume c: "c \ chain superfrechet" + assume c: "c \ chains superfrechet" and u: "u \ \c" and uv: "u \ v" from u obtain x where ux: "u \ x" and xc: "x \ c" .. from c xc have fx: "filter x" by (rule lemma_mem_chain_filter) @@ -319,8 +319,8 @@ qed lemma Union_chain_filter: -assumes chain: "c \ chain superfrechet" and nonempty: "c \ {}" -shows "filter (\c)" +assumes chain: "c \ chains superfrechet" and nonempty: "c \ {}" +shows "filter (\c)" proof (rule filter.intro) show "UNIV \ \c" using chain nonempty by (rule Union_chain_UNIV) next @@ -334,13 +334,13 @@ qed lemma lemma_mem_chain_frechet_subset: - "\c \ chain superfrechet; x \ c\ \ frechet \ x" -by (unfold superfrechet_def chain_def, blast) + "\c \ chains superfrechet; x \ c\ \ frechet \ x" +by (unfold superfrechet_def chains_def, blast) lemma Union_chain_superfrechet: - "\c \ {}; c \ chain superfrechet\ \ \c \ superfrechet" + "\c \ {}; c \ chains superfrechet\ \ \c \ superfrechet" proof (rule superfrechetI) - assume 1: "c \ chain superfrechet" and 2: "c \ {}" + assume 1: "c \ chains superfrechet" and 2: "c \ {}" thus "filter (\c)" by (rule Union_chain_filter) from 2 obtain x where 3: "x \ c" by blast from 1 3 have "frechet \ x" by (rule lemma_mem_chain_frechet_subset) @@ -351,9 +351,9 @@ subsubsection {* Existence of free ultrafilter *} lemma max_cofinite_filter_Ex: - "\U\superfrechet. \G\superfrechet. U \ G \ U = G" -proof (rule Zorn_Lemma2 [rule_format]) - fix c assume c: "c \ chain superfrechet" + "\U\superfrechet. \G\superfrechet. U \ G \ G = U" +proof (rule Zorn_Lemma2, safe) + fix c assume c: "c \ chains superfrechet" show "\U\superfrechet. \G\c. G \ U" (is "?U") proof (cases) assume "c = {}" @@ -385,7 +385,7 @@ proof - from max_cofinite_filter_Ex obtain U where U: "U \ superfrechet" - and max [rule_format]: "\G\superfrechet. U \ G \ U = G" .. + and max [rule_format]: "\G\superfrechet. U \ G \ G = U" .. from U have fil: "filter U" by (rule superfrechetD1) from U have fre: "frechet \ U" by (rule superfrechetD2) have ultra: "ultrafilter_axioms U" @@ -393,7 +393,7 @@ fix G assume G: "filter G" and UG: "U \ G" from fre UG have "frechet \ G" by simp with G have "G \ superfrechet" by (rule superfrechetI) - from this UG show "U = G" by (rule max) + from this UG show "U = G" by (rule max[symmetric]) qed have free: "freeultrafilter_axioms U" proof (rule freeultrafilter_axioms.intro)