Documentation

Mathlib.RingTheory.Nullstellensatz

Nullstellensatz #

This file establishes a version of Hilbert's classical Nullstellensatz for MvPolynomials. 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.

def MvPolynomial.zeroLocus {k : Type u_1} (K : Type u_2) [Field k] [Field K] [Algebra k K] {σ : Type u_3} (I : Ideal (MvPolynomial σ k)) :
Set (σK)

Set of points that are zeroes of all polynomials in an ideal

Equations
    Instances For
      @[simp]
      theorem MvPolynomial.mem_zeroLocus_iff {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K] {σ : Type u_3} {I : Ideal (MvPolynomial σ k)} {x : σK} :
      x zeroLocus K I pI, (aeval x) p = 0
      theorem MvPolynomial.zeroLocus_anti_mono {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K] {σ : Type u_3} {I J : Ideal (MvPolynomial σ k)} (h : I J) :
      @[simp]
      theorem MvPolynomial.zeroLocus_bot {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K] {σ : Type u_3} :
      @[simp]
      theorem MvPolynomial.zeroLocus_top {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K] {σ : Type u_3} :
      def MvPolynomial.vanishingIdeal (k : Type u_1) {K : Type u_2} [Field k] [Field K] [Algebra k K] {σ : Type u_3} (V : Set (σK)) :

      Ideal of polynomials with common zeroes at all elements of a set

      Equations
        Instances For
          @[simp]
          theorem MvPolynomial.mem_vanishingIdeal_iff {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K] {σ : Type u_3} {V : Set (σK)} {p : MvPolynomial σ k} :
          p vanishingIdeal k V xV, (aeval x) p = 0
          theorem MvPolynomial.vanishingIdeal_anti_mono {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K] {σ : Type u_3} {A B : Set (σK)} (h : A B) :
          theorem MvPolynomial.vanishingIdeal_empty {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K] {σ : Type u_3} :
          theorem MvPolynomial.le_vanishingIdeal_zeroLocus {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K] {σ : Type u_3} (I : Ideal (MvPolynomial σ k)) :
          theorem MvPolynomial.zeroLocus_vanishingIdeal_le {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K] {σ : Type u_3} (V : Set (σK)) :
          theorem MvPolynomial.le_zeroLocus_iff_le_vanishingIdeal {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K] {σ : Type u_3} {V : Set (σK)} {I : Ideal (MvPolynomial σ k)} :
          theorem MvPolynomial.zeroLocus_span {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K] {σ : Type u_3} (S : Set (MvPolynomial σ k)) :
          zeroLocus K (Ideal.span S) = {x : σK | pS, (aeval x) p = 0}
          theorem MvPolynomial.mem_vanishingIdeal_singleton_iff {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K] {σ : Type u_3} (x : σK) (p : MvPolynomial σ k) :
          instance MvPolynomial.instIsPrimeVanishingIdealSingletonForallSet {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K] {σ : Type u_3} {x : σK} :
          def MvPolynomial.pointToPoint {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K] {σ : Type u_3} (x : σK) :

          The point in the prime spectrum associated to a given point

          Equations
            Instances For
              @[simp]
              theorem MvPolynomial.vanishingIdeal_pointToPoint {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K] {σ : Type u_3} (V : Set (σK)) :
              theorem MvPolynomial.eq_vanishingIdeal_singleton_of_isMaximal {k : Type u_1} (K : Type u_2) [Field k] [Field K] [Algebra k K] {σ : Type u_3} [IsAlgClosed K] [Finite σ] {I : Ideal (MvPolynomial σ k)} (hI : I.IsMaximal) :
              ∃ (x : σK), I = vanishingIdeal k {x}
              @[simp]
              theorem MvPolynomial.vanishingIdeal_zeroLocus_eq_radical {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K] {σ : Type u_3} [IsAlgClosed K] [Finite σ] (I : Ideal (MvPolynomial σ k)) :

              Main statement of the Nullstellensatz

              @[simp]
              theorem MvPolynomial.IsPrime.vanishingIdeal_zeroLocus {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K] {σ : Type u_3} [IsAlgClosed K] [Finite σ] (P : Ideal (MvPolynomial σ k)) [h : P.IsPrime] :