Documentation

Atlas.BooleanFunctions.code.RussoMargulis

def BooleanFourier.flipBit {n : } (x : Fin nBool) (i : Fin n) :
Fin nBool
Instances For
    @[simp]
    theorem BooleanFourier.flipBit_apply_same {n : } (x : Fin nBool) (i : Fin n) :
    flipBit x i i = !x i
    @[simp]
    theorem BooleanFourier.flipBit_apply_ne {n : } (x : Fin nBool) {i k : Fin n} (h : k i) :
    flipBit x i k = x k
    theorem BooleanFourier.flipBit_flipBit {n : } (x : Fin nBool) (i : Fin n) :
    flipBit (flipBit x i) i = x
    noncomputable def BooleanFourier.pBiasedWeight (n : ) (p : ) (x : Fin nBool) :
    Instances For
      noncomputable def BooleanFourier.pBiasedExpectation {n : } (f : (Fin nBool)Bool) (p : ) :
      Instances For
        noncomputable def BooleanFourier.pBiasedInfluence {n : } (f : (Fin nBool)Bool) (i : Fin n) (p : ) :
        Instances For
          theorem BooleanFourier.hasDerivAt_factor (b : Bool) (p : ) :
          HasDerivAt (fun (q : ) => if b = true then q else 1 - q) (if b = true then 1 else -1) p
          theorem BooleanFourier.hasDerivAt_pBiasedWeight (n : ) (x : Fin nBool) (p : ) :
          HasDerivAt (fun (q : ) => pBiasedWeight n q x) (∑ j : Fin n, (∏ iFinset.univ.erase j, if x i = true then p else 1 - p) * if x j = true then 1 else -1) p
          theorem BooleanFourier.deriv_term_eq_influence {n : } (f : (Fin nBool)Bool) (hf : IsMonotone f) (j : Fin n) (p : ) (_hp0 : 0 < p) (_hp1 : p < 1) :
          (∑ x : Fin nBool, ((∏ iFinset.univ.erase j, if x i = true then p else 1 - p) * if x j = true then 1 else -1) * if f x = true then 1 else 0) = x : Fin nBool, (∏ i : Fin n, if x i = true then p else 1 - p) * if f x f (flipBit x j) then 1 else 0
          theorem BooleanFourier.russo_margulis {n : } (f : (Fin nBool)Bool) (hf : IsMonotone f) (p : ) (hp0 : 0 < p) (hp1 : p < 1) :