Expand description
Nullstellensatz over the rings ℤ/m — composite moduli, zero divisors and all, at arbitrary
degree. The characteristic axis (crate::polycalc_gfp) covered every field; this module covers
what is left of “GF(N) for any N”: the moduli where no field exists (ℤ/6) and the prime powers
where the ring is not the field (ℤ/4, with its nilpotent 2).
Three facts shape the module:
- Completeness needs no division. The partition-of-unity construction — the engine of “no
finite formula is structureless” — only ever adds, subtracts, and multiplies: the atom
(1 − x) + x = 1is a ring identity, the signed point indicators cancel by additive inverses, and multilinear representations of cube functions are unique over any commutative ring (the Möbius transform is unipotent). So every UNSAT formula has a degree-≤ ncertificate over everyℤ/m,m ≥ 2— hardness-as-structurelessness has no witness at any finitenover any modulus. The honest boundary is unchanged: the certificate lives in the2ⁿbasis, and the asymptotic cost-growth statements (the certified degree lower bounds) are exactly the results pointing the other way. - Refutation needs real ring linear algebra. Gaussian elimination dies without inverses, so
span membership over
ℤ/mis decided by a Howell-style echelon: gcd pivoting (every pivot normalized, by a unit, to a divisor ofm) plus annihilator completion (each pivot row spawns its(m/d)-multiple, which lives strictly below it) — validated against an exhaustive all-combinations oracle on small systems and against the field engine at primem. - Composite moduli intersect, they do not add. For squarefree
m, CRT splits the coefficient ring, so aℤ/6refutation is exactly aGF(2)refutation and aGF(3)refutation at the same degree — the composite ring is the conjunction of its prime parts, weaker than either. Dual witnesses generalize with the normalizationL(1) ≠ 0(a zero divisor is fine): a prime witness lifts to a ring witness by scaling withm/p.
Re-exports§
pub use crate::polycalc::Mono;
Structs§
- NsCertificate
Zm - A constructive Nullstellensatz certificate over
ℤ/m:Σ_C p_C · g_C = 1in the multilinear ring.
Functions§
- build_
ns_ certificate_ zm - The uniform completeness construction over
ℤ/m— partition-of-unity charging, valid over any commutative ring because it never divides. Returns a constructive certificate proving UNSAT or a satisfying assignment proving SAT: a total, certifying decision over every modulusm ≥ 2— so “structureless” (no certificate at any degree≤ n) has no witness among finite formulas over anyℤ/m. The honest cost is unchanged: the certificate lives in the2ⁿmonomial basis (existence, not efficiency), andnum_vars ≤ 20bounds the explicit-corner construction. - check_
ns_ lower_ bound_ polys_ zm - Re-check a ring pseudo-expectation (zero trust):
L(1) ≢ 0 (mod m)— over a ring the normalization cannot demand a unit, and a zero-divisor value likem/pis honest — and⟨L, mono·g⟩ ≡ 0for every admitted generator product. Soundness is one line and field-free: a degree-drefutation1 = Σ λ·prodwould forceL(1) = Σ λ·L(prod) = 0. Sotruecertifies that no degree-drefutation overℤ/mexists. Degree-bounded enumeration —num_vars ≤ 63. - check_
ns_ lower_ bound_ zm check_ns_lower_bound_polys_zmfor a CNF. An empty clause admits no lower bound at any degree.- clause_
polynomial_ zm - The clause polynomial over
ℤ/m— the signed false-indicator, exactly as over the fields: a positive literal contributes1 − x(overℤ/6:1 + 5x), a negative one contributesx; the product is1on falsifying corners and0elsewhere over every commutative ring. - lift_
prime_ witness_ to_ zm - Lift a prime-field pseudo-expectation to the ring: for
p | m, the functionalL(x) = (m/p) · L_p(x mod p)satisfies everyℤ/mconstraint —(m/p)·c·vdepends onconly modp, so each pairing is(m/p) · ⟨L_p, prod mod p⟩ = 0— and carries the zero-divisor normalizationL(1) = m/p ≠ 0. One prime witness therefore certifies the ring lower bound: the composite modulus inherits the hardness of each of its prime parts (the witness face of the CRT conjunction). - ns_
refutes_ polys_ zm - Does a degree-
dNullstellensatz refutation over the ringℤ/mexist for a polynomial generator system — is1in theℤ/m-span of{ mono·g : deg ≤ d }? Decided by the Howell echelon (validated against the exhaustive all-combinations oracle and against the field engine at primem). Degree-bounded enumeration —num_vars ≤ 63. - ns_
refutes_ zm ns_refutes_polys_zmfor a CNF (signed clause false-indicators as generators). An empty clause is1 = 0outright.- partition_
of_ unity_ zm - The partition of unity
Σ_a δ_aoverℤ/m— the constant1at everynover every modulus. - pou_
atom_ zm - The partition-of-unity atom
(1 − x_v) + x_v— the constant1in every commutative ring, zero divisors notwithstanding: the identity needs only additive inverses. - zm_
poly_ degree - The degree of a multilinear
ℤ/mpolynomial (0 for the zero polynomial).
Type Aliases§
- ZmPoly
- A multilinear polynomial over
ℤ/m: monomial → nonzero coefficient in1..m(absent = 0).