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

Commit 8786ea6

Browse files
Zhouhang Zhoumergify[bot]
andauthored
refactor(measure_theory/set_integral): move set integral into namespace set and add some lemmas (#1950)
* move set integral into namespace set and add some lemmas * Update bochner_integration.lean * better theorem names * Update set_integral.lean * Update set_integral.lean Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
1 parent 08581cc commit 8786ea6

File tree

2 files changed

+65
-48
lines changed

2 files changed

+65
-48
lines changed

src/measure_theory/bochner_integration.lean

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ The Bochner integral is defined following these steps:
5151
2. Basic properties of the Bochner integral on functions of type `α → ℝ`, where `α` is a measure
5252
space.
5353
54-
* `integral_nonneg_of_nonneg_ae` : `∀ₘ a, 0 ≤ f a → 0 ≤ ∫ f`
54+
* `integral_nonneg_of_ae` : `∀ₘ a, 0 ≤ f a → 0 ≤ ∫ f`
5555
* `integral_nonpos_of_nonpos_ae` : `∀ₘ a, f a ≤ 0 → ∫ f ≤ 0`
5656
* `integral_le_integral_of_le_ae` : `∀ₘ a, f a ≤ g a → ∫ f ≤ ∫ g`
5757
@@ -960,7 +960,7 @@ def integral (f : α →₁ β) : β := (integral_clm).to_fun f
960960

961961
lemma integral_eq (f : α →₁ β) : integral f = (integral_clm).to_fun f := rfl
962962

963-
@[elim_cast] lemma integral_coe_eq_integral (f : α →₁ₛ β) :
963+
@[elim_cast] lemma simple_func.integral_eq_integral (f : α →₁ₛ β) :
964964
integral (f : α →₁ β) = f.integral :=
965965
by { refine uniformly_extend_of_ind _ _ _ _, exact simple_func.integral_clm.uniform_continuous }
966966

@@ -1051,9 +1051,8 @@ lemma integral_non_measurable (h : ¬ measurable f) : (∫ a, f a) = 0 :=
10511051
integral_undef $ not_and_of_not_left _ h
10521052

10531053
variables (α β)
1054-
@[simp] lemma integral_zero : (∫ a:α, (0:β)) = 0 :=
1054+
@[simp] lemma integral_zero : (∫ a : α, (0:β)) = 0 :=
10551055
by rw [integral_eq, l1.of_fun_zero, l1.integral_zero]
1056-
10571056
variables {α β}
10581057

10591058
lemma integral_add
@@ -1252,7 +1251,7 @@ begin
12521251
rw [this, hfi], refl }
12531252
end
12541253

1255-
lemma integral_nonneg_of_nonneg_ae {f : α → ℝ} (hf : ∀ₘ a, 0 ≤ f a) : 0 ≤ (∫ a, f a) :=
1254+
lemma integral_nonneg_of_ae {f : α → ℝ} (hf : ∀ₘ a, 0 ≤ f a) : 0 ≤ (∫ a, f a) :=
12561255
begin
12571256
by_cases hfm : measurable f,
12581257
{ rw integral_eq_lintegral_of_nonneg_ae hf hfm, exact to_real_nonneg },
@@ -1263,7 +1262,7 @@ lemma integral_nonpos_of_nonpos_ae {f : α → ℝ} (hf : ∀ₘ a, f a ≤ 0) :
12631262
begin
12641263
have hf : ∀ₘ a, 0 ≤ (-f) a,
12651264
{ filter_upwards [hf], simp only [mem_set_of_eq], assume a h, rwa [pi.neg_apply, neg_nonneg] },
1266-
have : 0 ≤ (∫ a, -f a) := integral_nonneg_of_nonneg_ae hf,
1265+
have : 0 ≤ (∫ a, -f a) := integral_nonneg_of_ae hf,
12671266
rwa [integral_neg, neg_nonneg] at this,
12681267
end
12691268

