Skip to content

Commit 0010cb5

Browse files
committed
Bump mathlib to v4.18.0
1 parent b29244e commit 0010cb5

28 files changed

+277
-259
lines changed

PFR/Endgame.lean

+8-9
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ lemma I₃_eq [IsProbabilityMeasure (ℙ : Measure Ω)] : I[V : W | S] = I₂ :=
120120
have hS : Measurable S := by fun_prop
121121
rw [condMutualInfo_eq hV hW hS, condMutualInfo_eq hU hW hS, chain_rule'' ℙ hU hS,
122122
chain_rule'' ℙ hV hS, chain_rule'' ℙ hW hS, chain_rule'' ℙ _ hS, chain_rule'' ℙ _ hS,
123-
IdentDistrib.entropy_eq hUVS, IdentDistrib.entropy_eq hUVWS]
123+
hUVS.entropy_congr, hUVWS.entropy_congr]
124124
· exact Measurable.prod hU hW
125125
· exact Measurable.prod hV hW
126126

@@ -153,7 +153,7 @@ local notation3:max "c[" A " | " B " # " C " | " D "]" =>
153153

154154
include h_indep h₁ h₂ in
155155
lemma hU [IsProbabilityMeasure (ℙ : Measure Ω)] : H[U] = H[X₁' + X₂'] :=
156-
IdentDistrib.entropy_eq (h₁.add h₂
156+
IdentDistrib.entropy_congr (h₁.add h₂
157157
(h_indep.indepFun (show (0 : Fin 4) ≠ 1 by norm_cast))
158158
(h_indep.indepFun (show (2 : Fin 4) ≠ 3 by norm_cast)))
159159

@@ -165,7 +165,7 @@ lemma independenceCondition1 :
165165

166166
include h₁ h₂ h_indep in
167167
lemma hV [IsProbabilityMeasure (ℙ : Measure Ω)] : H[V] = H[X₁ + X₂'] :=
168-
IdentDistrib.entropy_eq (h₁.symm.add h₂
168+
IdentDistrib.entropy_congr (h₁.symm.add h₂
169169
(h_indep.indepFun (show (2 : Fin 4) ≠ 1 by norm_cast))
170170
(h_indep.indepFun (show (0 : Fin 4) ≠ 3 by norm_cast)))
171171

@@ -240,9 +240,8 @@ lemma sum_dist_diff_le [IsProbabilityMeasure (ℙ : Measure Ω)] [Module (ZMod 2
240240
(independenceCondition3 hX₁ hX₂ hX₁' hX₂' h_indep)
241241

242242
have aux1 : H[S] + H[V] - H[X₁'] - H[X₁ + X₂'] = H[S ; ℙ] - H[X₁ ; ℙ] := by
243-
rw [hV X₁ X₂ X₁' X₂' h₁ h₂ h_indep, h₁.entropy_eq]; ring
244-
rw [← ProbabilityTheory.IdentDistrib.rdist_eq (IdentDistrib.refl p.hmeas1.aemeasurable) h₁,
245-
V_add_eq, aux1] at aux2
243+
rw [hV X₁ X₂ X₁' X₂' h₁ h₂ h_indep, h₁.entropy_congr]; ring
244+
rw [← h₁.rdist_congr_right p.hmeas1.aemeasurable, V_add_eq, aux1] at aux2
246245
linarith [aux2]
247246

248247
have ineq4 : d[X₀₂ # V | S] - d[X₀₂ # X₂] ≤ (H[S ; ℙ] - H[X₂ ; ℙ])/2 := by
@@ -341,7 +340,7 @@ lemma cond_c_eq_integral [IsProbabilityMeasure (ℙ : Measure Ω')]
341340
rw [← condRuzsaDist'_eq_integral _ hY hZ, ← condRuzsaDist'_eq_integral _ hY hZ, integral_const,
342341
integral_const]
343342
have : IsProbabilityMeasure (Measure.map Z ℙ) := isProbabilityMeasure_map hZ.aemeasurable
344-
simp only [measure_univ, ENNReal.one_toReal, smul_eq_mul, one_mul]
343+
simp only [measure_univ, ENNReal.toReal_one, smul_eq_mul, one_mul]
345344

346345
variable {T₁ T₂ T₃ : Ω' → G} (hT : T₁+T₂+T₃ = 0)
347346
variable (hT₁ : Measurable T₁) (hT₂ : Measurable T₂) (hT₃ : Measurable T₃)
@@ -391,7 +390,7 @@ lemma construct_good_prelim :
391390
have h2 : p.η * sum2 ≤ p.η * (d[p.X₀₁ # T₁] - d[p.X₀₁ # X₁] + I[T₁ : T₃] / 2) := by
392391
have : sum2 = d[p.X₀₁ # T₁ | T₃] - d[p.X₀₁ # X₁] := by
393392
simp only [integral_sub .of_finite .of_finite, integral_const, measure_univ,
394-
ENNReal.one_toReal, smul_eq_mul, one_mul, sub_left_inj, sum2]
393+
ENNReal.toReal_one, smul_eq_mul, one_mul, sub_left_inj, sum2]
395394
simp_rw [condRuzsaDist'_eq_sum hT₁ hT₃,
396395
integral_eq_setIntegral (FiniteRange.null_of_compl _ T₃), integral_finset _ _ IntegrableOn.finset,
397396
Measure.map_apply hT₃ (.singleton _), smul_eq_mul]
@@ -402,7 +401,7 @@ lemma construct_good_prelim :
402401
have h3 : p.η * sum3 ≤ p.η * (d[p.X₀₂ # T₂] - d[p.X₀₂ # X₂] + I[T₂ : T₃] / 2) := by
403402
have : sum3 = d[p.X₀₂ # T₂ | T₃] - d[p.X₀₂ # X₂] := by
404403
simp only [integral_sub .of_finite .of_finite, integral_const, measure_univ,
405-
ENNReal.one_toReal, smul_eq_mul, one_mul, sub_left_inj, sum3]
404+
ENNReal.toReal_one, smul_eq_mul, one_mul, sub_left_inj, sum3]
406405
simp_rw [condRuzsaDist'_eq_sum hT₂ hT₃,
407406
integral_eq_setIntegral (FiniteRange.null_of_compl _ T₃), integral_finset _ _ IntegrableOn.finset,
408407
Measure.map_apply hT₃ (.singleton _), smul_eq_mul]

PFR/EntropyPFR.lean

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ theorem tau_strictly_decreases (h_min : tau_minimizes p X₁ X₂) (hpη : p.η
3434
d[X₁ # X₂] = 0 := by
3535
let ⟨A, mA, μ, Y₁, Y₂, Y₁', Y₂', hμ, h_indep, hY₁, hY₂, hY₁', hY₂', h_id1, h_id2, h_id1', h_id2'⟩
3636
:= independent_copies4_nondep hX₁ hX₂ hX₁ hX₂ ℙ ℙ ℙ ℙ
37-
rw [← h_id1.rdist_eq h_id2]
37+
rw [← h_id1.rdist_congr h_id2]
3838
let _ : MeasureSpace A := ⟨μ⟩
3939
have : IsProbabilityMeasure (ℙ : Measure A) := hμ
4040
rw [← h_id1.tau_minimizes p h_id2] at h_min

PFR/Examples.lean

+2-1
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,8 @@ variable (X : Ω → G) (hX : Measurable X) (Y : Ω → G) (hY : Measurable Y) (
167167
example (h : IndepFun X Y) : d[X # Y] = H[X-Y] - H[X]/2 - H[Y]/2 := h.rdist_eq hX hY
168168

169169
/-- `d[X # Y]` depends only on the distribution of `X` and `Y`.-/
170-
example (h1 : IdentDistrib X X') (h2 : IdentDistrib Y Y') : d[X # Y] = d[X' # Y'] := h1.rdist_eq h2
170+
example (h1 : IdentDistrib X X') (h2 : IdentDistrib Y Y') : d[X # Y] = d[X' # Y'] :=
171+
h1.rdist_congr h2
171172

172173
/-- The Ruzsa triangle inequality. -/
173174
example : d[X # Z] ≤ d[X # Y] + d[Y # Z] := rdist_triangle hX hY hZ

PFR/Fibring.lean

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ lemma rdist_le_sum_fibre {Z_1 : Ω → H} {Z_2 : Ω' → H}
6767
have hφ : Measurable (fun x ↦ (x, π x)) := .of_discrete
6868
have1 : IdentDistrib (⟨Z_1, π ∘ Z_1⟩) (⟨W_1, π ∘ W_1⟩) μ ν := hi1.symm.comp hφ
6969
have2 : IdentDistrib (⟨Z_2, π ∘ Z_2⟩) (⟨W_2, π ∘ W_2⟩) μ' ν := hi2.symm.comp hφ
70-
rw [← hi1.rdist_eq hi2, ← (hi1.comp hπ).rdist_eq (hi2.comp hπ),
70+
rw [← hi1.rdist_congr hi2, ← (hi1.comp hπ).rdist_congr (hi2.comp hπ),
7171
rdist_of_indep_eq_sum_fibre π hi m1 m2,
7272
condRuzsaDist_of_copy h1 (hπ.comp h1) h2 (hπ.comp h2) m1 (hπ.comp m1) m2 (hπ.comp m2) hπ12]
7373
exact le_add_of_nonneg_right (condMutualInfo_nonneg (by fun_prop) (by fun_prop))

PFR/FirstEstimate.lean

+12-13
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ lemma rdist_add_rdist_add_condMutual_eq [Module (ZMod 2) G] :
6262
rw [h0, h1, h2, h3] at h
6363
have heq : d[X₂' # X₁'] = k := by
6464
rw [rdist_symm]
65-
apply h₁.symm.rdist_eq h₂.symm
65+
apply h₁.symm.rdist_congr h₂.symm
6666
rw [heq] at h
6767
convert h.symm using 1
6868
· congr 2 <;> abel
@@ -95,8 +95,8 @@ lemma diff_rdist_le_1 [IsProbabilityMeasure (ℙ : Measure Ω₀₁)] :
9595
d[p.X₀₁ # X₁ + X₂'] - d[p.X₀₁ # X₁] ≤ k/2 + H[X₂]/4 - H[X₁]/4 := by
9696
have h : IndepFun X₁ X₂' := by simpa using h_indep.indepFun (show (0 : Fin 4) ≠ 2 by decide)
9797
convert condRuzsaDist_diff_le' ℙ p.hmeas1 hX₁ hX₂' h using 4
98-
· exact (IdentDistrib.refl hX₁.aemeasurable).rdist_eq h₂
99-
· exact h₂.entropy_eq
98+
· exact h₂.rdist_congr_right hX₁.aemeasurable
99+
· exact h₂.entropy_congr
100100

101101
include hX₁' hX₂ h_indep h₁ in
102102
/-- $$ d[X^0_2;X_2+\tilde X_1] - d[X^0_2; X_2] \leq \tfrac{1}{2} k + \tfrac{1}{4} \mathbb{H}[X_1] - \tfrac{1}{4} \mathbb{H}[X_2].$$ -/
@@ -105,8 +105,8 @@ lemma diff_rdist_le_2 [IsProbabilityMeasure (ℙ : Measure Ω₀₂)] :
105105
have h : IndepFun X₂ X₁' := by simpa using h_indep.indepFun (show (1 : Fin 4) ≠ 3 by decide)
106106
convert condRuzsaDist_diff_le' ℙ p.hmeas2 hX₂ hX₁' h using 4
107107
· rw [rdist_symm]
108-
exact (IdentDistrib.refl hX₂.aemeasurable).rdist_eq h₁
109-
· exact h₁.entropy_eq
108+
exact h₁.rdist_congr_right hX₂.aemeasurable
109+
· exact h₁.entropy_congr
110110

111111
include h_indep hX₁ hX₂' h₂ in
112112
/-- $$ d[X_1^0;X_1|X_1+\tilde X_2] - d[X_1^0;X_1] \leq
@@ -115,8 +115,8 @@ lemma diff_rdist_le_3 [IsProbabilityMeasure (ℙ : Measure Ω₀₁)] :
115115
d[p.X₀₁ # X₁ | X₁ + X₂'] - d[p.X₀₁ # X₁] ≤ k/2 + H[X₁]/4 - H[X₂]/4 := by
116116
have h : IndepFun X₁ X₂' := by simpa using h_indep.indepFun (show (0 : Fin 4) ≠ 2 by decide)
117117
convert condRuzsaDist_diff_le''' ℙ p.hmeas1 hX₁ hX₂' h using 3
118-
· rw [(IdentDistrib.refl hX₁.aemeasurable).rdist_eq h₂]
119-
· apply h₂.entropy_eq
118+
· rw [h₂.rdist_congr_right hX₁.aemeasurable]
119+
· apply h₂.entropy_congr
120120

121121
include h_indep hX₂ hX₁' h₁
122122
/-- $$ d[X_2^0; X_2|X_2+\tilde X_1] - d[X_2^0; X_2] \leq
@@ -125,8 +125,8 @@ lemma diff_rdist_le_4 [IsProbabilityMeasure (ℙ : Measure Ω₀₂)] :
125125
d[p.X₀₂ # X₂ | X₂ + X₁'] - d[p.X₀₂ # X₂] ≤ k/2 + H[X₂]/4 - H[X₁]/4 := by
126126
have h : IndepFun X₂ X₁' := by simpa using h_indep.indepFun (show (1 : Fin 4) ≠ 3 by decide)
127127
convert condRuzsaDist_diff_le''' ℙ p.hmeas2 hX₂ hX₁' h using 3
128-
· rw [rdist_symm, (IdentDistrib.refl hX₂.aemeasurable).rdist_eq h₁]
129-
· apply h₁.entropy_eq
128+
· rw [rdist_symm, h₁.rdist_congr_right hX₂.aemeasurable]
129+
· apply h₁.entropy_congr
130130

131131
include hX₁ hX₂ hX₁' hX₂' h₁ h₂ h_min in
132132
/-- We have $I_1 \leq 2 \eta k$ -/
@@ -188,7 +188,7 @@ lemma ent_ofsum_le
188188
have HX₂_eq : H[X₂] = H[X₂'] :=
189189
congr_arg (fun (μ : Measure G) ↦ measureEntropy (μ := μ)) h₂.map_eq
190190
have k_eq : k = H[X₁ - X₂'] - H[X₁] / 2 - H[X₂'] / 2 := by
191-
have k_eq_aux : k = d[X₁ # X₂'] := (IdentDistrib.refl hX₁.aemeasurable).rdist_eq h₂
191+
have k_eq_aux : k = d[X₁ # X₂'] := h₂.rdist_congr_right hX₁.aemeasurable
192192
rw [k_eq_aux]
193193
exact (h_indep.indepFun (show (0 : Fin 4) ≠ 2 by decide)).rdist_eq hX₁ hX₂'
194194
rw [k_eq, ← ZModModule.sub_eq_add, ← HX₂_eq]
@@ -197,10 +197,9 @@ lemma ent_ofsum_le
197197
have HX₁_eq : H[X₁] = H[X₁'] :=
198198
congr_arg (fun (μ : Measure G) ↦ measureEntropy (μ := μ)) h₁.map_eq
199199
have k_eq' : k = H[X₁' - X₂] - H[X₁'] / 2 - H[X₂] / 2 := by
200-
have k_eq_aux : k = d[X₁' # X₂] :=
201-
IdentDistrib.rdist_eq h₁ (IdentDistrib.refl hX₂.aemeasurable)
200+
have k_eq_aux : k = d[X₁' # X₂] := h₁.rdist_congr_left hX₂.aemeasurable
202201
rw [k_eq_aux]
203-
exact IndepFun.rdist_eq (h_indep.indepFun (show (3 : Fin 4) ≠ 1 by decide)) hX₁' hX₂
202+
exact (h_indep.indepFun (show (3 : Fin 4) ≠ 1 by decide)).rdist_eq hX₁' hX₂
204203
rw [add_comm X₂ X₁', k_eq', ← ZModModule.sub_eq_add, ← HX₁_eq]
205204
ring
206205
calc H[X₁ + X₂ + X₁' + X₂']

PFR/ForMathlib/CompactProb.lean

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ noncomputable def probabilityMeasureEquivStdSimplex [Fintype X] [MeasurableSingl
6767
measure_univ, smul_eq_mul, mul_one]
6868
rw [← ENNReal.toReal_eq_toReal (by simp [ENNReal.sum_eq_top]) ENNReal.one_ne_top,
6969
ENNReal.toReal_sum (by simp)]
70-
simp_rw [ENNReal.toReal_ofReal (p.2.1 _), p.2.2, ENNReal.one_toReal]
70+
simp_rw [ENNReal.toReal_ofReal (p.2.1 _), p.2.2, ENNReal.toReal_one]
7171
left_inv := by
7272
intro μ
7373
ext s _hs

PFR/ForMathlib/Entropy/Basic.lean

+7-7
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ lemma entropy_def (X : Ω → S) (μ : Measure Ω) : entropy X μ = Hm[μ.map X]
5555
lemma entropy_eq_kernel_entropy (X : Ω → S) (μ : Measure Ω) :
5656
H[X ; μ] = Hk[Kernel.const Unit (μ.map X), Measure.dirac ()] := by
5757
simp only [Kernel.entropy, Kernel.const_apply, integral_const, MeasurableSpace.measurableSet_top,
58-
Measure.dirac_apply', Set.mem_univ, Set.indicator_of_mem, Pi.one_apply, ENNReal.one_toReal,
58+
Measure.dirac_apply', Set.mem_univ, Set.indicator_of_mem, Pi.one_apply, ENNReal.toReal_one,
5959
smul_eq_mul, one_mul]
6060
rfl
6161

@@ -71,7 +71,7 @@ lemma entropy_congr {X X' : Ω → S} (h : X =ᵐ[μ] X') : H[X ; μ] = H[X' ;
7171
lemma entropy_nonneg (X : Ω → S) (μ : Measure Ω) : 0 ≤ entropy X μ := measureEntropy_nonneg _
7272

7373
/-- Two variables that have the same distribution, have the same entropy. -/
74-
lemma IdentDistrib.entropy_eq {Ω' : Type*} [MeasurableSpace Ω'] {μ' : Measure Ω'} {X' : Ω' → S}
74+
lemma IdentDistrib.entropy_congr {Ω' : Type*} [MeasurableSpace Ω'] {μ' : Measure Ω'} {X' : Ω' → S}
7575
(h : IdentDistrib X X' μ μ') : H[X ; μ] = H[X' ; μ'] := by
7676
simp [entropy_def, h.map_eq]
7777

@@ -113,7 +113,7 @@ lemma entropy_eq_sum_finset {μ : Measure Ω} [IsZeroOrProbabilityMeasure μ]
113113
convert tsum_eq_sum ?_
114114
intro s hs
115115
convert negMulLog_zero
116-
convert ENNReal.zero_toReal
116+
convert ENNReal.toReal_zero
117117
convert measure_mono_null ?_ hA
118118
simp [hs]
119119

@@ -190,7 +190,7 @@ lemma IsUniform.entropy_eq [DiscreteMeasurableSpace S] {H : Finset S} {X : Ω
190190
rw [Measure.map_apply hX' (by measurability)]
191191
exact hX.measure_preimage_compl
192192

193-
/-- Variant of `IsUniform.entropy_eq` where `H` is a finite `Set` rather than `Finset`. -/
193+
/-- Variant of `IsUniform.entropy_congr` where `H` is a finite `Set` rather than `Finset`. -/
194194
lemma IsUniform.entropy_eq' [DiscreteMeasurableSpace S]
195195
{H : Set S} (hH : H.Finite) {X : Ω → S} {μ : Measure Ω} [IsProbabilityMeasure μ]
196196
(hX : IsUniform H X μ) (hX' : Measurable X) : H[X ; μ] = log (Nat.card H) := by
@@ -271,7 +271,7 @@ lemma prob_ge_exp_neg_entropy [MeasurableSingletonClass S] (X : Ω → S) (μ :
271271
ENNReal.mul_inv_cancel (ne_zero_of_lt h_norm_pos) (LT.lt.ne_top h_norm_finite)
272272
have h_pdf1 : (∑ s ∈ A, pdf s) = 1 := by
273273
rw [← ENNReal.toReal_sum (fun s _ ↦ h_pdf_finite s), ← Finset.mul_sum,
274-
Finset.sum_measure_singleton, mul_comm, h_norm_cancel, ENNReal.one_toReal]
274+
Finset.sum_measure_singleton, mul_comm, h_norm_cancel, ENNReal.toReal_one]
275275

276276
let ⟨s_max, hs, h_min⟩ := Finset.exists_min_image S_nonzero neg_log_pdf h_nonempty
277277
have h_pdf_s_max_pos : 0 < pdf s_max := by
@@ -602,7 +602,7 @@ lemma IdentDistrib.condEntropy_eq {Ω' : Type*} [MeasurableSpace Ω'] {X : Ω
602602
[FiniteRange Y'] :
603603
H[X | Y ; μ] = H[X' | Y' ; μ'] := by
604604
have : IdentDistrib Y Y' μ μ' := h.comp measurable_snd
605-
rw [chain_rule'' _ hX hY, chain_rule'' _ hX' hY', h.entropy_eq, this.entropy_eq]
605+
rw [chain_rule'' _ hX hY, chain_rule'' _ hX' hY', h.entropy_congr, this.entropy_congr]
606606

607607
variable [Countable U] [MeasurableSingletonClass U]
608608

@@ -704,7 +704,7 @@ lemma IdentDistrib.mutualInfo_eq {Ω' : Type*} [MeasurableSpace Ω'] {μ' : Meas
704704
I[X : Y ; μ] = I[X' : Y' ; μ'] := by
705705
have hX : IdentDistrib X X' μ μ' := hXY.comp measurable_fst
706706
have hY : IdentDistrib Y Y' μ μ' := hXY.comp measurable_snd
707-
simp_rw [mutualInfo_def,hX.entropy_eq,hY.entropy_eq,hXY.entropy_eq]
707+
simp_rw [mutualInfo_def,hX.entropy_congr,hY.entropy_congr,hXY.entropy_congr]
708708

709709
/-- The conditional mutual information `I[X : Y| Z]` is the mutual information of `X| Z=z` and
710710
`Y| Z=z`, integrated over `z`. -/

PFR/ForMathlib/Entropy/Kernel/Basic.lean

+1-1
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ lemma entropy_prodMkRight [Countable S] [MeasurableSingletonClass S] [Countable
358358
Hk[prodMkRight S η, μ ⊗ₘ κ] = Hk[η, μ] := by
359359
simp_rw [entropy, prodMkRight_apply]
360360
rw [Measure.integral_compProd]
361-
· simp only [MeasureTheory.integral_const, measure_univ, ENNReal.one_toReal, smul_eq_mul, one_mul]
361+
· simp only [MeasureTheory.integral_const, measure_univ, ENNReal.toReal_one, smul_eq_mul, one_mul]
362362
· have := finiteSupport_of_compProd hκ (μ := μ)
363363
exact integrable_of_finiteSupport (μ ⊗ₘ κ)
364364

PFR/ForMathlib/Entropy/Kernel/RuzsaDist.lean

+2-2
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ lemma rdist_symm {κ : Kernel T G} {η : Kernel T' G} [IsFiniteKernel κ] [IsFin
105105
[FiniteSupport μ] [FiniteSupport ν] :
106106
dk[κ ; μ # const T' (Measure.dirac 0) ; ν] = Hk[κ, μ] / 2 := by
107107
rw [rdist_eq']
108-
simp only [entropy_const, measure_univ, ENNReal.one_toReal, measureEntropy_dirac, mul_zero,
108+
simp only [entropy_const, measure_univ, ENNReal.toReal_one, measureEntropy_dirac, mul_zero,
109109
zero_div, sub_zero]
110110
rw [sub_eq_iff_eq_add]
111111
ring_nf
@@ -340,7 +340,7 @@ lemma rdist_triangle_aux2 (η : Kernel T' G) (ξ : Kernel T'' G)
340340
simp
341341
simp_rw [this, ← Finset.sum_mul, Finset.sum_toReal_measure_singleton,
342342
measure_of_measure_compl_eq_zero (measure_compl_support μ),
343-
measure_univ, ENNReal.one_toReal, one_mul, ← mul_assoc, mul_comm _ (μ'' {z}).toReal, mul_assoc,
343+
measure_univ, ENNReal.toReal_one, one_mul, ← mul_assoc, mul_comm _ (μ'' {z}).toReal, mul_assoc,
344344
← Finset.mul_sum]
345345
congr with y
346346
congr 2 with s _hs

0 commit comments

Comments
 (0)