The product gadget of set-multilinearization #
Gate simulation turns a formula into one computing its set-multilinear parts
[Forbes2024, Cor. 27]. A product gate f = ∏ j, f j is simulated by the product gadget
SPFormula.mulGadget, a formula computing the part π_S(f) of f on a set S of blocks from
formulas g j T computing the parts π_T(f j) of the factors. It writes out the expansion
MvPolynomial.smProj_prod_eq_sum_sign of π_S(f):
π_S(f) = A ∑_P ∑_{π ∈ Perm P} sgn π ∑_{Y ⊆ Z} (-1) ^ #Y ∏_{q ∈ orbits π} ∑_{j ∉ Y} u_j ^ #q ∏_{T ∈ q} π_T(f j),
where P runs over the set partitions of S, Z is the set of factors with constant term 0,
A is the product of the other constant terms and u_j the inverse of the constant term of
f j (or 1 when it is 0). It is 0 when #S < #Z. The scalars ride on the edges of the sum
gates. The gadget
- computes
π_S(f)(SPFormula.polynomial_mulGadget); - is syntactically set-multilinear on
Swhen eachg j Tis onT(SPFormula.isSetMultilinear_mulGadget): each sum overjhas children on the same union of the parts in an orbit, and the factors of each product sit on disjoint sets of blocks; - has product-depth at most two more than the
g j T(SPFormula.productDepth_mulGadget_le); - has at most
gadgetCost d * (1 + card ι + ∑ j, w j)nodes, when eachg j TwithT ⊆ Shas at mostw j(SPFormula.nodeCount_mulGadget_le). The factorgadgetCost ddepends only on the numberdof blocks, not on the fan-in of the product gate: the number of products of sums is at most(d + 1) ^ d · d! · 2 ^ d(set partitions, permutations, subsets ofZ).
The formula is built from sum and product gates over finite sets of children
(SPFormula.sumOn, SPFormula.prodOn).
Main definitions #
Cslib.Circuits.Arithmetic.SPFormula.sumOn,Cslib.Circuits.Arithmetic.SPFormula.prodOn: sum and product gates over the formulas indexed by a finite set.Cslib.Circuits.Arithmetic.SPFormula.mulGadget: the product gadget.Cslib.Circuits.Arithmetic.SPFormula.gadgetCost: its size factor2 * (2 * (d + 1) ^ 2) ^ (d + 1).
Main results #
Cslib.Circuits.Arithmetic.SPFormula.polynomial_mulGadget,Cslib.Circuits.Arithmetic.SPFormula.isSetMultilinear_mulGadget,Cslib.Circuits.Arithmetic.SPFormula.productDepth_mulGadget_le,Cslib.Circuits.Arithmetic.SPFormula.nodeCount_mulGadget_le: the four properties above.
References #
- M. A. Forbes, Low-depth algebraic circuit lower bounds over any field, Lemma 26
and its proof, pp. 31:13–31:14. Forbes computes the surjective permanents of the proof by
Corollary 22 (p. 31:12), reducing them to permanents by Lemma 21 (p. 31:12) and expanding those
by the partition form of the Binet–Minc identity, Theorem 13 (p. 31:10). The gadget here uses
instead inclusion–exclusion in place of Lemma 21 and the permutation form of the Binet–Minc
identity in place of Theorem 13 (
Matrix.rectPermSurj_eq_sum_sign_prod_sameCycle), and is original, as are its explicit size bound and the formulassumOnandprodOn.
Gates over finite sets #
A sum gate over a finite set computes the linear combination of its children.
A product gate over a finite set computes the product of its children.
A sum gate does not add to the product-depth.
A product gate adds one to the product-depth.
A sum gate over children set-multilinear on S is set-multilinear on S.
A product gate over children set-multilinear on pairwise disjoint sets T i is
set-multilinear on their union.
The product gadget #
The factors with constant term 0.
Instances For
The scale of a factor: the inverse of its constant term, or 1 if that is 0.
Instances For
The product gadget (original; it simulates a product gate as in [Forbes2024, Lemma 26]):
from formulas g j T for the parts on T of the factors of a product with constant terms a j,
the formula for the part on S of the product given by MvPolynomial.smProj_prod_eq_sum_sign,
or 0 if more than #S constant terms vanish.
Instances For
The product gadget computes the part of the product (original).
The product gadget is set-multilinear on S (original) when each g j T is
set-multilinear on T.
The product gadget adds at most two to the product-depth (original).
The size factor of the product gadget on d blocks: 2 * (2 * (d + 1) ^ 2) ^ (d + 1). It
bounds 4 (d + 1) times the number of products of sums, at most (d + 1) ^ d · d! · 2 ^ d.
Instances For
The size of the product gadget (original): if each g j T with T ⊆ S has at most w j
nodes, the gadget has at most gadgetCost d * (1 + card ι + ∑ j, w j) nodes.