Clique-polynomial bounds over exact-support semirings #
The coefficient-one clique polynomial and its addition lower bounds are uniform over every nontrivial zero-sum-free commutative semiring without zero divisors. This single family specializes to natural and nonnegative-rational coefficients and remains compatible with arbitrary named constants, including zero.
noncomputable def
Algebraic.Fusion.Arithmetic.Progress.Separated.Clique.Exact.polynomial
(R : Type u)
[CommSemiring R]
(vertexCount cliqueSize : ℕ)
:
MvPolynomial (Fin (vertexCount * vertexCount)) R
Coefficient-one clique polynomial over a selected commutative semiring.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
Algebraic.Fusion.Arithmetic.Progress.Separated.Clique.Exact.polynomial_support
(R : Type u)
[CommSemiring R]
[Nontrivial R]
[ExactSupport.ZeroSumFree R]
(vertexCount cliqueSize : ℕ)
:
theorem
Algebraic.Fusion.Arithmetic.Progress.Separated.Clique.Exact.card_polynomial_support
(R : Type u)
[CommSemiring R]
[Nontrivial R]
[ExactSupport.ZeroSumFree R]
(vertexCount cliqueSize : ℕ)
:
theorem
Algebraic.Fusion.Arithmetic.Progress.Separated.Clique.Exact.circuit_addition_lowerBound_of_support_eq
{R : Type u_2}
[CommSemiring R]
[Nontrivial R]
[NoZeroDivisors R]
[ExactSupport.ZeroSumFree R]
{K : Type u_1}
{vertexCount cliqueSize : ℕ}
(constant : K → R)
(target : MvPolynomial (Fin (vertexCount * vertexCount)) R)
(supportEqual : target.support = cliqueSupport vertexCount cliqueSize)
(circuit : Circuit (Arithmetic.signature K) (vertexCount * vertexCount) 1)
(constructs :
{ inputCount := vertexCount * vertexCount, inputs := MvPolynomial.X, target := target }.Constructs circuit
(General.polynomialInterpretation constant (Fin (vertexCount * vertexCount))))
:
Every polynomial with clique support needs one fewer addition than its number of monomials over any exact-support coefficient semiring.
theorem
Algebraic.Fusion.Arithmetic.Progress.Separated.Clique.Exact.circuit_addition_lowerBound
{R : Type u_2}
[CommSemiring R]
[Nontrivial R]
[NoZeroDivisors R]
[ExactSupport.ZeroSumFree R]
{K : Type u_1}
{vertexCount cliqueSize : ℕ}
(constant : K → R)
(circuit : Circuit (Arithmetic.signature K) (vertexCount * vertexCount) 1)
(constructs :
{ inputCount := vertexCount * vertexCount, inputs := MvPolynomial.X,
target := polynomial R vertexCount cliqueSize }.Constructs
circuit (General.polynomialInterpretation constant (Fin (vertexCount * vertexCount))))
:
Addition lower bound for the exact-semiring clique polynomial.
theorem
Algebraic.Fusion.Arithmetic.Progress.Separated.Clique.Exact.central_circuit_addition_lowerBound
{R : Type u_2}
[CommSemiring R]
[Nontrivial R]
[NoZeroDivisors R]
[ExactSupport.ZeroSumFree R]
{K : Type u_1}
{halfVertices : ℕ}
(constant : K → R)
(circuit : Circuit (Arithmetic.signature K) (2 * halfVertices * (2 * halfVertices)) 1)
(constructs :
{ inputCount := 2 * halfVertices * (2 * halfVertices), inputs := MvPolynomial.X,
target := polynomial R (2 * halfVertices) halfVertices }.Constructs
circuit (General.polynomialInterpretation constant (Fin (2 * halfVertices * (2 * halfVertices)))))
:
Central-binomial addition lower bound over every exact-support semiring.
theorem
Algebraic.Fusion.Arithmetic.Progress.Separated.Clique.Exact.central_circuit_exponential_lowerBound
{R : Type u_2}
[CommSemiring R]
[Nontrivial R]
[NoZeroDivisors R]
[ExactSupport.ZeroSumFree R]
{K : Type u_1}
{halfVertices : ℕ}
(constant : K → R)
(halfVerticesBig : 4 ≤ halfVertices)
(circuit : Circuit (Arithmetic.signature K) (2 * halfVertices * (2 * halfVertices)) 1)
(constructs :
{ inputCount := 2 * halfVertices * (2 * halfVertices), inputs := MvPolynomial.X,
target := polynomial R (2 * halfVertices) halfVertices }.Constructs
circuit (General.polynomialInterpretation constant (Fin (2 * halfVertices * (2 * halfVertices)))))
:
Explicit exponential middle-layer lower bound over every exact-support semiring.