Sub-additivity of entropy for Bernoulli product measures
DefinitionFunction \(x \log x\) with \(0 \log 0 = 0\)#✓fully proved
The function x ↦ x log x (with 0 log 0 = 0). It equals -Real.negMulLog x
(esd_Phi_eq_neg_negMulLog).
noncomputable def esd_Phi (x : ℝ) : ℝ := x * Real.log x
Theorem\(x \log x\) is the negation of Mathlib's \(-x \log x\)#✓fully proved
esd_Phi is the negative of Mathlib's Real.negMulLog.
theorem esd_Phi_eq_neg_negMulLog (x : ℝ) : esd_Phi x = -Real.negMulLog x
noncomputable def esd_Phi (x : ℝ) : ℝ := x * Real.log x
CSLibExt/Complexity/BooleanFunctions/KKL/EntropySubadd.lean:54
Uses 1
DefinitionEntropy of a function under a product weight#✓fully proved
The entropy Ent_ν(g) = 𝔼_ν[g log g] - 𝔼_ν[g] log 𝔼_ν[g] of g under the product weight ν.
noncomputable def esd_ent (ν : E → Bool → ℝ) (g : ConfigSpace E → ℝ) : ℝ :=
OSSS.expect ν (fun ω => esd_Phi (g ω)) - esd_Phi (OSSS.expect ν g)
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def expect (ν : E → Bool → ℝ) (g : ConfigSpace E → ℝ) : ℝ :=
∑ ω, weight ν ω * g ω
CSLibExt/Complexity/BooleanFunctions/OSSS.lean:71
noncomputable def esd_Phi (x : ℝ) : ℝ := x * Real.log x
CSLibExt/Complexity/BooleanFunctions/KKL/EntropySubadd.lean:54
Uses 3 · Used by 1
DefinitionConditional entropy in one coordinate#✓fully proved
The conditional entropy of g in coordinate e given the other coordinates, under the
Bernoulli(p) weight: p Φ(g(ω^{e↦1})) + (1-p) Φ(g(ω^{e↦0})) - Φ(𝔼[g | ω_{≠e}]), with Φ(x) =
x log x.
noncomputable def esd_entCoord (p : ℝ) (g : ConfigSpace E → ℝ) (e : E) (ω : ConfigSpace E) : ℝ :=
p * esd_Phi (g (StatMech.setOpen e ω)) + (1 - p) * esd_Phi (g (StatMech.setClosed e ω))
- esd_Phi (OSSS.condMean (OSSS.bernoulliWeight p) e g ω)
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def esd_Phi (x : ℝ) : ℝ := x * Real.log x
CSLibExt/Complexity/BooleanFunctions/KKL/EntropySubadd.lean:54
def setOpen (e : E) (ω : ConfigSpace E) : ConfigSpace E := Function.update ω e true
MathlibExt/Probability/CorrelationInequalities/Pivotal.lean:42
def setClosed (e : E) (ω : ConfigSpace E) : ConfigSpace E := Function.update ω e false
MathlibExt/Probability/CorrelationInequalities/Pivotal.lean:45
noncomputable def condMean (ν : E → Bool → ℝ) (e : E) (g : ConfigSpace E → ℝ) :
ConfigSpace E → ℝ :=
fun ω => ν e true * g (setOpen e ω) + ν e false * g (setClosed e ω)
CSLibExt/Complexity/BooleanFunctions/OSSS.lean:172
noncomputable def bernoulliWeight (p : ℝ) : E → Bool → ℝ :=
fun _ b => if b then p else 1 - p
CSLibExt/Complexity/BooleanFunctions/OSSS.lean:915
DefinitionStrictly positive coordinate weights#✓fully proved
Every coordinate weight of ν is strictly positive.
def esd_PosWeight (ν : E → Bool → ℝ) : Prop := ∀ e b, 0 < ν e b
TheoremData-processing inequality for entropy under a two-point mixture#✓fully proved
Data-processing inequality for entropy under a two-point mixture: for nonnegative g₀, g₁, p
Φ(𝔼 g₁) + (1-p) Φ(𝔼 g₀) - Φ(p 𝔼 g₁ + (1-p) 𝔼 g₀) ≤ 𝔼[p Φ(g₁) + (1-p) Φ(g₀) - Φ(p g₁ + (1-p)
g₀)].
theorem esd_dpi {μ : E → Bool → ℝ} (hpos : esd_PosWeight μ)
(hprob : OSSS.IsProbWeight μ) {p : ℝ} (hp0 : 0 < p) (hp1 : p < 1)
{g0 g1 : ConfigSpace E → ℝ} (hg0 : ∀ ω, 0 ≤ g0 ω) (hg1 : ∀ ω, 0 ≤ g1 ω) :
p * esd_Phi (OSSS.expect μ g1) + (1-p) * esd_Phi (OSSS.expect μ g0)
- esd_Phi (p * OSSS.expect μ g1 + (1-p) * OSSS.expect μ g0)
≤ OSSS.expect μ (fun ω => p * esd_Phi (g1 ω) + (1-p) * esd_Phi (g0 ω)
- esd_Phi (p * g1 ω + (1-p) * g0 ω))
def esd_PosWeight (ν : E → Bool → ℝ) : Prop := ∀ e b, 0 < ν e b
CSLibExt/Complexity/BooleanFunctions/KKL/EntropySubadd.lean:79
structure IsProbWeight (ν : E → Bool → ℝ) : Prop where
nonneg : ∀ e b, 0 ≤ ν e b
normalized : ∀ e, ν e false + ν e true = 1
CSLibExt/Complexity/BooleanFunctions/OSSS.lean:75
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def esd_Phi (x : ℝ) : ℝ := x * Real.log x
CSLibExt/Complexity/BooleanFunctions/KKL/EntropySubadd.lean:54
noncomputable def expect (ν : E → Bool → ℝ) (g : ConfigSpace E → ℝ) : ℝ :=
∑ ω, weight ν ω * g ω
CSLibExt/Complexity/BooleanFunctions/OSSS.lean:71
TheoremSub-additivity (tensorization) of entropy#✓fully proved
Sub-additivity (tensorization) of entropy for the Bernoulli(p) product measure on {0,
1}^n (see S. Boucheron, G. Lugosi, P. Massart, Concentration Inequalities, 2013, Theorem
4.10): for nonnegative g, Ent(g) ≤ ∑ₑ 𝔼[Entₑ(g)].
theorem esd_subadditivity {n : ℕ} {p : ℝ} (hp0 : 0 < p) (hp1 : p < 1)
(g : (Fin n → Bool) → ℝ) (hg : ∀ ω, 0 ≤ g ω) :
esd_ent (OSSS.bernoulliWeight p) g
≤ ∑ e : Fin n, OSSS.expect (OSSS.bernoulliWeight p) (esd_entCoord p g e)
noncomputable def esd_ent (ν : E → Bool → ℝ) (g : ConfigSpace E → ℝ) : ℝ :=
OSSS.expect ν (fun ω => esd_Phi (g ω)) - esd_Phi (OSSS.expect ν g)
CSLibExt/Complexity/BooleanFunctions/KKL/EntropySubadd.lean:68
noncomputable def bernoulliWeight (p : ℝ) : E → Bool → ℝ :=
fun _ b => if b then p else 1 - p
CSLibExt/Complexity/BooleanFunctions/OSSS.lean:915
noncomputable def expect (ν : E → Bool → ℝ) (g : ConfigSpace E → ℝ) : ℝ :=
∑ ω, weight ν ω * g ω
CSLibExt/Complexity/BooleanFunctions/OSSS.lean:71
noncomputable def esd_entCoord (p : ℝ) (g : ConfigSpace E → ℝ) (e : E) (ω : ConfigSpace E) : ℝ :=
p * esd_Phi (g (StatMech.setOpen e ω)) + (1 - p) * esd_Phi (g (StatMech.setClosed e ω))
- esd_Phi (OSSS.condMean (OSSS.bernoulliWeight p) e g ω)
CSLibExt/Complexity/BooleanFunctions/KKL/EntropySubadd.lean:74
Uses 13
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.