Skip to content

Commit 5bbd91f

Browse files
committed
Bump mathlib to v4.25.0
1 parent aa9029c commit 5bbd91f

File tree

11 files changed

+92
-86
lines changed

11 files changed

+92
-86
lines changed

LeanAPAP/Extras/BSG.lean

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,12 @@ lemma claim_two :
112112
have hf : ∀ s, f s ^ 2 = (𝟭_[ℝ] A ○ 𝟭 B) s := by
113113
intro s
114114
rw [Real.sq_sqrt]
115-
exact dconv_nonneg (R := ℝ) indicate_nonneg indicate_nonneg s -- why do I need the annotation??
115+
exact dconv_apply_nonneg indicate_nonneg indicate_nonneg s
116116
have := sum_mul_sq_le_sq_mul_sq univ f (fun s ↦ f s * #(A ∩ (s +ᵥ B)))
117117
refine div_le_of_le_mul₀ (by positivity) ?_ ?_
118118
· refine sum_nonneg fun i _ ↦ ?_
119119
-- indicate nonneg should be a positivity lemma
120-
exact mul_nonneg (dconv_nonneg indicate_nonneg indicate_nonneg _) (by positivity)
120+
exact mul_nonneg (dconv_apply_nonneg indicate_nonneg indicate_nonneg _) (by positivity)
121121
simp only [← sq, ← mul_assoc, hf, thing_two, mul_pow, claim_one] at this
122122
refine this.trans ?_
123123
rw [mul_comm]
@@ -148,8 +148,9 @@ lemma claim_four (ab : G × G) :
148148
have : ∑ s : G, (𝟭_[ℝ] A ○ 𝟭 B) s * (𝟭 B ((a, b).1 - s) * 𝟭 B ((a, b).2 - s)) ≤
149149
#B * ∑ s : G, (𝟭 B ((a, b).1 - s) * 𝟭 B ((a, b).2 - s)) := by
150150
rw [mul_sum]
151-
refine sum_le_sum fun i _ ↦ ?_
152-
exact mul_le_mul_of_nonneg_right (this _) (mul_nonneg (indicate_nonneg _) (indicate_nonneg _))
151+
gcongr with s hs
152+
· exact mul_nonneg indicate_apply_nonneg indicate_apply_nonneg
153+
· exact this _
153154
refine this.trans_eq ?_
154155
congr 1
155156
simp only [dconv_eq_sum_add]

LeanAPAP/FiniteField.lean

Lines changed: 32 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,10 @@ private lemma curlog_mul_le (hx₀ : 0 < x) (hx₁ : x ≤ 1) (hy₀ : 0 < y) (h
5555
𝓛 (x * y) ≤ x⁻¹ * 𝓛 y := by
5656
suffices h : log x⁻¹ - (x⁻¹ - 1) ≤ (x⁻¹ - 1) * log y⁻¹ by
5757
rw [← sub_nonneg] at h ⊢
58-
exact h.trans_eq (by rw [mul_inv, log_mul]; ring; all_goals positivity)
58+
convert h using 1
59+
rw [mul_inv, log_mul]
60+
any_goals positivity
61+
ring
5962
calc
6063
log x⁻¹ - (x⁻¹ - 1) ≤ 0 := sub_nonpos.2 <| log_le_sub_one_of_pos <| by positivity
6164
_ ≤ (x⁻¹ - 1) * log y⁻¹ := mul_nonneg (sub_nonneg.2 <| (one_le_inv₀ hx₀).2 hx₁) <| by bound
@@ -68,7 +71,10 @@ private lemma curlog_rpow_le' (hx₀ : 0 < x) (hx₁ : x ≤ 1) (hy₀ : 0 < y)
6871
𝓛 (x ^ y) ≤ y⁻¹ * 𝓛 x := by
6972
suffices h : 1 - y⁻¹ ≤ (y⁻¹ - y) * log x⁻¹ by
7073
rw [← sub_nonneg] at h ⊢
71-
exact h.trans_eq (by rw [← inv_rpow, log_rpow]; ring; all_goals positivity)
74+
convert h using 1
75+
rw [← inv_rpow, log_rpow]
76+
any_goals positivity
77+
ring
7278
calc
7379
1 - y⁻¹ ≤ 0 := sub_nonpos.2 <| (one_le_inv₀ hy₀).2 hy₁
7480
_ ≤ (y⁻¹ - y) * log x⁻¹ := mul_nonneg (sub_nonneg.2 <| hy₁.trans <| by bound) <| by bound
@@ -298,28 +304,33 @@ lemma di_in_ff [MeasurableSpace G] [DiscreteMeasurableSpace G] (hq₃ : 3 ≤ q)
298304
_ = 2 ^ 17 * 𝓛 γ / ε ^ 3 := by ring
299305
obtain ⟨A₁, A₂, hA, hA₁, hA₂⟩ : ∃ (A₁ A₂ : Finset G),
300306
1 - ε / 32 ≤ ∑ x ∈ s q' (ε / 16) univ univ A, (μ A₁ ○ μ A₂) x ∧
301-
(4⁻¹ : ℝ) * A.dens ^ (2 * q') ≤ A₁.dens ∧ (4⁻¹ : ℝ) * A.dens ^ (2 * q') ≤ A₂.dens :=
302-
sifting_cor (ε := ε / 16) (δ := ε / 32) (by positivity) (by linarith) (by positivity) (p := q')
303-
(even_two_mul _) (le_mul_of_one_le_right zero_le_two (by simp; positivity)) (by
304-
calc
305-
(ε / 16)⁻¹ * log (2 / (ε / 32)) = 2 ^ 4 * ε⁻¹ ^ 1 * log (64 / ε) := by ring_nf
306-
_ ≤ 2 ^ 8 * ε⁻¹ ^ 2 * log (64 / ε) := by
307-
gcongr
308-
· norm_num
309-
· norm_num
310-
· exact (one_le_inv₀ hε₀).2 hε₁.le
311-
· norm_num
312-
_ ≤ ⌈2 ^ 8 * ε⁻¹ ^ 2 * log (64 / ε)⌉₊ := Nat.le_ceil _
313-
_ = ↑(1 * ⌈0 + 2 ^ 8 * ε⁻¹ ^ 2 * log (64 / ε)⌉₊) := by rw [one_mul, zero_add]
314-
_ ≤ q' := by
315-
unfold q'
316-
gcongr
317-
· norm_num
318-
· positivity) hA₀
307+
(4⁻¹ : ℝ) * A.dens ^ (2 * q') ≤ A₁.dens ∧ (4⁻¹ : ℝ) * A.dens ^ (2 * q') ≤ A₂.dens := by
308+
refine sifting_cor (ε := ε / 16) (δ := ε / 32) (by positivity) (by linarith)
309+
(by positivity) (p := q') (even_two_mul _)
310+
(le_mul_of_one_le_right zero_le_two <| by simp; positivity) ?_ hA₀
311+
calc
312+
(ε / 16)⁻¹ * log (2 / (ε / 32)) = 2 ^ 4 * ε⁻¹ ^ 1 * log (64 / ε) := by ring_nf
313+
_ ≤ 2 ^ 8 * ε⁻¹ ^ 2 * log (64 / ε) := by
314+
gcongr
315+
· norm_num
316+
· norm_num
317+
· exact (one_le_inv₀ hε₀).2 hε₁.le
318+
· norm_num
319+
_ ≤ ⌈2 ^ 8 * ε⁻¹ ^ 2 * log (64 / ε)⌉₊ := Nat.le_ceil _
320+
_ = ↑(1 * ⌈0 + 2 ^ 8 * ε⁻¹ ^ 2 * log (64 / ε)⌉₊) := by rw [one_mul, zero_add]
321+
_ ≤ q' := by
322+
unfold q'
323+
gcongr
324+
· norm_num
325+
· positivity
319326
have :=
320327
calc
321328
p' = 1 * ⌈(p' + 0 : ℝ)⌉₊ := by simp
322-
_ ≤ q' := by unfold q'; gcongr; norm_num; positivity
329+
_ ≤ q' := by
330+
unfold q'
331+
gcongr
332+
· norm_num
333+
· positivity
323334
have : card G • (f ○ f) + 1 = card G • (μ A ○ μ A) := by
324335
unfold f
325336
rw [← balance_dconv, balance, smul_sub, smul_const, Fintype.card_smul_expect]

LeanAPAP/Physics/DRC.lean

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -120,10 +120,9 @@ lemma drc (hp₂ : 2 ≤ p) (f : G → ℝ≥0) (hf : ∃ x, x ∈ B₁ - B₂
120120
mul_nonneg (sum_nonneg fun x _ ↦ mul_nonneg (this _) <| by positivity) <| by positivity
121121
have : (4 : ℝ) ⁻¹ * ‖𝟭_[ℝ] A ○ 𝟭 A‖_[p, μ B₁ ○ μ B₂] ^ (2 * p) / #A ^ (2 * p)
122122
≤ #(A₁ s) / #B₁ * (#(A₂ s) / #B₂) := by
123-
rw [div_mul_div_comm, le_div_iff₀]
123+
rw [div_mul_div_comm, le_div_iff₀ (by positivity)]
124124
simpa [hg_def, hM_def, mul_pow, div_pow, pow_mul', show (2 : ℝ) ^ 2 = 4 by norm_num,
125125
mul_div_right_comm] using h
126-
positivity
127126
refine ⟨(lt_of_mul_lt_mul_left (hs.trans_eq' ?_) <| hg s).le, this.trans <|
128127
mul_le_of_le_one_right ?_ <| div_le_one_of_le₀ ?_ ?_, this.trans <|
129128
mul_le_of_le_one_left ?_ <| div_le_one_of_le₀ ?_ ?_⟩
@@ -209,13 +208,13 @@ lemma sifting (B₁ B₂ : Finset G) (hε : 0 < ε) (hε₁ : ε ≤ 1) (hδ : 0
209208
∑ x ∈ (s p ε B₁ B₂ A)ᶜ,
210209
(μ B₁ ○ μ B₂) x * ((1 - ε) * ‖𝟭_[ℝ] A ○ 𝟭 A‖_[p, μ B₁ ○ μ B₂]) ^ p := by
211210
gcongr with x hx
212-
· exact Pi.le_def.1 (dconv_nonneg (R := ℝ) mu_nonneg mu_nonneg) x
213-
· exact dconv_nonneg indicate_nonneg indicate_nonneg _
211+
· exact dconv_apply_nonneg mu_nonneg mu_nonneg x
212+
· exact dconv_apply_nonneg indicate_nonneg indicate_nonneg _
214213
· simpa using hx
215214
_ ≤ ∑ x, (μ B₁ ○ μ B₂) x * ((1 - ε) * ‖𝟭_[ℝ] A ○ 𝟭 A‖_[p, μ B₁ ○ μ B₂]) ^ p := by
216215
gcongr
217216
· intros
218-
exact mul_nonneg (dconv_nonneg (mu_nonneg (K := ℝ)) mu_nonneg _) <| hp.pow_nonneg _
217+
exact mul_nonneg (dconv_apply_nonneg mu_nonneg mu_nonneg _) <| hp.pow_nonneg _
219218
· exact subset_univ _
220219
_ = ‖μ_[ℝ] B₁‖_[1] * ‖μ_[ℝ] B₂‖_[1] * ((1 - ε) ^ p * ‖𝟭_[ℝ] A ○ 𝟭 A‖_[p, μ B₁ ○ μ B₂] ^ p)
221220
:= ?_
@@ -248,12 +247,11 @@ lemma sifting_cor (hε : 0 < ε) (hε₁ : ε ≤ 1) (hδ : 0 < δ) (hp : Even p
248247
4⁻¹ * ‖𝟭_[ℝ] A ○ 𝟭 A‖_[p, μ univ] ^ (2 * p) / #A ^ (2 * p) := by
249248
rw [mul_div_assoc, ← div_pow]
250249
gcongr
251-
rw [nnratCast_dens, le_div_iff₀, ← mul_div_right_comm]
250+
rw [nnratCast_dens, le_div_iff₀ (by positivity), ← mul_div_right_comm]
252251
calc
253252
_ = (‖𝟭_[ℝ] A ○ 𝟭 A‖_[1, μ univ] : ℝ) := by
254253
simp [mu, wLpNorm_smul_right, dL1Norm_dconv, card_univ, inv_mul_eq_div]
255254
_ ≤ _ := wLpNorm_mono_right (one_le_two.trans <| by norm_cast) _ _
256-
· exact Nat.cast_pos.2 hA.card_pos
257255
obtain ⟨A₁, -, A₂, -, h, hcard₁, hcard₂⟩ :=
258256
sifting univ univ hε hε₁ hδ hp hp₂ hpε (by simp) hA (by simpa)
259257
exact ⟨A₁, A₂, h, this.trans <| by simpa [nnratCast_dens] using hcard₁,

LeanAPAP/Physics/Unbalancing.lean

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ private lemma unbalancing'' (p : ℕ) (hp : 5 ≤ p) (hp₁ : Odd p) (hε₀ : 0
101101
_ = _ := by simp [mul_sum, mul_left_comm (2 : ℝ)]
102102
set P : Finset _ := {i | 0 ≤ f i}
103103
set T : Finset _ := {i | 3 / 4 * ε ≤ f i}
104-
have hTP : T ⊆ P := monotone_filter_right _ fun i ↦ le_trans <| by positivity
104+
have hTP : T ⊆ P := by unfold P T; gcongr; positivity
105105
have : 2⁻¹ * ε ^ p ≤ ∑ i ∈ P, ↑(ν i) * (f ^ p) i := by
106106
rw [inv_mul_le_iff₀ (zero_lt_two' ℝ), sum_filter]
107107
convert this using 3
@@ -159,17 +159,18 @@ private lemma unbalancing'' (p : ℕ) (hp : 5 ≤ p) (hp₁ : Odd p) (hε₀ : 0
159159
set p' := 24 / ε * log (3 / ε) * p
160160
have hp' : 0 < p' := p'_pos hp hε₀ hε₁
161161
have : 1 - 8⁻¹ * ε ≤ (∑ i ∈ T, ↑(ν i)) ^ p'⁻¹ := by
162-
rw [← div_le_iff₀, mul_div_assoc, ← div_pow, le_sqrt, mul_pow, ← pow_mul'] at this
162+
rw [← div_le_iff₀ (by positivity), mul_div_assoc, ← div_pow,
163+
le_sqrt (by positivity) (by positivity), mul_pow, ← pow_mul'] at this
163164
calc
164165
_ ≤ exp (-(8⁻¹ * ε)) := one_sub_le_exp_neg _
165166
_ = ((ε / 3) ^ p * (ε / 3) ^ (2 * p)) ^ p'⁻¹ := ?_
166167
_ ≤ _ := rpow_le_rpow ?_ ((mul_le_mul_of_nonneg_right ?_ ?_).trans this) ?_
167168
· rw [← pow_add, ← one_add_mul _ p, ← rpow_natCast, Nat.cast_mul, ← rpow_mul, ← div_eq_mul_inv,
168169
mul_div_mul_right, ← exp_log (_ : 0 < ε / 3), ← exp_mul, ← inv_div, log_inv, neg_mul,
169170
mul_div_left_comm, div_mul_cancel_right₀ (log_ε_pos hε₀ hε₁).ne']
171+
any_goals positivity
170172
field_simp
171173
ring_nf
172-
all_goals positivity
173174
any_goals positivity
174175
calc
175176
_ ≤ (1 / 3 : ℝ) ^ p := by gcongr

LeanAPAP/Prereqs/Bohr/Basic.lean

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,6 @@ lemma ext_width {B B' : BohrSet G} (freq : B.frequencies = B'.frequencies)
7575

7676
/-! ### Coercion, membership -/
7777

78-
-- instance instMem : Membership G (BohrSet G) :=
79-
-- ⟨fun x B ↦ ∀ ψ, ‖1 - ψ x‖₊ ≤ B.ewidth ψ⟩
80-
8178
/-- The set corresponding to a Bohr set `B` is `{x | ∀ ψ ∈ B.frequencies, ‖1 - ψ x‖ ≤ B.width ψ}`.
8279
This is the *chord-length* convention. The arc-length convention would instead be
8380
`{x | ∀ ψ ∈ B.frequencies, |arg (ψ x)| ≤ B.width ψ}`.
@@ -120,7 +117,7 @@ lemma mem_chordSet_iff_norm_width :
120117
-- TODO: This lemma needs `Finite G` because we are using `AddChar G ℂ` rather than `AddChar G ℂˣ`
121118
-- as the dual group.
122119
@[simp] lemma neg_mem [Finite G] : -x ∈ B.chordSet ↔ x ∈ B.chordSet :=
123-
forall₂_congr fun ψby rw [Iff.comm, ← RCLike.nnnorm_conj, map_sub, map_one, map_neg_eq_conj]
120+
forall_congr' fun ψ ↦ by rw [Iff.comm, ← RCLike.nnnorm_conj, map_sub, map_one, map_neg_eq_conj]
124121

125122
/-! ### Lattice structure -/
126123

@@ -131,40 +128,34 @@ noncomputable instance : Max (BohrSet G) where
131128
mem_frequencies := fun ψ => by simp [mem_frequencies] }
132129

133130
noncomputable instance : Min (BohrSet G) where
134-
min B₁ B₂ :=
135-
{ frequencies := B₁.frequencies ∪ B₂.frequencies,
136-
ewidth := fun ψ => B₁.ewidth ψ ⊓ B₂.ewidth ψ,
137-
mem_frequencies := fun ψ => by simp [mem_frequencies] }
131+
min B₁ B₂ := {
132+
frequencies := B₁.frequencies ∪ B₂.frequencies,
133+
ewidth ψ := B₁.ewidth ψ ⊓ B₂.ewidth ψ,
134+
mem_frequencies ψ := by simp [mem_frequencies]
135+
}
138136

139137
noncomputable instance [Finite G] : Bot (BohrSet G) where
140-
bot :=
141-
{ frequencies := ⊤,
142-
ewidth := 0,
143-
mem_frequencies := by simp }
138+
bot.frequencies := ⊤
139+
bot.ewidth := 0
140+
bot.mem_frequencies := by simp
144141

145142
noncomputable instance : Top (BohrSet G) where
146-
top :=
147-
{ frequencies := ⊥,
148-
ewidth := ⊤,
149-
mem_frequencies := by simp }
143+
top.frequencies := ⊥
144+
top.ewidth := ⊤
145+
top.mem_frequencies := by simp
150146

151147
noncomputable instance : DistribLattice (BohrSet G) :=
152-
Function.Injective.distribLattice BohrSet.ewidth
153-
ewidth_injective
154-
(fun _ _ => rfl)
155-
(fun _ _ => rfl)
148+
ewidth_injective.distribLattice BohrSet.ewidth (fun _ _ ↦ rfl) (fun _ _ ↦ rfl)
156149

157150
lemma le_iff_ewidth {B₁ B₂ : BohrSet G} : B₁ ≤ B₂ ↔ ∀ ⦃ψ⦄, B₁.ewidth ψ ≤ B₂.ewidth ψ := Iff.rfl
158151

159152
@[gcongr]
160-
lemma frequencies_anti {B₁ B₂ : BohrSet G} (h : B₁ ≤ B₂) :
161-
B₂.frequencies ⊆ B₁.frequencies := by
153+
lemma frequencies_anti {B₁ B₂ : BohrSet G} (h : B₁ ≤ B₂) : B₂.frequencies ⊆ B₁.frequencies := by
162154
intro ψ hψ
163155
simp only [mem_frequencies] at hψ ⊢
164156
exact (h ψ).trans_lt hψ
165157

166-
lemma frequencies_antitone : Antitone (frequencies : BohrSet G → _) :=
167-
fun _ _ => frequencies_anti
158+
lemma frequencies_antitone : Antitone (frequencies : BohrSet G → _) := fun _ _ ↦ frequencies_anti
168159

169160
lemma le_iff_width {B₁ B₂ : BohrSet G} : B₁ ≤ B₂ ↔
170161
B₂.frequencies ⊆ B₁.frequencies ∧ ∀ ⦃ψ⦄, ψ ∈ B₂.frequencies → B₁.width ψ ≤ B₂.width ψ := by

LeanAPAP/Prereqs/Convolution/Order.lean

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,15 @@ variable [CommSemiring R] [PartialOrder R] [IsOrderedRing R] {f g : G → R}
1313
lemma conv_nonneg (hf : 0 ≤ f) (hg : 0 ≤ g) : 0 ≤ f ∗ g :=
1414
fun _a ↦ sum_nonneg fun _x _ ↦ mul_nonneg (hf _) (hg _)
1515

16+
lemma conv_apply_nonneg (hf : 0 ≤ f) (hg : 0 ≤ g) (a : G) : 0 ≤ (f ∗ g) a := conv_nonneg hf hg _
17+
1618
variable [StarRing R] [StarOrderedRing R]
1719

1820
lemma dconv_nonneg (hf : 0 ≤ f) (hg : 0 ≤ g) : 0 ≤ f ○ g :=
1921
fun _a ↦ sum_nonneg fun _x _ ↦ mul_nonneg (hf _) <| star_nonneg_iff.2 <| hg _
2022

23+
lemma dconv_apply_nonneg (hf : 0 ≤ f) (hg : 0 ≤ g) (a : G) : 0 ≤ (f ○ g) a := dconv_nonneg hf hg _
24+
2125
end OrderedCommSemiring
2226

2327
section StrictOrderedCommSemiring

LeanAPAP/Prereqs/Function/Indicator/Defs.lean

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
import Mathlib.Algebra.BigOperators.GroupWithZero.Finset
21
import Mathlib.Algebra.BigOperators.Pi
2+
import Mathlib.Algebra.Field.Defs
33
import Mathlib.Algebra.Group.Action.Pointwise.Finset
4-
import Mathlib.Algebra.Order.Field.Defs
54
import Mathlib.Algebra.Star.Pi
65
import Mathlib.Data.Fintype.Lattice
76
import Mathlib.Data.Nat.Cast.Order.Ring
@@ -121,10 +120,12 @@ variable [StarRing R]
121120
end CommSemiring
122121

123122
section OrderedSemiring
124-
variable [Semiring R] [PartialOrder R] [IsOrderedRing R] {s : Finset α}
123+
variable [Semiring R] [PartialOrder R] [IsOrderedRing R] {s : Finset α} {a : α}
125124

126125
@[simp] lemma indicate_nonneg : 0 ≤ 𝟭_[R] s := fun a ↦ by rw [indicate_apply]; split_ifs <;> simp
127126

127+
@[simp] lemma indicate_apply_nonneg : 0 ≤ 𝟭_[R] s a := indicate_nonneg _
128+
128129
@[simp] lemma indicate_pos [Nontrivial R] : 0 < 𝟭_[R] s ↔ s.Nonempty := by
129130
simp [indicate_apply, funext_iff, lt_iff_le_and_ne, @eq_comm R 0,
130131
Finset.Nonempty]

LeanAPAP/Prereqs/NewMarcinkiewiczZygmund.lean

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/-
22
Copyright (c) 2023 Yaël Dillies, Bhavik Mehta. All rights reserved.
3-
Released under Apache 2.0 license as described the file LICENSE.
3+
Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Yaël Dillies, Bhavik Mehta
55
-/
66
import Mathlib.Data.Nat.Choose.Multinomial
@@ -28,7 +28,7 @@ can be obtained from this specific one by nesting of Lp norms.
2828
-/
2929

3030
open Finset Fintype Function Nat MeasureTheory ProbabilityTheory Real
31-
open scoped NNReal
31+
open scoped NNReal ENNReal
3232

3333
variable {ι Ω E : Type*} {A : Finset ι} {m n : ℕ} [MeasurableSpace Ω] {μ : Measure Ω}
3434
[IsFiniteMeasure μ] [mE : MeasurableSpace E] [NormedAddCommGroup E] [InnerProductSpace ℝ E]
@@ -42,16 +42,16 @@ noncomputable def marcinkiewiczZygmundSymmConst (p : ℝ≥0) : ℝ := (p / 2) ^
4242

4343
/-- The **Marcinkiewicz-Zygmund inequality** for symmetric random variables, with a slightly better
4444
constant than `marcinkiewicz_zygmund`. -/
45-
theorem marcinkiewicz_zygmund_symmetric
46-
(iIndepFun_X : iIndepFun X μ)
45+
theorem marcinkiewicz_zygmund_symmetric (iIndepFun_X : iIndepFun X μ)
4746
(identDistrib_neg_X : ∀ i, IdentDistrib (X i) (-X i) μ μ)
48-
(MemLp_X : ∀ i ∈ A, MemLp (X i) (2 * m) μ) :
47+
(memLp_X : ∀ i ∈ A, MemLp (X i) (2 * m) μ) :
4948
∫ ω, ‖∑ i ∈ A, X i ω‖ ^ (2 * m) ∂μ ≤
5049
marcinkiewiczZygmundSymmConst (2 * m) * ∫ ω, (∑ i ∈ A, ‖X i ω‖ ^ 2) ^ m ∂μ := by
5150
have : DecidableEq ι := Classical.decEq _
5251
-- Turn the `L^p` assumption on the `X i` into various integrability conditions.
5352
have integrable_prod_norm_X I (hI : I ∈ A ×ˢ A ^^ m) :
54-
Integrable (fun ω ↦ ∏ k, ‖X (I k).1 ω‖ * ‖X (I k).2 ω‖) μ := sorry
53+
Integrable (fun ω ↦ ∏ k, ‖X (I k).1 ω‖ * ‖X (I k).2 ω‖) μ := by
54+
sorry
5555
have integrable_prod_inner_X I (hI : I ∈ A ×ˢ A ^^ m) :
5656
Integrable (fun ω ↦ ∏ k, inner ℝ (X (I k).1 ω) (X (I k).2 ω)) μ := sorry
5757
-- Call a family of indices `i₁, ..., iₙ, j₁, ..., jₙ` *even* if each `i ∈ A` appears an even
@@ -85,7 +85,7 @@ theorem marcinkiewicz_zygmund_symmetric
8585
· simpa [Y, hji] using .refl (identDistrib_neg_X _).aemeasurable_fst
8686
-- To show that `𝔼 ∏ k, ⟨X iₖ, X jₖ⟩ = 0`, we will show
8787
-- `𝔼 ∏ k, ⟨X iₖ, X jₖ⟩ = 𝔼 ∏ k, ⟨Y iₖ, Y jₖ⟩ = -𝔼 ∏ k, ⟨X iₖ, X jₖ⟩`.
88-
rw [← neg_eq_self, ← integral_neg, eq_comm]
88+
rw [← neg_eq_self, ← integral_neg, eq_comm]
8989
calc
9090
-- `𝔼 ∏ k, ⟨X iₖ, X jₖ⟩ = 𝔼 ∏ k, ⟨Y iₖ, Y jₖ⟩` because `𝔼 ∏ k, ⟨X iₖ, X jₖ⟩` and
9191
-- `∏ k, ⟨Y iₖ, Y jₖ⟩` are identically distributed.
@@ -168,10 +168,9 @@ noncomputable def marcinkiewiczZygmundConst (p : ℝ≥0) : ℝ :=
168168
/-- The **Marcinkiewicz-Zygmund inequality** for random variables with zero mean.
169169
170170
For symmetric random variables, `marcinkiewicz_zygmund` provides a slightly better constant. -/
171-
theorem marcinkiewicz_zygmund
172-
(iIndepFun_X : iIndepFun X μ)
171+
theorem marcinkiewicz_zygmund (iIndepFun_X : iIndepFun X μ)
173172
(integral_X : ∀ i, ∫ ω, X i ω ∂μ = 0)
174-
(MemLp_X : ∀ i ∈ A, MemLp (X i) (2 * m) μ) :
173+
(memLp_X : ∀ i ∈ A, MemLp (X i) (2 * m) μ) :
175174
∫ ω, ‖∑ i ∈ A, X i ω‖ ^ (2 * m) ∂μ ≤
176175
marcinkiewiczZygmundConst (2 * m) * ∫ ω, (∑ i ∈ A, ‖X i ω‖ ^ 2) ^ m ∂μ := by
177176
let X₁ i : Ω × Ω → E := X i ∘ Prod.fst

0 commit comments

Comments
 (0)