Analysis of Boolean Functions in Lean

4.2. Tribes🔗

Lemma4.2.1
Group: Chapter 4: DNF formulas and small-depth circuits (44)
Group member previews
Preview
Definition 4.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1
Used by 4
Reverse dependency previews
Preview
Definition 4.2.2
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

Fact 4.10. For the tribes function \operatorname{Tribes}_{w,s}:\{-1,1\}^{sw}\to\{-1,1\} of Definition 2.7, \Pr_{\boldsymbol x}\bigl[\operatorname{Tribes}_{w,s}(\boldsymbol x)=-1\bigr] =1-(1-2^{-w})^s.

Lean code for Lemma4.2.15 theorems
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.uniformProbability_andFunction_eq_neg_one (w : ) :
      (FABL.uniformProbability fun x => FABL.andFunction w x = -1) =
        (2 ^ w)⁻¹
    theorem FABL.uniformProbability_andFunction_eq_neg_one
      (w : ) :
      (FABL.uniformProbability fun x =>
          FABL.andFunction w x = -1) =
        (2 ^ w)⁻¹
    Probability that `AND_w` is True (`-1`) is `2^{-w}`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.uniformProbability_andFunction_eq_one (w : ) :
      (FABL.uniformProbability fun x => FABL.andFunction w x = 1) =
        1 - (2 ^ w)⁻¹
    theorem FABL.uniformProbability_andFunction_eq_one
      (w : ) :
      (FABL.uniformProbability fun x =>
          FABL.andFunction w x = 1) =
        1 - (2 ^ w)⁻¹
    Probability that `AND_w` is False (`+1`) is `1 - 2^{-w}`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribes_zero (w : ) : FABL.tribes w 0 = fun x => 1
    theorem FABL.tribes_zero (w : ) :
      FABL.tribes w 0 = fun x => 1
    Empty tribes (`s = 0`) is constantly False. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribes_neg_one_probability_zero (w : ) :
      (FABL.uniformProbability fun x => FABL.tribes w 0 x = -1) =
        1 - (1 - (2 ^ w)⁻¹) ^ 0
    theorem FABL.tribes_neg_one_probability_zero
      (w : ) :
      (FABL.uniformProbability fun x =>
          FABL.tribes w 0 x = -1) =
        1 - (1 - (2 ^ w)⁻¹) ^ 0
    O'Donnell, Fact 4.10 for `s = 0`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribes_neg_one_probability (w s : ) :
      (FABL.uniformProbability fun x => FABL.tribes w s x = -1) =
        1 - (1 - (2 ^ w)⁻¹) ^ s
    theorem FABL.tribes_neg_one_probability
      (w s : ) :
      (FABL.uniformProbability fun x =>
          FABL.tribes w s x = -1) =
        1 - (1 - (2 ^ w)⁻¹) ^ s
    O'Donnell, Fact 4.10.
    
    `Pr[Tribes_{w,s}=-1] = 1-(1-2^{-w})^s`.
    
    The identity is the independence formula for `s` width-`w` AND blocks under the uniform
    product measure. The empty-size case is proved above; the positive-size case counts
    false blocks via the product structure on `Fin s → SignCube w`.
    
Definition4.2.2
Group: Chapter 4: DNF formulas and small-depth circuits (44)
Group member previews
Preview
Definition 4.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Definition 2.1.7
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Proposition 4.2.3
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

Definition 4.11. For w\in\mathbb N^+, let s=s_w be the largest integer such that 1-(1-2^{-w})^s\le 1/2. Writing n=n_w=sw, define \operatorname{Tribes}_n:\{-1,1\}^n\to\{-1,1\} to be \operatorname{Tribes}_{w,s}. This is defined only for certain n: 1,4,15,40,\ldots. The largest integer s_w is the floor of the corresponding real threshold.

Lean code for Definition4.2.25 declarations
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.IsTribesCriticalSizeCandidate (w s : ) : Prop
    def FABL.IsTribesCriticalSizeCandidate
      (w s : ) : Prop
    Predicate for Definition 4.11. 
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.tribesCriticalSize (w : ) : 
    def FABL.tribesCriticalSize (w : ) : 
    O'Donnell, Definition 4.11: largest `s ≤ 2^{w+2}` with
    `1 - (1 - 2^{-w})^s ≤ 1/2`. 
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.tribesCriticalDimension (w : ) : 
    def FABL.tribesCriticalDimension (w : ) : 
    Dimension `n_w = s_w · w`. 
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.tribesCritical (w : ) :
      FABL.BooleanFunction (FABL.tribesCriticalDimension w)
    def FABL.tribesCritical (w : ) :
      FABL.BooleanFunction
        (FABL.tribesCriticalDimension w)
    O'Donnell, Definition 4.11: critical tribes function of width `w`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesCriticalSize_spec (w : ) :
      FABL.IsTribesCriticalSizeCandidate w (FABL.tribesCriticalSize w)
    theorem FABL.tribesCriticalSize_spec (w : ) :
      FABL.IsTribesCriticalSizeCandidate w
        (FABL.tribesCriticalSize w)
Proposition4.2.3
Group: Chapter 4: DNF formulas and small-depth circuits (44)
Group member previews
Preview
Definition 4.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Lemma 4.2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Proposition 4.2.4
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

Proposition 4.12. For the function \operatorname{Tribes}_n of Definition 4.11 one has:

  • s=\ln(2)\,2^w-\Theta_w(1);

  • n=\ln(2)\,w\,2^w-\Theta(w), and thus n_{w+1}=(2+o(1))n_w;

  • w=\log n-\log\ln n+o_n(1) and 2^w=\frac{n}{\ln n}(1+o_n(1));

  • \Pr[\operatorname{Tribes}_n=-1]=\frac12-O\bigl(\frac{\log n}{n}\bigr).

These limits are taken as w\to\infty, equivalently along the sequence n=n_w\to\infty. In the final estimate, using \ln n/n instead of the book's base-2 expression changes only the absolute constant.

