Documentation

Mathlib.RingTheory.Etale

Formally étale morphisms #

An R-algebra A is formally étale (resp. unramified, smooth) if for every R-algebra, every square-zero ideal I : Ideal B and f : A →ₐ[R] B ⧸ I, there exists exactly (resp. at most, at least) one lift A →ₐ[R] B.

We show that the property extends onto nilpotent ideals, and that these properties are stable under R-algebra homomorphisms and compositions.

theorem Algebra.formallyUnramified_iff (R : Type u) [CommSemiring R] (A : Type u) [Semiring A] [Algebra R A] :
Algebra.FormallyUnramified R A ∀ ⦃B : Type u⦄ [inst : CommRing B] [inst_1 : Algebra R B] (I : Ideal B), I ^ 2 = Function.Injective (AlgHom.comp (Ideal.Quotient.mkₐ R I))

An R-algebra A is formally unramified if for every R-algebra, every square-zero ideal I : Ideal B and f : A →ₐ[R] B ⧸ I, there exists at most one lift A →ₐ[R] B.

Instances
    theorem Algebra.formallySmooth_iff (R : Type u) [CommSemiring R] (A : Type u) [Semiring A] [Algebra R A] :
    Algebra.FormallySmooth R A ∀ ⦃B : Type u⦄ [inst : CommRing B] [inst_1 : Algebra R B] (I : Ideal B), I ^ 2 = Function.Surjective (AlgHom.comp (Ideal.Quotient.mkₐ R I))
    class Algebra.FormallySmooth (R : Type u) [CommSemiring R] (A : Type u) [Semiring A] [Algebra R A] :

    An R algebra A is formally smooth if for every R-algebra, every square-zero ideal I : Ideal B and f : A →ₐ[R] B ⧸ I, there exists at least one lift A →ₐ[R] B.

    Instances
      theorem Algebra.formallyEtale_iff (R : Type u) [CommSemiring R] (A : Type u) [Semiring A] [Algebra R A] :
      Algebra.FormallyEtale R A ∀ ⦃B : Type u⦄ [inst : CommRing B] [inst_1 : Algebra R B] (I : Ideal B), I ^ 2 = Function.Bijective (AlgHom.comp (Ideal.Quotient.mkₐ R I))
      class Algebra.FormallyEtale (R : Type u) [CommSemiring R] (A : Type u) [Semiring A] [Algebra R A] :

      An R algebra A is formally étale if for every R-algebra, every square-zero ideal I : Ideal B and f : A →ₐ[R] B ⧸ I, there exists exactly one lift A →ₐ[R] B.

      Instances
        theorem Algebra.FormallyUnramified.lift_unique {R : Type u} [CommSemiring R] {A : Type u} [Semiring A] [Algebra R A] {B : Type u} [CommRing B] [_RB : Algebra R B] [Algebra.FormallyUnramified R A] (I : Ideal B) (hI : IsNilpotent I) (g₁ : A →ₐ[R] B) (g₂ : A →ₐ[R] B) (h : AlgHom.comp (Ideal.Quotient.mkₐ R I) g₁ = AlgHom.comp (Ideal.Quotient.mkₐ R I) g₂) :
        g₁ = g₂
        theorem Algebra.FormallyUnramified.ext {R : Type u} [CommSemiring R] {A : Type u} [Semiring A] [Algebra R A] {B : Type u} [CommRing B] [Algebra R B] (I : Ideal B) [Algebra.FormallyUnramified R A] (hI : IsNilpotent I) {g₁ : A →ₐ[R] B} {g₂ : A →ₐ[R] B} (H : ∀ (x : A), (Ideal.Quotient.mk I) (g₁ x) = (Ideal.Quotient.mk I) (g₂ x)) :
        g₁ = g₂
        theorem Algebra.FormallyUnramified.lift_unique_of_ringHom {R : Type u} [CommSemiring R] {A : Type u} [Semiring A] [Algebra R A] {B : Type u} [CommRing B] [Algebra R B] [Algebra.FormallyUnramified R A] {C : Type u} [CommRing C] (f : B →+* C) (hf : IsNilpotent (RingHom.ker f)) (g₁ : A →ₐ[R] B) (g₂ : A →ₐ[R] B) (h : RingHom.comp f g₁ = RingHom.comp f g₂) :
        g₁ = g₂
        theorem Algebra.FormallyUnramified.ext' {R : Type u} [CommSemiring R] {A : Type u} [Semiring A] [Algebra R A] {B : Type u} [CommRing B] [Algebra R B] [Algebra.FormallyUnramified R A] {C : Type u} [CommRing C] (f : B →+* C) (hf : IsNilpotent (RingHom.ker f)) (g₁ : A →ₐ[R] B) (g₂ : A →ₐ[R] B) (h : ∀ (x : A), f (g₁ x) = f (g₂ x)) :
        g₁ = g₂
        theorem Algebra.FormallyUnramified.lift_unique' {R : Type u} [CommSemiring R] {A : Type u} [Semiring A] [Algebra R A] {B : Type u} [CommRing B] [Algebra R B] [Algebra.FormallyUnramified R A] {C : Type u} [CommRing C] [Algebra R C] (f : B →ₐ[R] C) (hf : IsNilpotent (RingHom.ker f)) (g₁ : A →ₐ[R] B) (g₂ : A →ₐ[R] B) (h : AlgHom.comp f g₁ = AlgHom.comp f g₂) :
        g₁ = g₂
        theorem Algebra.FormallySmooth.exists_lift {R : Type u} [CommSemiring R] {A : Type u} [Semiring A] [Algebra R A] {B : Type u} [CommRing B] [_RB : Algebra R B] [Algebra.FormallySmooth R A] (I : Ideal B) (hI : IsNilpotent I) (g : A →ₐ[R] B I) :
        ∃ (f : A →ₐ[R] B), AlgHom.comp (Ideal.Quotient.mkₐ R I) f = g
        noncomputable def Algebra.FormallySmooth.lift {R : Type u} [CommSemiring R] {A : Type u} [Semiring A] [Algebra R A] {B : Type u} [CommRing B] [Algebra R B] [Algebra.FormallySmooth R A] (I : Ideal B) (hI : IsNilpotent I) (g : A →ₐ[R] B I) :

        For a formally smooth R-algebra A and a map f : A →ₐ[R] B ⧸ I with I square-zero, this is an arbitrary lift A →ₐ[R] B.

        Equations
        Instances For
          @[simp]
          @[simp]
          theorem Algebra.FormallySmooth.mk_lift {R : Type u} [CommSemiring R] {A : Type u} [Semiring A] [Algebra R A] {B : Type u} [CommRing B] [Algebra R B] [Algebra.FormallySmooth R A] (I : Ideal B) (hI : IsNilpotent I) (g : A →ₐ[R] B I) (x : A) :
          noncomputable def Algebra.FormallySmooth.liftOfSurjective {R : Type u} [CommSemiring R] {A : Type u} [Semiring A] [Algebra R A] {B : Type u} [CommRing B] [Algebra R B] {C : Type u} [CommRing C] [Algebra R C] [Algebra.FormallySmooth R A] (f : A →ₐ[R] C) (g : B →ₐ[R] C) (hg : Function.Surjective g) (hg' : IsNilpotent (RingHom.ker g)) :

          For a formally smooth R-algebra A and a map f : A →ₐ[R] B ⧸ I with I nilpotent, this is an arbitrary lift A →ₐ[R] B.

          Equations
          Instances For
            @[simp]
            theorem Algebra.FormallySmooth.liftOfSurjective_apply {R : Type u} [CommSemiring R] {A : Type u} [Semiring A] [Algebra R A] {B : Type u} [CommRing B] [Algebra R B] {C : Type u} [CommRing C] [Algebra R C] [Algebra.FormallySmooth R A] (f : A →ₐ[R] C) (g : B →ₐ[R] C) (hg : Function.Surjective g) (hg' : IsNilpotent (RingHom.ker g)) (x : A) :
            @[simp]
            theorem Algebra.FormallySmooth.comp_liftOfSurjective {R : Type u} [CommSemiring R] {A : Type u} [Semiring A] [Algebra R A] {B : Type u} [CommRing B] [Algebra R B] {C : Type u} [CommRing C] [Algebra R C] [Algebra.FormallySmooth R A] (f : A →ₐ[R] C) (g : B →ₐ[R] C) (hg : Function.Surjective g) (hg' : IsNilpotent (RingHom.ker g)) :

            Let P →ₐ[R] A be a surjection with kernel J, and P a formally smooth R-algebra, then A is formally smooth over R iff the surjection P ⧸ J ^ 2 →ₐ[R] A has a section.

            Geometric intuition: we require that a first-order thickening of Spec A inside Spec P admits a retraction.

            This holds in general for epimorphisms.

            theorem Algebra.FormallyEtale.of_isLocalization {R : Type u} {Rₘ : Type u} [CommRing R] [CommRing Rₘ] (M : Submonoid R) [Algebra R Rₘ] [IsLocalization M Rₘ] :
            theorem Algebra.FormallySmooth.localization_base {R : Type u} {Rₘ : Type u} {Sₘ : Type u} [CommRing R] [CommRing Rₘ] [CommRing Sₘ] (M : Submonoid R) [Algebra R Sₘ] [Algebra R Rₘ] [Algebra Rₘ Sₘ] [IsScalarTower R Rₘ Sₘ] [IsLocalization M Rₘ] [Algebra.FormallySmooth R Sₘ] :
            theorem Algebra.FormallyUnramified.localization_base {R : Type u} {Rₘ : Type u} {Sₘ : Type u} [CommRing R] [CommRing Rₘ] [CommRing Sₘ] (M : Submonoid R) [Algebra R Sₘ] [Algebra R Rₘ] [Algebra Rₘ Sₘ] [IsScalarTower R Rₘ Sₘ] [Algebra.FormallyUnramified R Sₘ] :

            This actually does not need the localization instance, and is stated here again for consistency. See Algebra.FormallyUnramified.of_comp instead.

            The intended use is for copying proofs between Formally{Unramified, Smooth, Etale} without the need to change anything (including removing redundant arguments).

            theorem Algebra.FormallyEtale.localization_base {R : Type u} {Rₘ : Type u} {Sₘ : Type u} [CommRing R] [CommRing Rₘ] [CommRing Sₘ] (M : Submonoid R) [Algebra R Sₘ] [Algebra R Rₘ] [Algebra Rₘ Sₘ] [IsScalarTower R Rₘ Sₘ] [IsLocalization M Rₘ] [Algebra.FormallyEtale R Sₘ] :
            theorem Algebra.FormallySmooth.localization_map {R : Type u} {S : Type u} {Rₘ : Type u} {Sₘ : Type u} [CommRing R] [CommRing S] [CommRing Rₘ] [CommRing Sₘ] (M : Submonoid R) [Algebra R S] [Algebra R Sₘ] [Algebra S Sₘ] [Algebra R Rₘ] [Algebra Rₘ Sₘ] [IsScalarTower R Rₘ Sₘ] [IsScalarTower R S Sₘ] [IsLocalization M Rₘ] [IsLocalization (Submonoid.map (algebraMap R S) M) Sₘ] [Algebra.FormallySmooth R S] :
            theorem Algebra.FormallyUnramified.localization_map {R : Type u} {S : Type u} {Rₘ : Type u} {Sₘ : Type u} [CommRing R] [CommRing S] [CommRing Rₘ] [CommRing Sₘ] (M : Submonoid R) [Algebra R S] [Algebra R Sₘ] [Algebra S Sₘ] [Algebra R Rₘ] [Algebra Rₘ Sₘ] [IsScalarTower R Rₘ Sₘ] [IsScalarTower R S Sₘ] [IsLocalization (Submonoid.map (algebraMap R S) M) Sₘ] [Algebra.FormallyUnramified R S] :
            theorem Algebra.FormallyEtale.localization_map {R : Type u} {S : Type u} {Rₘ : Type u} {Sₘ : Type u} [CommRing R] [CommRing S] [CommRing Rₘ] [CommRing Sₘ] (M : Submonoid R) [Algebra R S] [Algebra R Sₘ] [Algebra S Sₘ] [Algebra R Rₘ] [Algebra Rₘ Sₘ] [IsScalarTower R Rₘ Sₘ] [IsScalarTower R S Sₘ] [IsLocalization M Rₘ] [IsLocalization (Submonoid.map (algebraMap R S) M) Sₘ] [Algebra.FormallyEtale R S] :