Coefficient-one polynomials from finite monomial families #
This module turns any finite family of exponent vectors into the polynomial having exactly those monomials, each with coefficient one. It is the reusable bridge from finite separated-family arguments to arithmetic circuit lower bounds; concrete families need only prove their finite support is separated.
noncomputable def
Algebraic.Fusion.Arithmetic.Progress.Separated.Polynomial.ofSupport
{Variable : Type u_1}
(support : Finset (Variable →₀ ℕ))
:
MvPolynomial Variable ℕ
The natural-coefficient polynomial with exactly the given exponent vectors, each occurring with coefficient one.
Equations
- Algebraic.Fusion.Arithmetic.Progress.Separated.Polynomial.ofSupport support = ∑ exponent ∈ support, (MvPolynomial.monomial exponent) 1
Instances For
@[simp]
theorem
Algebraic.Fusion.Arithmetic.Progress.Separated.Polynomial.coeff_ofSupport
{Variable : Type u_1}
[DecidableEq Variable]
(support : Finset (Variable →₀ ℕ))
(exponent : Variable →₀ ℕ)
:
Coefficients of ofSupport are the characteristic function of the
specified support.
theorem
Algebraic.Fusion.Arithmetic.Progress.Separated.Polynomial.coeff_ofSupport_of_mem
{Variable : Type u_1}
[DecidableEq Variable]
{support : Finset (Variable →₀ ℕ)}
{exponent : Variable →₀ ℕ}
(present : exponent ∈ support)
:
Every specified monomial has coefficient one.
theorem
Algebraic.Fusion.Arithmetic.Progress.Separated.Polynomial.circuit_addition_lowerBound
{n : ℕ}
(support : Finset (Fin n →₀ ℕ))
(separated : IsSeparated support support)
(circuit : Circuit (Arithmetic.signature PEmpty.{u_1 + 1}) n 1)
(constructs :
{ inputCount := n, inputs := MvPolynomial.X, target := ofSupport support }.Constructs circuit
(polynomialInterpretation (Fin n)))
:
A separated finite family yields its cardinality-minus-one addition lower bound for every constant-free monotone arithmetic circuit computing its coefficient-one polynomial.