Lean code for Proposition4.2.327 declarations
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.tribesCriticalThreshold (w : ) : 
    def FABL.tribesCriticalThreshold (w : ) : 
    The real exponent at which `(1 - 2⁻ʷ)^s = 1/2`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesCriticalSize_eq_floor_threshold (w : ) (hw : 0 < w) :
      FABL.tribesCriticalSize w = FABL.tribesCriticalThreshold w⌋₊
    theorem FABL.tribesCriticalSize_eq_floor_threshold
      (w : ) (hw : 0 < w) :
      FABL.tribesCriticalSize w =
        FABL.tribesCriticalThreshold w⌋₊
    Definition 4.11's bounded search is exactly the floor of the unbounded real threshold. 
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.tribesCriticalSizeError (w : ) : 
    def FABL.tribesCriticalSizeError (w : ) : 
    The signed remainder in `s_w = ln(2) 2^w - error`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesCriticalSize_eq_main_sub_error (w : ) :
      (FABL.tribesCriticalSize w) =
        Real.log 2 * 2 ^ w - FABL.tribesCriticalSizeError w
    theorem FABL.tribesCriticalSize_eq_main_sub_error
      (w : ) :
      (FABL.tribesCriticalSize w) =
        Real.log 2 * 2 ^ w -
          FABL.tribesCriticalSizeError w
    Exact decomposition underlying `s_w = ln(2) 2^w - Θ_w(1)`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesCriticalSizeError_mem_Icc (w : ) (hw : 0 < w) :
      FABL.tribesCriticalSizeError w  Set.Icc (Real.log 2 / 4) 2
    theorem FABL.tribesCriticalSizeError_mem_Icc
      (w : ) (hw : 0 < w) :
      FABL.tribesCriticalSizeError w 
        Set.Icc (Real.log 2 / 4) 2
    Uniform positive lower and upper bounds for the critical-size remainder. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesCriticalSizeError_isTheta_one :
      FABL.tribesCriticalSizeError =Θ[Filter.atTop] fun _w => 1
    theorem FABL.tribesCriticalSizeError_isTheta_one :
      FABL.tribesCriticalSizeError =Θ[Filter.atTop]
        fun _w => 1
    Proposition 4.12's literal `Θ_w(1)` critical-size remainder. 
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.tribesCriticalDimensionError (w : ) : 
    def FABL.tribesCriticalDimensionError
      (w : ) : 
    The signed remainder in `n_w = ln(2) w 2^w - error`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesCriticalDimension_eq_main_sub_error (w : ) :
      (FABL.tribesCriticalDimension w) =
        Real.log 2 * w * 2 ^ w - FABL.tribesCriticalDimensionError w
    theorem FABL.tribesCriticalDimension_eq_main_sub_error
      (w : ) :
      (FABL.tribesCriticalDimension w) =
        Real.log 2 * w * 2 ^ w -
          FABL.tribesCriticalDimensionError w
    Exact decomposition underlying `n_w = ln(2) w 2^w - Θ(w)`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesCriticalDimensionError_eq (w : ) :
      FABL.tribesCriticalDimensionError w =
        w * FABL.tribesCriticalSizeError w
    theorem FABL.tribesCriticalDimensionError_eq
      (w : ) :
      FABL.tribesCriticalDimensionError w =
        w * FABL.tribesCriticalSizeError w
    The dimension remainder is `w` times the size remainder. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesCriticalDimensionError_isTheta_natCast :
      FABL.tribesCriticalDimensionError =Θ[Filter.atTop] fun w => w
    theorem FABL.tribesCriticalDimensionError_isTheta_natCast :
      FABL.tribesCriticalDimensionError =Θ[Filter.atTop]
        fun w => w
    Proposition 4.12's literal `Θ(w)` critical-dimension remainder. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesCriticalSizeError_isLittleO_two_pow :
      FABL.tribesCriticalSizeError =o[Filter.atTop] fun w => 2 ^ w
    theorem FABL.tribesCriticalSizeError_isLittleO_two_pow :
      FABL.tribesCriticalSizeError =o[Filter.atTop]
        fun w => 2 ^ w
    The bounded size remainder is negligible compared with `2^w`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesCriticalDimension_isEquivalent_main :
      Asymptotics.IsEquivalent Filter.atTop
        (fun w => (FABL.tribesCriticalDimension w)) fun w =>
        Real.log 2 * w * 2 ^ w
    theorem FABL.tribesCriticalDimension_isEquivalent_main :
      Asymptotics.IsEquivalent Filter.atTop
        (fun w =>
          (FABL.tribesCriticalDimension w))
        fun w => Real.log 2 * w * 2 ^ w
    The critical dimension is asymptotic to `ln(2) w 2^w`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tendsto_tribesCriticalDimension_succ_div :
      Filter.Tendsto
        (fun w =>
          (FABL.tribesCriticalDimension (w + 1)) /
            (FABL.tribesCriticalDimension w))
        Filter.atTop (nhds 2)
    theorem FABL.tendsto_tribesCriticalDimension_succ_div :
      Filter.Tendsto
        (fun w =>
          (FABL.tribesCriticalDimension
                (w + 1)) /
            (FABL.tribesCriticalDimension w))
        Filter.atTop (nhds 2)
    Proposition 4.12's `n_{w+1} = (2 + o(1)) n_w` conclusion. 
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.tribesCriticalWidthError (w : ) : 
    def FABL.tribesCriticalWidthError (w : ) : 
    The additive error in `w = log₂ n_w - log₂(ln n_w) + error`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesCriticalWidth_eq_log_sub_loglog_add_error (w : ) :
      w =
        Real.logb 2 (FABL.tribesCriticalDimension w) -
            Real.logb 2 (Real.log (FABL.tribesCriticalDimension w)) +
          FABL.tribesCriticalWidthError w
    theorem FABL.tribesCriticalWidth_eq_log_sub_loglog_add_error
      (w : ) :
      w =
        Real.logb 2
              (FABL.tribesCriticalDimension
                  w) -
            Real.logb 2
              (Real.log
                (FABL.tribesCriticalDimension
                    w)) +
          FABL.tribesCriticalWidthError w
    Exact additive decomposition for the width inversion formula. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tendsto_log_tribesCriticalDimension_div_width :
      Filter.Tendsto
        (fun w =>
          Real.log (FABL.tribesCriticalDimension w) / (w * Real.log 2))
        Filter.atTop (nhds 1)
    theorem FABL.tendsto_log_tribesCriticalDimension_div_width :
      Filter.Tendsto
        (fun w =>
          Real.log
              (FABL.tribesCriticalDimension
                  w) /
            (w * Real.log 2))
        Filter.atTop (nhds 1)
    `ln n_w / (w ln 2) → 1`, the normalization shared by both inversion formulas. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesCriticalWidthError_isLittleO_one :
      FABL.tribesCriticalWidthError =o[Filter.atTop] fun _w => 1
    theorem FABL.tribesCriticalWidthError_isLittleO_one :
      FABL.tribesCriticalWidthError =o[Filter.atTop]
        fun _w => 1
    Proposition 4.12's literal `o_n(1)` width error, along the sequence `n = n_w`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tendsto_tribesCriticalDimension_atTop :
      Filter.Tendsto (fun w => (FABL.tribesCriticalDimension w))
        Filter.atTop Filter.atTop
    theorem FABL.tendsto_tribesCriticalDimension_atTop :
      Filter.Tendsto
        (fun w =>
          (FABL.tribesCriticalDimension w))
        Filter.atTop Filter.atTop
    The critical dimensions tend to infinity with the width. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tendsto_two_pow_mul_log_tribesCriticalDimension_div :
      Filter.Tendsto
        (fun w =>
          2 ^ w * Real.log (FABL.tribesCriticalDimension w) /
            (FABL.tribesCriticalDimension w))
        Filter.atTop (nhds 1)
    theorem FABL.tendsto_two_pow_mul_log_tribesCriticalDimension_div :
      Filter.Tendsto
        (fun w =>
          2 ^ w *
              Real.log
                (FABL.tribesCriticalDimension
                    w) /
            (FABL.tribesCriticalDimension w))
        Filter.atTop (nhds 1)
    The relative-error form of `2^w ∼ n_w / ln n_w`. 
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.tribesCriticalPowerRelativeError (w : ) : 
    def FABL.tribesCriticalPowerRelativeError
      (w : ) : 
    The multiplicative error in `2^w = n_w / ln n_w · (1 + error)`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesCriticalPowerRelativeError_isLittleO_one :
      FABL.tribesCriticalPowerRelativeError =o[Filter.atTop] fun _w => 1
    theorem FABL.tribesCriticalPowerRelativeError_isLittleO_one :
      FABL.tribesCriticalPowerRelativeError =o[Filter.atTop]
        fun _w => 1
    Proposition 4.12's literal multiplicative `o_n(1)` error for `2^w`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.eventually_two_pow_eq_dimension_div_log_mul_one_add_error :
      ∀ᶠ (w : ) in Filter.atTop,
        2 ^ w =
          (FABL.tribesCriticalDimension w) /
              Real.log (FABL.tribesCriticalDimension w) *
            (1 + FABL.tribesCriticalPowerRelativeError w)
    theorem FABL.eventually_two_pow_eq_dimension_div_log_mul_one_add_error :
      ∀ᶠ (w : ) in Filter.atTop,
        2 ^ w =
          (FABL.tribesCriticalDimension w) /
              Real.log
                (FABL.tribesCriticalDimension
                    w) *
            (1 +
              FABL.tribesCriticalPowerRelativeError
                w)
    The multiplicative decomposition holds once `n_w > 1`, hence eventually. 
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.tribesCriticalProbabilityDeficit (w : ) : 
    def FABL.tribesCriticalProbabilityDeficit
      (w : ) : 
    The nonnegative deficit of `Pr[Tribes_{n_w} = -1]` from `1/2`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesCritical_neg_one_probability_eq_half_sub_deficit (w : ) :
      (FABL.uniformProbability fun x => FABL.tribesCritical w x = -1) =
        1 / 2 - FABL.tribesCriticalProbabilityDeficit w
    theorem FABL.tribesCritical_neg_one_probability_eq_half_sub_deficit
      (w : ) :
      (FABL.uniformProbability fun x =>
          FABL.tribesCritical w x = -1) =
        1 / 2 -
          FABL.tribesCriticalProbabilityDeficit
            w
    Exact decomposition of the critical tribes probability around `1/2`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesCriticalProbabilityDeficit_eq_pow (w : ) :
      FABL.tribesCriticalProbabilityDeficit w =
        (1 - (2 ^ w)⁻¹) ^ FABL.tribesCriticalSize w - 1 / 2
    theorem FABL.tribesCriticalProbabilityDeficit_eq_pow
      (w : ) :
      FABL.tribesCriticalProbabilityDeficit
          w =
        (1 - (2 ^ w)⁻¹) ^
            FABL.tribesCriticalSize w -
          1 / 2
    The deficit is the excess of the all-false-block probability over `1/2`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesCriticalProbabilityDeficit_mem_Icc (w : ) (hw : 0 < w) :
      FABL.tribesCriticalProbabilityDeficit w  Set.Icc 0 (2 ^ w)⁻¹
    theorem FABL.tribesCriticalProbabilityDeficit_mem_Icc
      (w : ) (hw : 0 < w) :
      FABL.tribesCriticalProbabilityDeficit
          w 
        Set.Icc 0 (2 ^ w)⁻¹
    The bias deficit is at most `2⁻ʷ`; maximality of `s_w` supplies the strict step. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesCriticalProbabilityDeficit_isBigO_log_dimension_div_dimension :
      FABL.tribesCriticalProbabilityDeficit =O[Filter.atTop] fun w =>
        Real.log (FABL.tribesCriticalDimension w) /
          (FABL.tribesCriticalDimension w)
    theorem FABL.tribesCriticalProbabilityDeficit_isBigO_log_dimension_div_dimension :
      FABL.tribesCriticalProbabilityDeficit =O[Filter.atTop]
        fun w =>
        Real.log
            (FABL.tribesCriticalDimension
                w) /
          (FABL.tribesCriticalDimension w)
    Proposition 4.12's `O(log n / n)` probability deficit. 
