The edge-isoperimetric inequality and the logarithmic KKL reduction
TheoremBernoulli's inequality \(1 - x^k \le k(1 - x)\)#✓fully proved
Bernoulli's inequality in the form 1 - x^k ≤ k (1 - x) for 0 ≤ x (the hypothesis
x ≤ 1 is not needed). See also one_add_mul_le_pow.
theorem klo_one_sub_pow_le (x : ℝ) (h0 : 0 ≤ x) (_h1 : x ≤ 1) (k : ℕ) :
1 - x ^ k ≤ (1 - x) * k
Used by 1
TheoremBound on \(m - m^{2/(1+\rho^2)}\) by total influence#✓fully proved
For an event of uniform measure m and total influence I = ∑_S 4 |S| f̂(S)², m -
m^{2/(1+ρ²)} ≤ (1 - ρ²) I / 4 for 0 ≤ ρ ≤ 1.
theorem klo_master_le (φ : ConfigSpace ι → Bool) (ρ : ℝ) (h0 : 0 ≤ ρ) (h1 : ρ ≤ 1) :
bnt_uexp (fun ω => if φ ω then (1 : ℝ) else 0)
- (bnt_uexp (fun ω => if φ ω then (1 : ℝ) else 0)) ^ (2 / (1 + ρ ^ 2))
≤ (1 - ρ ^ 2) * (∑ S : Finset ι, 4 * (S.card : ℝ)
* (khc_fourierCoeff (fun ω => if φ ω then (1 : ℝ) else 0) S) ^ 2) / 4
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def bnt_uexp (f : (ι → Bool) → ℝ) : ℝ :=
(∑ ω : ι → Bool, f ω) / (2 ^ (Fintype.card ι))
MathlibExt/Probability/Hypercontractivity/BonamiTensorize.lean:66
noncomputable def khc_fourierCoeff (f : (ι → Bool) → ℝ) (S : Finset ι) : ℝ :=
bnt_uexp (fun x => f x * khc_walshChar S x)
CSLibExt/Complexity/BooleanFunctions/KKL/KKLfromHC.lean:116
Uses 7 · Used by 2
TheoremEdge-isoperimetric inequality#✓fully proved
Edge-isoperimetric inequality on the discrete cube (S. Hart, A note on the edges of the
n-cube, Discrete Math. 1976): an event of uniform measure m > 0 has total influence at least
2 m log (1 / m). Here log is the natural logarithm, so this is weaker by the factor log 2
than the sharp bound 2 m log₂ (1 / m).
theorem klo_edge_isoperimetric (φ : ConfigSpace ι → Bool)
(hm0 : 0 < bnt_uexp (fun ω => if φ ω then (1 : ℝ) else 0)) :
2 * bnt_uexp (fun ω => if φ ω then (1 : ℝ) else 0)
* Real.log (1 / bnt_uexp (fun ω => if φ ω then (1 : ℝ) else 0))
≤ ∑ S : Finset ι, 4 * (S.card : ℝ)
* (khc_fourierCoeff (fun ω => if φ ω then (1 : ℝ) else 0) S) ^ 2
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def bnt_uexp (f : (ι → Bool) → ℝ) : ℝ :=
(∑ ω : ι → Bool, f ω) / (2 ^ (Fintype.card ι))
MathlibExt/Probability/Hypercontractivity/BonamiTensorize.lean:66
noncomputable def khc_fourierCoeff (f : (ι → Bool) → ℝ) (S : Finset ι) : ℝ :=
bnt_uexp (fun x => f x * khc_walshChar S x)
CSLibExt/Complexity/BooleanFunctions/KKL/KKLfromHC.lean:116
DefinitionFourier-form KKL inequality given the measure–influence bound#✓fully proved
The KKL inequality at p = 1/2 in Fourier form, with the bound m - m^{2/(1+ρ²)} ≤ (1 - ρ²) I /
4 (for all ρ ∈ [0, 1]) as a hypothesis, where m is the measure and I the total influence
of φ. The hypothesis always holds (klo_master_le).
def klo_DeltaUpgrade (c : ℝ) : Prop :=
∀ {E : Type} [Fintype E] [DecidableEq E] [Nonempty E] (φ : ConfigSpace E → Bool),
(∀ ρ : ℝ, 0 ≤ ρ → ρ ≤ 1 →
bnt_uexp (fun ω => if φ ω then (1 : ℝ) else 0)
- (bnt_uexp (fun ω => if φ ω then (1 : ℝ) else 0)) ^ (2 / (1 + ρ ^ 2))
≤ (1 - ρ ^ 2) * (∑ S : Finset E, 4 * (S.card : ℝ)
* (khc_fourierCoeff (fun ω => if φ ω then (1 : ℝ) else 0) S) ^ 2) / 4) →
c * (∑ S ∈ (univ.erase (∅ : Finset E)),
(khc_fourierCoeff (fun ω => if φ ω then (1 : ℝ) else 0) S) ^ 2)
* Real.log (1 / maxInfl (OSSS.bernoulliWeight (1 / 2 : ℝ))
(fun ω => if φ ω then (1 : ℝ) else 0))
≤ ∑ S : Finset E, 4 * (S.card : ℝ)
* (khc_fourierCoeff (fun ω => if φ ω then (1 : ℝ) else 0) S) ^ 2
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def bnt_uexp (f : (ι → Bool) → ℝ) : ℝ :=
(∑ ω : ι → Bool, f ω) / (2 ^ (Fintype.card ι))
MathlibExt/Probability/Hypercontractivity/BonamiTensorize.lean:66
noncomputable def khc_fourierCoeff (f : (ι → Bool) → ℝ) (S : Finset ι) : ℝ :=
bnt_uexp (fun x => f x * khc_walshChar S x)
CSLibExt/Complexity/BooleanFunctions/KKL/KKLfromHC.lean:116
noncomputable def maxInfl [Nonempty E] (ν : E → Bool → ℝ) (g : ConfigSpace E → ℝ) : ℝ :=
Finset.univ.sup' Finset.univ_nonempty (OSSS.infl ν g)
CSLibExt/Complexity/BooleanFunctions/KKL/KKLInequality.lean:70
noncomputable def bernoulliWeight (p : ℝ) : E → Bool → ℝ :=
fun _ b => if b then p else 1 - p
CSLibExt/Complexity/BooleanFunctions/OSSS.lean:915
TheoremMeasure–influence form of KKL with constant 0 holds trivially#✓fully proved
klo_DeltaUpgrade 0 holds trivially.
theorem klo_deltaUpgrade_zero : klo_DeltaUpgrade 0
def klo_DeltaUpgrade (c : ℝ) : Prop :=
∀ {E : Type} [Fintype E] [DecidableEq E] [Nonempty E] (φ : ConfigSpace E → Bool),
(∀ ρ : ℝ, 0 ≤ ρ → ρ ≤ 1 →
bnt_uexp (fun ω => if φ ω then (1 : ℝ) else 0)
- (bnt_uexp (fun ω => if φ ω then (1 : ℝ) else 0)) ^ (2 / (1 + ρ ^ 2))
≤ (1 - ρ ^ 2) * (∑ S : Finset E, 4 * (S.card : ℝ)
* (khc_fourierCoeff (fun ω => if φ ω then (1 : ℝ) else 0) S) ^ 2) / 4) →
c * (∑ S ∈ (univ.erase (∅ : Finset E)),
(khc_fourierCoeff (fun ω => if φ ω then (1 : ℝ) else 0) S) ^ 2)
* Real.log (1 / maxInfl (OSSS.bernoulliWeight (1 / 2 : ℝ))
(fun ω => if φ ω then (1 : ℝ) else 0))
≤ ∑ S : Finset E, 4 * (S.card : ℝ)
⋯
CSLibExt/Complexity/BooleanFunctions/KKL/KKLLogOptimisation.lean:213
Uses 6
TheoremMeasure–influence form of KKL implies the indicator-bound form#✓fully proved
klo_DeltaUpgrade c implies kls_LogOptimisation c.
theorem klo_logOptimisation_of_deltaUpgrade {c : ℝ} (H : klo_DeltaUpgrade c) :
kls_LogOptimisation c
def klo_DeltaUpgrade (c : ℝ) : Prop :=
∀ {E : Type} [Fintype E] [DecidableEq E] [Nonempty E] (φ : ConfigSpace E → Bool),
(∀ ρ : ℝ, 0 ≤ ρ → ρ ≤ 1 →
bnt_uexp (fun ω => if φ ω then (1 : ℝ) else 0)
- (bnt_uexp (fun ω => if φ ω then (1 : ℝ) else 0)) ^ (2 / (1 + ρ ^ 2))
≤ (1 - ρ ^ 2) * (∑ S : Finset E, 4 * (S.card : ℝ)
* (khc_fourierCoeff (fun ω => if φ ω then (1 : ℝ) else 0) S) ^ 2) / 4) →
c * (∑ S ∈ (univ.erase (∅ : Finset E)),
(khc_fourierCoeff (fun ω => if φ ω then (1 : ℝ) else 0) S) ^ 2)
* Real.log (1 / maxInfl (OSSS.bernoulliWeight (1 / 2 : ℝ))
(fun ω => if φ ω then (1 : ℝ) else 0))
≤ ∑ S : Finset E, 4 * (S.card : ℝ)
⋯
CSLibExt/Complexity/BooleanFunctions/KKL/KKLLogOptimisation.lean:213
def kls_LogOptimisation (c : ℝ) : Prop :=
∀ {E : Type} [Fintype E] [DecidableEq E] [Nonempty E] (φ : ConfigSpace E → Bool),
(∀ ρ : ℝ, 0 ≤ ρ → ρ ≤ 1 →
(∑ S ∈ (univ.erase (∅ : Finset E)), (ρ ^ S.card) ^ 2
* (khc_fourierCoeff (fun ω => if φ ω then (1 : ℝ) else 0) S) ^ 2)
≤ (bnt_uexp (fun ω => if φ ω then (1 : ℝ) else 0)) ^ (2 / (1 + ρ ^ 2))
- (bnt_uexp (fun ω => if φ ω then (1 : ℝ) else 0)) ^ 2) →
c * (∑ S ∈ (univ.erase (∅ : Finset E)),
(khc_fourierCoeff (fun ω => if φ ω then (1 : ℝ) else 0) S) ^ 2)
* Real.log (1 / maxInfl (OSSS.bernoulliWeight (1 / 2 : ℝ))
(fun ω => if φ ω then (1 : ℝ) else 0))
≤ ∑ S : Finset E, 4 * (S.card : ℝ)
⋯
CSLibExt/Complexity/BooleanFunctions/KKL/KKLLogSobolev.lean:140
Uses 6 · Used by 1
TheoremMeasure–influence form of KKL implies the KKL inequality at \(p = 1/2\)#✓fully proved
klo_DeltaUpgrade c implies the KKL inequality KKLHypercontractive (1/2) c.
theorem klo_logOptimisation {c : ℝ} (H : klo_DeltaUpgrade c) :
KKLHypercontractive (1 / 2 : ℝ) c
def klo_DeltaUpgrade (c : ℝ) : Prop :=
∀ {E : Type} [Fintype E] [DecidableEq E] [Nonempty E] (φ : ConfigSpace E → Bool),
(∀ ρ : ℝ, 0 ≤ ρ → ρ ≤ 1 →
bnt_uexp (fun ω => if φ ω then (1 : ℝ) else 0)
- (bnt_uexp (fun ω => if φ ω then (1 : ℝ) else 0)) ^ (2 / (1 + ρ ^ 2))
≤ (1 - ρ ^ 2) * (∑ S : Finset E, 4 * (S.card : ℝ)
* (khc_fourierCoeff (fun ω => if φ ω then (1 : ℝ) else 0) S) ^ 2) / 4) →
c * (∑ S ∈ (univ.erase (∅ : Finset E)),
(khc_fourierCoeff (fun ω => if φ ω then (1 : ℝ) else 0) S) ^ 2)
* Real.log (1 / maxInfl (OSSS.bernoulliWeight (1 / 2 : ℝ))
(fun ω => if φ ω then (1 : ℝ) else 0))
≤ ∑ S : Finset E, 4 * (S.card : ℝ)
⋯
CSLibExt/Complexity/BooleanFunctions/KKL/KKLLogOptimisation.lean:213
def KKLHypercontractive (p c : ℝ) : Prop :=
∀ {E : Type} [Fintype E] [DecidableEq E] [Nonempty E] (φ : ConfigSpace E → Bool),
c * OSSS.var (bernoulliWeight p) (fun ω => if φ ω then (1 : ℝ) else 0)
* Real.log (1 / maxInfl (bernoulliWeight p) (fun ω => if φ ω then (1 : ℝ) else 0))
≤ totalInfl (bernoulliWeight p) (fun ω => if φ ω then (1 : ℝ) else 0)
CSLibExt/Complexity/BooleanFunctions/KKL/KKLInequality.lean:159
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.