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 (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.exists_subset_sum_ge: balanced subset-sum partition for bounded weights.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
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 input-reading gates are partitioned by the connected components of supportGraph p.
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 #
Subset sum. Items of weight at most M with total weight at least 2 * k + M can be
partitioned into ๐ข โ ๐ and ๐ \ ๐ข each of weight at least k.
Over pairwise disjoint blocks ๐, the total number of residual gates is at most
(inputGates p).card.
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.