Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit fae00c7

Browse files
committed
chore(analysis/special_functions): move measurability statements to measure_theory folder (#8006)
Make sure that measure theory is not imported in basic files defining trigonometric functions and real powers. The measurability of these functions is postponed to a new file `measure_theory.special_functions`.
1 parent 547df12 commit fae00c7

File tree

7 files changed

+190
-156
lines changed

7 files changed

+190
-156
lines changed

src/analysis/normed_space/inner_product.lean

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import linear_algebra.bilinear_form
88
import linear_algebra.sesquilinear_form
99
import data.complex.is_R_or_C
1010
import analysis.special_functions.sqrt
11+
import analysis.complex.basic
1112

1213
/-!
1314
# Inner Product Space
@@ -1668,7 +1669,7 @@ end deriv
16681669
section continuous
16691670

16701671
/-!
1671-
### Continuity and measurability of the inner product
1672+
### Continuity of the inner product
16721673
16731674
Since the inner product is `ℝ`-smooth, it is continuous. We do not need a `[normed_space ℝ E]`
16741675
structure to *state* this fact and its corollaries, so we introduce them in the proof instead.
@@ -1688,25 +1689,6 @@ lemma filter.tendsto.inner {f g : α → E} {l : filter α} {x y : E} (hf : tend
16881689
tendsto (λ t, ⟪f t, g t⟫) l (𝓝 ⟪x, y⟫) :=
16891690
(continuous_inner.tendsto _).comp (hf.prod_mk_nhds hg)
16901691

1691-
lemma measurable.inner [measurable_space α] [measurable_space E] [opens_measurable_space E]
1692-
[topological_space.second_countable_topology E] [measurable_space 𝕜] [borel_space 𝕜]
1693-
{f g : α → E} (hf : measurable f) (hg : measurable g) :
1694-
measurable (λ t, ⟪f t, g t⟫) :=
1695-
continuous.measurable2 continuous_inner hf hg
1696-
1697-
lemma ae_measurable.inner [measurable_space α] [measurable_space E] [opens_measurable_space E]
1698-
[topological_space.second_countable_topology E] [measurable_space 𝕜] [borel_space 𝕜]
1699-
{μ : measure_theory.measure α} {f g : α → E} (hf : ae_measurable f μ) (hg : ae_measurable g μ) :
1700-
ae_measurable (λ x, ⟪f x, g x⟫) μ :=
1701-
begin
1702-
refine ⟨λ x, ⟪hf.mk f x, hg.mk g x⟫, hf.measurable_mk.inner hg.measurable_mk, _⟩,
1703-
refine hf.ae_eq_mk.mp (hg.ae_eq_mk.mono (λ x hxg hxf, _)),
1704-
dsimp only,
1705-
congr,
1706-
{ exact hxf, },
1707-
{ exact hxg, },
1708-
end
1709-
17101692
variables [topological_space α] {f g : α → E} {x : α} {s : set α}
17111693

17121694
include 𝕜

src/analysis/special_functions/exp_log.lean

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ Authors: Chris Hughes, Abhimanyu Pallavi Sudhir, Jean Lo, Calle Sönne
55
-/
66
import data.complex.exponential
77
import analysis.calculus.inverse
8-
import measure_theory.borel_space
98
import analysis.complex.real_deriv
109

1110
/-!
@@ -35,12 +34,6 @@ open_locale classical topological_space
3534

3635
namespace complex
3736

38-
lemma measurable_re : measurable re := continuous_re.measurable
39-
40-
lemma measurable_im : measurable im := continuous_im.measurable
41-
42-
lemma measurable_of_real : measurable (coe : ℝ → ℂ) := continuous_of_real.measurable
43-
4437
/-- The complex exponential is everywhere differentiable, with the derivative `exp x`. -/
4538
lemma has_deriv_at_exp (x : ℂ) : has_deriv_at exp (exp x) x :=
4639
begin
@@ -92,8 +85,6 @@ times_cont_diff_exp.times_cont_diff_at.has_strict_deriv_at' (has_deriv_at_exp x)
9285
lemma is_open_map_exp : is_open_map exp :=
9386
open_map_of_strict_deriv has_strict_deriv_at_exp exp_ne_zero
9487

95-
lemma measurable_exp : measurable exp := continuous_exp.measurable
96-
9788
end complex
9889

9990
section
@@ -127,10 +118,6 @@ section
127118
variables {E : Type*} [normed_group E] [normed_space ℂ E] {f : E → ℂ} {f' : E →L[ℂ] ℂ}
128119
{x : E} {s : set E}
129120

130-
lemma measurable.cexp {α : Type*} [measurable_space α] {f : α → ℂ} (hf : measurable f) :
131-
measurable (λ x, complex.exp (f x)) :=
132-
complex.measurable_exp.comp hf
133-
134121
lemma has_strict_fderiv_at.cexp (hf : has_strict_fderiv_at f f' x) :
135122
has_strict_fderiv_at (λ x, complex.exp (f x)) (complex.exp (f x) • f') x :=
136123
(complex.has_strict_deriv_at_exp (f x)).comp_has_strict_fderiv_at x hf
@@ -209,8 +196,6 @@ differentiable_exp.continuous
209196
lemma continuous_on_exp {s : set ℝ} : continuous_on exp s :=
210197
continuous_exp.continuous_on
211198

212-
lemma measurable_exp : measurable exp := continuous_exp.measurable
213-
214199
end real
215200

216201

@@ -250,10 +235,6 @@ function, for standalone use and use with `simp`. -/
250235
variables {E : Type*} [normed_group E] [normed_space ℝ E] {f : E → ℝ} {f' : E →L[ℝ] ℝ}
251236
{x : E} {s : set E}
252237

253-
lemma measurable.exp {α : Type*} [measurable_space α] {f : α → ℝ} (hf : measurable f) :
254-
measurable (λ x, real.exp (f x)) :=
255-
real.measurable_exp.comp hf
256-
257238
lemma times_cont_diff.exp {n} (hf : times_cont_diff ℝ n f) :
258239
times_cont_diff ℝ n (λ x, real.exp (f x)) :=
259240
real.times_cont_diff_exp.comp hf
@@ -571,10 +552,6 @@ else (has_deriv_at_log hx).deriv
571552

572553
@[simp] lemma deriv_log' : deriv log = has_inv.inv := funext deriv_log
573554

574-
lemma measurable_log : measurable log :=
575-
measurable_of_measurable_on_compl_singleton 0 $ continuous.measurable $
576-
continuous_on_iff_continuous_restrict.1 continuous_on_log
577-
578555
lemma times_cont_diff_on_log {n : with_top ℕ} : times_cont_diff_on ℝ n log {0}ᶜ :=
579556
begin
580557
suffices : times_cont_diff_on ℝ ⊤ log {0}ᶜ, from this.of_le le_top,
@@ -623,10 +600,6 @@ section deriv
623600

624601
variables {f : ℝ → ℝ} {x f' : ℝ} {s : set ℝ}
625602

626-
lemma measurable.log {α : Type*} [measurable_space α] {f : α → ℝ} (hf : measurable f) :
627-
measurable (λ x, log (f x)) :=
628-
measurable_log.comp hf
629-
630603
lemma has_deriv_within_at.log (hf : has_deriv_within_at f f' s x) (hx : f x ≠ 0) :
631604
has_deriv_within_at (λ y, log (f y)) (f' / (f x)) s x :=
632605
begin

src/analysis/special_functions/pow.lean

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -148,11 +148,6 @@ lemma has_fderiv_at_cpow {p : ℂ × ℂ} (hp : 0 < p.1.re ∨ p.1.im ≠ 0) :
148148
(p.1 ^ p.2 * log p.1) • continuous_linear_map.snd ℂ ℂ ℂ) p :=
149149
(has_strict_fderiv_at_cpow hp).has_fderiv_at
150150

151-
instance : has_measurable_pow ℂ ℂ :=
152-
⟨measurable.ite (measurable_fst (measurable_set_singleton 0))
153-
(measurable.ite (measurable_snd (measurable_set_singleton 0)) measurable_one measurable_zero)
154-
(measurable_fst.clog.mul measurable_snd).cexp⟩
155-
156151
end complex
157152

158153
section lim
@@ -858,10 +853,6 @@ end
858853

859854
end sqrt
860855

861-
instance : has_measurable_pow ℝ ℝ :=
862-
⟨complex.measurable_re.comp $ ((complex.measurable_of_real.comp measurable_fst).pow
863-
(complex.measurable_of_real.comp measurable_snd))⟩
864-
865856
end real
866857

867858
section differentiability
@@ -1151,9 +1142,6 @@ begin
11511142
rw [←nnreal.coe_rpow, real.to_nnreal_coe],
11521143
end
11531144

1154-
instance : has_measurable_pow ℝ≥0 ℝ :=
1155-
⟨(measurable_fst.coe_nnreal_real.pow measurable_snd).subtype_mk⟩
1156-
11571145
end nnreal
11581146

11591147
open filter
@@ -1686,17 +1674,4 @@ lemma rpow_left_monotone_of_nonneg {x : ℝ} (hx : 0 ≤ x) : monotone (λ y :
16861674
lemma rpow_left_strict_mono_of_pos {x : ℝ} (hx : 0 < x) : strict_mono (λ y : ℝ≥0∞, y^x) :=
16871675
λ y z hyz, rpow_lt_rpow hyz hx
16881676

1689-
instance : has_measurable_pow ℝ≥0∞ ℝ :=
1690-
begin
1691-
refine ⟨ennreal.measurable_of_measurable_nnreal_prod _ _⟩,
1692-
{ simp_rw ennreal.coe_rpow_def,
1693-
refine measurable.ite _ measurable_const
1694-
(measurable_fst.pow measurable_snd).coe_nnreal_ennreal,
1695-
exact measurable_set.inter (measurable_fst (measurable_set_singleton 0))
1696-
(measurable_snd measurable_set_Iio), },
1697-
{ simp_rw ennreal.top_rpow_def,
1698-
refine measurable.ite measurable_set_Ioi measurable_const _,
1699-
exact measurable.ite (measurable_set_singleton 0) measurable_const measurable_const, },
1700-
end
1701-
17021677
end ennreal

src/analysis/special_functions/sqrt.lean

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ Authors: Yury G. Kudryashov
55
-/
66
import data.real.sqrt
77
import analysis.calculus.inverse
8-
import measure_theory.borel_space
98

109
/-!
1110
# Smoothness of `real.sqrt`
@@ -70,10 +69,6 @@ end real
7069

7170
open real
7271

73-
lemma measurable.sqrt {α : Type*} [measurable_space α] {f : α → ℝ} (hf : measurable f) :
74-
measurable (λ x, sqrt (f x)) :=
75-
continuous_sqrt.measurable.comp hf
76-
7772
section deriv
7873

7974
variables {f : ℝ → ℝ} {s : set ℝ} {f' x : ℝ}

0 commit comments

Comments
 (0)