Skip to content

Commit 3e8301e

Browse files
committed
chore(Archive): small golfs (leanprover-community#34688)
Use fun_prop more, and make indentation match mathlib style better. Extracted from leanprover-community#31607.
1 parent 51d732a commit 3e8301e

2 files changed

Lines changed: 11 additions & 17 deletions

File tree

Archive/Wiedijk100Theorems/AreaOfACircle.lean

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ theorem disc_eq_regionBetween :
7676

7777
/-- The disc is a `MeasurableSet`. -/
7878
theorem measurableSet_disc : MeasurableSet (disc r) := by
79-
apply measurableSet_lt <;> apply Continuous.measurable <;> continuity
79+
apply measurableSet_lt <;> fun_prop
8080

8181
/-- **Area of a Circle**: The area of a disc with radius `r` is `π * r ^ 2`. -/
8282
theorem area_disc : volume (disc r) = NNReal.pi * r ^ 2 := by
@@ -99,11 +99,10 @@ theorem area_disc : volume (disc r) = NNReal.pi * r ^ 2 := by
9999
have hderiv : ∀ x ∈ Ioo (-r : ℝ) r, HasDerivAt F (2 * f x) x := by
100100
rintro x ⟨hx1, hx2⟩
101101
convert
102-
((hasDerivAt_const x ((r : ℝ) ^ 2)).fun_mul
103-
((hasDerivAt_arcsin _ _).comp x
104-
((hasDerivAt_const x (r : ℝ)⁻¹).fun_mul (hasDerivAt_id' x)))).fun_add
105-
((hasDerivAt_id' x).fun_mul
106-
((((hasDerivAt_id' x).fun_pow 2).const_sub ((r : ℝ) ^ 2)).sqrt _))
102+
((hasDerivAt_const x ((r : ℝ) ^ 2)).mul
103+
((hasDerivAt_arcsin _ _).comp x
104+
((hasDerivAt_const x (r : ℝ)⁻¹).mul (hasDerivAt_id' x)))).add
105+
((hasDerivAt_id' x).mul ((((hasDerivAt_id' x).fun_pow 2).const_sub ((r : ℝ) ^ 2)).sqrt _))
107106
using 1
108107
· have h₁ : (r : ℝ) ^ 2 - x ^ 2 > 0 := sub_pos_of_lt (sq_lt_sq' hx1 hx2)
109108
have h : sqrt ((r : ℝ) ^ 2 - x ^ 2) ^ 3 =
@@ -125,7 +124,7 @@ theorem area_disc : volume (disc r) = NNReal.pi * r ^ 2 := by
125124
calc
126125
∫ x in -r..r, 2 * f x = F r - F (-r) :=
127126
integral_eq_sub_of_hasDerivAt_of_le (neg_le_self r.2) (by fun_prop) hderiv
128-
(continuous_const.mul hf).continuousOn.intervalIntegrable
127+
(ContinuousOn.intervalIntegrable (by fun_prop))
129128
_ = NNReal.pi * (r : ℝ) ^ 2 := by
130129
norm_num [F, inv_mul_cancel₀ hlt.ne', ← mul_div_assoc, mul_comm π]
131130

Archive/Wiedijk100Theorems/BuffonsNeedle.lean

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -130,14 +130,10 @@ lemma volume_needleSpace : ℙ (needleSpace d) = ENNReal.ofReal (d * π) := by
130130

131131
lemma measurable_needleCrossesIndicator : Measurable (needleCrossesIndicator l) := by
132132
unfold needleCrossesIndicator
133-
refine Measurable.indicator measurable_const (IsClosed.measurableSet (IsClosed.and ?l ?r))
134-
all_goals simp only [tsub_le_iff_right, zero_add, ← neg_le_iff_add_nonneg']
135-
case' l => refine isClosed_le continuous_fst ?_
136-
case' r => refine isClosed_le (Continuous.neg continuous_fst) ?_
137-
all_goals
138-
refine Continuous.mul (Continuous.mul ?_ continuous_const) continuous_const
139-
simp_rw [← Function.comp_apply (f := Real.sin) (g := Prod.snd),
140-
Continuous.comp Real.continuous_sin continuous_snd]
133+
refine Measurable.indicator measurable_const (IsClosed.measurableSet (IsClosed.and ?_ ?_)) <;>
134+
simp only [tsub_le_iff_right, zero_add, ← neg_le_iff_add_nonneg']
135+
· exact isClosed_le continuous_fst (by fun_prop)
136+
· exact isClosed_le continuous_fst.neg (by fun_prop)
141137

142138
lemma stronglyMeasurable_needleCrossesIndicator :
143139
MeasureTheory.StronglyMeasurable (needleCrossesIndicator l) := by
@@ -274,8 +270,7 @@ the integral lemmas below.
274270
-/
275271
lemma intervalIntegrable_min_const_sin_mul (a b : ℝ) :
276272
IntervalIntegrable (fun (θ : ℝ) => min d (θ.sin * l)) ℙ a b := by
277-
apply Continuous.intervalIntegrable
278-
exact Continuous.min continuous_const (Continuous.mul Real.continuous_sin continuous_const)
273+
apply Continuous.intervalIntegrable (by fun_prop)
279274

280275
/--
281276
This equality is useful since `θ.sin` is increasing in `0..π / 2` (but not in `0..π`).

0 commit comments

Comments
 (0)