One-dimensional capacity of threshold circuits of unbounded depth #
The model is Program n s: a straight-line program of s weighted threshold gates on n
Boolean inputs, with arbitrary real weights (integer weights are a special case), arbitrary
depth, and arbitrary fan-in and fan-out. Gate j is 1 exactly when
∑ i, inputWeight j i * x i + ∑_{k < j} gateWeight j k * (gate k) + bias j ≥ 0
(Program.eval_eq). The bounds count only the input-reading gates Program.inputGates,
those with a nonzero input weight vector; gates that read only other gates are free.
Let f be two-sided K-rectangle-free (TwoSidedRectangleFree): under every split of the
coordinates, every rectangle on which f is constant has a side with fewer than K elements.
Main results #
exists_sorted_group(Lemma 1): sorting a set by a real key and cutting it intoGconsecutive groups, some group is good for all but aT / Gfraction of a family of functions of the key that each change at mostTtimes (ChangesAtMost). Each such function is nonconstant on at mostTgroups (ChangesAtMost.card_nonconstant_groups_le).Program.piecesAtMost_evalFrom,Program.changesAtMost_evalFrom(Lemma 2): a run of threshold gates whose input contributions areλ_j tfor one real parameterthas at most2 ^ rpieces int, wherercounts the gates withλ_j ≠ 0.TwoSidedRectangleFree.two_pow_lt_mul_cost(Theorem U, one-dimensional capacity): everyBlockDecompositionoffhas2ⁿ < 4 K² · cost, where the cost multiplies4Tover the one-dimensional blocks withT ≥ 1changes andVover the summary blocks.TwoSidedRectangleFree.two_pow_lt_of_directionRuns: Theorem U for threshold programs split into consecutive runs along single directions, with run costs4 (2 ^ rᵢ - 1).TwoSidedRectangleFree.two_pow_lt_four_pow_inputGates,TwoSidedRectangleFree.lt_two_mul_add_two_mul_inputGates(C1): every threshold program computingfhas2ⁿ < 4 K² · 4 ^ s_in; withK ≤ 2 ^ k,n < 2k + 2 + 2 s_in.TwoSidedRectangleFree.two_pow_lt_of_direction,TwoSidedRectangleFree.lt_of_direction(C2): if all input weight vectors are multiples of one vector,2ⁿ < 16 K² · 2 ^ s_inandn < 2k + 4 + s_in.TwoSidedRectangleFree.two_pow_lt_of_runs,TwoSidedRectangleFree.lt_of_runs(C3): withBruns along single directions,2ⁿ < 4 K² · 4 ^ B · 2 ^ s_inandn < 2k + 2 + 2B + s_in.TwoSidedRectangleFree.two_pow_lt_of_multilevel,TwoSidedRectangleFree.two_pow_sub_lt_of_multilevel(C2′): iff = F(⟨w, x⟩)for a functionFwithTtransitions,2ⁿ < 4 K² · max 1 (4T), andT > 2 ^ (n - 2k - 4).TwoSidedRectangleFree.two_pow_lt_of_activations(C4, mixed gate costs): in anActivationProgramwhose input-reading gatejhas an activation changing at mostT jtimes,2ⁿ < 4 K² · ∏ⱼ max 1 (4 T j); a threshold gate costs4, an exact-threshold or interval gate8, and gates reading only gates are free.TwoSidedRectangleFree.lt_of_split(C0, the cut theorem) andTwoSidedRectangleFree.le_two_mul_add: for every setUof inputs,|U| < touch(U) + kor|Uᶜ| < touch(Uᶜ) + k, wheretouch(S)counts the gates reading some input ofS; at a balanced split,n ≤ 2 (s_in + k)(Internal.Cut). A gate pays one bit on every side it reads, which is where the following structured bounds gain.TwoSidedRectangleFree.lt_of_support_card_le_two(C5, the component bound): if every gate reads at most two inputs,n < s_in + 2k, twice the gate count of (C1). Split the inputs along the connected components of the gates' input supports (Program.support), so no gate reads both sides, and make each gate constant by halving one side only (Complexitylib.Algebraic.LowerBound.Threshold.Internal.SplitandInternal.Components).TwoSidedRectangleFree.lt_of_blocks(C6, the excess bound): after fixing any setFof inputs, partition the rest into blocks such that every gate reads inputs of one block outsideF; if every blockbhas|b| ≤ e_b + M, withe_bthe gates reading insideb, thenn < |F| + s_in + M + 2k(Internal.Excess). (C5) is the caseF = ∅,M = 1.
The explicit polynomial-time family sourceReductionHardFamily is two-sided rectangle-free with
log₂ K = o(n); the asymptotic bounds for it are in
Complexitylib.Algebraic.LowerBound.Threshold.Family.
A function with at most M pieces changes at most M - 1 times.
Each function is nonconstant on few groups. Cut the positions into consecutive groups of
L. A function changing at most T times along the nondecreasing sequence z is nonconstant
on at most T of the first G groups.
Lemma 1 (sorted groups). Sort P by the real key α and cut it into G consecutive
groups of ⌊|P| / G⌋ elements. If every Ψ q changes at most T times, some group P' has
the functions p ↦ Ψ q (α p) constant on P' for every q ∈ Q outside a set Qbad with
G |Qbad| ≤ T |Q|.
Lemma 2 (pieces of a run). If every gate outside fixed receives the input contribution
slope j * t, and the gates in fixed are set by η, the gate values have at most 2 ^ r
pieces as functions of t, where r counts the gates outside fixed with a nonzero slope.
Gate semantics of activation programs. Gate j applies its activation to its weighted
input sum plus the weighted values of the earlier gates.
Theorem U (one-dimensional capacity). If f is two-sided K-rectangle-free, every block
decomposition of f satisfies 2ⁿ < 4 K² · cost: the product of 4T over its one-dimensional
blocks with T ≥ 1 changes and of V over its summary blocks is more than 2ⁿ / (4 K²).
Theorem U for threshold programs. Split the gates of a threshold program computing f
into B consecutive runs along single directions, with rᵢ input-reading gates in run i.
Then 2ⁿ < 4 K² · ∏ᵢ cᵢ, where cᵢ = 4 (2 ^ rᵢ - 1) if rᵢ ≥ 1 and cᵢ = 1 otherwise.
C1: input-reading gates of threshold circuits. Every weighted threshold program computing
a two-sided K-rectangle-free function has 2ⁿ < 4 K² · 4 ^ s_in, where s_in counts the gates
with a nonzero input weight vector; gates reading only gates are free.
C1, logarithmic form. With K ≤ 2 ^ k, every threshold program computing f has
n < 2k + 2 + 2 s_in, that is, more than (n - 2k - 2) / 2 input-reading gates.
C2: one direction. If every input weight vector of a threshold program computing f is a
real multiple of one vector w, then 2ⁿ < 16 K² · 2 ^ s_in.
C2, logarithmic form. With K ≤ 2 ^ k, a threshold program computing f whose input
weight vectors are all multiples of one vector has n < 2k + 4 + s_in.
C3: direction runs. If the gates of a threshold program computing f split into B
consecutive runs along single directions, then 2ⁿ < 4 K² · 4 ^ B · 2 ^ s_in.
C3, logarithmic form. With K ≤ 2 ^ k and B direction runs,
n < 2k + 2 + 2B + s_in.
C2′: multilevel threshold representations. If f x = F (⟨w, x⟩) for a function F
changing at most T times, then 2ⁿ < 4 K² · max 1 (4T).
C2′, logarithmic form. With K ≤ 2 ^ k and 2k + 4 ≤ n, a multilevel threshold
representation f = F(⟨w, x⟩) needs more than 2 ^ (n - 2k - 4) transitions.
C4: mixed gate costs. In an activation program computing f whose input-reading gate
j has an activation changing at most T j times, 2ⁿ < 4 K² · ∏ⱼ max 1 (4 T j), the product
ranging over the input-reading gates; gates reading only gates are free.
The cut theorem (C0). For every set U of inputs, with no assumption on the gates,
|U| < touch(U) + k or |Uᶜ| < touch(Uᶜ) + k, where touch(S) counts the gates whose support
meets S. Each gate pays one bit on every side it reads: given the earlier gates, a gate reading
one side alone is a function of that side, and a gate reading both is monotone in the two
weighted sums, so a quadrant at the medians makes it constant.
The sharpened general bound. Every weighted threshold program computing f has
n ≤ 2 (s_in + k): the cut theorem at a balanced split. This sharpens (C1), n < 2k + 2 + 2 s_in,
by one.
The component bound (C5). If every gate reads at most two inputs ((C.support j).card ≤ 2,
with C.support j the inputs of nonzero weight in gate j), then n < s_in + 2k whenever
K ≤ 2 ^ k: the input-reading gates number more than n - 2k, twice the general bound (C1).
The proof splits the inputs along connected components of the gates' input supports, so that
no gate reads both sides, and then makes each gate constant by halving one side only.
The excess bound (C6). Fix any set F of inputs and partition the remaining inputs
into blocks 𝓑 such that every gate reads, outside F, inputs of a single block. For a block
b, let e_b count the gates whose support outside F is nonempty and lies in b; suppose
|b| ≤ e_b + M for every block. Then n < |F| + s_in + M + 2k whenever K ≤ 2 ^ k. Taking
F = ∅ and the blocks to be the connected components of the input supports recovers (C5),
where M = 1; a block with many gates on few inputs has |b| ≤ e_b and costs nothing beyond
its inputs.