Proposition4.2.4
Group: Chapter 4: DNF formulas and small-depth circuits (44)
Group member previews
Preview
Definition 4.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 5
Statement dependency previews
Preview
Definition 2.2.2
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0L∃∀N

Proposition 4.13. For every coordinate i\in[n], \operatorname{Inf}_i[\operatorname{Tribes}_n] =\frac{\ln n}{n}\,(1\pm o(1)), and therefore \mathbf I[\operatorname{Tribes}_n]=(\ln n)(1\pm o(1)). For every w,s\ge 1 and every coordinate i\in[sw]: \operatorname{Inf}_i[\operatorname{Tribes}_{w,s}] =2^{-(w-1)}(1-2^{-w})^{s-1}, hence \mathbf I[\operatorname{Tribes}_{w,s}]=sw\cdot 2^{-(w-1)}(1-2^{-w})^{s-1}, because a coordinate is pivotal exactly when the other variables in its tribe are True and every other tribe is False. Specializing to s_w, the common coordinate influence times n_w/\ln n_w tends to 1. Hence one relative error \varepsilon_w=o(1), uniform in the coordinate, gives both displayed conclusions along n=n_w\to\infty.

Lean code for Proposition4.2.416 declarations
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.tribesCoord (w s : ) (i : Fin (s * w)) : Fin s × Fin w
    def FABL.tribesCoord (w s : )
      (i : Fin (s * w)) : Fin s × Fin w
    Decode a global coordinate into its tribe index and offset. 
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.TribesRestTrue (w s : ) (i : Fin (s * w))
      (x : FABL.SignCube (s * w)) : Prop
    def FABL.TribesRestTrue (w s : )
      (i : Fin (s * w))
      (x : FABL.SignCube (s * w)) : Prop
    Event: the rest of coordinate `i`'s tribe votes True (`-1`). 
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.TribesOthersFalse (w s : ) (i : Fin (s * w))
      (x : FABL.SignCube (s * w)) : Prop
    def FABL.TribesOthersFalse (w s : )
      (i : Fin (s * w))
      (x : FABL.SignCube (s * w)) : Prop
    Event: every tribe other than coordinate `i`'s is False (`+1`). 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.isPivotal_tribes_iff (w s : ) (i : Fin (s * w))
      (x : FABL.SignCube (s * w)) :
      FABL.IsPivotal (FABL.tribes w s) i x 
        FABL.TribesRestTrue w s i x  FABL.TribesOthersFalse w s i x
    theorem FABL.isPivotal_tribes_iff (w s : )
      (i : Fin (s * w))
      (x : FABL.SignCube (s * w)) :
      FABL.IsPivotal (FABL.tribes w s) i x 
        FABL.TribesRestTrue w s i x 
          FABL.TribesOthersFalse w s i x
    Coordinate `i` is pivotal for tribes iff rest-true and others-false. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.card_andFunction_eq_one (w : ) :
      {z | FABL.andFunction w z = 1}.card = 2 ^ w - 1
    theorem FABL.card_andFunction_eq_one (w : ) :
      {z | FABL.andFunction w z = 1}.card =
        2 ^ w - 1
    Number of good (non-True) width-`w` blocks. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.booleanInfluence_tribes (w s : ) (hw : 0 < w) (hs : 0 < s)
      (i : Fin (s * w)) :
      FABL.booleanInfluence (FABL.tribes w s) i =
        (2 ^ (w - 1))⁻¹ * (1 - (2 ^ w)⁻¹) ^ (s - 1)
    theorem FABL.booleanInfluence_tribes (w s : )
      (hw : 0 < w) (hs : 0 < s)
      (i : Fin (s * w)) :
      FABL.booleanInfluence (FABL.tribes w s)
          i =
        (2 ^ (w - 1))⁻¹ *
          (1 - (2 ^ w)⁻¹) ^ (s - 1)
    O'Donnell, Proposition 4.13 (exact influence for `w, s ≥ 1`).
    
    `Inf_i[Tribes_{w,s}] = 2^{-(w-1)}(1-2^{-w})^{s-1}`.
    
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.totalInfluence_tribes (w s : ) (hw : 0 < w) (hs : 0 < s) :
      FABL.totalInfluence (FABL.tribes w s).toReal =
        (s * w) * ((2 ^ (w - 1))⁻¹ * (1 - (2 ^ w)⁻¹) ^ (s - 1))
    theorem FABL.totalInfluence_tribes (w s : )
      (hw : 0 < w) (hs : 0 < s) :
      FABL.totalInfluence
          (FABL.tribes w s).toReal =
        (s * w) *
          ((2 ^ (w - 1))⁻¹ *
            (1 - (2 ^ w)⁻¹) ^ (s - 1))
    Total influence of tribes from the exact per-coordinate formula. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesCriticalSize_pos (w : ) (hw : 0 < w) :
      0 < FABL.tribesCriticalSize w
    theorem FABL.tribesCriticalSize_pos (w : )
      (hw : 0 < w) :
      0 < FABL.tribesCriticalSize w
    The critical number of tribes is positive at every positive width. 
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.tribesCriticalCoordinateInfluence (w : ) : 
    def FABL.tribesCriticalCoordinateInfluence
      (w : ) : 
    The common exact coordinate influence of critical tribes. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.booleanInfluence_tribesCritical (w : ) (hw : 0 < w)
      (i : Fin (FABL.tribesCriticalDimension w)) :
      FABL.booleanInfluence (FABL.tribesCritical w) i =
        FABL.tribesCriticalCoordinateInfluence w
    theorem FABL.booleanInfluence_tribesCritical
      (w : ) (hw : 0 < w)
      (i :
        Fin
          (FABL.tribesCriticalDimension w)) :
      FABL.booleanInfluence
          (FABL.tribesCritical w) i =
        FABL.tribesCriticalCoordinateInfluence
          w
    The exact coordinate formula of Proposition 4.13 specialized to critical tribes. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.totalInfluence_tribesCritical (w : ) (hw : 0 < w) :
      FABL.totalInfluence (FABL.tribesCritical w).toReal =
        (FABL.tribesCriticalDimension w) *
          FABL.tribesCriticalCoordinateInfluence w
    theorem FABL.totalInfluence_tribesCritical (w : )
      (hw : 0 < w) :
      FABL.totalInfluence
          (FABL.tribesCritical w).toReal =
        (FABL.tribesCriticalDimension w) *
          FABL.tribesCriticalCoordinateInfluence
            w
    The exact total-influence formula of Proposition 4.13 specialized to critical tribes. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tendsto_tribesCriticalCoordinateInfluence_mul_dimension_div_log :
      Filter.Tendsto
        (fun w =>
          FABL.tribesCriticalCoordinateInfluence w *
              (FABL.tribesCriticalDimension w) /
            Real.log (FABL.tribesCriticalDimension w))
        Filter.atTop (nhds 1)
    theorem FABL.tendsto_tribesCriticalCoordinateInfluence_mul_dimension_div_log :
      Filter.Tendsto
        (fun w =>
          FABL.tribesCriticalCoordinateInfluence
                w *
              (FABL.tribesCriticalDimension
                  w) /
            Real.log
              (FABL.tribesCriticalDimension
                  w))
        Filter.atTop (nhds 1)
    The normalized coordinate influence tends to one. 
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.tribesCriticalCoordinateInfluenceRelativeError (w : ) : 
    def FABL.tribesCriticalCoordinateInfluenceRelativeError
      (w : ) : 
    The relative error in the coordinate-influence asymptotic. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesCriticalCoordinateInfluenceRelativeError_isLittleO_one :
      FABL.tribesCriticalCoordinateInfluenceRelativeError =o[Filter.atTop]
        fun _w => 1
    theorem FABL.tribesCriticalCoordinateInfluenceRelativeError_isLittleO_one :
      FABL.tribesCriticalCoordinateInfluenceRelativeError =o[Filter.atTop]
        fun _w => 1
    Proposition 4.13's literal coordinate-influence `o(1)` error. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.eventually_booleanInfluence_tribesCritical_eq_log_dimension_div_mul_one_add_error :
      ∀ᶠ (w : ) in Filter.atTop,
         (i : Fin (FABL.tribesCriticalDimension w)),
          FABL.booleanInfluence (FABL.tribesCritical w) i =
            Real.log (FABL.tribesCriticalDimension w) /
                (FABL.tribesCriticalDimension w) *
              (1 + FABL.tribesCriticalCoordinateInfluenceRelativeError w)
    theorem FABL.eventually_booleanInfluence_tribesCritical_eq_log_dimension_div_mul_one_add_error :
      ∀ᶠ (w : ) in Filter.atTop,
        
          (i :
            Fin
              (FABL.tribesCriticalDimension
                w)),
          FABL.booleanInfluence
              (FABL.tribesCritical w) i =
            Real.log
                  (FABL.tribesCriticalDimension
                      w) /
                (FABL.tribesCriticalDimension
                    w) *
              (1 +
                FABL.tribesCriticalCoordinateInfluenceRelativeError
                  w)
    Proposition 4.13's per-coordinate asymptotic, with one uniform error for all coordinates. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.eventually_totalInfluence_tribesCritical_eq_log_dimension_mul_one_add_error :
      ∀ᶠ (w : ) in Filter.atTop,
        FABL.totalInfluence (FABL.tribesCritical w).toReal =
          Real.log (FABL.tribesCriticalDimension w) *
            (1 + FABL.tribesCriticalCoordinateInfluenceRelativeError w)
    theorem FABL.eventually_totalInfluence_tribesCritical_eq_log_dimension_mul_one_add_error :
      ∀ᶠ (w : ) in Filter.atTop,
        FABL.totalInfluence
            (FABL.tribesCritical w).toReal =
          Real.log
              (FABL.tribesCriticalDimension
                  w) *
            (1 +
              FABL.tribesCriticalCoordinateInfluenceRelativeError
                w)
    Proposition 4.13's total-influence asymptotic with the same relative error. 
