Documentation

Sensitivity.Multilinear

Multilinear Representation and Degree #

Every Boolean function has a unique multilinear polynomial representation over ℤ. We define the Möbius coefficients and the degree.

Main definitions #

def Sensitivity.indicator {n : } (S : Finset (Fin n)) :
Fin nBool

Indicator assignment: x_i = true iff i ∈ S.

Equations
Instances For
    @[simp]
    theorem Sensitivity.indicator_mem {n : } {S : Finset (Fin n)} {i : Fin n} :
    @[simp]
    theorem Sensitivity.indicator_not_mem {n : } {S : Finset (Fin n)} {i : Fin n} :
    indicator S i = false iS

    The integer encoding of a Bool: true ↦ 1, false ↦ 0.

    Equations
    Instances For
      def Sensitivity.BoolFun.moebius {n : } (f : BoolFun n) (S : Finset (Fin n)) :

      The Möbius coefficient of f at S: coefficient of ∏{i∈S} x_i in the unique multilinear polynomial representing f. Computed by inclusion-exclusion: c_S = ∑{T⊆S} (-1)^{|S|-|T|} f(1_T).

      Equations
      Instances For
        noncomputable def Sensitivity.BoolFun.degree {n : } (f : BoolFun n) :

        The multilinear degree of f: maximum |S| over S with nonzero Möbius coefficient.

        Equations
        Instances For

          The degree is at most n.

          theorem Sensitivity.BoolFun.exists_degree_witness {n : } (f : BoolFun n) (hd : 0 < f.degree) :
          ∃ (S : Finset (Fin n)), S.card = f.degree f.moebius S 0

          If the degree is d > 0, there exists a set S of size d with nonzero coefficient.