@@ -1272,7 +1271,7 @@ lemma integral_le_integral_ae {f g : α → ℝ} (hfm : measurable f) (hfi : int
12721271
le_of_sub_nonneg
12731272
begin
12741273
rw ← integral_sub hgm hgi hfm hfi,
1275-
apply integral_nonneg_of_nonneg_ae,
1274+
apply integral_nonneg_of_ae,
12761275
filter_upwards [h],
12771276
simp only [mem_set_of_eq],
12781277
assume a,
@@ -1292,7 +1291,7 @@ classical.by_cases
12921291
( λh : ¬measurable f,
12931292
begin
12941293
rw [integral_non_measurable h, _root_.norm_zero],
1295-
exact integral_nonneg_of_nonneg_ae le_ae
1294+
exact integral_nonneg_of_ae le_ae
12961295
end )
12971296

12981297
lemma integral_finset_sum {ι} (s : finset ι) {f : ι → α → β}

src/measure_theory/set_integral.lean

Lines changed: 58 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,18 @@ import measure_theory.lebesgue_measure
1313
1414
Integrate a function over a subset of a measure space.
1515
16-
## Main definition
16+
## Main definitions
1717
1818
`measurable_on`, `integrable_on`, `integral_on`
1919
20-
## Tags
20+
## Notation
2121
22-
indicator, characteristic
22+
`∫ a in s, f a` is `measure_theory.integral (s.indicator f)`
2323
-/
2424

2525
noncomputable theory
26-
open_locale classical topological_space
27-
open set lattice filter topological_space ennreal emetric measure_theory
28-
29-
set_option class.instance_max_depth 50
26+
open set filter topological_space measure_theory measure_theory.simple_func
27+
open_locale classical topological_space interval
3028

3129
universes u v w
3230
variables {α : Type u} {β : Type v} {γ : Type w}
@@ -35,17 +33,27 @@ section measurable_on
3533
variables [measurable_space α] [measurable_space β] [has_zero β] {s : set α} {f : α → β}
3634

3735
/-- `measurable_on s f` means `f` is measurable over the set `s`. -/
38-
@[reducible]
39-
def measurable_on (s : set α) (f : α → β) : Prop := measurable (indicator s f)
36+
def measurable_on (s : set α) (f : α → β) : Prop := measurable (s.indicator f)
4037

41-
lemma measurable_on_empty : measurable_on ∅ f :=
38+
@[simp] lemma measurable_on_empty (f : α → β) : measurable_on ∅ f :=
4239
by { rw [measurable_on, indicator_empty], exact measurable_const }
4340

44-
lemma measurable_on_univ (hf : measurable f) : measurable_on univ f :=
41+
@[simp] lemma measurable.measurable_on_univ (hf : measurable f) : measurable_on univ f :=
4542
hf.if is_measurable.univ measurable_const
4643

47-
lemma measurable.measurable_on (hs : is_measurable s) (hf : measurable f) : measurable_on s f :=
48-
hf.if hs measurable_const
44+
@[simp] lemma measurable_on_singleton {α} [topological_space α] [t1_space α] {a : α} {f : α → β} :
45+
measurable_on {a} f :=
46+
λ s hs, show is_measurable ((indicator {a} f)⁻¹' s),
47+
begin
48+
rw indicator_preimage,
49+
refine is_measurable.union _ (is_measurable_singleton.compl.inter $ measurable_const.preimage hs),
50+
by_cases h : a ∈ f⁻¹' s,
51+
{ rw inter_eq_self_of_subset_left,
52+
{ exact is_measurable_singleton },
53+
rwa singleton_subset_iff },
54+
rw [singleton_inter_eq_empty.2 h],
55+
exact is_measurable.empty
56+
end
4957

5058
lemma is_measurable.inter_preimage {B : set β}
5159
(hs : is_measurable s) (hB : is_measurable B) (hf : measurable_on s f):
@@ -59,12 +67,15 @@ begin
5967
exact hs.compl.inter (measurable_const.preimage hB)
6068
end
6169

70+
lemma measurable.measurable_on (hs : is_measurable s) (hf : measurable f) : measurable_on s f :=
71+
hf.if hs measurable_const
72+
6273
lemma measurable_on.subset {t : set α} (hs : is_measurable s) (h : s ⊆ t) (hf : measurable_on t f) :
6374
measurable_on s f :=
6475
begin
6576
have : measurable_on s (indicator t f) := measurable.measurable_on hs hf,
6677
simp only [measurable_on, indicator_indicator] at this,
67-
rwa [inter_eq_self_of_subset_left h] at this,
78+
rwa [inter_eq_self_of_subset_left h] at this
6879
end
6980

7081
lemma measurable_on.union {t : set α} {f : α → β}
@@ -79,48 +90,34 @@ begin
7990
exact (hs.inter_preimage hB hsm).union (ht.inter_preimage hB htm)
8091
end
8192

82-
lemma measurable_on_singleton {α} [topological_space α] [t1_space α] {a : α} {f : α → β} :
83-
measurable_on {a} f :=
84-
λ s hs, show is_measurable ((indicator _ _)⁻¹' s),
85-
begin
86-
rw indicator_preimage,
87-
refine is_measurable.union _ (is_measurable_singleton.compl.inter $ measurable_const.preimage hs),
88-
by_cases h : a ∈ f⁻¹' s,
89-
{ rw inter_eq_self_of_subset_left,
90-
{ exact is_measurable_singleton },
91-
rwa singleton_subset_iff },
92-
rw [singleton_inter_eq_empty.2 h],
93-
exact is_measurable.empty
94-
end
95-
9693
end measurable_on
9794

9895
section integrable_on
9996
variables [measure_space α] [normed_group β] {s t : set α} {f g : α → β}
10097

10198
/-- `integrable_on s f` means `f` is integrable over the set `s`. -/
102-
@[reducible]
103-
def integrable_on (s : set α) (f : α → β) : Prop := integrable (indicator s f)
99+
def integrable_on (s : set α) (f : α → β) : Prop := integrable (s.indicator f)
104100

105101
lemma integrable_on_congr (h : ∀x, x ∈ s → f x = g x) : integrable_on s f ↔ integrable_on s g :=
106102
by simp only [integrable_on, indicator_congr h]
107103

108-
lemma integrable_on_congr_ae (h : ∀ₘx, x ∈ s → f x = g x) :
104+
lemma integrable_on_congr_ae (h : ∀ₘ x, x ∈ s → f x = g x) :
109105
integrable_on s f ↔ integrable_on s g :=
110106
by { apply integrable_congr_ae, exact indicator_congr_ae h }
111107

112-
lemma integrable_on_empty : integrable_on ∅ f :=
108+
@[simp] lemma integrable_on_empty (f : α → β) : integrable_on ∅ f :=
113109
by { simp only [integrable_on, indicator_empty], apply integrable_zero }
114110

115-
lemma integrable_on_of_integrable (s : set α) (hf : integrable f) : integrable_on s f :=
111+
lemma measure_theory.integrable.integrable_on (s : set α) (hf : integrable f) : integrable_on s f :=
116112
by { refine integrable_of_le (λa, _) hf, apply norm_indicator_le_norm_self }
117113

118114
lemma integrable_on.subset (h : s ⊆ t) : integrable_on t f → integrable_on s f :=
119115
by { apply integrable_of_le_ae, filter_upwards [] norm_indicator_le_of_subset h _ }
120116

121117
variables {𝕜 : Type*} [normed_field 𝕜] [normed_space 𝕜 β]
122118

123-
lemma integrable_on.smul (s : set α) (c : 𝕜) {f : α → β} : integrable_on s f → integrable_on s (λa, c • f a) :=
119+
lemma integrable_on.smul (s : set α) (c : 𝕜) {f : α → β} :
120+
integrable_on s f → integrable_on s (λa, c • f a) :=
124121
by { simp only [integrable_on, indicator_smul], apply integrable.smul }
125122

126123
lemma integrable_on.mul_left (s : set α) (r : ℝ) {f : α → ℝ} (hf : integrable_on s f) :
@@ -174,24 +171,33 @@ section integral_on
174171
variables [measure_space α]
175172
[normed_group β] [second_countable_topology β] [normed_space ℝ β] [complete_space β]
176173
{s t : set α} {f g : α → β}
177-
{a b : ℝ} {h : ℝ → β}
174+
open set
175+
176+
notation `∫` binders ` in ` s `, ` r:(scoped f, measure_theory.integral (set.indicator s f)) := r
177+
178+
lemma integral_on_undef (h : ¬ (measurable_on s f ∧ integrable_on s f)) : (∫ a in s, f a) = 0 :=
179+
integral_undef h
180+
181+
lemma integral_on_non_measurable (h : ¬ measurable_on s f) : (∫ a in s, f a) = 0 :=
182+
integral_non_measurable h
178183

179-
notation `∫` binders ` in ` s `, ` r:(scoped f, integral (indicator s f)) := r
184+
lemma integral_on_non_integrable (h : ¬ integrable_on s f) : (∫ a in s, f a) = 0 :=
185+
integral_non_integrable h
180186

181187
variables (β)
182188
@[simp] lemma integral_on_zero (s : set α) : (∫ a in s, (0:β)) = 0 :=
183189
by rw [indicator_zero, integral_zero]
184190
variables {β}
185191

186-
lemma integral_on_congr (h : ∀ x ∈ s, f x = g x) : (∫ a in s, f a) = (∫ a in s, g a) :=
192+
lemma integral_on_congr (h : ∀ a ∈ s, f a = g a) : (∫ a in s, f a) = (∫ a in s, g a) :=
187193
by simp only [indicator_congr h]
188194

189195
lemma integral_on_congr_of_ae_eq (hf : measurable_on s f) (hg : measurable_on s g)
190-
(h : ∀ₘ x, x ∈ s → f x = g x) : (∫ a in s, f a) = (∫ a in s, g a) :=
196+
(h : ∀ₘ a, a ∈ s → f a = g a) : (∫ a in s, f a) = (∫ a in s, g a) :=
191197
integral_congr_ae hf hg (indicator_congr_ae h)
192198

193199
lemma integral_on_congr_of_set (hsm : measurable_on s f) (htm : measurable_on t f)
194-
(h : ∀ₘ x, x ∈ s ↔ x ∈ t) : (∫ a in s, f a) = (∫ a in t, f a) :=
200+
(h : ∀ₘ a, a ∈ s ↔ a ∈ t) : (∫ a in s, f a) = (∫ a in t, f a) :=
195201
integral_congr_ae hsm htm $ indicator_congr_of_set h
196202

197203
variables (s t)
@@ -247,9 +253,21 @@ begin
247253
have := integral_congr_ae _ _ (indicator_union_ae h f),
248254
rw [this, integral_add hsm hsi htm hti],
249255
{ exact hsm.union hs ht htm },
250-
{ exact hsm.add htm }
256+
{ exact measurable.add hsm htm }
251257
end
252258

259+
lemma integral_on_nonneg_of_ae {f : α → ℝ} (hf : ∀ₘ a, a ∈ s → 0 ≤ f a) : (0:ℝ) ≤ (∫ a in s, f a) :=
260+
integral_nonneg_of_ae $ by { filter_upwards [hf] λ a h, indicator_nonneg' h }
261+
262+
lemma integral_on_nonneg {f : α → ℝ} (hf : ∀ a, a ∈ s → 0 ≤ f a) : (0:ℝ) ≤ (∫ a in s, f a) :=
263+
integral_on_nonneg_of_ae $ univ_mem_sets' hf
264+
265+
lemma integral_on_nonpos_of_ae {f : α → ℝ} (hf : ∀ₘ a, a ∈ s → f a ≤ 0) : (∫ a in s, f a) ≤ 0 :=
266+
integral_nonpos_of_nonpos_ae $ by { filter_upwards [hf] λ a h, indicator_nonpos' h }
267+
268+
lemma integral_on_nonpos {f : α → ℝ} (hf : ∀ a, a ∈ s → f a ≤ 0) : (∫ a in s, f a) ≤ 0 :=
269+
integral_on_nonpos_of_ae $ univ_mem_sets' hf
270+
253271
lemma tendsto_integral_on_of_monotone {s : ℕ → set α} {f : α → β} (hsm : ∀i, is_measurable (s i))
254272
(h_mono : monotone s) (hfm : measurable_on (Union s) f) (hfi : integrable_on (Union s) f) :
255273
tendsto (λi, ∫ a in (s i), f a) at_top (nhds (∫ a in (Union s), f a)) :=

0 commit comments

Comments
 (0)