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

Commit 822244f

Browse files
committed
refactor(measure_theory/group/basic): rename and split (#11952)
* Rename `measure_theory/group/basic` -> `measure_theory/group/measure`. It was not the bottom file in this folder in the import hierarchy (arithmetic is below it). * Split off some results to `measure_theory/group/integration`. This reduces imports in some files, and makes the organization more clear. Furthermore, I will add some integrability results and more integrals in a follow-up PR. * Prove a general instance `pi.is_mul_left_invariant` * Remove lemmas specifically about `volume` on `real` in favor on the general lemmas. ```lean real.map_volume_add_left -> map_add_left_eq_self real.map_volume_pi_add_left -> map_add_left_eq_self real.volume_preimage_add_left -> measure_preimage_add real.volume_pi_preimage_add_left -> measure_preimage_add real.map_volume_add_right -> map_add_right_eq_self real.volume_preimage_add_right -> measure_preimage_add_right ```
1 parent 60d3233 commit 822244f

File tree

13 files changed

+156
-130
lines changed

13 files changed

+156
-130
lines changed

src/analysis/box_integral/integrability.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Yury Kudryashov
55
-/
66
import analysis.box_integral.basic
7+
import measure_theory.measure.regular
78

89
/-!
910
# McShane integrability vs Bochner integrability

src/analysis/fourier.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import analysis.inner_product_space.l2_space
88
import measure_theory.function.continuous_map_dense
99
import measure_theory.function.l2_space
1010
import measure_theory.measure.haar
11+
import measure_theory.group.integration
1112
import topology.metric_space.emetric_paracompact
1213
import topology.continuous_function.stone_weierstrass
1314

src/measure_theory/constructions/pi.lean

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Floris van Doorn
55
-/
66
import measure_theory.constructions.prod
7+
import measure_theory.group.measure
78

89
/-!
910
# Product measures
@@ -534,6 +535,18 @@ begin
534535
simp only [equiv.self_comp_symm, map_id]
535536
end
536537

538+
@[to_additive] instance pi.is_mul_left_invariant [∀ i, group (α i)] [∀ i, has_measurable_mul (α i)]
539+
[∀ i, is_mul_left_invariant (μ i)] : is_mul_left_invariant (measure.pi μ) :=
540+
begin
541+
refine ⟨λ x, (measure.pi_eq (λ s hs, _)).symm⟩,
542+
have A : has_mul.mul x ⁻¹' (set.pi univ (λ (i : ι), s i))
543+
= set.pi univ (λ (i : ι), ((*) (x i)) ⁻¹' (s i)), by { ext, simp },
544+
rw [measure.map_apply (measurable_const_mul x) (measurable_set.univ_pi_fintype hs), A,
545+
pi_pi],
546+
simp only [measure_preimage_mul]
547+
end
548+
549+
537550
end measure
538551
instance measure_space.pi [Π i, measure_space (α i)] : measure_space (Π i, α i) :=
539552
⟨measure.pi (λ i, volume)⟩
@@ -557,6 +570,14 @@ lemma volume_pi_closed_ball [Π i, measure_space (α i)] [∀ i, sigma_finite (v
557570
volume (metric.closed_ball x r) = ∏ i, volume (metric.closed_ball (x i) r) :=
558571
measure.pi_closed_ball _ _ hr
559572

573+
open measure
574+
@[to_additive]
575+
instance pi.is_mul_left_invariant_volume [∀ i, group (α i)] [Π i, measure_space (α i)]
576+
[∀ i, sigma_finite (volume : measure (α i))]
577+
[∀ i, has_measurable_mul (α i)] [∀ i, is_mul_left_invariant (volume : measure (α i))] :
578+
is_mul_left_invariant (volume : measure (Π i, α i)) :=
579+
pi.is_mul_left_invariant _
580+
560581
/-!
561582
### Measure preserving equivalences
562583

src/measure_theory/group/arithmetic.lean

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,13 @@ measurable_mul.comp_ae_measurable (hf.prod_mk hg)
131131

132132
omit m
133133

134+
@[to_additive]
135+
instance pi.has_measurable_mul {ι : Type*} {α : ι → Type*} [∀ i, has_mul (α i)]
136+
[∀ i, measurable_space (α i)] [∀ i, has_measurable_mul (α i)] :
137+
has_measurable_mul (Π i, α i) :=
138+
⟨λ g, measurable_pi_iff.mpr $ λ i, (measurable_const_mul (g i)).comp $ measurable_pi_apply i,
139+
λ g, measurable_pi_iff.mpr $ λ i, (measurable_mul_const (g i)).comp $ measurable_pi_apply i⟩
140+
134141
@[priority 100, to_additive]
135142
instance has_measurable_mul₂.to_has_measurable_mul [has_measurable_mul₂ M] :
136143
has_measurable_mul M :=
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
/-
2+
Copyright (c) 2022 Floris van Doorn. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Authors: Floris van Doorn
5+
-/
6+
import measure_theory.integral.bochner
7+
import measure_theory.group.measure
8+
9+
/-!
10+
# Integration on Groups
11+
12+
We develop properties of integrals with a group as domain.
13+
This file contains properties about integrability, Lebesgue integration and Bochner integration.
14+
-/
15+
16+
namespace measure_theory
17+
18+
open measure topological_space
19+
open_locale ennreal
20+
21+
variables {𝕜 G E : Type*} [measurable_space G] {μ : measure G}
22+
variables [normed_group E] [second_countable_topology E] [normed_space ℝ E] [complete_space E]
23+
[measurable_space E] [borel_space E]
24+
25+
section measurable_mul
26+
27+
variables [group G] [has_measurable_mul G]
28+
29+
/-- Translating a function by left-multiplication does not change its `lintegral` with respect to
30+
a left-invariant measure. -/
31+
@[to_additive]
32+
lemma lintegral_mul_left_eq_self [is_mul_left_invariant μ] (f : G → ℝ≥0∞) (g : G) :
33+
∫⁻ x, f (g * x) ∂μ = ∫⁻ x, f x ∂μ :=
34+
begin
35+
convert (lintegral_map_equiv f $ measurable_equiv.mul_left g).symm,
36+
simp [map_mul_left_eq_self μ g]
37+
end
38+
39+
/-- Translating a function by right-multiplication does not change its `lintegral` with respect to
40+
a right-invariant measure. -/
41+
@[to_additive]
42+
lemma lintegral_mul_right_eq_self [is_mul_right_invariant μ] (f : G → ℝ≥0∞) (g : G) :
43+
∫⁻ x, f (x * g) ∂μ = ∫⁻ x, f x ∂μ :=
44+
begin
45+
convert (lintegral_map_equiv f $ measurable_equiv.mul_right g).symm,
46+
simp [map_mul_right_eq_self μ g]
47+
end
48+
49+
/-- Translating a function by left-multiplication does not change its integral with respect to a
50+
left-invariant measure. -/
51+
@[to_additive]
52+
lemma integral_mul_left_eq_self [is_mul_left_invariant μ] (f : G → E) (g : G) :
53+
∫ x, f (g * x) ∂μ = ∫ x, f x ∂μ :=
54+
begin
55+
have h_mul : measurable_embedding (λ x, g * x) :=
56+
(measurable_equiv.mul_left g).measurable_embedding,
57+
rw [← h_mul.integral_map, map_mul_left_eq_self]
58+
end
59+
60+
/-- Translating a function by right-multiplication does not change its integral with respect to a
61+
right-invariant measure. -/
62+
@[to_additive]
63+
lemma integral_mul_right_eq_self [is_mul_right_invariant μ] (f : G → E) (g : G) :
64+
∫ x, f (x * g) ∂μ = ∫ x, f x ∂μ :=
65+
begin
66+
have h_mul : measurable_embedding (λ x, x * g) :=
67+
(measurable_equiv.mul_right g).measurable_embedding,
68+
rw [← h_mul.integral_map, map_mul_right_eq_self]
69+
end
70+
71+
/-- If some left-translate of a function negates it, then the integral of the function with respect
72+
to a left-invariant measure is 0. -/
73+
@[to_additive]
74+
lemma integral_zero_of_mul_left_eq_neg [is_mul_left_invariant μ] {f : G → E} {g : G}
75+
(hf' : ∀ x, f (g * x) = - f x) :
76+
∫ x, f x ∂μ = 0 :=
77+
by simp_rw [← self_eq_neg ℝ E, ← integral_neg, ← hf', integral_mul_left_eq_self]
78+
79+
/-- If some right-translate of a function negates it, then the integral of the function with respect
80+
to a right-invariant measure is 0. -/
81+
@[to_additive]
82+
lemma integral_zero_of_mul_right_eq_neg [is_mul_right_invariant μ] {f : G → E} {g : G}
83+
(hf' : ∀ x, f (x * g) = - f x) :
84+
∫ x, f x ∂μ = 0 :=
85+
by simp_rw [← self_eq_neg ℝ E, ← integral_neg, ← hf', integral_mul_right_eq_self]
86+
87+
end measurable_mul
88+
89+
90+
section topological_group
91+
92+
variables [topological_space G] [group G] [topological_group G] [borel_space G]
93+
[is_mul_left_invariant μ]
94+
95+
/-- For nonzero regular left invariant measures, the integral of a continuous nonnegative function
96+
`f` is 0 iff `f` is 0. -/
97+
@[to_additive]
98+
lemma lintegral_eq_zero_of_is_mul_left_invariant [regular μ] (hμ : μ ≠ 0)
99+
{f : G → ℝ≥0∞} (hf : continuous f) :
100+
∫⁻ x, f x ∂μ = 0 ↔ f = 0 :=
101+
begin
102+
haveI := is_open_pos_measure_of_mul_left_invariant_of_regular hμ,
103+
rw [lintegral_eq_zero_iff hf.measurable, hf.ae_eq_iff_eq μ continuous_zero]
104+
end
105+
106+
end topological_group
107+
108+
end measure_theory

src/measure_theory/group/basic.lean renamed to src/measure_theory/group/measure.lean

Lines changed: 1 addition & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ Copyright (c) 2020 Floris van Doorn. All rights reserved.
33
Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Floris van Doorn
55
-/
6-
import measure_theory.integral.lebesgue
76
import measure_theory.measure.regular
87
import measure_theory.group.measurable_equiv
98
import measure_theory.measure.open_pos
@@ -13,7 +12,7 @@ import measure_theory.measure.open_pos
1312
1413
We develop some properties of measures on (topological) groups
1514
16-
* We define properties on measures: left and right invariant measures.
15+
* We define properties on measures: measures that are left or right invariant w.r.t. multiplication.
1716
* We define the measure `μ.inv : A ↦ μ(A⁻¹)` and show that it is right invariant iff
1817
`μ` is left invariant.
1918
* We define a class `is_haar_measure μ`, requiring that the measure `μ` is left-invariant, finite
@@ -259,17 +258,6 @@ lemma measure_lt_top_of_is_compact_of_is_mul_left_invariant'
259258
measure_lt_top_of_is_compact_of_is_mul_left_invariant (interior U) is_open_interior hU
260259
((measure_mono (interior_subset)).trans_lt (lt_top_iff_ne_top.2 h)).ne hK
261260

262-
/-- For nonzero regular left invariant measures, the integral of a continuous nonnegative function
263-
`f` is 0 iff `f` is 0. -/
264-
@[to_additive]
265-
lemma lintegral_eq_zero_of_is_mul_left_invariant [regular μ] (hμ : μ ≠ 0)
266-
{f : G → ℝ≥0∞} (hf : continuous f) :
267-
∫⁻ x, f x ∂μ = 0 ↔ f = 0 :=
268-
begin
269-
haveI := is_open_pos_measure_of_mul_left_invariant_of_regular hμ,
270-
rw [lintegral_eq_zero_iff hf.measurable, hf.ae_eq_iff_eq μ continuous_zero]
271-
end
272-
273261
end group
274262

275263
section comm_group
@@ -287,32 +275,6 @@ instance is_mul_left_invariant.is_mul_right_invariant {μ : measure G} [is_mul_l
287275

288276
end comm_group
289277

290-
section integration
291-
292-
variables [group G] [has_measurable_mul G] {μ : measure G}
293-
294-
/-- Translating a function by left-multiplication does not change its `lintegral` with respect to
295-
a left-invariant measure. -/
296-
@[to_additive]
297-
lemma lintegral_mul_left_eq_self [is_mul_left_invariant μ] (f : G → ℝ≥0∞) (g : G) :
298-
∫⁻ x, f (g * x) ∂μ = ∫⁻ x, f x ∂μ :=
299-
begin
300-
convert (lintegral_map_equiv f $ measurable_equiv.mul_left g).symm,
301-
simp [map_mul_left_eq_self μ g]
302-
end
303-
304-
/-- Translating a function by right-multiplication does not change its `lintegral` with respect to
305-
a right-invariant measure. -/
306-
@[to_additive]
307-
lemma lintegral_mul_right_eq_self [is_mul_right_invariant μ] (f : G → ℝ≥0∞) (g : G) :
308-
∫⁻ x, f (x * g) ∂μ = ∫⁻ x, f x ∂μ :=
309-
begin
310-
convert (lintegral_map_equiv f $ measurable_equiv.mul_right g).symm,
311-
simp [map_mul_right_eq_self μ g]
312-
end
313-
314-
end integration
315-
316278
section haar
317279

318280
namespace measure

src/measure_theory/group/prod.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Floris van Doorn
55
-/
66
import measure_theory.constructions.prod
7+
import measure_theory.group.measure
78

89
/-!
910
# Measure theory in the product of groups

src/measure_theory/integral/bochner.lean

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Zhouhang Zhou, Yury Kudryashov, Sébastien Gouëzel, Rémy Degenne
55
-/
66
import measure_theory.integral.set_to_l1
7-
import measure_theory.group.basic
87
import analysis.normed_space.bounded_linear_maps
98
import topology.sequences
109

@@ -1296,53 +1295,6 @@ calc ∫ x, f x ∂(measure.dirac a) = ∫ x, f a ∂(measure.dirac a) :
12961295

12971296
end properties
12981297

1299-
section group
1300-
1301-
variables {G : Type*} [measurable_space G] [group G] [has_measurable_mul G]
1302-
variables {μ : measure G}
1303-
1304-
open measure
1305-
1306-
/-- Translating a function by left-multiplication does not change its integral with respect to a
1307-
left-invariant measure. -/
1308-
@[to_additive]
1309-
lemma integral_mul_left_eq_self [is_mul_left_invariant μ] (f : G → E) (g : G) :
1310-
∫ x, f (g * x) ∂μ = ∫ x, f x ∂μ :=
1311-
begin
1312-
have h_mul : measurable_embedding (λ x, g * x) :=
1313-
(measurable_equiv.mul_left g).measurable_embedding,
1314-
rw [← h_mul.integral_map, map_mul_left_eq_self]
1315-
end
1316-
1317-
/-- Translating a function by right-multiplication does not change its integral with respect to a
1318-
right-invariant measure. -/
1319-
@[to_additive]
1320-
lemma integral_mul_right_eq_self [is_mul_right_invariant μ] (f : G → E) (g : G) :
1321-
∫ x, f (x * g) ∂μ = ∫ x, f x ∂μ :=
1322-
begin
1323-
have h_mul : measurable_embedding (λ x, x * g) :=
1324-
(measurable_equiv.mul_right g).measurable_embedding,
1325-
rw [← h_mul.integral_map, map_mul_right_eq_self]
1326-
end
1327-
1328-
/-- If some left-translate of a function negates it, then the integral of the function with respect
1329-
to a left-invariant measure is 0. -/
1330-
@[to_additive]
1331-
lemma integral_zero_of_mul_left_eq_neg [is_mul_left_invariant μ] {f : G → E} {g : G}
1332-
(hf' : ∀ x, f (g * x) = - f x) :
1333-
∫ x, f x ∂μ = 0 :=
1334-
by simp_rw [← self_eq_neg ℝ E, ← integral_neg, ← hf', integral_mul_left_eq_self]
1335-
1336-
/-- If some right-translate of a function negates it, then the integral of the function with respect
1337-
to a right-invariant measure is 0. -/
1338-
@[to_additive]
1339-
lemma integral_zero_of_mul_right_eq_neg [is_mul_right_invariant μ] {f : G → E} {g : G}
1340-
(hf' : ∀ x, f (x * g) = - f x) :
1341-
∫ x, f x ∂μ = 0 :=
1342-
by simp_rw [← self_eq_neg ℝ E, ← integral_neg, ← hf', integral_mul_right_eq_self]
1343-
1344-
end group
1345-
13461298
mk_simp_attribute integral_simps "Simp set for integral rules."
13471299

13481300
attribute [integral_simps] integral_neg integral_smul L1.integral_add L1.integral_sub

src/measure_theory/integral/interval_integral.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -666,7 +666,7 @@ have A : measurable_embedding (λ x, x + d) :=
666666
calc ∫ x in a..b, f (x + d)
667667
= ∫ x in a+d..b+d, f x ∂(measure.map (λ x, x + d) volume)
668668
: by simp [interval_integral, A.set_integral_map]
669-
... = ∫ x in a+d..b+d, f x : by rw [real.map_volume_add_right]
669+
... = ∫ x in a+d..b+d, f x : by rw [map_add_right_eq_self]
670670

671671
@[simp] lemma integral_comp_add_left (d) :
672672
∫ x in a..b, f (d + x) = ∫ x in d+a..d+b, f x :=

src/measure_theory/integral/periodic.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,11 @@ begin
4040
haveI : encodable (add_subgroup.zmultiples a) := (countable_range _).to_encodable,
4141
simp only [interval_integral.integral_of_le, ha.le, le_add_iff_nonneg_right],
4242
haveI : vadd_invariant_measure (add_subgroup.zmultiples a) ℝ volume :=
43-
⟨λ c s hs, real.volume_preimage_add_left _ _⟩,
43+
⟨λ c s hs, measure_preimage_add _ _ _⟩,
4444
exact (is_add_fundamental_domain_Ioc ha b).set_integral_eq
4545
(is_add_fundamental_domain_Ioc ha c) hf.map_vadd_zmultiples
4646
end
47-
47+
4848
/-- If `f` is a periodic function with period `a`, then its integral over `[b, b + a]` does not
4949
depend on `b`. -/
5050
lemma interval_integral_add_eq {f : ℝ → E} {a : ℝ} (hf : periodic f a)

0 commit comments

Comments
 (0)