The set-multilinear projection #
The variables σ of a polynomial are split into d blocks by a map blk : σ → Fin d. A monomial
is set-multilinear on a set S of blocks when it is blockMonomial blk S x for a choice x of one
variable from each block of S. The set-multilinear projection MvPolynomial.smProj blk S
keeps the terms of a polynomial whose monomials are set-multilinear on S and drops the others
([Forbes2024, Def. 23], where it is π_{sm,S}). It is a linear map whose image consists of the
set-multilinear polynomials on S and which fixes them (MvPolynomial.smProj_eq_self_iff); on
the empty set of blocks it is the constant coefficient (MvPolynomial.smProj_empty).
A monomial is set-multilinear on S exactly when its block degrees, the exponent sums over the
blocks, are one on S and zero elsewhere (MvPolynomial.mem_range_blockMonomial_iff). The block
degrees are the weight of the monomial for the weight v ↦ single (blk v) 1, valued in
Fin d →₀ ℕ, that sends each variable to the unit vector of its block. So the set-multilinear
polynomials on S are the weighted homogeneous polynomials of weighted degree the indicator of S
(MvPolynomial.isSetMultilinear_iff_isWeightedHomogeneous), and smProj blk S is defined as
Mathlib's MvPolynomial.weightedHomogeneousComponent for this weight and degree; idempotence and
orthogonality come from Mathlib. From the characterization, the projection of a product is the
sum, over the ways of splitting S into disjoint parts, one for each factor, of the products of
the projections of the factors on their parts (MvPolynomial.smProj_mul,
MvPolynomial.smProj_prod): a set-multilinear monomial of the product comes from set-multilinear
monomials of the factors on disjoint blocks. The projection commutes
with renaming variables along their blocks (MvPolynomial.rename_smProj).
Main definitions #
MvPolynomial.smProj: the projection onto the set-multilinear monomials on a set of blocks, a weighted homogeneous component.MvPolynomial.blockSplits: the families of pairwise disjoint sets of blocks, indexed by a finite type, with a given union.
Main results #
MvPolynomial.mem_range_blockMonomial_iff: a monomial is set-multilinear onSif and only if its block degrees are the indicator ofS.MvPolynomial.isSetMultilinear_iff_isWeightedHomogeneous: set-multilinear polynomials onSare the weighted homogeneous polynomials, for the block weight, of degree the indicator ofS.MvPolynomial.sum_mem_range_blockMonomial_iff,MvPolynomial.add_mem_range_blockMonomial_iff: a product of monomials is set-multilinear onSexactly when the factors are set-multilinear on the parts of an ordered split ofS.MvPolynomial.isSetMultilinear_smProj,MvPolynomial.smProj_eq_self_iff: the projection is set-multilinear and fixes exactly the set-multilinear polynomials.MvPolynomial.IsSetMultilinear.smProj_eq_zero,MvPolynomial.smProj_smProj: the projections on different sets of blocks are orthogonal.MvPolynomial.smProj_empty,MvPolynomial.smProj_C,MvPolynomial.smProj_one,MvPolynomial.smProj_X: projections of constants and variables.MvPolynomial.smProj_mul,MvPolynomial.smProj_prod: projections of products.MvPolynomial.rename_smProj: the projection commutes with renaming along the blocks.
References #
- M. A. Forbes, Low-depth algebraic circuit lower bounds over any field,
Definition 23, p. 31:12 (the projection
π_{sm,S}), and the remark after it, p. 31:13 (π_{sm,∅}(f) = f(0)). The product formulassmProj_mulandsmProj_prodare the expansion used in the proof of [Forbes2024, Lemma 26], pp. 31:13–31:14; their statement as identities of polynomials, the block-degree characterization, its weighted homogeneous form andrename_smProjare original.
Block-degree characterization. A monomial is set-multilinear on S, that is, it takes
exactly one variable with exponent one from each block of S and no other variable, if and only
if its block degrees are 1 on the blocks of S and 0 on the others (original).
A monomial is set-multilinear on S exactly when its weight, for the weight
v ↦ single (blk v) 1 that sends each variable to the unit vector of its block, is the indicator
of S.
Renaming the variables along their blocks preserves set-multilinearity of monomials, in both directions (original).
A family is an ordered split of S exactly when its parts are pairwise disjoint with union
S.
A family of monomials multiplies to a set-multilinear monomial on S exactly when its members
are set-multilinear on the parts of an ordered split of S (original).
Two monomials multiply to a set-multilinear monomial on S exactly when they are
set-multilinear on complementary parts of S (original).
Set-multilinear polynomials are weighted homogeneous. A polynomial is set-multilinear on
S exactly when it is weighted homogeneous of weighted degree the indicator of S, for the
weight v ↦ single (blk v) 1 that sends each variable to the unit vector of its block
(original).
The set-multilinear projection π_{sm,S} of [Forbes2024, Def. 23]: the linear map that
keeps the terms whose monomials are set-multilinear on the set S of blocks and drops the others.
It is Mathlib's weighted homogeneous component of weighted degree the indicator of S, for the
weight v ↦ single (blk v) 1 that sends each variable to the unit vector of its block
(MvPolynomial.isSetMultilinear_iff_isWeightedHomogeneous).
Instances For
The set-multilinear projection on S is the weighted homogeneous component, for the block
weight, of weighted degree the indicator of S.
The projection keeps the coefficients of the set-multilinear monomials on S.
The projection drops the coefficients of the other monomials.
The projection of a monomial keeps it if it is set-multilinear on S, and is zero
otherwise.
The projection is set-multilinear on S.
The projection on S fixes a set-multilinear polynomial on S.
A polynomial is set-multilinear on S exactly when the projection on S fixes it.
The projection on T of a set-multilinear polynomial on a different set S is zero.
Projecting twice: the projections on different sets of blocks are orthogonal, and each is idempotent.
The projection on no blocks is the constant coefficient [Forbes2024, p. 31:13].
The projection of a product (original as stated; the expansion in the proof of
[Forbes2024, Lemma 26]): the set-multilinear part of f * g on S is the sum, over the parts
T ⊆ S, of the product of the part of f on T and the part of g on S \ T.
The projection of a finite product (original as stated; the expansion in the proof of
[Forbes2024, Lemma 26]): the set-multilinear part of ∏ j, f j on S is the sum, over the
ordered splits T of S into pairwise disjoint parts T j covering S, of the products of the
parts of the factors f j on T j.
The projection commutes with renaming along the blocks (original): if the renaming e
sends each variable to a variable of the same block, then renaming the part of f on S gives
the part on S of the renamed polynomial. The renaming need not be injective.