Documentation

Complexity.Computability.QueryComplexity.SensitivitySeparation.Internal.RecursiveBlocks

Superquadratic sensitivity separation: recursive blocks #

This file lifts sensitive blocks of the all-false child input to the next level. A block B of child coordinates is copied into every column of a row i, giving rowLift i B. If the child predicates reject the all-false input but accept it after flipping B, then every next-level predicate accepts the all-false input after flipping rowLift i B. Lifting preserves pairwise disjointness, which yields the block sensitivity lower bound.

Main definitions #

Main results #

References #

Lift a sensitive block to every column of the specified row.

Instances For
    theorem Cslib.QueryComplexity.SensitivitySeparation.Internal.rowLift_nonempty {k r : ℕ} {I : Type} (i : Fin k) (B : Finset I) (hr : 0 < r) (hB : B.Nonempty) :

    If 0 < r and B is nonempty, then rowLift i B is nonempty.

    theorem Cslib.QueryComplexity.SensitivitySeparation.Internal.rowLift_family_disjoint {k r : ℕ} {I K : Type} (blocks : K → Finset I) (hB : Pairwise fun (a b : K) => Disjoint (blocks a) (blocks b)) :
    Pairwise fun (a b : Fin k × K) => Disjoint (rowLift a.1 (blocks a.2)) (rowLift b.1 (blocks b.2))

    If the blocks blocks a are pairwise disjoint, then the lifts rowLift a.1 (blocks a.2) indexed by a : Fin k × K are pairwise disjoint.

    theorem Cslib.QueryComplexity.SensitivitySeparation.Internal.recursiveFamily_rowLift {k r h : ℕ} {I : Type} [DecidableEq ((Fin k × Fin r) × I)] (T : Tournament k) (label : Fin k → Fin k → Fin r) (F : Fin (h + 1) → (I → Bool) → Bool) (hzero : ∀ (q : Fin (h + 1)), (F q fun (x : I) => false) = false) (B : Finset I) (hB : ∀ (q : Fin (h + 1)), F q (BitString.flipOn B fun (x : I) => false) = true) (i : Fin k) (q : Fin h) :
    recursiveFamily T label F q (BitString.flipOn (rowLift i B) fun (x : (Fin k × Fin r) × I) => false) = true

    If every member of F rejects the all-false input and accepts the all-false input with B flipped, then every next-level predicate accepts the all-false input with rowLift i B flipped.