Skip to content

Commit 14041f0

Browse files
committed
Bump mathlib
1 parent 43c4fcd commit 14041f0

22 files changed

+250
-256
lines changed

PFR.lean

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import PFR.Kullback
3737
import PFR.Main
3838
import PFR.Mathlib.Algebra.Group.Action.Pointwise.Set.Basic
3939
import PFR.Mathlib.Analysis.SpecialFunctions.NegMulLog
40+
import PFR.Mathlib.Data.Prod.Basic
4041
import PFR.Mathlib.LinearAlgebra.Basis.VectorSpace
4142
import PFR.Mathlib.LinearAlgebra.Dimension.Finrank
4243
import PFR.Mathlib.LinearAlgebra.Dimension.FreeAndStrongRankCondition

PFR/Fibring.lean

+6-6
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,14 @@ lemma rdist_of_indep_eq_sum_fibre {Z_1 Z_2 : Ω → H} (h : IndepFun Z_1 Z_2 μ)
4646
have m0 : Measurable (fun x ↦ (x, π x)) := .of_discrete
4747
have h' : IndepFun (⟨Z_1, π ∘ Z_1⟩) (⟨Z_2, π ∘ Z_2⟩) μ := h.comp m0 m0
4848
have m1 : Measurable (Z_1 - Z_2) := h1.sub h2
49-
have m2 : Measurable (⟨↑π ∘ Z_1, ↑π ∘ Z_2⟩) := (hπ.comp h1).prod_mk (hπ.comp h2)
49+
have m2 : Measurable (⟨↑π ∘ Z_1, ↑π ∘ Z_2⟩) := (hπ.comp h1).prodMk (hπ.comp h2)
5050
have m3 : Measurable (↑π ∘ (Z_1 - Z_2)) := hπ.comp m1
5151
have entroplem : H[Z_1 - Z_2|⟨⟨↑π ∘ Z_1, ↑π ∘ Z_2⟩, ↑π ∘ (Z_1 - Z_2)⟩; μ]
5252
= H[Z_1 - Z_2|⟨↑π ∘ Z_1, ↑π ∘ Z_2⟩; μ] := by
5353
rw [map_comp_sub π]
5454
let f : H' × H' → (H' × H') × H' := fun (x,y) ↦ ((x,y), x - y)
5555
have hf : Injective f := fun _ _ h ↦ (Prod.ext_iff.1 h).1
56-
have mf : Measurable f := measurable_id.prod_mk measurable_sub
56+
have mf : Measurable f := measurable_id.prodMk measurable_sub
5757
refine condEntropy_of_injective' μ m1 m2 f hf (mf.comp m2)
5858
rw [step1, condMutualInfo_eq' m1 m2 m3, entroplem,
5959
condRuzsaDist_of_indep h1 (hπ.comp h1) h2 (hπ.comp h2) μ h']
@@ -98,7 +98,7 @@ lemma sum_of_rdist_eq_step_condRuzsaDist {Y : Fin 4 → Ω → G} (h_indep : iIn
9898
let f : (G × G) → (G × G) := fun (g, h) ↦ (g, g - h)
9999
have hf : Measurable f := .of_discrete
100100
have h_indep' : IndepFun (⟨Y' 0, Y' 2⟩) (⟨Y' 1, Y' 3⟩) μ :=
101-
(h_indep.indepFun_prod_mk_prod_mk h_meas 0 2 1 3
101+
(h_indep.indepFun_prodMk_prodMk h_meas 0 2 1 3
102102
(by decide) (by decide) (by decide) (by decide)).comp hf hf
103103
have h_meas' : ∀ i, Measurable (Y' i)
104104
| 0 => h_meas 0
@@ -160,11 +160,11 @@ lemma sum_of_rdist_eq (Y : Fin 4 → Ω → G) (h_indep : iIndepFun Y μ)
160160
let Z_1 : Ω → G × G := ⟨Y 0, Y 2
161161
let Z_2 : Ω → G × G := ⟨Y 1, Y 3
162162
have hZ : Z_1 - Z_2 = ⟨Y 0 - Y 1, Y 2 - Y 3⟩ := rfl
163-
have m1 : Measurable Z_1 := (h_meas 0).prod_mk (h_meas 2)
164-
have m2 : Measurable Z_2 := (h_meas 1).prod_mk (h_meas 3)
163+
have m1 : Measurable Z_1 := (h_meas 0).prodMk (h_meas 2)
164+
have m2 : Measurable Z_2 := (h_meas 1).prodMk (h_meas 3)
165165
have h_indep_0 : IndepFun (Y 0) (Y 1) μ := h_indep.indepFun (by decide)
166166
have h_indep_2 : IndepFun (Y 2) (Y 3) μ := h_indep.indepFun (by decide)
167-
have h_indep_Z : IndepFun Z_1 Z_2 μ := h_indep.indepFun_prod_mk_prod_mk h_meas
167+
have h_indep_Z : IndepFun Z_1 Z_2 μ := h_indep.indepFun_prodMk_prodMk h_meas
168168
0 2 1 3 (by decide) (by decide) (by decide) (by decide)
169169
have h_indep_sub : IndepFun (Y 0 - Y 1) (Y 2 - Y 3) μ :=
170170
h_indep.indepFun_sub_sub h_meas 0 1 2 3 (by decide) (by decide) (by decide) (by decide)

PFR/ForMathlib/ConditionalIndependence.lean

+10-10
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ lemma condIndep_copies (X : Ω → α) (Y : Ω → β) (hX : Measurable X) (hY :
144144
simp [this]
145145
exact hY $ .singleton y
146146
have h3 (y : β) : IdentDistrib (fun ω ↦ (X ω, y)) (⟨X, Y⟩) (μ[|Y ← y]) (μ[|Y ← y]) := by
147-
apply IdentDistrib.of_ae_eq (hX.prod_mk measurable_const).aemeasurable
147+
apply IdentDistrib.of_ae_eq (hX.prodMk measurable_const).aemeasurable
148148
apply Filter.eventuallyEq_of_mem (h3' y)
149149
intro ω; simp only [mem_setOf_eq, Prod.mk.injEq, true_and]; exact fun a ↦ id a.symm
150150
have h4 (y : β) : { ω : (α × α) × β| ω.2 = y } ∈ ae (m y) := by
@@ -233,28 +233,28 @@ lemma condIndep_copies (X : Ω → α) (Y : Ω → β) (hX : Measurable X) (hY :
233233
· exact (measurable_fst.comp measurable_fst).aemeasurable
234234
exact (measurable_snd.comp measurable_fst).aemeasurable
235235
· rw [← sum_meas_smul_cond_fiber' hY μ]
236-
refine identDistrib_of_sum _ ((measurable_fst.comp measurable_fst).prod_mk measurable_snd) (hX.prod_mk hY) ?_
236+
refine identDistrib_of_sum _ ((measurable_fst.comp measurable_fst).prodMk measurable_snd) (hX.prodMk hY) ?_
237237
intro y hy
238238
have h1 : IdentDistrib (fun ω ↦ (ω.1.1, ω.2)) (fun ω ↦ (ω.1.1, y)) (m y) (m y) := by
239-
apply IdentDistrib.of_ae_eq ((measurable_fst.comp measurable_fst).prod_mk measurable_snd).aemeasurable
239+
apply IdentDistrib.of_ae_eq ((measurable_fst.comp measurable_fst).prodMk measurable_snd).aemeasurable
240240
apply Filter.eventuallyEq_of_mem (h4 y)
241241
intro _; simp
242242
have h2 : IdentDistrib (fun ω ↦ (ω.1.1, y)) (fun ω ↦ (X ω, y)) (m y) (μ[|Y ← y]) := by
243-
apply IdentDistrib.comp _ measurable_prod_mk_right
243+
apply IdentDistrib.comp _ measurable_prodMk_right
244244
apply (identDistrib_comp_fst measurable_fst _ _).trans
245245
have : IsProbabilityMeasure ((μ[|Y ← y]).map X) := h5 hy
246246
apply (identDistrib_comp_fst measurable_id _ _).trans
247247
apply identDistrib_map hX measurable_id
248248
exact (h1.trans h2).trans (h3 y)
249249
rw [← sum_meas_smul_cond_fiber' hY μ]
250-
apply identDistrib_of_sum _ ((measurable_snd.comp measurable_fst).prod_mk measurable_snd) (hX.prod_mk hY)
250+
apply identDistrib_of_sum _ ((measurable_snd.comp measurable_fst).prodMk measurable_snd) (hX.prodMk hY)
251251
intro y hy
252252
have h1 : IdentDistrib (fun ω ↦ (ω.1.2, ω.2)) (fun ω ↦ (ω.1.2, y)) (m y) (m y) := by
253-
apply IdentDistrib.of_ae_eq ((measurable_snd.comp measurable_fst).prod_mk measurable_snd).aemeasurable
253+
apply IdentDistrib.of_ae_eq ((measurable_snd.comp measurable_fst).prodMk measurable_snd).aemeasurable
254254
apply Filter.eventuallyEq_of_mem (h4 y)
255255
intro _; simp
256256
have h2 : IdentDistrib (fun ω ↦ (ω.1.2, y)) (fun ω ↦ (X ω, y)) (m y) (μ[|Y ← y]) := by
257-
apply IdentDistrib.comp _ measurable_prod_mk_right
257+
apply IdentDistrib.comp _ measurable_prodMk_right
258258
apply (identDistrib_comp_fst measurable_snd _ _).trans
259259
have : IsProbabilityMeasure ((μ[|Y ← y]).map X) := h5 hy
260260
exact (identDistrib_comp_snd measurable_id _ _).trans (identDistrib_map hX measurable_id _)
@@ -272,7 +272,7 @@ lemma condIndep_copies' (X : Ω → α) (Y : Ω → β) (hX : Measurable X) (hY
272272
condIndep_copies X Y hX hY μ
273273
let i := Subtype.val (p := fun ω ↦ p (X₁ ω) (Y' ω) ∧ p (X₂ ω) (Y' ω))
274274
have hi : MeasurableEmbedding i := MeasurableEmbedding.subtype_coe
275-
((hp.comp $ hX₁.prod_mk hY').and $ hp.comp $ hX₂.prod_mk hY').setOf
275+
((hp.comp $ hX₁.prodMk hY').and $ hp.comp $ hX₂.prodMk hY').setOf
276276
have hi' : ∀ᵐ ω ∂ν, ω ∈ range i := by
277277
simp only [i, mem_setOf_eq, Subtype.range_coe_subtype, Filter.eventually_and]
278278
exact ⟨hXY₁.symm.ae_snd (p := uncurry p) hp.setOf hp',
@@ -282,7 +282,7 @@ lemma condIndep_copies' (X : Ω → α) (Y : Ω → β) (hX : Measurable X) (hY
282282
hY'.comp measurable_subtype_coe, ?_, ?_, ?_, fun ω ↦ ω.2.1, fun ω ↦ ω.2.2
283283
· exact hi.isProbabilityMeasure_comap hi'
284284
· exact hXY.comp_right hi hi' hX₁ hX₂ hY'
285-
· exact hXY₁.comp_left hi hi' $ hX₁.prod_mk hY'
286-
· exact hXY₂.comp_left hi hi' $ hX₂.prod_mk hY'
285+
· exact hXY₁.comp_left hi hi' $ hX₁.prodMk hY'
286+
· exact hXY₂.comp_left hi hi' $ hX₂.prodMk hY'
287287

288288
end copy

PFR/ForMathlib/Entropy/Basic.lean

+23-23
Original file line numberDiff line numberDiff line change
@@ -347,13 +347,13 @@ variable [Countable T]
347347
lemma entropy_comm (hX : Measurable X) (hY : Measurable Y) (μ : Measure Ω) :
348348
H[⟨X, Y⟩; μ] = H[⟨Y, X⟩ ; μ] := by
349349
change H[Prod.swap ∘ ⟨Y, X⟩ ; μ] = H[⟨Y, X⟩ ; μ]
350-
exact entropy_comp_of_injective μ (hY.prod_mk hX) Prod.swap Prod.swap_injective
350+
exact entropy_comp_of_injective μ (hY.prodMk hX) Prod.swap Prod.swap_injective
351351

352352
/-- `H[(X, Y), Z] = H[X, (Y, Z)]`. -/
353353
lemma entropy_assoc (hX : Measurable X) (hY : Measurable Y) (hZ : Measurable Z) (μ : Measure Ω) :
354354
H[⟨X, ⟨Y, Z⟩⟩ ; μ] = H[⟨⟨X, Y⟩, Z⟩ ; μ] := by
355355
change H[MeasurableEquiv.prodAssoc ∘ ⟨⟨X, Y⟩, Z⟩ ; μ] = H[⟨⟨X, Y⟩, Z⟩ ; μ]
356-
exact entropy_comp_of_injective μ ((hX.prod_mk hY).prod_mk hZ) _ $ Equiv.injective _
356+
exact entropy_comp_of_injective μ ((hX.prodMk hY).prodMk hZ) _ $ Equiv.injective _
357357

358358
end entropy
359359

@@ -417,7 +417,7 @@ lemma condEntropy_two_eq_kernel_entropy (hX : Measurable X) (hY : Measurable Y)
417417
← Kernel.entropy_congr (swap_condDistrib_ae_eq hY hX hZ μ)]
418418
have : μ.map (fun ω ↦ (Z ω, Y ω)) = (μ.map (fun ω ↦ (Y ω, Z ω))).comap Prod.swap := by
419419
rw [map_prod_comap_swap hY hZ]
420-
rw [this, condEntropy_eq_kernel_entropy hX (hY.prod_mk hZ), Kernel.entropy_comap_swap]
420+
rw [this, condEntropy_eq_kernel_entropy hX (hY.prodMk hZ), Kernel.entropy_comap_swap]
421421

422422
end
423423

@@ -463,7 +463,7 @@ lemma condEntropy_prod_eq_sum {X : Ω → S} {Y : Ω → T} {Z : Ω → T'} [Mea
463463
[IsFiniteMeasure μ] [Fintype T] [Fintype T'] :
464464
H[X | ⟨Y, Z⟩ ; μ]
465465
= ∑ z, (μ (Z ⁻¹' {z})).toReal * H[X | Y ; μ[|Z ⁻¹' {z}]] := by
466-
simp_rw [condEntropy_eq_sum_fintype _ _ _ (hY.prod_mk hZ), condEntropy_eq_sum_fintype _ _ _ hY,
466+
simp_rw [condEntropy_eq_sum_fintype _ _ _ (hY.prodMk hZ), condEntropy_eq_sum_fintype _ _ _ hY,
467467
Fintype.sum_prod_type_right, Finset.mul_sum, ← mul_assoc, ← ENNReal.toReal_mul]
468468
congr with y
469469
congr with x
@@ -544,7 +544,7 @@ lemma condEntropy_comm [Countable T] {Z : Ω → U}
544544
(hX : Measurable X) (hY : Measurable Y) (μ : Measure Ω) :
545545
H[⟨X, Y⟩ | Z ; μ] = H[⟨Y, X⟩ | Z; μ] := by
546546
change H[⟨X, Y⟩ | Z ; μ] = H[Prod.swap ∘ ⟨X, Y⟩ | Z; μ]
547-
exact (condEntropy_comp_of_injective μ (hX.prod_mk hY) Prod.swap Prod.swap_injective).symm
547+
exact (condEntropy_comp_of_injective μ (hX.prodMk hY) Prod.swap Prod.swap_injective).symm
548548

549549
end condEntropy
550550

@@ -562,20 +562,20 @@ lemma chain_rule' (μ : Measure Ω) [IsZeroOrProbabilityMeasure μ]
562562
· simp
563563
have : Nonempty T := Nonempty.map Y (μ.nonempty_of_neZero)
564564
rw [entropy_eq_kernel_entropy, Kernel.chain_rule]
565-
simp_rw [← Kernel.map_const _ (hX.prod_mk hY), Kernel.fst_map_prod _ hY, Kernel.map_const _ hX,
566-
Kernel.map_const _ (hX.prod_mk hY)]
565+
simp_rw [← Kernel.map_const _ (hX.prodMk hY), Kernel.fst_map_prod _ hY, Kernel.map_const _ hX,
566+
Kernel.map_const _ (hX.prodMk hY)]
567567
· congr 1
568568
· rw [Kernel.entropy, integral_dirac]
569569
rfl
570570
· simp_rw [condEntropy_eq_kernel_entropy hY hX]
571571
have : Measure.dirac () ⊗ₘ Kernel.const Unit (μ.map X) = μ.map (fun ω ↦ ((), X ω)) := by
572572
ext s _
573-
rw [Measure.dirac_unit_compProd_const, Measure.map_map measurable_prod_mk_left hX]
573+
rw [Measure.dirac_unit_compProd_const, Measure.map_map measurable_prodMk_left hX]
574574
congr
575575
rw [this, Kernel.entropy_congr (condDistrib_const_unit hX hY μ)]
576576
have : μ.map (fun ω ↦ ((), X ω)) = (μ.map X).map (Prod.mk ()) := by
577577
ext s _
578-
rw [Measure.map_map measurable_prod_mk_left hX]
578+
rw [Measure.map_map measurable_prodMk_left hX]
579579
rfl
580580
rw [this, Kernel.entropy_prodMkLeft_unit]
581581
· apply Kernel.FiniteKernelSupport.aefiniteKernelSupport
@@ -634,7 +634,7 @@ lemma cond_chain_rule' (μ : Measure Ω) [IsZeroOrProbabilityMeasure μ]
634634
· simp
635635
have : Nonempty S := Nonempty.map X (μ.nonempty_of_neZero)
636636
have : Nonempty T := Nonempty.map Y (μ.nonempty_of_neZero)
637-
rw [condEntropy_eq_kernel_entropy (hX.prod_mk hY) hZ, Kernel.chain_rule]
637+
rw [condEntropy_eq_kernel_entropy (hX.prodMk hY) hZ, Kernel.chain_rule]
638638
· congr 1
639639
· rw [condEntropy_eq_kernel_entropy hX hZ]
640640
refine Kernel.entropy_congr ?_
@@ -737,10 +737,10 @@ lemma mutualInfo_nonneg (hX : Measurable X) (hY : Measurable Y) (μ : Measure Ω
737737
0 ≤ I[X : Y ; μ] := by
738738
simp_rw [mutualInfo_def, entropy_def]
739739
have h_fst : μ.map X = (μ.map (⟨X, Y⟩)).map Prod.fst := by
740-
rw [Measure.map_map measurable_fst (hX.prod_mk hY)]
740+
rw [Measure.map_map measurable_fst (hX.prodMk hY)]
741741
congr
742742
have h_snd : μ.map Y = (μ.map (⟨X, Y⟩)).map Prod.snd := by
743-
rw [Measure.map_map measurable_snd (hX.prod_mk hY)]
743+
rw [Measure.map_map measurable_snd (hX.prodMk hY)]
744744
congr
745745
rw [h_fst, h_snd]
746746
exact measureMutualInfo_nonneg
@@ -756,10 +756,10 @@ lemma mutualInfo_eq_zero (hX : Measurable X) (hY : Measurable Y) {μ : Measure
756756
I[X : Y ; μ] = 0 ↔ IndepFun X Y μ := by
757757
simp_rw [mutualInfo_def, entropy_def]
758758
have h_fst : μ.map X = (μ.map (⟨X, Y⟩)).map Prod.fst := by
759-
rw [Measure.map_map measurable_fst (hX.prod_mk hY)]
759+
rw [Measure.map_map measurable_fst (hX.prodMk hY)]
760760
congr
761761
have h_snd : μ.map Y = (μ.map (⟨X, Y⟩)).map Prod.snd := by
762-
rw [Measure.map_map measurable_snd (hX.prod_mk hY)]
762+
rw [Measure.map_map measurable_snd (hX.prodMk hY)]
763763
congr
764764
rw [h_fst, h_snd]
765765
convert measureMutualInfo_eq_zero_iff (μ := μ.map (⟨X, Y⟩))
@@ -768,8 +768,8 @@ lemma mutualInfo_eq_zero (hX : Measurable X) (hY : Measurable Y) {μ : Measure
768768
congr! with p
769769
convert measureReal_prod_prod (μ := μ.map X) (ν := μ.map Y) {p.1} {p.2}
770770
· simp
771-
· exact Measure.map_map measurable_fst (hX.prod_mk hY)
772-
· exact Measure.map_map measurable_snd (hX.prod_mk hY)
771+
· exact Measure.map_map measurable_fst (hX.prodMk hY)
772+
· exact Measure.map_map measurable_snd (hX.prodMk hY)
773773

774774
protected alias ⟨_, IndepFun.mutualInfo_eq_zero⟩ := mutualInfo_eq_zero
775775

@@ -857,7 +857,7 @@ lemma condMutualInfo_eq_kernel_mutualInfo
857857
rwa [Measure.map_apply hZ (.singleton _)] at hx
858858
· by_cases hx : (μ.map Z) {x} = 0
859859
· simp [hx]
860-
rw [condDistrib_apply (hX.prod_mk hY) hZ]
860+
rw [condDistrib_apply (hX.prodMk hY) hZ]
861861
rwa [Measure.map_apply hZ (.singleton _)] at hx
862862

863863
end
@@ -920,7 +920,7 @@ lemma condMutualInfo_eq [Countable U]
920920
Kernel.entropy_congr (condDistrib_fst_ae_eq hX hY hZ _),
921921
Kernel.entropy_congr (condDistrib_snd_ae_eq hX hY hZ _),
922922
condEntropy_eq_kernel_entropy hX hZ, condEntropy_eq_kernel_entropy hY hZ,
923-
condEntropy_eq_kernel_entropy (hX.prod_mk hY) hZ]
923+
condEntropy_eq_kernel_entropy (hX.prodMk hY) hZ]
924924

925925
/-- `I[X : Y| Z] = H[X| Z] - H[X|Y, Z]`. -/
926926
lemma condMutualInfo_eq' [Countable U]
@@ -943,7 +943,7 @@ lemma condMutualInfo_of_inj_map [Countable U] [IsZeroOrProbabilityMeasure μ]
943943
let g : U → (S × T) → (V × T) := fun z (x, y) ↦ (f z x, y)
944944
have hg : ∀ t, Function.Injective (g t) :=
945945
fun _ _ _ h ↦ Prod.ext_iff.2 ⟨hf _ (Prod.ext_iff.1 h).1, (Prod.ext_iff.1 h).2
946-
rw [← condEntropy_of_injective μ (hX.prod_mk hY) hZ g hg, ← condEntropy_of_injective μ hX hZ _ hf]
946+
rw [← condEntropy_of_injective μ (hX.prodMk hY) hZ g hg, ← condEntropy_of_injective μ hX hZ _ hf]
947947

948948
lemma condMutualInfo_of_inj [Countable U]
949949
(hX : Measurable X) (hY : Measurable Y) (hZ : Measurable Z)
@@ -952,7 +952,7 @@ lemma condMutualInfo_of_inj [Countable U]
952952
{f : U → V} (hf : Function.Injective f) :
953953
I[X : Y | f ∘ Z; μ] = I[X : Y | Z; μ] := by
954954
have hfZ : Measurable (f ∘ Z) := by fun_prop
955-
rw [condMutualInfo_eq hX hY hZ, condMutualInfo_eq hX hY hfZ, condEntropy_of_injective' _ hX hZ _ hf hfZ, condEntropy_of_injective' _ hY hZ _ hf hfZ, condEntropy_of_injective' _ (hX.prod_mk hY) hZ _ hf hfZ]
955+
rw [condMutualInfo_eq hX hY hZ, condMutualInfo_eq hX hY hfZ, condEntropy_of_injective' _ hX hZ _ hf hfZ, condEntropy_of_injective' _ hY hZ _ hf hfZ, condEntropy_of_injective' _ (hX.prodMk hY) hZ _ hf hfZ]
956956

957957
lemma condEntropy_prod_eq_of_indepFun [Fintype T] [Fintype U] [IsZeroOrProbabilityMeasure μ]
958958
(hX : Measurable X) (hY : Measurable Y) (hZ : Measurable Z) [FiniteRange X]
@@ -970,7 +970,7 @@ lemma condEntropy_prod_eq_of_indepFun [Fintype T] [Fintype U] [IsZeroOrProbabili
970970
congr 1
971971
have : IsProbabilityMeasure (μ[|Z ⁻¹' {w}]) := cond_isProbabilityMeasure hw
972972
apply IdentDistrib.condEntropy_eq hX hY hX hY
973-
exact (h.identDistrib_cond (MeasurableSet.singleton w) (hX.prod_mk hY) hZ hw).symm
973+
exact (h.identDistrib_cond (MeasurableSet.singleton w) (hX.prodMk hY) hZ hw).symm
974974

975975
end
976976

@@ -1013,7 +1013,7 @@ lemma ent_of_cond_indep (hX : Measurable X) (hY : Measurable Y) (hZ : Measurable
10131013
H[⟨X, ⟨Y, Z⟩⟩ ; μ] = H[⟨X, Z⟩; μ] + H[⟨Y, Z⟩; μ] - H[Z; μ] := by
10141014
have hI : I[X : Y | Z ; μ] = 0 := (condMutualInfo_eq_zero hX hY).mpr h
10151015
rw [condMutualInfo_eq hX hY hZ] at hI
1016-
rw [entropy_assoc hX hY hZ, chain_rule _ (hX.prod_mk hY) hZ, chain_rule _ hX hZ, chain_rule _ hY hZ]
1016+
rw [entropy_assoc hX hY hZ, chain_rule _ (hX.prodMk hY) hZ, chain_rule _ hX hZ, chain_rule _ hY hZ]
10171017
linarith [hI]
10181018

10191019
variable [IsZeroOrProbabilityMeasure μ]
@@ -1062,7 +1062,7 @@ lemma condEntropy_comp_ge
10621062
lemma entropy_triple_add_entropy_le (hX : Measurable X) (hY : Measurable Y) (hZ : Measurable Z)
10631063
[FiniteRange X] [FiniteRange Y] [FiniteRange Z] :
10641064
H[⟨X, ⟨Y, Z⟩⟩ ; μ] + H[Z ; μ] ≤ H[⟨X, Z⟩ ; μ] + H[⟨Y, Z⟩ ; μ] := by
1065-
rw [chain_rule _ hX (hY.prod_mk hZ), chain_rule _ hX hZ, chain_rule _ hY hZ]
1065+
rw [chain_rule _ hX (hY.prodMk hZ), chain_rule _ hX hZ, chain_rule _ hY hZ]
10661066
ring_nf
10671067
exact add_le_add le_rfl (entropy_submodular _ hX hY hZ)
10681068

0 commit comments

Comments
 (0)