@@ -17,6 +17,12 @@ We prove that the Haar measure and Lebesgue measure are equal on `ℝ` and on `
17
17
We deduce basic properties of any Haar measure on a finite dimensional real vector space:
18
18
* `map_linear_map_add_haar_eq_smul_add_haar`: a linear map rescales the Haar measure by the
19
19
absolute value of its determinant.
20
+ * `add_haar_preimage_linear_map` : when `f` is a linear map with nonzero determinant, the measure
21
+ of `f ⁻¹' s` is the measure of `s` multiplied by the absolute value of the inverse of the
22
+ determinant of `f`.
23
+ * `add_haar_image_linear_map` : when `f` is a linear map, the measure of `f '' s` is the
24
+ measure of `s` multiplied by the absolute value of the determinant of `f`.
25
+ * `add_haar_submodule` : a strict submodule has measure `0`.
20
26
* `add_haar_smul` : the measure of `r • s` is `|r| ^ dim * μ s`.
21
27
* `add_haar_ball`: the measure of `ball x r` is `r ^ dim * μ (ball 0 1)`.
22
28
* `add_haar_closed_ball`: the measure of `closed_ball x r` is `r ^ dim * μ (ball 0 1)`.
@@ -84,6 +90,89 @@ by { rw ← add_haar_measure_eq_volume_pi, apply_instance }
84
90
85
91
namespace measure
86
92
93
+ /-!
94
+ ### Strict subspaces have zero measure
95
+ -/
96
+
97
+ /-- If a set is disjoint of its translates by infinitely many bounded vectors, then it has measure
98
+ zero. This auxiliary lemma proves this assuming additionally that the set is bounded. -/
99
+ lemma add_haar_eq_zero_of_disjoint_translates_aux
100
+ {E : Type *} [normed_group E] [normed_space ℝ E] [measurable_space E] [borel_space E]
101
+ [finite_dimensional ℝ E] (μ : measure E) [is_add_haar_measure μ]
102
+ {s : set E} (u : ℕ → E) (sb : bounded s) (hu : bounded (range u))
103
+ (hs : pairwise (disjoint on (λ n, {u n} + s))) (h's : measurable_set s) :
104
+ μ s = 0 :=
105
+ begin
106
+ by_contra h,
107
+ apply lt_irrefl ∞,
108
+ calc
109
+ ∞ = ∑' (n : ℕ), μ s : (ennreal.tsum_const_eq_top_of_ne_zero h).symm
110
+ ... = ∑' (n : ℕ), μ ({u n} + s) :
111
+ by { congr' 1 , ext1 n, simp only [image_add_left, add_haar_preimage_add, singleton_add] }
112
+ ... = μ (⋃ n, {u n} + s) :
113
+ by rw measure_Union hs
114
+ (λ n, by simpa only [image_add_left, singleton_add] using measurable_id.const_add _ h's)
115
+ ... = μ (range u + s) : by rw [← Union_add, Union_singleton_eq_range]
116
+ ... < ∞ : bounded.measure_lt_top (hu.add sb)
117
+ end
118
+
119
+ /-- If a set is disjoint of its translates by infinitely many bounded vectors, then it has measure
120
+ zero. -/
121
+ lemma add_haar_eq_zero_of_disjoint_translates
122
+ {E : Type *} [normed_group E] [normed_space ℝ E] [measurable_space E] [borel_space E]
123
+ [finite_dimensional ℝ E] (μ : measure E) [is_add_haar_measure μ]
124
+ {s : set E} (u : ℕ → E) (hu : bounded (range u))
125
+ (hs : pairwise (disjoint on (λ n, {u n} + s))) (h's : measurable_set s) :
126
+ μ s = 0 :=
127
+ begin
128
+ suffices H : ∀ R, μ (s ∩ closed_ball 0 R) = 0 ,
129
+ { apply le_antisymm _ (zero_le _),
130
+ have : s ⊆ ⋃ (n : ℕ), s ∩ closed_ball 0 n,
131
+ { assume x hx,
132
+ obtain ⟨n, hn⟩ : ∃ (n : ℕ), ∥x∥ ≤ n := exists_nat_ge (∥x∥),
133
+ exact mem_Union.2 ⟨n, ⟨hx, mem_closed_ball_zero_iff.2 hn⟩⟩ },
134
+ calc μ s ≤ μ (⋃ (n : ℕ), s ∩ closed_ball 0 n) : measure_mono this
135
+ ... ≤ ∑' (n : ℕ), μ (s ∩ closed_ball 0 n) : measure_Union_le _
136
+ ... = 0 : by simp only [H, tsum_zero] },
137
+ assume R,
138
+ apply add_haar_eq_zero_of_disjoint_translates_aux μ u
139
+ (bounded.mono (inter_subset_right _ _) bounded_closed_ball) hu _
140
+ (h's.inter (measurable_set_closed_ball)),
141
+ rw ← pairwise_univ at ⊢ hs,
142
+ apply pairwise_disjoint.mono hs (λ n, _),
143
+ exact add_subset_add (subset.refl _) (inter_subset_left _ _)
144
+ end
145
+
146
+ /-- A strict vector subspace has measure zero. -/
147
+ lemma add_haar_submodule
148
+ {E : Type *} [normed_group E] [normed_space ℝ E] [measurable_space E] [borel_space E]
149
+ [finite_dimensional ℝ E] (μ : measure E) [is_add_haar_measure μ]
150
+ (s : submodule ℝ E) (hs : s ≠ ⊤) : μ s = 0 :=
151
+ begin
152
+ obtain ⟨x, hx⟩ : ∃ x, x ∉ s,
153
+ by simpa only [submodule.eq_top_iff', not_exists, ne.def, not_forall] using hs,
154
+ obtain ⟨c, cpos, cone⟩ : ∃ (c : ℝ), 0 < c ∧ c < 1 := ⟨1 /2 , by norm_num, by norm_num⟩,
155
+ have A : bounded (range (λ (n : ℕ), (c ^ n) • x)),
156
+ { have : tendsto (λ (n : ℕ), (c ^ n) • x) at_top (𝓝 ((0 : ℝ) • x)) :=
157
+ (tendsto_pow_at_top_nhds_0_of_lt_1 cpos.le cone).smul_const x,
158
+ exact bounded_range_of_tendsto _ this },
159
+ apply add_haar_eq_zero_of_disjoint_translates μ _ A _
160
+ (submodule.closed_of_finite_dimensional s).measurable_set,
161
+ assume m n hmn,
162
+ simp only [function.on_fun, image_add_left, singleton_add, disjoint_left, mem_preimage,
163
+ set_like.mem_coe],
164
+ assume y hym hyn,
165
+ have A : (c ^ n - c ^ m) • x ∈ s,
166
+ { convert s.sub_mem hym hyn,
167
+ simp only [sub_smul, neg_sub_neg, add_sub_add_right_eq_sub] },
168
+ have H : c ^ n - c ^ m ≠ 0 ,
169
+ by simpa only [sub_eq_zero, ne.def] using (strict_anti_pow cpos cone).injective.ne hmn.symm,
170
+ have : x ∈ s,
171
+ { convert s.smul_mem (c ^ n - c ^ m)⁻¹ A,
172
+ rw [smul_smul, inv_mul_cancel H, one_smul] },
173
+ exact hx this
174
+ end
175
+
87
176
/-!
88
177
### Applying a linear map rescales Haar measure by the determinant
89
178
@@ -101,7 +190,7 @@ begin
101
190
/- We have already proved the result for the Lebesgue product measure, using matrices.
102
191
We deduce it for any Haar measure by uniqueness (up to scalar multiplication). -/
103
192
have := add_haar_measure_unique (is_add_left_invariant_add_haar μ) (pi_Icc01 ι),
104
- conv_lhs { rw this }, conv_rhs { rw this } ,
193
+ rw this ,
105
194
simp [add_haar_measure_eq_volume_pi, real.map_linear_map_volume_pi_eq_smul_volume_pi hf,
106
195
smul_smul, mul_comm],
107
196
end
@@ -113,7 +202,7 @@ lemma map_linear_map_add_haar_eq_smul_add_haar
113
202
measure.map f μ = ennreal.of_real (abs (f.det)⁻¹) • μ :=
114
203
begin
115
204
-- we reduce to the case of `E = ι → ℝ`, for which we have already proved the result using
116
- -- matrices in `map_linear_map_haar_pi_eq_smul_haar `.
205
+ -- matrices in `map_linear_map_add_haar_pi_eq_smul_add_haar `.
117
206
let ι := fin (finrank ℝ E),
118
207
haveI : finite_dimensional ℝ (ι → ℝ) := by apply_instance,
119
208
have : finrank ℝ E = finrank ℝ (ι → ℝ), by simp,
@@ -139,7 +228,9 @@ begin
139
228
map_map Cesymm.measurable Ce.measurable, ecomp, measure.map_id]
140
229
end
141
230
142
- @[simp] lemma haar_preimage_linear_map
231
+ /-- The preimage of a set `s` under a linear map `f` with nonzero determinant has measure
232
+ equal to `μ s` times the absolute value of the inverse of the determinant of `f`. -/
233
+ @[simp] lemma add_haar_preimage_linear_map
143
234
{E : Type *} [normed_group E] [normed_space ℝ E] [measurable_space E] [borel_space E]
144
235
[finite_dimensional ℝ E] (μ : measure E) [is_add_haar_measure μ]
145
236
{f : E →ₗ[ℝ] E} (hf : f.det ≠ 0 ) (s : set E) :
@@ -150,6 +241,78 @@ calc μ (f ⁻¹' s) = measure.map f μ s :
150
241
... = ennreal.of_real (abs (f.det)⁻¹) * μ s :
151
242
by { rw map_linear_map_add_haar_eq_smul_add_haar μ hf, refl }
152
243
244
+ /-- The preimage of a set `s` under a continuous linear map `f` with nonzero determinant has measure
245
+ equal to `μ s` times the absolute value of the inverse of the determinant of `f`. -/
246
+ @[simp] lemma add_haar_preimage_continuous_linear_map
247
+ {E : Type *} [normed_group E] [normed_space ℝ E] [measurable_space E] [borel_space E]
248
+ [finite_dimensional ℝ E] (μ : measure E) [is_add_haar_measure μ]
249
+ {f : E →L[ℝ] E} (hf : linear_map.det (f : E →ₗ[ℝ] E) ≠ 0 ) (s : set E) :
250
+ μ (f ⁻¹' s) = ennreal.of_real (abs (linear_map.det (f : E →ₗ[ℝ] E))⁻¹) * μ s :=
251
+ add_haar_preimage_linear_map μ hf s
252
+
253
+ /-- The preimage of a set `s` under a linear equiv `f` has measure
254
+ equal to `μ s` times the absolute value of the inverse of the determinant of `f`. -/
255
+ @[simp] lemma add_haar_preimage_linear_equiv
256
+ {E : Type *} [normed_group E] [normed_space ℝ E] [measurable_space E] [borel_space E]
257
+ [finite_dimensional ℝ E] (μ : measure E) [is_add_haar_measure μ]
258
+ (f : E ≃ₗ[ℝ] E) (s : set E) :
259
+ μ (f ⁻¹' s) = ennreal.of_real (abs (f.symm : E →ₗ[ℝ] E).det) * μ s :=
260
+ begin
261
+ have A : (f : E →ₗ[ℝ] E).det ≠ 0 := (linear_equiv.is_unit_det' f).ne_zero,
262
+ convert add_haar_preimage_linear_map μ A s,
263
+ simp only [linear_equiv.det_coe_symm]
264
+ end
265
+
266
+ /-- The preimage of a set `s` under a continuous linear equiv `f` has measure
267
+ equal to `μ s` times the absolute value of the inverse of the determinant of `f`. -/
268
+ @[simp] lemma add_haar_preimage_continuous_linear_equiv
269
+ {E : Type *} [normed_group E] [normed_space ℝ E] [measurable_space E] [borel_space E]
270
+ [finite_dimensional ℝ E] (μ : measure E) [is_add_haar_measure μ]
271
+ (f : E ≃L[ℝ] E) (s : set E) :
272
+ μ (f ⁻¹' s) = ennreal.of_real (abs (f.symm : E →ₗ[ℝ] E).det) * μ s :=
273
+ add_haar_preimage_linear_equiv μ _ s
274
+
275
+ /-- The image of a set `s` under a linear map `f` has measure
276
+ equal to `μ s` times the absolute value of the determinant of `f`. -/
277
+ @[simp] lemma add_haar_image_linear_map
278
+ {E : Type *} [normed_group E] [normed_space ℝ E] [measurable_space E] [borel_space E]
279
+ [finite_dimensional ℝ E] (μ : measure E) [is_add_haar_measure μ]
280
+ (f : E →ₗ[ℝ] E) (s : set E) :
281
+ μ (f '' s) = ennreal.of_real (abs f.det) * μ s :=
282
+ begin
283
+ rcases ne_or_eq f.det 0 with hf|hf,
284
+ { let g := (f.equiv_of_det_ne_zero hf).to_continuous_linear_equiv,
285
+ change μ (g '' s) = _,
286
+ rw [continuous_linear_equiv.image_eq_preimage g s, add_haar_preimage_continuous_linear_equiv],
287
+ congr,
288
+ ext x,
289
+ simp only [linear_equiv.of_is_unit_det_apply, linear_equiv.to_continuous_linear_equiv_apply,
290
+ continuous_linear_equiv.symm_symm, continuous_linear_equiv.coe_coe,
291
+ continuous_linear_map.coe_coe, linear_equiv.to_fun_eq_coe, coe_coe] },
292
+ { simp only [hf, zero_mul, ennreal.of_real_zero, abs_zero],
293
+ have : μ f.range = 0 :=
294
+ add_haar_submodule μ _ (linear_map.range_lt_top_of_det_eq_zero hf).ne,
295
+ exact le_antisymm (le_trans (measure_mono (image_subset_range _ _)) this.le) (zero_le _) }
296
+ end
297
+
298
+ /-- The image of a set `s` under a continuous linear map `f` has measure
299
+ equal to `μ s` times the absolute value of the determinant of `f`. -/
300
+ @[simp] lemma add_haar_image_continuous_linear_map
301
+ {E : Type *} [normed_group E] [normed_space ℝ E] [measurable_space E] [borel_space E]
302
+ [finite_dimensional ℝ E] (μ : measure E) [is_add_haar_measure μ]
303
+ (f : E →L[ℝ] E) (s : set E) :
304
+ μ (f '' s) = ennreal.of_real (abs (f : E →ₗ[ℝ] E).det) * μ s :=
305
+ add_haar_image_linear_map μ _ s
306
+
307
+ /-- The image of a set `s` under a continuous linear equiv `f` has measure
308
+ equal to `μ s` times the absolute value of the determinant of `f`. -/
309
+ @[simp] lemma add_haar_image_continuous_linear_equiv
310
+ {E : Type *} [normed_group E] [normed_space ℝ E] [measurable_space E] [borel_space E]
311
+ [finite_dimensional ℝ E] (μ : measure E) [is_add_haar_measure μ]
312
+ (f : E ≃L[ℝ] E) (s : set E) :
313
+ μ (f '' s) = ennreal.of_real (abs (f : E →ₗ[ℝ] E).det) * μ s :=
314
+ add_haar_image_linear_map μ _ s
315
+
153
316
/-!
154
317
### Basic properties of Haar measures on real vector spaces
155
318
-/
@@ -170,14 +333,14 @@ begin
170
333
monoid_hom.map_one],
171
334
end
172
335
173
- lemma add_haar_preimage_smul {r : ℝ} (hr : r ≠ 0 ) (s : set E) :
336
+ @[simp] lemma add_haar_preimage_smul {r : ℝ} (hr : r ≠ 0 ) (s : set E) :
174
337
μ (((•) r) ⁻¹' s) = ennreal.of_real (abs (r ^ (finrank ℝ E))⁻¹) * μ s :=
175
338
calc μ (((•) r) ⁻¹' s) = measure.map ((•) r) μ s :
176
339
((homeomorph.smul (is_unit_iff_ne_zero.2 hr).unit).to_measurable_equiv.map_apply s).symm
177
340
... = ennreal.of_real (abs (r^(finrank ℝ E))⁻¹) * μ s : by { rw map_add_haar_smul μ hr, refl }
178
341
179
342
/-- Rescaling a set by a factor `r` multiplies its measure by `abs (r ^ dim)`. -/
180
- lemma add_haar_smul (r : ℝ) (s : set E) :
343
+ @[simp] lemma add_haar_smul (r : ℝ) (s : set E) :
181
344
μ (r • s) = ennreal.of_real (abs (r ^ (finrank ℝ E))) * μ s :=
182
345
begin
183
346
rcases ne_or_eq r 0 with h|rfl,
0 commit comments