# HG changeset patch # User wenzelm # Date 1484422756 -3600 # Node ID d047004c1109de2ffb433c701fa07772e13e85bd # Parent d8ccbd5305bf694dff2e3c10609a2116d3ce5566 more standard header; avoid suspicious Unicode; diff -r d8ccbd5305bf -r d047004c1109 src/HOL/Analysis/ex/Circle_Area.thy --- a/src/HOL/Analysis/ex/Circle_Area.thy Sat Jan 14 20:33:55 2017 +0100 +++ b/src/HOL/Analysis/ex/Circle_Area.thy Sat Jan 14 20:39:16 2017 +0100 @@ -1,10 +1,11 @@ -(* - File: Circle_Area.thy - Author: Manuel Eberl +(* Title: HOL/Analysis/ex/Circle_Area.thy + Author: Manuel Eberl, TU Muenchen - An proof that the area of a circle with radius R is R²\. +A proof that the area of a circle with radius R is R\<^sup>²\. *) + section {* The area of a circle *} + theory Circle_Area imports Complex_Main Interval_Integral begin @@ -34,7 +35,7 @@ also have "... = LBINT x=-pi/2..pi/2. cos x *\<^sub>R (2 * sqrt (1 - (sin x)\<^sup>2))" by (rule interval_integral_substitution_finite[symmetric]) (auto intro: DERIV_subset[OF DERIV_sin] intro!: continuous_intros) - also have "... = LBINT x=-pi/2..pi/2. 2 * cos x * sqrt ((cos x)^2)" + also have "... = LBINT x=-pi/2..pi/2. 2 * cos x * sqrt ((cos x)^2)" by (simp add: cos_squared_eq field_simps) also { fix x assume "x \ {-pi/2<..real. norm z \ 1} = pi" (is "emeasure _ ?A = _") proof- let ?A1 = "{(x,y)\?A. y \ 0}" and ?A2 = "{(x,y)\?A. y \ 0}" have [measurable]: "(\x. snd (x :: real \ real)) \ measurable borel borel" by (simp add: borel_prod[symmetric]) - + have "?A1 = ?A \ {x\space lborel. snd x \ 0}" by auto also have "?A \ {x\space lborel. snd x \ 0} \ sets borel" by (intro sets.Int pred_Collect_borel) simp_all finally have A1_in_sets: "?A1 \ sets lborel" by (subst sets_lborel) have "?A2 = ?A \ {x\space lborel. snd x \ 0}" by auto - also have "... \ sets borel" + also have "... \ sets borel" by (intro sets.Int pred_Collect_borel) simp_all finally have A2_in_sets: "?A2 \ sets lborel" by (subst sets_lborel) @@ -86,10 +87,10 @@ by (subst A12, rule plus_emeasure'[OF A1_in_sets A2_in_sets, symmetric]) also have "emeasure lborel ?A1 = \\<^sup>+x. \\<^sup>+y. indicator ?A1 (x,y) \lborel \lborel" - by (subst lborel_prod[symmetric], subst lborel.emeasure_pair_measure) + by (subst lborel_prod[symmetric], subst lborel.emeasure_pair_measure) (simp_all only: lborel_prod A1_in_sets) also have "emeasure lborel ?A2 = \\<^sup>+x. \\<^sup>+y. indicator ?A2 (x,y) \lborel \lborel" - by (subst lborel_prod[symmetric], subst lborel.emeasure_pair_measure) + by (subst lborel_prod[symmetric], subst lborel.emeasure_pair_measure) (simp_all only: lborel_prod A2_in_sets) also have "distr lborel lborel uminus = (lborel :: real measure)" by (subst (3) lborel_real_affine[of "-1" 0]) @@ -123,7 +124,7 @@ by (intro nn_integral_cong) (auto split: split_indicator) also from x have "... = sqrt (1-x\<^sup>2)" using x by simp finally have "(\\<^sup>+y. indicator ?A1 (x,y) \lborel) = sqrt (1-x\<^sup>2)" . - } + } hence "(\\<^sup>+x. 2 * (\\<^sup>+y. indicator ?A1 (x,y) \lborel) * indicator {-1..1} x \lborel) = \\<^sup>+x. 2 * sqrt (1-x\<^sup>2) * indicator {-1..1} x \lborel" by (intro nn_integral_cong) (simp split: split_indicator add: ennreal_mult') @@ -131,9 +132,9 @@ by (subst not_less, subst sq_le_1_iff) (simp add: abs_real_def) have "integrable lborel (\x. 2 * sqrt (1-x\<^sup>2) * indicator {-1..1::real} x)" by (intro borel_integrable_atLeastAtMost continuous_intros) - hence "(\\<^sup>+x. 2 * sqrt (1-x\<^sup>2) * indicator {-1..1} x \lborel) = + hence "(\\<^sup>+x. 2 * sqrt (1-x\<^sup>2) * indicator {-1..1} x \lborel) = ennreal (\x. 2 * sqrt (1-x\<^sup>2) * indicator {-1..1} x \lborel)" - by (intro nn_integral_eq_integral AE_I2) + by (intro nn_integral_eq_integral AE_I2) (auto split: split_indicator simp: field_simps sq_le_1_iff) also have "(\x. 2 * sqrt (1-x\<^sup>2) * indicator {-1..1} x \lborel) = LBINT x:{-1..1}. 2 * sqrt (1-x\<^sup>2)" by (simp add: field_simps) @@ -173,10 +174,10 @@ \\<^sup>+x. \\<^sup>+y. indicator ?A' (x,y) \lborel \lborel" by (intro nn_integral_cong) (simp split: split_indicator) also have "... = emeasure lborel ?A'" - by (subst lborel_prod[symmetric], subst lborel.emeasure_pair_measure, subst lborel_prod) - simp_all + by (subst lborel_prod[symmetric], subst lborel.emeasure_pair_measure, subst lborel_prod) + simp_all also have "... = pi" by (rule unit_circle_area) finally show ?thesis using assms by (simp add: power2_eq_square ennreal_mult mult_ac) qed simp -end \ No newline at end of file +end