Theorem4.2.5
Group: Chapter 4: DNF formulas and small-depth circuits (44)
Group member previews
Preview
Definition 4.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Proposition 1.4.8
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 4
Reverse dependency previews
Preview
Definition 9.6.1
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

Kahn–Kalai–Linial (KKL) Theorem. For every f:\{-1,1\}^n\to\{-1,1\}, \operatorname{MaxInf}[f] =\max_{i\in[n]}\operatorname{Inf}_i[f] \ge \operatorname{Var}[f]\cdot\Omega\Bigl(\frac{\log n}{n}\Bigr). The book states KKL in Section 4.2 and defers the proof to Section 9.6. The proof there gives the explicit estimate \operatorname{MaxInf}[f] \ge \operatorname{Var}[f]\frac{\ln n}{100n}. For n\ge1, some coordinate attains \operatorname{MaxInf}[f]; in dimension zero the empty maximum is 0. The proof also gives the exact Edge-KKL estimate from Theorem 9.24, \operatorname{MaxInf}[f]\ge 9\,9^{-K}/K^2 for K=\mathbf I[f]/\operatorname{Var}[f], and derives the stated constant using the hypercontractive argument of Section 9.6. Natural logarithm differs from the book's base-2 logarithm by a fixed positive factor only.

Lean code for Theorem4.2.54 declarations
  • defdefined in FABL/Chapter04/KKL.lean
    complete
    def FABL.maximumInfluence {n : } (f : FABL.BooleanFunction n) : 
    def FABL.maximumInfluence {n : }
      (f : FABL.BooleanFunction n) : 
    O'Donnell, Definition 9.26: the largest coordinate influence, with value zero in dimension
    zero. 
  • theoremdefined in FABL/Chapter04/KKL.lean
    complete
    theorem FABL.exists_booleanInfluence_eq_maximumInfluence {n : }
      (f : FABL.BooleanFunction n) (hn : 0 < n) :
       i, FABL.booleanInfluence f i = FABL.maximumInfluence f
    theorem FABL.exists_booleanInfluence_eq_maximumInfluence
      {n : } (f : FABL.BooleanFunction n)
      (hn : 0 < n) :
       i,
        FABL.booleanInfluence f i =
          FABL.maximumInfluence f
    In every positive dimension, some coordinate attains the maximum influence. 
  • theoremdefined in FABL/Chapter04/KKL.lean
    complete
    theorem FABL.edgeKKL {n : } (f : FABL.BooleanFunction n)
      (hvar : 0 < FABL.variance f.toReal) :
      9 *
            Real.rpow 9
              (-(FABL.totalInfluence f.toReal / FABL.variance f.toReal)) /
          (FABL.totalInfluence f.toReal / FABL.variance f.toReal) ^ 2 
        FABL.maximumInfluence f
    theorem FABL.edgeKKL {n : }
      (f : FABL.BooleanFunction n)
      (hvar : 0 < FABL.variance f.toReal) :
      9 *
            Real.rpow 9
              (-(FABL.totalInfluence
                    f.toReal /
                  FABL.variance f.toReal)) /
          (FABL.totalInfluence f.toReal /
              FABL.variance f.toReal) ^
            2 
        FABL.maximumInfluence f
    O'Donnell's unnumbered KKL Edge-Isoperimetric Theorem, in the book's
    `K = I[f] / Var[f]` normalization.  Theorem 9.24 is the separate one-sided
    anticoncentration result. 
  • theoremdefined in FABL/Chapter04/KKL.lean
    complete
    theorem FABL.kkl {n : } (f : FABL.BooleanFunction n) :
      FABL.variance f.toReal * Real.log n / (100 * n) 
        FABL.maximumInfluence f
    theorem FABL.kkl {n : }
      (f : FABL.BooleanFunction n) :
      FABL.variance f.toReal * Real.log n /
          (100 * n) 
        FABL.maximumInfluence f
    The Kahn--Kalai--Linial theorem with a dimension-independent explicit constant. This is the
    book's `Var[f] * Ω(log n / n)` claim with natural logarithm; changing the logarithm base only
    changes the constant. 
