Superquadratic sensitivity separation: composition #
Disjoint Boolean composition compose f g on the coordinate type I × J: the inner function g is
evaluated on each row fun j => x (i, j), and the outer function f on the resulting vector of row
values, so each child keeps its own raw coordinates. Sensitivity is submultiplicative under
composition, while block sensitivity at the all-false input is supermultiplicative when g rejects
the all-false input.
Main definitions #
compose: block compositionx ↦ f (fun i => g (fun j => x (i, j))).
Main results #
compose_flip_sensitive_iff: coordinate(i, j)is sensitive forcompose f giffjis sensitive forgon rowiandiis sensitive forfon the row values.sensitivityAt_compose: the sensitivity ofcompose f gatxis the sum of the inner sensitivities over the rows that are sensitive forf.sensitivity_compose_le:sensitivity (compose f g) ≤ sensitivity f * sensitivity g.blockSensitivityAt_compose_zero_le: block sensitivities at the all-false input are supermultiplicative under composition, providedgrejects the all-false input.
References #
Flipping coordinate (i, j) changes compose f g x iff flipping j changes the value of g
on row i of x, and flipping i changes the value of f on the vector of row values
fun k => g (fun a => x (k, a)).
The sensitivity of compose f g at x equals the sum, over the rows i that are sensitive for
f at the vector of row values, of the sensitivity of g at row i of x.
If g rejects the all-false input, then the product of the block sensitivities of f and g
at the all-false input is at most the block sensitivity of compose f g there.