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 #
rowLift: the copies of a child blockBin allrcolumns of rowi.
Main results #
rowLift_family_disjoint: pairwise disjoint child blocks lift to pairwise disjoint blocks indexed byFin k × K.recursiveFamily_rowLift: flipping a lifted block in the all-false input makes every next-level predicate accept.
References #
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)) :
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.