File: Mathlib/RingTheory/Nullstellensatz.lean

full_name: MvPolynomial.zeroLocus
code: /-- Set of points that are zeroes of all polynomials in an ideal -/
def zeroLocus (I : Ideal (MvPolynomial σ k)) : Set (σ → k) 
goal: Set (σ → k)

full_name: MvPolynomial.mem_zeroLocus_iff
code: @[simp]
theorem mem_zeroLocus_iff {I : Ideal (MvPolynomial σ k)} {x : σ → k} :
    x ∈ zeroLocus I ↔ ∀ p ∈ I, eval x p = 0 
goal: x ∈ MvPolynomial.zeroLocus I ↔ ∀ p ∈ I, (MvPolynomial.eval x) p = 0

full_name: MvPolynomial.zeroLocus_anti_mono
code: theorem zeroLocus_anti_mono {I J : Ideal (MvPolynomial σ k)} (h : I ≤ J) :
    zeroLocus J ≤ zeroLocus I 
goal: MvPolynomial.zeroLocus J ≤ MvPolynomial.zeroLocus I

full_name: MvPolynomial.zeroLocus_bot
code: @[simp]
theorem zeroLocus_bot : zeroLocus (⊥ : Ideal (MvPolynomial σ k)) = ⊤ 
goal: MvPolynomial.zeroLocus ⊥ = ⊤

full_name: MvPolynomial.zeroLocus_top
code: @[simp]
theorem zeroLocus_top : zeroLocus (⊤ : Ideal (MvPolynomial σ k)) = ⊥ 
goal: MvPolynomial.zeroLocus ⊤ = ⊥

full_name: MvPolynomial.vanishingIdeal
code: /-- Ideal of polynomials with common zeroes at all elements of a set -/
def vanishingIdeal (V : Set (σ → k)) : Ideal (MvPolynomial σ k) 
goal: Ideal (MvPolynomial σ k)

full_name: MvPolynomial.mem_vanishingIdeal_iff
code: @[simp]
theorem mem_vanishingIdeal_iff {V : Set (σ → k)} {p : MvPolynomial σ k} :
    p ∈ vanishingIdeal V ↔ ∀ x ∈ V, eval x p = 0 
goal: p ∈ MvPolynomial.vanishingIdeal V ↔ ∀ x ∈ V, (MvPolynomial.eval x) p = 0

full_name: MvPolynomial.vanishingIdeal_anti_mono
code: theorem vanishingIdeal_anti_mono {A B : Set (σ → k)} (h : A ≤ B) :
    vanishingIdeal B ≤ vanishingIdeal A 
goal: MvPolynomial.vanishingIdeal B ≤ MvPolynomial.vanishingIdeal A

full_name: MvPolynomial.vanishingIdeal_empty
code: theorem vanishingIdeal_empty : vanishingIdeal (∅ : Set (σ → k)) = ⊤ 
goal: MvPolynomial.vanishingIdeal ∅ = ⊤

full_name: MvPolynomial.le_vanishingIdeal_zeroLocus
code: theorem le_vanishingIdeal_zeroLocus (I : Ideal (MvPolynomial σ k)) :
    I ≤ vanishingIdeal (zeroLocus I) 
goal: I ≤ MvPolynomial.vanishingIdeal (MvPolynomial.zeroLocus I)

full_name: MvPolynomial.zeroLocus_vanishingIdeal_le
code: theorem zeroLocus_vanishingIdeal_le (V : Set (σ → k)) : V ≤ zeroLocus (vanishingIdeal V) 
goal: V ≤ MvPolynomial.zeroLocus (MvPolynomial.vanishingIdeal V)

full_name: MvPolynomial.zeroLocus_vanishingIdeal_galoisConnection
code: theorem zeroLocus_vanishingIdeal_galoisConnection :
    @GaloisConnection (Ideal (MvPolynomial σ k)) (Set (σ → k))ᵒᵈ _ _ zeroLocus vanishingIdeal 
goal: GaloisConnection MvPolynomial.zeroLocus MvPolynomial.vanishingIdeal

full_name: MvPolynomial.le_zeroLocus_iff_le_vanishingIdeal
code: theorem le_zeroLocus_iff_le_vanishingIdeal {V : Set (σ → k)} {I : Ideal (MvPolynomial σ k)} :
    V ≤ zeroLocus I ↔ I ≤ vanishingIdeal V 
