28 shows "u *\<^sub>R x + v *\<^sub>R y \<in> s" |
28 shows "u *\<^sub>R x + v *\<^sub>R y \<in> s" |
29 using assms unfolding convex_def by fast |
29 using assms unfolding convex_def by fast |
30 |
30 |
31 lemma convex_alt: "convex s \<longleftrightarrow> (\<forall>x\<in>s. \<forall>y\<in>s. \<forall>u. 0 \<le> u \<and> u \<le> 1 \<longrightarrow> ((1 - u) *\<^sub>R x + u *\<^sub>R y) \<in> s)" |
31 lemma convex_alt: "convex s \<longleftrightarrow> (\<forall>x\<in>s. \<forall>y\<in>s. \<forall>u. 0 \<le> u \<and> u \<le> 1 \<longrightarrow> ((1 - u) *\<^sub>R x + u *\<^sub>R y) \<in> s)" |
32 (is "_ \<longleftrightarrow> ?alt") |
32 (is "_ \<longleftrightarrow> ?alt") |
33 by (smt (verit) convexD convexI) |
33 by (metis convex_def diff_eq_eq diff_ge_0_iff_ge) |
34 |
34 |
35 lemma convexD_alt: |
35 lemma convexD_alt: |
36 assumes "convex s" "a \<in> s" "b \<in> s" "0 \<le> u" "u \<le> 1" |
36 assumes "convex s" "a \<in> s" "b \<in> s" "0 \<le> u" "u \<le> 1" |
37 shows "((1 - u) *\<^sub>R a + u *\<^sub>R b) \<in> s" |
37 shows "((1 - u) *\<^sub>R a + u *\<^sub>R b) \<in> s" |
38 using assms unfolding convex_alt by auto |
38 using assms unfolding convex_alt by auto |
1243 by (simp add: le_diff_eq) |
1243 by (simp add: le_diff_eq) |
1244 thus "((\<Sum>i\<in>I. a i * b i))\<^sup>2 \<le> (\<Sum>i\<in>I. (a i)\<^sup>2) * (\<Sum>i\<in>I. (b i)\<^sup>2)" |
1244 thus "((\<Sum>i\<in>I. a i * b i))\<^sup>2 \<le> (\<Sum>i\<in>I. (a i)\<^sup>2) * (\<Sum>i\<in>I. (b i)\<^sup>2)" |
1245 by (simp add: pos_divide_le_eq True) |
1245 by (simp add: pos_divide_le_eq True) |
1246 qed |
1246 qed |
1247 |
1247 |
|
1248 text \<open>The inequality between the arithmetic mean and the root mean square\<close> |
1248 lemma sum_squared_le_sum_of_squares: |
1249 lemma sum_squared_le_sum_of_squares: |
1249 fixes f :: "'a \<Rightarrow> real" |
1250 fixes f :: "'a \<Rightarrow> real" |
1250 assumes "\<And>i. i\<in>I \<Longrightarrow> f i \<ge> 0" "finite I" "I \<noteq> {}" |
1251 assumes "finite I" |
1251 shows "(\<Sum>i\<in>I. f i)\<^sup>2 \<le> (\<Sum>y\<in>I. (f y)\<^sup>2) * card I" |
1252 shows "(\<Sum>i\<in>I. f i)\<^sup>2 \<le> (\<Sum>y\<in>I. (f y)\<^sup>2) * card I" |
1252 proof (cases "finite I \<and> I \<noteq> {}") |
1253 proof (cases "finite I \<and> I \<noteq> {}") |
1253 case True |
1254 case True |
1254 have "(\<Sum>i\<in>I. f i / real (card I))\<^sup>2 \<le> (\<Sum>i\<in>I. (f i)\<^sup>2 / real (card I))" |
1255 then have "(\<Sum>i\<in>I. f i / of_nat (card I))\<^sup>2 \<le> (\<Sum>i\<in>I. (f i)\<^sup>2 / of_nat (card I))" |
1255 using assms convex_on_sum [OF _ _ convex_power2, where a = "\<lambda>x. 1 / real(card I)" and S=I] |
1256 using assms convex_on_sum [OF _ _ convex_power2, where a = "\<lambda>x. 1 / of_nat(card I)" and S=I] |
1256 by simp |
1257 by simp |
1257 then show ?thesis |
1258 then show ?thesis |
1258 using assms |
1259 using assms |
1259 by (simp add: divide_simps power2_eq_square split: if_split_asm flip: sum_divide_distrib) |
1260 by (simp add: divide_simps power2_eq_square split: if_split_asm flip: sum_divide_distrib) |
1260 qed auto |
1261 qed auto |
|
1262 |
|
1263 lemma sum_squared_le_sum_of_squares_2: |
|
1264 "(x+y)/2 \<le> sqrt ((x\<^sup>2 + y\<^sup>2) / 2)" |
|
1265 proof - |
|
1266 have "(x + y)\<^sup>2 / 2^2 \<le> (x\<^sup>2 + y\<^sup>2) / 2" |
|
1267 using sum_squared_le_sum_of_squares [of UNIV "\<lambda>b. if b then x else y"] |
|
1268 by (simp add: UNIV_bool add.commute) |
|
1269 then show ?thesis |
|
1270 by (metis power_divide real_le_rsqrt) |
|
1271 qed |
1261 |
1272 |
1262 subsection \<open>Misc related lemmas\<close> |
1273 subsection \<open>Misc related lemmas\<close> |
1263 |
1274 |
1264 lemma convex_translation_eq [simp]: |
1275 lemma convex_translation_eq [simp]: |
1265 "convex ((+) a ` s) \<longleftrightarrow> convex s" |
1276 "convex ((+) a ` s) \<longleftrightarrow> convex s" |