Skip to content

Commit 076dd70

Browse files
committed
complete proof of maximal inequality
1 parent 8852345 commit 076dd70

1 file changed

Lines changed: 64 additions & 22 deletions

File tree

Mathlib/Dynamics/BirkhoffSum/Pointwise.lean

Lines changed: 64 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,8 @@ end PR
190190

191191
section BirkhoffSup
192192

193-
def birkhoffSupSet (f : α → α) (g : α → ℝ) : Set α := {x | ∃ n : ℕ, 0 < birkhoffSum f g n x}
193+
def birkhoffSupSet (f : α → α) (g : α → ℝ) : Set α :=
194+
{x | ∃ n : ℕ, 0 < birkhoffSum f g n x}
194195

195196
lemma birkhoffSupSet_eq_iSup_birkhoffMax_support {f : α → α} {g : α → ℝ} :
196197
birkhoffSupSet f g = ⋃ n : ℕ, (birkhoffMax f g n).support := by
@@ -210,12 +211,42 @@ lemma birkhoffSupSet_eq_iSup_birkhoffMax_support {f : α → α} {g : α → ℝ
210211
rcases partialSups_exists (birkhoffSum f g · x) n with ⟨m, _, hm₂⟩
211212
exact ⟨m, hm₂ ▸ h⟩
212213

214+
def birkhoffAverageSupSet (f : α → α) (g : α → ℝ) (a : ℝ) : Set α :=
215+
{x | ∃ n : ℕ, a < birkhoffAverage ℝ f g n x}
216+
217+
theorem birkhoffAverage_iff_birkhoffSum {f : α → α} {x n g} {a : ℝ} (hn : 0 < n) :
218+
a < birkhoffAverage ℝ f g n x ↔ 0 < birkhoffSum f (g - fun _ ↦ a) n x := by
219+
nth_rw 2 [←smul_lt_smul_iff_of_pos_left (a := (↑n : ℝ)⁻¹) (by norm_num [hn])]
220+
rw [smul_zero, ←birkhoffAverage, birkhoffAverage_sub]
221+
simp only [Pi.sub_apply, sub_pos]
222+
nth_rw 2 [birkhoffAverage_of_comp_eq rfl hn.ne']
223+
224+
theorem birkhoffAverageSupSet_eq_birkhoffSupSet {f : α → α} {g a} (ha : 0 < a) :
225+
birkhoffAverageSupSet f g a = birkhoffSupSet f (g - fun _ ↦ a) := by
226+
unfold birkhoffAverageSupSet birkhoffSupSet
227+
have {n x} : a < birkhoffAverage ℝ f g n x ↔ 0 < birkhoffSum f (g - fun _ ↦ a) n x := by
228+
cases n with
229+
| zero =>
230+
refine ⟨fun h => ?_, fun h => ?_⟩
231+
· exfalso; rw [birkhoffAverage_zero] at h; exact lt_asymm ha h
232+
· exfalso; rw [birkhoffSum_zero] at h; exact lt_irrefl 0 h
233+
| succ n => exact birkhoffAverage_iff_birkhoffSum (by norm_num)
234+
conv =>
235+
enter [1, 1, x, 1, n]
236+
rw [this]
237+
213238
section MeasurePreserving
214239

215-
variable {f : α → α} [MeasurableSpace α] (μ : Measure α := by volume_tac) {g : α → ℝ} {n}
216-
(hf : MeasurePreserving f μ μ) (hg : Integrable g μ)
240+
variable {f : α → α} [MeasurableSpace α] (μ : Measure α := by volume_tac) {n}
241+
(hf : MeasurePreserving f μ μ)
217242

218-
include hf hg
243+
include hf
244+
245+
section Real
246+
247+
variable {g : α → ℝ} (hg : Integrable g μ)
248+
249+
include hg
219250

220251
lemma tendsto_setIntegral_on_birkhoffMax_support_birkhoffSupSet :
221252
Tendsto (fun n ↦ ∫ x in (birkhoffMax f g n).support, g x ∂μ) atTop
@@ -239,25 +270,39 @@ theorem setIntegral_nonneg_on_birkhoffSupSet :
239270
intro n
240271
exact setIntegral_nonneg_on_birkhoffMax_support μ hf hg
241272

242-
def birkhoffAverageSupSet (f : α → α) (g : α → ℝ) (a : ℝ) : Set α :=
243-
{x | ∃ n : ℕ, a < birkhoffAverage ℝ f g n x}
273+
variable [IsFiniteMeasure μ]
244274

245-
theorem birkhoffAverageSupSet_eq_birkhoffSupSet {x} {a : ℝ} (hn : 0 < n) :
246-
a < birkhoffAverage ℝ f g n x ↔ 0 < birkhoffSum f (g - fun _ ↦ a) n x := by
247-
nth_rw 2 [←smul_lt_smul_iff_of_pos_left (a := (↑n : ℝ)⁻¹) (by norm_num [hn])]
248-
rw [smul_zero, ←birkhoffAverage, birkhoffAverage_sub]
249-
simp only [Pi.sub_apply, sub_pos]
250-
nth_rw 2 [birkhoffAverage_of_comp_eq rfl hn.ne']
275+
theorem meas_birkhoffAverageSupSet_mul_le_integral (a : ℝ) (ha : 0 < a) :
276+
μ.real (birkhoffAverageSupSet f g a) • a ≤ ∫ x in birkhoffAverageSupSet f g a, g x ∂μ := by
277+
have p₁ := Integrable.sub hg (integrable_const a)
278+
calc
279+
_ = ∫ x in birkhoffSupSet f (g - fun _ ↦ a), a ∂μ := by
280+
rw [setIntegral_const, birkhoffAverageSupSet_eq_birkhoffSupSet ha]
281+
_ ≤ ∫ x in birkhoffSupSet f (g - fun _ ↦ a), a ∂μ +
282+
∫ x in birkhoffSupSet f (g - fun _ ↦ a), g x - a ∂μ := by
283+
exact le_add_of_nonneg_right (setIntegral_nonneg_on_birkhoffSupSet μ hf p₁)
284+
_ = ∫ x in birkhoffAverageSupSet f g a, g x ∂μ := by
285+
rw [← integral_add, birkhoffAverageSupSet_eq_birkhoffSupSet ha]
286+
· rcongr; grind
287+
· exact (integrable_const a).restrict
288+
· exact p₁.restrict
289+
290+
end Real
291+
292+
section NormedAddCommGroup
293+
294+
variable {E : Type*} [NormedAddCommGroup E] {g : α → E} (hg : Integrable g μ) [IsFiniteMeasure μ]
251295

252-
theorem setIntegral_nonneg_on_birkhoffSupSet' [IsFiniteMeasure μ] (a : ℝ) :
253-
μ.real (birkhoffSupSet f g) • a ≤ ∫ x in birkhoffSupSet f g, g x ∂μ := by
296+
include hg
297+
298+
theorem meas_birkhoffAverageSupSet_mul_le_norm (a : ℝ) (ha : 0 < a) :
299+
μ.real (birkhoffAverageSupSet f (fun x ↦ ‖g x‖) a) • a ≤ ∫ x, ‖g x‖ ∂μ :=
254300
calc
255-
_ = ∫ x in birkhoffSupSet f g, a ∂μ := by rw [setIntegral_const]
256-
_ ≤ ∫ x in birkhoffSupSet f g, a ∂μ + ∫ (x : α) in birkhoffSupSet f g, g x ∂μ := by sorry
301+
_ ≤ ∫ x in birkhoffAverageSupSet f (fun x ↦ ‖g x‖) a, ‖g x‖ ∂μ := by
302+
exact meas_birkhoffAverageSupSet_mul_le_integral μ hf hg.norm a ha
303+
_ ≤ ∫ x, ‖g x‖ ∂μ := setIntegral_le_integral hg.norm (ae_of_all _ (norm_nonneg <| g ·))
257304

258-
theorem setIntegral_nonneg_on_birkhoffSupSet'' (a : ℝ) :
259-
a * μ.real (birkhoffSupSet f g) ≤ ‖hg.toL1‖ := by
260-
sorry
305+
end NormedAddCommGroup
261306

262307
end MeasurePreserving
263308

@@ -268,7 +313,4 @@ noncomputable section BirkhoffAverage
268313
variable {f : α → α} [MeasurableSpace α] (μ : Measure α := by volume_tac) {g : α → ℝ} {n}
269314
(hf : MeasurePreserving f μ μ) (hg : Integrable g μ)
270315

271-
def birkhoffOscillation (f : α → α) (g : α → ℝ) (x : α) : ℝ :=
272-
limsup (birkhoffAverage ℝ f g · x) atTop - liminf (birkhoffAverage ℝ f g · x) atTop
273-
274316
end BirkhoffAverage

0 commit comments

Comments
 (0)