goal: V ≤ MvPolynomial.zeroLocus I ↔ I ≤ MvPolynomial.vanishingIdeal V

full_name: MvPolynomial.zeroLocus_span
code: theorem zeroLocus_span (S : Set (MvPolynomial σ k)) :
    zeroLocus (Ideal.span S) = { x | ∀ p ∈ S, eval x p = 0 } 
goal: MvPolynomial.zeroLocus (Ideal.span S) = {x | ∀ p ∈ S, (MvPolynomial.eval x) p = 0}

full_name: MvPolynomial.mem_vanishingIdeal_singleton_iff
code: theorem mem_vanishingIdeal_singleton_iff (x : σ → k) (p : MvPolynomial σ k) :
    p ∈ (vanishingIdeal {x} : Ideal (MvPolynomial σ k)) ↔ eval x p = 0 
goal: p ∈ MvPolynomial.vanishingIdeal {x} ↔ (MvPolynomial.eval x) p = 0

full_name: MvPolynomial.vanishingIdeal_singleton_isMaximal
code: instance vanishingIdeal_singleton_isMaximal {x : σ → k} :
    (vanishingIdeal {x} : Ideal (MvPolynomial σ k)).IsMaximal 
goal: (MvPolynomial.vanishingIdeal {x}).IsMaximal

full_name: MvPolynomial.radical_le_vanishingIdeal_zeroLocus
code: theorem radical_le_vanishingIdeal_zeroLocus (I : Ideal (MvPolynomial σ k)) :
    I.radical ≤ vanishingIdeal (zeroLocus I) 
goal: I.radical ≤ MvPolynomial.vanishingIdeal (MvPolynomial.zeroLocus I)

full_name: MvPolynomial.pointToPoint
code: /-- The point in the prime spectrum associated to a given point -/
def pointToPoint (x : σ → k) : PrimeSpectrum (MvPolynomial σ k) 
goal: PrimeSpectrum (MvPolynomial σ k)

full_name: MvPolynomial.vanishingIdeal_pointToPoint
code: @[simp]
theorem vanishingIdeal_pointToPoint (V : Set (σ → k)) :
    PrimeSpectrum.vanishingIdeal (pointToPoint '' V) = MvPolynomial.vanishingIdeal V 
goal: PrimeSpectrum.vanishingIdeal (MvPolynomial.pointToPoint '' V) = MvPolynomial.vanishingIdeal V

full_name: MvPolynomial.pointToPoint_zeroLocus_le
code: theorem pointToPoint_zeroLocus_le (I : Ideal (MvPolynomial σ k)) :
    pointToPoint '' MvPolynomial.zeroLocus I ≤ PrimeSpectrum.zeroLocus ↑I 
goal: MvPolynomial.pointToPoint '' MvPolynomial.zeroLocus I ≤ PrimeSpectrum.zeroLocus ↑I

full_name: MvPolynomial.isMaximal_iff_eq_vanishingIdeal_singleton
code: theorem isMaximal_iff_eq_vanishingIdeal_singleton (I : Ideal (MvPolynomial σ k)) :
    I.IsMaximal ↔ ∃ x : σ → k, I = vanishingIdeal {x} 
goal: I.IsMaximal ↔ ∃ x, I = MvPolynomial.vanishingIdeal {x}

full_name: MvPolynomial.vanishingIdeal_zeroLocus_eq_radical
code: /-- Main statement of the Nullstellensatz -/
@[simp]
theorem vanishingIdeal_zeroLocus_eq_radical (I : Ideal (MvPolynomial σ k)) :
    vanishingIdeal (zeroLocus I) = I.radical 
goal: MvPolynomial.vanishingIdeal (MvPolynomial.zeroLocus I) = I.radical

full_name: MvPolynomial.IsPrime.vanishingIdeal_zeroLocus
code: @[simp (high)]
theorem IsPrime.vanishingIdeal_zeroLocus (P : Ideal (MvPolynomial σ k)) [h : P.IsPrime] :
    vanishingIdeal (zeroLocus P) = P 
goal: MvPolynomial.vanishingIdeal (MvPolynomial.zeroLocus P) = P