# HG changeset patch # User paulson # Date 1493222311 -3600 # Node ID a043de9ad41e3c9bde3e91d242d251dfcb2cd65c # Parent 1d9a96750a409ecc2160be1b9691c201e191328d Some fixes related to compactE_image diff -r 1d9a96750a40 -r a043de9ad41e src/HOL/Analysis/Brouwer_Fixpoint.thy --- a/src/HOL/Analysis/Brouwer_Fixpoint.thy Wed Apr 26 15:57:16 2017 +0100 +++ b/src/HOL/Analysis/Brouwer_Fixpoint.thy Wed Apr 26 16:58:31 2017 +0100 @@ -3604,7 +3604,7 @@ obtains V where "openin (subtopology euclidean U) V" "(S \ T) retract_of V" proof (cases "S = {} \ T = {}") case True with assms that show ?thesis - by (auto simp: intro: ANR_imp_neighbourhood_retract) + by (metis ANR_imp_neighbourhood_retract Un_commute inf_bot_right sup_inf_absorb) next case False then have [simp]: "S \ {}" "T \ {}" by auto diff -r 1d9a96750a40 -r a043de9ad41e src/HOL/Analysis/Complex_Transcendental.thy --- a/src/HOL/Analysis/Complex_Transcendental.thy Wed Apr 26 15:57:16 2017 +0100 +++ b/src/HOL/Analysis/Complex_Transcendental.thy Wed Apr 26 16:58:31 2017 +0100 @@ -1017,6 +1017,7 @@ definition ln_complex :: "complex \ complex" where "ln_complex \ \z. THE w. exp w = z & -pi < Im(w) & Im(w) \ pi" +text\NOTE: within this scope, the constant Ln is not yet available!\ lemma assumes "z \ 0" shows exp_Ln [simp]: "exp(ln z) = z" @@ -1046,9 +1047,6 @@ apply auto done -lemma Ln_eq_zero_iff [simp]: "x \ \\<^sub>\\<^sub>0 \ Ln x = 0 \ x = 1" - by auto (metis exp_Ln exp_zero nonpos_Reals_zero_I) - subsection\Relation to Real Logarithm\ lemma Ln_of_real: @@ -1073,14 +1071,18 @@ lemma cmod_Ln_Reals [simp]: "z \ \ \ 0 < Re z \ cmod (ln z) = norm (ln (Re z))" using Ln_of_real by force -lemma Ln_1: "ln 1 = (0::complex)" +lemma Ln_1 [simp]: "ln 1 = (0::complex)" proof - have "ln (exp 0) = (0::complex)" by (metis (mono_tags, hide_lams) Ln_of_real exp_zero ln_one of_real_0 of_real_1 zero_less_one) then show ?thesis - by simp + by simp qed + +lemma Ln_eq_zero_iff [simp]: "x \ \\<^sub>\\<^sub>0 \ ln x = 0 \ x = 1" for x::complex + by auto (metis exp_Ln exp_zero nonpos_Reals_zero_I) + instance by intro_classes (rule ln_complex_def Ln_1) diff -r 1d9a96750a40 -r a043de9ad41e src/HOL/Analysis/Lebesgue_Measure.thy --- a/src/HOL/Analysis/Lebesgue_Measure.thy Wed Apr 26 15:57:16 2017 +0100 +++ b/src/HOL/Analysis/Lebesgue_Measure.thy Wed Apr 26 16:58:31 2017 +0100 @@ -220,7 +220,7 @@ proof (rule compactE_image) show "compact {a'..b}" by (rule compact_Icc) - show "\i \ S'. open ({l i<..i. i \ S' \ open ({l i<.. {a <.. b}" by auto also have "{a <.. b} = (\i\S'. {l i<..r i})" diff -r 1d9a96750a40 -r a043de9ad41e src/HOL/Analysis/Topology_Euclidean_Space.thy --- a/src/HOL/Analysis/Topology_Euclidean_Space.thy Wed Apr 26 15:57:16 2017 +0100 +++ b/src/HOL/Analysis/Topology_Euclidean_Space.thy Wed Apr 26 16:58:31 2017 +0100 @@ -4538,7 +4538,7 @@ have "compact U" "\x\U. open (ball x 1)" "U \ (\x\U. ball x 1)" using assms by auto then obtain D where D: "D \ U" "finite D" "U \ (\x\D. ball x 1)" - by (rule compactE_image) + by (metis compactE_image) from \finite D\ have "bounded (\x\D. ball x 1)" by (simp add: bounded_UN) then show "bounded U" using \U \ (\x\D. ball x 1)\ @@ -7717,14 +7717,14 @@ and c: "\y. y \ t \ c y \ C \ open (a y) \ open (b y) \ x \ a y \ y \ b y \ a y \ b y \ c y" by metis then have "\y\t. open (b y)" "t \ (\y\t. b y)" by auto - from compactE_image[OF \compact t\ this] obtain D where D: "D \ t" "finite D" "t \ (\y\D. b y)" - by auto + with compactE_image[OF \compact t\] obtain D where D: "D \ t" "finite D" "t \ (\y\D. b y)" + by metis moreover from D c have "(\y\D. a y) \ t \ (\y\D. c y)" by (fastforce simp: subset_eq) ultimately show "\a. open a \ x \ a \ (\d\C. finite d \ a \ t \ \d)" using c by (intro exI[of _ "c`D"] exI[of _ "\(a`D)"] conjI) (auto intro!: open_INT) qed - then obtain a d where a: "\x\s. open (a x)" "s \ (\x\s. a x)" + then obtain a d where a: "\x. x\s \ open (a x)" "s \ (\x\s. a x)" and d: "\x. x \ s \ d x \ C \ finite (d x) \ a x \ t \ \d x" unfolding subset_eq UN_iff by metis moreover diff -r 1d9a96750a40 -r a043de9ad41e src/HOL/Analysis/Weierstrass_Theorems.thy --- a/src/HOL/Analysis/Weierstrass_Theorems.thy Wed Apr 26 15:57:16 2017 +0100 +++ b/src/HOL/Analysis/Weierstrass_Theorems.thy Wed Apr 26 16:58:31 2017 +0100 @@ -261,7 +261,7 @@ then have *: "S-U \ (\x \ S-U. Uf x)" by blast obtain subU where subU: "subU \ S - U" "finite subU" "S - U \ (\x \ subU. Uf x)" - by (blast intro: that open_Uf compactE_image [OF com_sU _ *]) + by (blast intro: that compactE_image [OF com_sU open_Uf *]) then have [simp]: "subU \ {}" using t1 by auto then have cardp: "card subU > 0" using subU @@ -401,7 +401,7 @@ have NN0: "(1/(k*\)) ^ (NN e) < e" if "e>0" for e proof - have "0 < ln (real k) + ln \" - using \01(1) \0 < k\ k\(1) ln_gt_zero by fastforce + using \01(1) \0 < k\ k\(1) ln_gt_zero ln_mult by fastforce then have "real (NN e) * ln (1 / (real k * \)) < ln e" using k\(1) NN(2) [of e] that by (simp add: ln_div divide_simps) then have "exp (real (NN e) * ln (1 / (real k * \))) < e" @@ -459,7 +459,7 @@ have com_A: "compact A" using A by (metis compact compact_Int_closed inf.absorb_iff2) obtain subA where subA: "subA \ A" "finite subA" "A \ (\x \ subA. Vf x)" - by (blast intro: that open_Vf compactE_image [OF com_A _ sum_max_0]) + by (blast intro: that compactE_image [OF com_A open_Vf sum_max_0]) then have [simp]: "subA \ {}" using \a \ A\ by auto then have cardp: "card subA > 0" using subA