Documentation

Atlas.BooleanFunctions.code.Friedgut

def BooleanFourier.IsBoolFnJunta {n : } (g : (Fin nBool)Bool) (J : ) :
Instances For
    noncomputable def BooleanFourier.boolL2Dist {n : } (f g : (Fin nBool)Bool) :
    Instances For
      def BooleanFourier.restrictToCoords {n : } (f : (Fin nBool)Bool) (J : Finset (Fin n)) :
      (Fin nBool)Bool
      Instances For
        theorem BooleanFourier.le_rpow_two_of_nonneg (x : ) (hx : 0 x) :
        x 2 ^ x
        noncomputable def BooleanFourier.fourierTrunc {n : } (f : (Fin nBool)) (J : Finset (Fin n)) (x : Fin nBool) :
        Instances For
          noncomputable def BooleanFourier.fourierTruncBool {n : } (f : (Fin nBool)Bool) (J : Finset (Fin n)) :
          (Fin nBool)Bool
          Instances For
            theorem BooleanFourier.sign_rounding_sq_bound (a r : ) (ha : a = 1 a = -1) :
            (a - if 0 r then 1 else -1) ^ 2 4 * (a - r) ^ 2
            theorem BooleanFourier.liftPM_values {n : } (f : (Fin nBool)Bool) (x : Fin nBool) :
            liftPM f x = 1 liftPM f x = -1
            theorem BooleanFourier.lpNorm_two_eq_sqrt {n : } (h : (Fin nBool)) :
            lpNorm 2 h = (1 / 2 ^ n * x : Fin nBool, h x ^ 2)
            theorem BooleanFourier.fourierCoeff_of_chi_sum {n : } (F : Finset (Finset (Fin n))) (c : Finset (Fin n)) (S : Finset (Fin n)) :
            fourierCoeff (fun (x : Fin nBool) => TF, c T * chi T x) S = if S F then c S else 0
            theorem BooleanFourier.friedgut_l2_bridge {n : } (f : (Fin nBool)Bool) (J : Finset (Fin n)) :
            ∃ (g : (Fin nBool)Bool), IsBoolFnJunta g J.card boolL2Dist f g 2 * (∑ S : Finset (Fin n) with ¬S J, fourierCoeff (liftPM f) S ^ 2)