Proposition4.2.6
Group: Chapter 4: DNF formulas and small-depth circuits (44)
Group member previews
Preview
Definition 4.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Definition 2.1.7
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0L∃∀N

Proposition 4.14. Index Fourier coefficients of \operatorname{Tribes}_{w,s}:\{-1,1\}^{sw}\to\{-1,1\} by sets T=(T_1,\ldots,T_s)\subseteq[sw], where T_i is the intersection of T with the ith tribe. Then \widehat{\operatorname{Tribes}}_{w,s}(T) = \begin{cases} 2(1-2^{-w})^s-1 & \text{if }T=\emptyset,\\ 2(-1)^{k+|T|}2^{-kw}(1-2^{-w})^{s-k} & \text{if }k=\#\{i:T_i\neq\emptyset\}>0. \end{cases} Reindexing the cube into independent tribes factors the block expectations; the complete Fourier expansion of \mathrm{AND}_w then gives both cases.

Lean code for Proposition4.2.625 declarations
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.mean_booleanFunction_eq_prob_one_sub_prob_neg_one {m : }
      (f : FABL.BooleanFunction m) :
      FABL.mean f.toReal =
        (FABL.uniformProbability fun x => f x = 1) -
          FABL.uniformProbability fun x => f x = -1
    theorem FABL.mean_booleanFunction_eq_prob_one_sub_prob_neg_one
      {m : } (f : FABL.BooleanFunction m) :
      FABL.mean f.toReal =
        (FABL.uniformProbability fun x =>
            f x = 1) -
          FABL.uniformProbability fun x =>
            f x = -1
    Mean of a Boolean function is `Pr[f=1] - Pr[f=-1]`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.fourierCoeff_tribes_empty (w s : ) :
      FABL.fourierCoeff (FABL.tribes w s).toReal  =
        2 * (1 - (2 ^ w)⁻¹) ^ s - 1
    theorem FABL.fourierCoeff_tribes_empty (w s : ) :
      FABL.fourierCoeff
          (FABL.tribes w s).toReal  =
        2 * (1 - (2 ^ w)⁻¹) ^ s - 1
    O'Donnell, Proposition 4.14 (empty-set Fourier coefficient). 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.signValue_andFunction (w : ) (x : FABL.SignCube w) :
      FABL.signValue (FABL.andFunction w x) =
        1 - 2 *  i, (1 - FABL.signValue (x i)) / 2
    theorem FABL.signValue_andFunction (w : )
      (x : FABL.SignCube w) :
      FABL.signValue (FABL.andFunction w x) =
        1 -
          2 *
             i,
              (1 - FABL.signValue (x i)) / 2
    Real encoding of `AND`: `1 - 2 · ∏_i (1 - x_i)/2`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.signValue_orFunction (s : ) (v : FABL.SignCube s) :
      FABL.signValue (FABL.orFunction s v) =
        2 *  i, (1 + FABL.signValue (v i)) / 2 - 1
    theorem FABL.signValue_orFunction (s : )
      (v : FABL.SignCube s) :
      FABL.signValue (FABL.orFunction s v) =
        2 *
             i,
              (1 + FABL.signValue (v i)) / 2 -
          1
    Real encoding of `OR`: `2 · ∏_i (1 + v_i)/2 - 1`. 
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.tribeFrequencyPart (w s : ) (T : Finset (Fin (s * w)))
      (i : Fin s) : Finset (Fin w)
    def FABL.tribeFrequencyPart (w s : )
      (T : Finset (Fin (s * w))) (i : Fin s) :
      Finset (Fin w)
    Tribe-`i` frequency part of an ambient set `T ⊆ [s·w]`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.mem_tribeFrequencyPart (w s : ) (T : Finset (Fin (s * w)))
      (i : Fin s) (o : Fin w) :
      o  FABL.tribeFrequencyPart w s T i  finProdFinEquiv (i, o)  T
    theorem FABL.mem_tribeFrequencyPart (w s : )
      (T : Finset (Fin (s * w))) (i : Fin s)
      (o : Fin w) :
      o  FABL.tribeFrequencyPart w s T i 
        finProdFinEquiv (i, o)  T
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.tribeFrequencySupportSize (w s : ) (T : Finset (Fin (s * w))) : 
    def FABL.tribeFrequencySupportSize (w s : )
      (T : Finset (Fin (s * w))) : 
    Number of nonempty tribe parts of `T`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribes_toReal_eq (w s : ) (x : FABL.SignCube (s * w)) :
      (FABL.tribes w s).toReal x =
        2 *
             i,
              (1 +
                  FABL.signValue
                    (FABL.andFunction w (FABL.inputBlock x i))) /
                2 -
          1
    theorem FABL.tribes_toReal_eq (w s : )
      (x : FABL.SignCube (s * w)) :
      (FABL.tribes w s).toReal x =
        2 *
             i,
              (1 +
                  FABL.signValue
                    (FABL.andFunction w
                      (FABL.inputBlock x
                        i))) /
                2 -
          1
    Real tribes equals the OR product formula on block ANDs. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.fourierCoeff_andFunction_empty (w : ) :
      FABL.fourierCoeff (FABL.andFunction w).toReal  = 1 - 2 * (2 ^ w)⁻¹
    theorem FABL.fourierCoeff_andFunction_empty
      (w : ) :
      FABL.fourierCoeff
          (FABL.andFunction w).toReal  =
        1 - 2 * (2 ^ w)⁻¹
    Fourier coefficient of width-`w` AND at the empty set. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.fourierCoeff_andFunction_of_ne_empty (w : ) (S : Finset (Fin w))
      (hS : S  ) :
      FABL.fourierCoeff (FABL.andFunction w).toReal S =
        -2 * (2 ^ w)⁻¹ * (-1) ^ S.card
    theorem FABL.fourierCoeff_andFunction_of_ne_empty
      (w : ) (S : Finset (Fin w))
      (hS : S  ) :
      FABL.fourierCoeff
          (FABL.andFunction w).toReal S =
        -2 * (2 ^ w)⁻¹ * (-1) ^ S.card
    Fourier coefficient of width-`w` AND at a nonempty frequency. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.fourierCoeff_andFunction (w : ) (S : Finset (Fin w)) :
      FABL.fourierCoeff (FABL.andFunction w).toReal S =
        if S =  then 1 - 2 * (2 ^ w)⁻¹ else -2 * (2 ^ w)⁻¹ * (-1) ^ S.card
    theorem FABL.fourierCoeff_andFunction (w : )
      (S : Finset (Fin w)) :
      FABL.fourierCoeff
          (FABL.andFunction w).toReal S =
        if S =  then 1 - 2 * (2 ^ w)⁻¹
        else -2 * (2 ^ w)⁻¹ * (-1) ^ S.card
    Combined Fourier formula for `AND_w`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.expect_one_add_andFunction_mul_monomial (w : )
      (S : Finset (Fin w)) :
      (Finset.univ.expect fun y =>
          (1 + FABL.signValue (FABL.andFunction w y)) * FABL.monomial S y) =
        if S =  then 2 * (1 - (2 ^ w)⁻¹)
        else 2 * (2 ^ w)⁻¹ * (-1) ^ (S.card + 1)
    theorem FABL.expect_one_add_andFunction_mul_monomial
      (w : ) (S : Finset (Fin w)) :
      (Finset.univ.expect fun y =>
          (1 +
              FABL.signValue
                (FABL.andFunction w y)) *
            FABL.monomial S y) =
        if S =  then 2 * (1 - (2 ^ w)⁻¹)
        else
          2 * (2 ^ w)⁻¹ * (-1) ^ (S.card + 1)
    One-point evaluation of AND Fourier: `E[(1+AND) χ_S]`. 
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.tribesBlockEquiv (w s : ) :
      FABL.SignCube (s * w)  (Fin s  FABL.SignCube w)
    def FABL.tribesBlockEquiv (w s : ) :
      FABL.SignCube (s * w) 
        (Fin s  FABL.SignCube w)
    Canonical identification of the tribes cube with `s` width-`w` blocks. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribesBlockEquiv_apply (w s : ) (x : FABL.SignCube (s * w))
      (i : Fin s) : (FABL.tribesBlockEquiv w s) x i = FABL.inputBlock x i
    theorem FABL.tribesBlockEquiv_apply (w s : )
      (x : FABL.SignCube (s * w))
      (i : Fin s) :
      (FABL.tribesBlockEquiv w s) x i =
        FABL.inputBlock x i
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.tribeOffsetEmbed (w s : ) (i : Fin s) : Fin w  Fin (s * w)
    def FABL.tribeOffsetEmbed (w s : )
      (i : Fin s) : Fin w  Fin (s * w)
    Embedding of offset `o` in tribe `i` into the ambient cube. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.tribeFrequencyPart_biUnion (w s : ) (T : Finset (Fin (s * w))) :
      (Finset.univ.biUnion fun i =>
          Finset.map (FABL.tribeOffsetEmbed w s i)
            (FABL.tribeFrequencyPart w s T i)) =
        T
    theorem FABL.tribeFrequencyPart_biUnion (w s : )
      (T : Finset (Fin (s * w))) :
      (Finset.univ.biUnion fun i =>
          Finset.map
            (FABL.tribeOffsetEmbed w s i)
            (FABL.tribeFrequencyPart w s T
              i)) =
        T
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.disjoint_tribeOffsetEmbed (w s : ) (T : Finset (Fin (s * w)))
      {i j : Fin s} (hij : i  j) :
      Disjoint
        (Finset.map (FABL.tribeOffsetEmbed w s i)
          (FABL.tribeFrequencyPart w s T i))
        (Finset.map (FABL.tribeOffsetEmbed w s j)
          (FABL.tribeFrequencyPart w s T j))
    theorem FABL.disjoint_tribeOffsetEmbed (w s : )
      (T : Finset (Fin (s * w))) {i j : Fin s}
      (hij : i  j) :
      Disjoint
        (Finset.map
          (FABL.tribeOffsetEmbed w s i)
          (FABL.tribeFrequencyPart w s T i))
        (Finset.map
          (FABL.tribeOffsetEmbed w s j)
          (FABL.tribeFrequencyPart w s T j))
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.card_tribeFrequencyPart_sum (w s : ) (T : Finset (Fin (s * w))) :
       i, (FABL.tribeFrequencyPart w s T i).card = T.card
    theorem FABL.card_tribeFrequencyPart_sum (w s : )
      (T : Finset (Fin (s * w))) :
       i,
          (FABL.tribeFrequencyPart w s T
              i).card =
        T.card
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.monomial_eq_prod_tribeFrequencyPart (w s : )
      (T : Finset (Fin (s * w))) (x : FABL.SignCube (s * w)) :
      FABL.monomial T x =
         i,
          FABL.monomial (FABL.tribeFrequencyPart w s T i)
            (FABL.inputBlock x i)
    theorem FABL.monomial_eq_prod_tribeFrequencyPart
      (w s : ) (T : Finset (Fin (s * w)))
      (x : FABL.SignCube (s * w)) :
      FABL.monomial T x =
         i,
          FABL.monomial
            (FABL.tribeFrequencyPart w s T i)
            (FABL.inputBlock x i)
  • defdefined in FABL/Chapter04/Tribes.lean
    complete
    def FABL.finArrowConsEquiv.{u_1} (n : ) (α : Type u_1) :
      (Fin (n + 1)  α)  α × (Fin n  α)
    def FABL.finArrowConsEquiv.{u_1} (n : )
      (α : Type u_1) :
      (Fin (n + 1)  α)  α × (Fin n  α)
    Equivalence `(Fin (n+1) → α) ≃ α × (Fin n → α)` via `Fin.cons`. 
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.expect_prod_finArrow.{u_1} (α : Type u_1) [Fintype α] (s : )
      (f : Fin s  α  ) :
      (Finset.univ.expect fun y =>  i, f i (y i)) =
         i, Finset.univ.expect fun a => f i a
    theorem FABL.expect_prod_finArrow.{u_1}
      (α : Type u_1) [Fintype α] (s : )
      (f : Fin s  α  ) :
      (Finset.univ.expect fun y =>
           i, f i (y i)) =
         i, Finset.univ.expect fun a => f i a
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.fourierCoeff_tribes_eq_prod (w s : ) (T : Finset (Fin (s * w))) :
      FABL.fourierCoeff (FABL.tribes w s).toReal T =
        (-if T =  then 1 else 0) +
          2 * (2 ^ s)⁻¹ *
             i,
              Finset.univ.expect fun y =>
                (1 + FABL.signValue (FABL.andFunction w y)) *
                  FABL.monomial (FABL.tribeFrequencyPart w s T i) y
    theorem FABL.fourierCoeff_tribes_eq_prod (w s : )
      (T : Finset (Fin (s * w))) :
      FABL.fourierCoeff
          (FABL.tribes w s).toReal T =
        (-if T =  then 1 else 0) +
          2 * (2 ^ s)⁻¹ *
             i,
              Finset.univ.expect fun y =>
                (1 +
                    FABL.signValue
                      (FABL.andFunction w
                        y)) *
                  FABL.monomial
                    (FABL.tribeFrequencyPart w
                      s T i)
                    y
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.prod_expect_one_add_and_tribeFrequencyPart (w s : )
      (T : Finset (Fin (s * w))) :
      (∏ i,
          Finset.univ.expect fun y =>
            (1 + FABL.signValue (FABL.andFunction w y)) *
              FABL.monomial (FABL.tribeFrequencyPart w s T i) y) =
        have k := FABL.tribeFrequencySupportSize w s T;
        2 ^ s * (1 - (2 ^ w)⁻¹) ^ (s - k) * (2 ^ w)⁻¹ ^ k *
          (-1) ^ (T.card + k)
    theorem FABL.prod_expect_one_add_and_tribeFrequencyPart
      (w s : ) (T : Finset (Fin (s * w))) :
      (∏ i,
          Finset.univ.expect fun y =>
            (1 +
                FABL.signValue
                  (FABL.andFunction w y)) *
              FABL.monomial
                (FABL.tribeFrequencyPart w s T
                  i)
                y) =
        have k :=
          FABL.tribeFrequencySupportSize w s
            T;
        2 ^ s * (1 - (2 ^ w)⁻¹) ^ (s - k) *
            (2 ^ w)⁻¹ ^ k *
          (-1) ^ (T.card + k)
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.fourierCoeff_tribes_of_ne_empty (w s : )
      (T : Finset (Fin (s * w))) (hT : T  ) :
      FABL.fourierCoeff (FABL.tribes w s).toReal T =
        2 * (-1) ^ (FABL.tribeFrequencySupportSize w s T + T.card) *
            (2 ^ (FABL.tribeFrequencySupportSize w s T * w))⁻¹ *
          (1 - (2 ^ w)⁻¹) ^ (s - FABL.tribeFrequencySupportSize w s T)
    theorem FABL.fourierCoeff_tribes_of_ne_empty
      (w s : ) (T : Finset (Fin (s * w)))
      (hT : T  ) :
      FABL.fourierCoeff
          (FABL.tribes w s).toReal T =
        2 *
              (-1) ^
                (FABL.tribeFrequencySupportSize
                    w s T +
                  T.card) *
            (2 ^
                (FABL.tribeFrequencySupportSize
                    w s T *
                  w))⁻¹ *
          (1 - (2 ^ w)⁻¹) ^
            (s -
              FABL.tribeFrequencySupportSize w
                s T)
  • theoremdefined in FABL/Chapter04/Tribes.lean
    complete
    theorem FABL.fourierCoeff_tribes (w s : ) (T : Finset (Fin (s * w))) :
      FABL.fourierCoeff (FABL.tribes w s).toReal T =
        if T =  then 2 * (1 - (2 ^ w)⁻¹) ^ s - 1
        else
          2 * (-1) ^ (FABL.tribeFrequencySupportSize w s T + T.card) *
              (2 ^ (FABL.tribeFrequencySupportSize w s T * w))⁻¹ *
            (1 - (2 ^ w)⁻¹) ^ (s - FABL.tribeFrequencySupportSize w s T)
    theorem FABL.fourierCoeff_tribes (w s : )
      (T : Finset (Fin (s * w))) :
      FABL.fourierCoeff
          (FABL.tribes w s).toReal T =
        if T =  then
          2 * (1 - (2 ^ w)⁻¹) ^ s - 1
        else
          2 *
                (-1) ^
                  (FABL.tribeFrequencySupportSize
                      w s T +
                    T.card) *
              (2 ^
                  (FABL.tribeFrequencySupportSize
                      w s T *
                    w))⁻¹ *
            (1 - (2 ^ w)⁻¹) ^
              (s -
                FABL.tribeFrequencySupportSize
                  w s T)
    O'Donnell, Proposition 4.14 (complete case split).