Documentation

FormalConjectures.Paper.StrongSensitivityConjecture

Strong Sensitivity Conjecture (bs(f) ≤ s(f)^2) #

This file formalizes the strong sensitivity conjecture, asserting:

For every Boolean function f : {0,1}^n → {0,1}, bs(f) ≤ s(f)^2, where bs(f) denotes block sensitivity and s(f) denotes sensitivity.

Huang's theorem proves a quartic upper bound, bs(f) ≤ s(f)^4, thereby resolving the most widely known form of the sensitivity conjecture.

We now ask whether a stronger upper bound holds. Interestingly, the original paper of Nisan and Szegedy, where the sensitivity conjecture first appeared, already speculated that a quadratic upper bound might be the correct relation. On the lower bound side, Rubinstein (https://link.springer.com/article/10.1007/BF01200762) constructed Boolean functions exhibiting the first quadratic separation. The best currently known gap, due to Ambainis and Sun (https://arxiv.org/abs/1108.3494), is bs(f) ≥ (2/3)⋅s(f)^2.

References:

def StrongSensitivityConjecture.flip {n : } (x : Fin nBool) (B : Finset (Fin n)) :
Fin nBool

Flip operator, flip x B returns input x with bits in block B inverted.

Equations
Instances For
    def StrongSensitivityConjecture.sensitivityAt {n : } (f : (Fin nBool)Bool) (x : Fin nBool) :

    Local sensitivity s(f,x), number of indices where flipping one bit changes the value of f.

    Equations
    Instances For

      Global sensitivity s(f), maximum sensitivity of f over all inputs.

      Equations
      Instances For
        def StrongSensitivityConjecture.IsValidBlockConfig {n : } (f : (Fin nBool)Bool) (x : Fin nBool) (cB : Finset (Finset (Fin n))) :

        Check validity of block collection (disjoint and sensitive), A collection of blocks cB is valid for f at x if the blocks are disjoint and flipping any block changes f(x).

        Equations
        Instances For
          noncomputable def StrongSensitivityConjecture.blockSensitivityAt {n : } (f : (Fin nBool)Bool) (x : Fin nBool) :

          Local block sensitivity bs(f,x), maximum size of a collection of sensitive, disjoint blocks for f at x.

          Equations
          Instances For
            noncomputable def StrongSensitivityConjecture.blockSensitivity {n : } (f : (Fin nBool)Bool) :

            Global block sensitivity of f, maximum block sensitivity of f over all inputs.

            Equations
            Instances For

              Strong Sensitivity Conjecture, for every Boolean function f : {0,1}^n → {0,1}, bs(f) ≤ s(f)^2.

              We call this the strong sensitivity conjecture because the original sensitivity conjecture only asked for a polynomial bound in terms of s(f). Huang's celebrated result (often called the sensitivity theorem) gives a quartic bound, bs(f) ≤ s(f)^4, thereby settling the original conjecture.

              Simple test example, A Boolean function whose block sensitivity is strictly greater than its sensitivity. Source: Nisan1989.

              nisanExample(x) = 1 iff the Hamming weight of x is either n/2 or n/2 + 1. We assume n is a multiple of 4. The function is symmetric, so its value only depends on the Hamming weight of the input.

              Equations
              Instances For

                Assuming n is a multiple of 4, the sensitivity of nisanExample is n/2, achieved by any x with Hamming weight n/2.

                Assuming n is a multiple of 4, the block sensitivity of nisanExample is 3n/4, achieved by any x with Hamming weight n/2. An optimal block configuration uses all n/2 1-bits as singleton blocks and forms n/4 disjoint size-2 blocks from the 0-bits.