Subfunctions of formulas and of rectangle-free functions #
The subfunctions of f on a block Y of coordinates are the functions of
the coordinates in Y obtained by fixing the coordinates outside Y.
Nechiporuk's lemma bounds their number for a formula: fixing the outside
coordinates turns every leaf outside Y into a constant, which then collapses
the adjacent gate into one of the four unary functions of its other input.
Since unary functions are closed under composition, a formula with l leaves
in Y has at most 4 ^ (2 l - 1) subfunctions on Y up to unary
post-composition (card_unaryClosure_subfunctions_le), hence at most
2 · 16 ^ l subfunctions.
A rectangle-free function has many subfunctions on every block: grouping the
outside assignments by the subfunction they induce gives one-rectangles, so
every class is small or its subfunction accepts few inputs, and the count of
accepting inputs forces at least 2 ^ |Yᶜ| / (8 K) classes
(two_pow_card_compl_le).
The subfunctions of f on the block Y: fix the coordinates outside Y.
Equations
- Algebraic.Nechiporuk.subfunctions f Y = Finset.image (fun (z : ↥Yᶜ → Bool) (y : ↥Y → Bool) => f (Algebraic.Cutwidth.glue Y y z)) Finset.univ
Instances For
Closure under unary post-composition #
Compositions of the functions in S with the four unary Boolean functions.
Equations
- Algebraic.Nechiporuk.unaryClosure S = Finset.image (fun (p : (Bool → Bool) × ((↥Y → Bool) → Bool)) => p.1 ∘ p.2) (Finset.univ ×ˢ S)
Instances For
Unary functions compose, so the closure is idempotent.
Nechiporuk's counting lemma #
The bound on the unary closure of the subfunctions of a formula with l
leaves in the block: 2 for l = 0 and 4 ^ (2 l - 1) otherwise.
Equations
- Algebraic.Nechiporuk.bound 0 = 2
- Algebraic.Nechiporuk.bound l.succ = 4 ^ (2 * l + 1)
Instances For
Nechiporuk's lemma: up to unary post-composition, a formula with l
leaves in Y has at most bound l subfunctions on Y.
A formula with l leaves in Y has at most 2 · 16 ^ l subfunctions on Y.
Rectangle-free functions have many subfunctions #
The outside assignments inducing a given subfunction.
Equations
- Algebraic.Nechiporuk.fiber f Y g = {z : ↥Yᶜ → Bool | (fun (y : ↥Y → Bool) => f (Algebraic.Cutwidth.glue Y y z)) = g}
Instances For
Accepting inputs, counted fiber by fiber over the outside assignments.
Grouping outside assignments by the subfunction they induce.
Rectangle-free functions have many subfunctions on every block. With
2 ^ (n - 2) accepting inputs, K-rectangle-freeness, and 2 ^ |Y| ≥ 8 K,
the block Y carries at least 2 ^ |Yᶜ| / (8 K) distinct subfunctions.