The KKL inequality for events, and sharp thresholds
TheoremOSSS Bernoulli weight equals the configuration weight#✓fully proved
The OSSS Bernoulli weight of a configuration is StatMech.configWeight.
theorem kklw_weight_eq (p : ℝ) (ω : ConfigSpace E) :
OSSS.weight (OSSS.bernoulliWeight p) ω = StatMech.configWeight p ω
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def weight (ν : E → Bool → ℝ) (ω : ConfigSpace E) : ℝ := ∏ e, ν e (ω e)
CSLibExt/Complexity/BooleanFunctions/OSSS.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 configWeight (p : ℝ) (ω : ConfigSpace E) : ℝ :=
∏ e, edgeWeight p ω e
MathlibExt/Probability/CorrelationInequalities/Russo.lean:69
Uses 5 · Used by 2
TheoremEvent probability as the OSSS expectation of its indicator#✓fully proved
StatMech.prob p A is the OSSS expectation of the indicator of A.
theorem kklw_prob_eq_expect (p : ℝ) (A : Set (ConfigSpace E)) :
StatMech.prob p A
= OSSS.expect (OSSS.bernoulliWeight p) (A.indicator (fun _ => (1 : ℝ)))
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def prob (p : ℝ) (A : Set (ConfigSpace E)) : ℝ :=
∑ ω, A.indicator (fun _ => (1 : ℝ)) ω * configWeight p ω
MathlibExt/Probability/CorrelationInequalities/Russo.lean:74
noncomputable def expect (ν : E → Bool → ℝ) (g : ConfigSpace E → ℝ) : ℝ :=
∑ ω, weight ν ω * g ω
CSLibExt/Complexity/BooleanFunctions/OSSS.lean:71
noncomputable def bernoulliWeight (p : ℝ) : E → Bool → ℝ :=
fun _ b => if b then p else 1 - p
CSLibExt/Complexity/BooleanFunctions/OSSS.lean:915
Uses 7 · Used by 1
TheoremPivotal-probability influence as the OSSS influence of an indicator#✓fully proved
StatMech.BeffaraDC.influence is the OSSS influence of the indicator of A.
theorem kklw_influence_eq_infl (p : ℝ) (A : Set (ConfigSpace E)) (e : E) :
StatMech.BeffaraDC.influence p A e
= OSSS.infl (OSSS.bernoulliWeight p) (A.indicator (fun _ => (1 : ℝ))) e
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def influence (p : ℝ) (A : Set (ConfigSpace E)) (e : E) : ℝ :=
pivotalProb p A e
MathlibExt/Probability/Percolation/RussoInfluence.lean:201
noncomputable def infl (ν : E → Bool → ℝ) (g : ConfigSpace E → ℝ) (e : E) : ℝ :=
expect ν (fun ω => |g (setOpen e ω) - g (setClosed e ω)|)
CSLibExt/Complexity/BooleanFunctions/OSSS.lean:168
noncomputable def bernoulliWeight (p : ℝ) : E → Bool → ℝ :=
fun _ b => if b then p else 1 - p
CSLibExt/Complexity/BooleanFunctions/OSSS.lean:915
Uses 11 · Used by 1
TheoremVariance of an event indicator is \(P(A)(1 - P(A))\)#✓fully proved
The variance of the indicator of A is P(A)(1 - P(A)).
theorem kklw_var_eq (p : ℝ) (A : Set (ConfigSpace E)) :
OSSS.var (OSSS.bernoulliWeight p) (A.indicator (fun _ => (1 : ℝ)))
= StatMech.prob p A * (1 - StatMech.prob p A)
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def var (ν : E → Bool → ℝ) (g : ConfigSpace E → ℝ) : ℝ := cov ν g g
CSLibExt/Complexity/BooleanFunctions/OSSS.lean:161
noncomputable def bernoulliWeight (p : ℝ) : E → Bool → ℝ :=
fun _ b => if b then p else 1 - p
CSLibExt/Complexity/BooleanFunctions/OSSS.lean:915
noncomputable def prob (p : ℝ) (A : Set (ConfigSpace E)) : ℝ :=
∑ ω, A.indicator (fun _ => (1 : ℝ)) ω * configWeight p ω
MathlibExt/Probability/CorrelationInequalities/Russo.lean:74
Uses 7 · Used by 1
DefinitionLogarithm of the reciprocal maximal influence of an event#✓fully proved
log (1 / maxₑ Infₑ(A)) under the Bernoulli(p) product measure.
noncomputable def kklw_logMaxInfl [Nonempty E] (p : ℝ) (A : Set (ConfigSpace E)) : ℝ :=
Real.log (1 / maxInfl (OSSS.bernoulliWeight p) (A.indicator (fun _ => (1 : ℝ))))
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
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
Uses 3 · Used by 8
TheoremKKL inequality with constant 2 at \(p\) implies its event form#✓fully proved
The KKL inequality KKLHypercontractive p 2 for an event: 2 · P_p(A)(1 - P_p(A)) · log (1 /
maxₑ Infₑ(A)) ≤ ∑ₑ Infₑ(A).
theorem kklw_hkkl_of_hypercontractive {E : Type} [Fintype E] [DecidableEq E] [Nonempty E]
{p : ℝ}
(H : KKLHypercontractive p 2) (A : Set (ConfigSpace E)) :
2 * (StatMech.prob p A * (1 - StatMech.prob p A)) * kklw_logMaxInfl p A
≤ ∑ e, StatMech.BeffaraDC.influence p A e
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
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def prob (p : ℝ) (A : Set (ConfigSpace E)) : ℝ :=
∑ ω, A.indicator (fun _ => (1 : ℝ)) ω * configWeight p ω
MathlibExt/Probability/CorrelationInequalities/Russo.lean:74
noncomputable def kklw_logMaxInfl [Nonempty E] (p : ℝ) (A : Set (ConfigSpace E)) : ℝ :=
Real.log (1 / maxInfl (OSSS.bernoulliWeight p) (A.indicator (fun _ => (1 : ℝ))))
CSLibExt/Complexity/BooleanFunctions/KKL/KKLEvents.lean:104
noncomputable def influence (p : ℝ) (A : Set (ConfigSpace E)) (e : E) : ℝ :=
pivotalProb p A e
MathlibExt/Probability/Percolation/RussoInfluence.lean:201
Uses 12 · Used by 2
TheoremKahn–Kalai–Linial inequality#✓fully proved
Kahn–Kalai–Linial inequality for events under the uniform measure (J. Kahn, G. Kalai, N.
Linial, The influence of variables on Boolean functions, FOCS 1988), with constant 2: 2 ·
P(A)(1 - P(A)) · log (1 / maxₑ Infₑ(A)) ≤ ∑ₑ Infₑ(A), where Infₑ(A) is the probability that
e is pivotal for A.
theorem kklw_hkkl_half {E : Type} [Fintype E] [DecidableEq E] [Nonempty E]
(A : Set (ConfigSpace E)) :
2 * (StatMech.prob (1 / 2) A * (1 - StatMech.prob (1 / 2) A)) * kklw_logMaxInfl (1 / 2) A
≤ ∑ e, StatMech.BeffaraDC.influence (1 / 2) A e
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def prob (p : ℝ) (A : Set (ConfigSpace E)) : ℝ :=
∑ ω, A.indicator (fun _ => (1 : ℝ)) ω * configWeight p ω
MathlibExt/Probability/CorrelationInequalities/Russo.lean:74
noncomputable def kklw_logMaxInfl [Nonempty E] (p : ℝ) (A : Set (ConfigSpace E)) : ℝ :=
Real.log (1 / maxInfl (OSSS.bernoulliWeight p) (A.indicator (fun _ => (1 : ℝ))))
CSLibExt/Complexity/BooleanFunctions/KKL/KKLEvents.lean:104
noncomputable def influence (p : ℝ) (A : Set (ConfigSpace E)) (e : E) : ℝ :=
pivotalProb p A e
MathlibExt/Probability/Percolation/RussoInfluence.lean:201
TheoremKKL on the interior of \((1/2, q)\) implies its event form there#✓fully proved
kklw_hkkl_of_hypercontractive at every p in the interior of [1/2, q].
theorem kklw_hkkl {E : Type} [Fintype E] [DecidableEq E] [Nonempty E]
(A : Set (ConfigSpace E)) {q : ℝ}
(Hbkkkl : ∀ p ∈ interior (Set.Icc (1 / 2 : ℝ) q), KKLHypercontractive p 2) :
∀ p ∈ interior (Set.Icc (1 / 2 : ℝ) q),
2 * (StatMech.prob p A * (1 - StatMech.prob p A)) * kklw_logMaxInfl p A
≤ ∑ e, StatMech.BeffaraDC.influence p A e
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
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
noncomputable def prob (p : ℝ) (A : Set (ConfigSpace E)) : ℝ :=
∑ ω, A.indicator (fun _ => (1 : ℝ)) ω * configWeight p ω
MathlibExt/Probability/CorrelationInequalities/Russo.lean:74
noncomputable def kklw_logMaxInfl [Nonempty E] (p : ℝ) (A : Set (ConfigSpace E)) : ℝ :=
Real.log (1 / maxInfl (OSSS.bernoulliWeight p) (A.indicator (fun _ => (1 : ℝ))))
CSLibExt/Complexity/BooleanFunctions/KKL/KKLEvents.lean:104
noncomputable def influence (p : ℝ) (A : Set (ConfigSpace E)) (e : E) : ℝ :=
pivotalProb p A e
MathlibExt/Probability/Percolation/RussoInfluence.lean:201
TheoremSharp-threshold bound assuming the KKL inequality on \((1/2, q)\)#✓fully proved
Sharp-threshold bound: for an increasing event with P_{1/2}(A) = 1/2, if the KKL inequality
holds for all p ∈ (1/2, q) and there P_p(A)(1 - P_p(A)) ≥ v₀ and log (1 / maxₑ Infₑ(A)) ≥
L, then P_q(A) ≥ 1/2 + 2 v₀ L (q - 1/2).
theorem kklw_sharpThreshold {E : Type} [Fintype E] [DecidableEq E] [Nonempty E]
(A : Set (ConfigSpace E)) (hA : IsIncreasing A)
{q v₀ L : ℝ} (hq : (1 : ℝ) / 2 ≤ q)
(hv0 : 0 ≤ v₀) (hL : 0 ≤ L)
(hhalf : StatMech.prob (1 / 2) A = 1 / 2)
(Hbkkkl : ∀ p ∈ interior (Set.Icc (1 / 2 : ℝ) q), KKLHypercontractive p 2)
(hvar : ∀ p ∈ interior (Set.Icc (1 / 2 : ℝ) q),
v₀ ≤ StatMech.prob p A * (1 - StatMech.prob p A))
(hLL' : ∀ p ∈ interior (Set.Icc (1 / 2 : ℝ) q), L ≤ kklw_logMaxInfl p A) :
1 / 2 + (2 * v₀ * L) * (q - 1 / 2) ≤ StatMech.prob q A
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def IsIncreasing (A : Set (ConfigSpace E)) : Prop := IsUpperSet A
MathlibExt/Probability/CorrelationInequalities/IncreasingEvent.lean:55
noncomputable def prob (p : ℝ) (A : Set (ConfigSpace E)) : ℝ :=
∑ ω, A.indicator (fun _ => (1 : ℝ)) ω * configWeight p ω
MathlibExt/Probability/CorrelationInequalities/Russo.lean:74
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
noncomputable def kklw_logMaxInfl [Nonempty E] (p : ℝ) (A : Set (ConfigSpace E)) : ℝ :=
Real.log (1 / maxInfl (OSSS.bernoulliWeight p) (A.indicator (fun _ => (1 : ℝ))))
CSLibExt/Complexity/BooleanFunctions/KKL/KKLEvents.lean:104
Uses 7 · Used by 1
TheoremSharp-threshold window bound assuming the KKL inequality on \((1/2, q)\)#✓fully proved
Window form of kklw_sharpThreshold: under the same hypotheses, if P_q(A) ≤ 1 - ε then q -
1/2 ≤ (1/2 - ε) / (2 v₀ L).
theorem kklw_sharpThreshold_window {E : Type} [Fintype E] [DecidableEq E] [Nonempty E]
(A : Set (ConfigSpace E)) (hA : IsIncreasing A)
{q v₀ L ε : ℝ} (hq : (1 : ℝ) / 2 ≤ q)
(hM : 0 < 2 * v₀ * L)
(hhalf : StatMech.prob (1 / 2) A = 1 / 2)
(hv0 : 0 ≤ v₀) (hL : 0 ≤ L)
(Hbkkkl : ∀ p ∈ interior (Set.Icc (1 / 2 : ℝ) q), KKLHypercontractive p 2)
(hvar : ∀ p ∈ interior (Set.Icc (1 / 2 : ℝ) q),
v₀ ≤ StatMech.prob p A * (1 - StatMech.prob p A))
(hLL' : ∀ p ∈ interior (Set.Icc (1 / 2 : ℝ) q), L ≤ kklw_logMaxInfl p A)
(hnotyet : StatMech.prob q A ≤ 1 - ε) :
q - 1 / 2 ≤ (1 / 2 - ε) / (2 * v₀ * L)
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def IsIncreasing (A : Set (ConfigSpace E)) : Prop := IsUpperSet A
MathlibExt/Probability/CorrelationInequalities/IncreasingEvent.lean:55
noncomputable def prob (p : ℝ) (A : Set (ConfigSpace E)) : ℝ :=
∑ ω, A.indicator (fun _ => (1 : ℝ)) ω * configWeight p ω
MathlibExt/Probability/CorrelationInequalities/Russo.lean:74
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
noncomputable def kklw_logMaxInfl [Nonempty E] (p : ℝ) (A : Set (ConfigSpace E)) : ℝ :=
Real.log (1 / maxInfl (OSSS.bernoulliWeight p) (A.indicator (fun _ => (1 : ℝ))))
CSLibExt/Complexity/BooleanFunctions/KKL/KKLEvents.lean:104
Uses 8 · Used by 1
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.