Documentation

Mathlib.FieldTheory.AxGrothendieck

Ax-Grothendieck #

This file proves that if K is an algebraically closed field, then any injective polynomial map K^n → K^n is also surjective.

Main results #

References #

The first order theory of algebraically closed fields, along with the Lefschetz Principle and the Ax-Grothendieck Theorem were first formalized in Lean 3 by Joseph Hua here with the master's thesis here

theorem ax_grothendieck_of_locally_finite {ι : Type u_1} {K : Type u_2} {R : Type u_3} [Field K] [Finite K] [CommRing R] [Finite ι] [Algebra K R] [alg : Algebra.IsAlgebraic K R] (ps : ιMvPolynomial ι R) (S : Set (ιR)) (hm : Set.MapsTo (fun (v : ιR) (i : ι) => (MvPolynomial.eval v) (ps i)) S S) (hinj : Set.InjOn (fun (v : ιR) (i : ι) => (MvPolynomial.eval v) (ps i)) S) :
Set.SurjOn (fun (v : ιR) (i : ι) => (MvPolynomial.eval v) (ps i)) S S

Any injective polynomial map over an algebraic extension of a finite field is surjective.

noncomputable def FirstOrder.genericPolyMapSurjOnOfInjOn {ι : Type u_1} {α : Type u_2} [Finite α] [Fintype ι] (φ : FirstOrder.Language.ring.Formula (α ι)) (mons : ιFinset (ι →₀ )) :

The collection of first order formulas corresponding to the Ax-Grothendieck theorem.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem FirstOrder.realize_genericPolyMapSurjOnOfInjOn {ι : Type u_1} {α : Type u_2} [Finite α] {K : Type u_3} [Field K] [FirstOrder.Ring.CompatibleRing K] [Fintype ι] (φ : FirstOrder.Language.ring.Formula (α ι)) (mons : ιFinset (ι →₀ )) :
    K FirstOrder.genericPolyMapSurjOnOfInjOn φ mons ∀ (v : αK) (p : { p : ιMvPolynomial ι K // ∀ (i : ι), (p i).support mons i }), let f := fun (v : ιK) (i : ι) => (MvPolynomial.eval v) (p i); let S := fun (x : ιK) => φ.Realize (Sum.elim v x); Set.MapsTo f S SSet.InjOn f SSet.SurjOn f S S
    theorem ax_grothendieck_of_definable {K : Type u_1} {ι : Type u_2} [Field K] [IsAlgClosed K] [Finite ι] [FirstOrder.Ring.CompatibleRing K] {c : Set K} (S : Set (ιK)) (hS : c.Definable FirstOrder.Language.ring S) (ps : ιMvPolynomial ι K) :
    Set.MapsTo (fun (v : ιK) (i : ι) => (MvPolynomial.eval v) (ps i)) S SSet.InjOn (fun (v : ιK) (i : ι) => (MvPolynomial.eval v) (ps i)) SSet.SurjOn (fun (v : ιK) (i : ι) => (MvPolynomial.eval v) (ps i)) S S

    A slight generalization of the Ax-Grothendieck theorem

    If K is an algebraically closed field, ι is a finite type, and S is a definable subset of ι → K, then any injective polynomial map S → S is also surjective on S.

    theorem ax_grothendieck_zeroLocus {K : Type u_1} {ι : Type u_2} [Field K] [IsAlgClosed K] [Finite ι] (I : Ideal (MvPolynomial ι K)) (p : ιMvPolynomial ι K) :
    let S := MvPolynomial.zeroLocus I; Set.MapsTo (fun (v : ιK) (i : ι) => (MvPolynomial.eval v) (p i)) S SSet.InjOn (fun (v : ιK) (i : ι) => (MvPolynomial.eval v) (p i)) SSet.SurjOn (fun (v : ιK) (i : ι) => (MvPolynomial.eval v) (p i)) S S

    The Ax-Grothendieck theorem

    If K is an algebraically closed field, and S : Set (ι → K) is the zeroLocus of an ideal of the multivariable polynomial ring, then any injective polynomial map S → S is also surjective on S.

    theorem ax_grothendieck_univ {K : Type u_1} {ι : Type u_2} [Field K] [IsAlgClosed K] [Finite ι] (p : ιMvPolynomial ι K) :
    (Function.Injective fun (v : ιK) (i : ι) => (MvPolynomial.eval v) (p i))Function.Surjective fun (v : ιK) (i : ι) => (MvPolynomial.eval v) (p i)

    A special case of the Ax-Grothendieck theorem

    Any injective polynomial map K^n → K^n is also surjective if K is an algberaically closed field.