Input-support components, fan-in-two splits, and block-excess bounds #
This module proves two structural lower bounds for weighted threshold programs from the
coordinate-split and median-cut rectangle lemmas in Cut.lean:
- C5 (
lt_of_inputSupport_card_le_two,circuit_lt_of_inputSupport_card_le_two): when every gate has aggregated input support of size at most2, the input-support graph onFin nhas at leastn - |inputGates p|connected components that are trees (|V| = |E| + 1). GroupingLsuch components intoUproduces a coordinate split crossed by no gate with excessL, yieldingn < (inputGates p).card + 2 * Lfor any two-sidedK-rectangle-free function withK โค 2 ^ L. - C6 (
lt_of_blocks,circuit_lt_of_blocks): given a setFof freely-read inputs and a pairwise disjoint block partition๐ofFแถsuch that every gate's residual support outsideFlies in a single block of๐and every block has excess|b| - e_b โค M, a subset-sum split (Finset.exists_subset_sum_ge) andexists_rectangle_of_cut_with_fixedyieldn < F.card + (inputGates p).card + M + 2 * k.
Main definitions #
Cslib.Circuits.Boolean.WeightedThreshold.supportGraph: the graph onFin nwhere two inputs are adjacent when some gate has nonzero aggregated weight on both.Cslib.Circuits.Boolean.WeightedThreshold.componentInputs,Cslib.Circuits.Boolean.WeightedThreshold.componentGates: the inputs and active gates in a connected component ofsupportGraph p.Cslib.Circuits.Boolean.WeightedThreshold.residualGates: gates whose residual input support outsideFis nonempty and contained in a blockb.
Main results #
Cslib.Circuits.Boolean.WeightedThreshold.sum_card_componentInputs,Cslib.Circuits.Boolean.WeightedThreshold.sum_card_componentGates,Cslib.Circuits.Boolean.WeightedThreshold.card_componentInputs_le: component counting for fan-in-two input supports.Cslib.Circuits.Boolean.WeightedThreshold.exists_split_of_inputSupport_card_le_two: unsplit coordinate cut with prescribed excessL.Cslib.Circuits.Boolean.WeightedThreshold.lt_of_inputSupport_card_le_two,Cslib.Circuits.Boolean.WeightedThreshold.circuit_lt_of_inputSupport_card_le_two: the C5 fan-in-two component lower bound.Cslib.Circuits.Boolean.WeightedThreshold.lt_of_blocks,Cslib.Circuits.Boolean.WeightedThreshold.circuit_lt_of_blocks: the C6 block-excess lower bound.
References #
Input-support graph and connected components #
The input-support graph of a weighted threshold program: two inputs are adjacent when some gate has nonzero aggregated weight on both.
Instances For
The inputs belonging to a connected component of supportGraph p.
Instances For
The gates with nonempty aggregated input support inside a connected component of
supportGraph p.
Instances For
An input u belongs to componentInputs p c if and only if its connected component in
supportGraph p is c.
Coercing componentInputs p c to a set yields the support c.supp of the connected component
c.
A gate belongs to componentGates p c if and only if its input support is nonempty and
contained in componentInputs p c.
The input support of a gate lies in the connected component of any of its inputs.
The connected components of supportGraph p partition the n inputs.
The sizes of componentGates p c sum to (inputGates p).card.
When every gate has aggregated input support of size at most 2, every connected component
of supportGraph p has at most one more input than active gates.
C5: Fan-in-two component split and lower bound #
When every gate of p has aggregated input support of size at most 2, for every
L โค n - (inputGates p).card there is a coordinate split U that no gate crosses and whose
size exceeds the number of active gates on U by L.
C5: component bound for input fan-in two. If every gate of p has aggregated input
support of size at most 2 and p computes a two-sided K-rectangle-free function f through
readout with K โค 2 ^ L, then n < (inputGates p).card + 2 * L.
The C5 fan-in-two component bound for a single-output weighted threshold circuit whose output selects a gate.
C6: Block-excess restriction and lower bound #
A gate belongs to residualGates p F b if and only if its input support is not contained in
F and its residual support outside F is contained in b.
Every gate in residualGates p F b belongs to inputGates p.
C6: the block-excess lower bound. Let F be a set of inputs and ๐ a family of
pairwise disjoint blocks covering the inputs outside F, such that every gate reads inputs from
F only or has its residual support outside F inside a single block of ๐. If every block b
has excess |b| - e_b โค M, where e_b = (residualGates p F b).card, and p computes a
two-sided K-rectangle-free function f through readout with K โค 2 ^ k, then
n < F.card + (inputGates p).card + M + 2 * k.
The C6 block-excess bound for a single-output weighted threshold circuit whose output selects a gate.