Direction-menu capacity bounds for weighted threshold circuits #
Partition the input-reading gates of a weighted threshold program into d directions (dir : Fin g → Fin d), so that each input-reading gate gate has input weight vector
scale gate • w (dir gate). Unlike DirectionRuns, gates of different directions may be
arbitrarily interleaved in the topological order.
For each gate, its syntactic bias menu (biasMenu p gate) is the finite set of all internal sums
∑ j, gateWeight p gate j * (u j).toNat over Boolean valuations u : Fin g → Bool. Precomputing
the comparison table (gate, β) ↦ decide (threshold ≤ scale gate * (w a · x) + β) for all
input-reading gates in direction a and all β ∈ biasMenu p gate costs a single one-dimensional
scalar block with at most T_a = ∑_{gate ∈ directionGates p dir a} |biasMenu p gate| changes
(changesAtMost_trueMenuTable). Once the table for direction a is precomputed, every gate in
direction a becomes a zero-change (oneDim 0) lookup from its predecessor gate values.
Choosing for each direction a the cheaper of precomputing its menu table (max 1 (4 * T_a)) or
evaluating its q_a gates individually (4 ^ q_a) yields the direction-menu lower bound
(two_pow_lt_of_directionMenus, Theorem 7.3 of Threshold Circuits as Decision Trees and
Finite-State Programs), together with its corollaries for
bounded internal fan-in (two_pow_lt_of_directionMenus_fanIn, Corollary 7.4) and bounded integer
internal weights (two_pow_lt_of_directionMenus_intWeight, two_pow_lt_of_direction_intWeight).
Main definitions #
Cslib.Circuits.Boolean.WeightedThreshold.gateSupport: earlier gates with nonzero internal weight into a gate.Cslib.Circuits.Boolean.WeightedThreshold.biasMenu: syntactic menu of attainable internal bias offsets at a gate.Cslib.Circuits.Boolean.WeightedThreshold.directionGates: input-reading gates assigned to a directiona : Fin d.Cslib.Circuits.Boolean.WeightedThreshold.directionMenuSum: sum of bias-menu cardinalities overdirectionGates p dir a.Cslib.Circuits.Boolean.WeightedThreshold.menuBlockDecomposition: the(d + g)-block decomposition precomputing menu tables for a chosen subset of directions.
Main results #
Cslib.Circuits.Boolean.WeightedThreshold.card_biasMenu_le_two_pow_gateSupport: bounded internal fan-inkbounds|biasMenu p gate|by2 ^ k.Cslib.Circuits.Boolean.WeightedThreshold.card_biasMenu_le_one_add_sum_natAbs,Cslib.Circuits.Boolean.WeightedThreshold.card_biasMenu_le_one_add_mul: integer internal weights of magnitude at mostWbound|biasMenu p gate|by1 + gate * W.Cslib.Circuits.Boolean.WeightedThreshold.two_pow_lt_of_directionMenus,Cslib.Circuits.Boolean.WeightedThreshold.circuit_two_pow_lt_of_directionMenus: Theorem 7.3 (direction-menu capacity bound).Cslib.Circuits.Boolean.WeightedThreshold.two_pow_lt_of_directionMenus_fanIn,Cslib.Circuits.Boolean.WeightedThreshold.circuit_two_pow_lt_of_directionMenus_fanIn: Corollary 7.4 (bounded internal fan-in).Cslib.Circuits.Boolean.WeightedThreshold.two_pow_lt_of_directionMenus_intWeight,Cslib.Circuits.Boolean.WeightedThreshold.circuit_two_pow_lt_of_directionMenus_intWeight,Cslib.Circuits.Boolean.WeightedThreshold.two_pow_lt_of_direction_intWeight: bounded integer internal weights.
References #
- [Threshold Circuits as Decision Trees and Finite-State Programs, Section 7.2] [26]
Internal gate support and syntactic bias menus #
Integer internal weights w bound the bias menu of gate by 1 + ∑ j, |w j|.
Integer internal weights of magnitude at most W on earlier gates bound |biasMenu p gate| by
1 + gate.val * W.
Direction partition and menu sums #
Static menu precomputation and block decomposition #
A linear threshold predicate decide (θ ≤ c * t + β) changes at most once along ℝ.
As a function of the scalar t, the menu table for direction a changes at most
directionMenuSum p dir a times.
Theorem 7.3 and corollaries #
Theorem 7.3 (Direction-menu lower bound). If the input-reading gates of p are partitioned
into d directions (inputWeight p gate = scale gate • w (dir gate)), then every Boolean readout
computing a two-sided K-rectangle-free function f satisfies
2 ^ n < 4 * K ^ 2 * ∏ a : Fin d, min (4 ^ q_a) (max 1 (4 * T_a)).
Theorem 7.3 for circuits. Direction-menu lower bound for a single-output circuit whose output wire selects a gate.
Corollary 7.4 (Bounded predecessor fan-in). If each input-reading gate reads at most k
earlier gate outputs with nonzero coefficients, then T_a ≤ q_a * 2 ^ k in every direction.
Corollary 7.4 for circuits. Bounded internal fan-in direction-menu bound for a single-output circuit whose output wire selects a gate.
Bounded integer internal weights. If every input-reading gate has integer internal weights
of magnitude at most W, then |biasMenu p gate| ≤ 1 + (g - 1) * W, yielding
T_a ≤ q_a * (1 + (g - 1) * W).
Bounded integer internal weights for circuits.
Single-direction bounded integer internal weights. When all input-reading gates share one
direction w and have integer internal weights of magnitude at most W,
2 ^ n < 4 * K ^ 2 * max 1 (4 * (|inputGates p| * (1 + (g - 1) * W))).