Nullstellensatz #
This file establishes a version of Hilbert's classical Nullstellensatz for MvPolynomial
s.
The main statement of the theorem is MvPolynomial.vanishingIdeal_zeroLocus_eq_radical
.
The statement is in terms of new definitions vanishingIdeal
and zeroLocus
.
Mathlib already has versions of these in terms of the prime spectrum of a ring,
but those are not well-suited for expressing this result.
Suggestions for better ways to state this theorem or organize things are welcome.
The machinery around vanishingIdeal
and zeroLocus
is also minimal, I only added lemmas
directly needed in this proof, since I'm not sure if they are the right approach.
Set of points that are zeroes of all polynomials in an ideal
Equations
- MvPolynomial.zeroLocus I = {x : σ → k | ∀ p ∈ I, (MvPolynomial.eval x) p = 0}
Instances For
Ideal of polynomials with common zeroes at all elements of a set
Equations
- MvPolynomial.vanishingIdeal V = { carrier := {p : MvPolynomial σ k | ∀ x ∈ V, (MvPolynomial.eval x) p = 0}, add_mem' := ⋯, zero_mem' := ⋯, smul_mem' := ⋯ }
Instances For
Equations
- ⋯ = ⋯
The point in the prime spectrum associated to a given point
Equations
- MvPolynomial.pointToPoint x = { asIdeal := MvPolynomial.vanishingIdeal {x}, isPrime := ⋯ }
Instances For
Main statement of the Nullstellensatz