Documentation

Mathlib.RingTheory.Smooth.Basic

Smooth morphisms #

An R-algebra A is formally smooth if Ω[A⁄R] is A-projective and H¹(L_{A/R}) = 0. This is equivalent to the standard definition that "for every R-algebra B, every square-zero ideal I : Ideal B and f : A →ₐ[R] B ⧸ I, there exists at least one lift A →ₐ[R] B". An R-algebra A is smooth if it is formally smooth and of finite presentation.

We show that the property of being formally smooth extends onto nilpotent ideals, and that it is stable under R-algebra homomorphisms and compositions.

We show that smooth is stable under algebra isomorphisms, composition and localization at an element.

Main results #

Suppose P is a formally smooth R algebra that surjects onto A with kernel I, then

class Algebra.FormallySmooth (R : Type u) (A : Type v) [CommRing R] [CommRing A] [Algebra R A] :

An R-algebra A is formally smooth if Ω[A⁄R] is A-projective and H¹(L_{A/R}) = 0. For the infinitesimal lifting definition, see FormallySmooth.lift and FormallySmooth.iff_comp_surjective.

Instances
    @[deprecated Algebra.formallySmooth_iff (since := "2025-10-25")]

    Alias of Algebra.formallySmooth_iff.

    instance Algebra.mvPolynomial {R : Type u} [CommRing R] (σ : Type u_4) :
    theorem Algebra.FormallySmooth.exists_lift {R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] {B : Type u_1} [CommRing B] [Algebra R B] [FormallySmooth R A] (I : Ideal B) (hI : IsNilpotent I) (g : A →ₐ[R] B I) :
    ∃ (f : A →ₐ[R] B), (Ideal.Quotient.mkₐ R I).comp f = g
    noncomputable def Algebra.FormallySmooth.lift {R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] {B : Type u_1} [CommRing B] [Algebra R B] [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]
      theorem Algebra.FormallySmooth.comp_lift {R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] {B : Type u_1} [CommRing B] [Algebra R B] [FormallySmooth R A] (I : Ideal B) (hI : IsNilpotent I) (g : A →ₐ[R] B I) :
      (Ideal.Quotient.mkₐ R I).comp (lift I hI g) = g
      @[simp]
      theorem Algebra.FormallySmooth.mk_lift {R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] {B : Type u_1} [CommRing B] [Algebra R B] [FormallySmooth R A] (I : Ideal B) (hI : IsNilpotent I) (g : A →ₐ[R] B I) (x : A) :
      (Ideal.Quotient.mk I) ((lift I hI g) x) = g x
      noncomputable def Algebra.FormallySmooth.liftOfSurjective {R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] {B : Type u_1} [CommRing B] [Algebra R B] {C : Type u_4} [CommRing C] [Algebra R C] [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} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] {B : Type u_1} [CommRing B] [Algebra R B] {C : Type u_4} [CommRing C] [Algebra R C] [FormallySmooth R A] (f : A →ₐ[R] C) (g : B →ₐ[R] C) (hg : Function.Surjective g) (hg' : IsNilpotent (RingHom.ker g)) (x : A) :
        g ((liftOfSurjective f g hg hg') x) = f x
        @[simp]
        theorem Algebra.FormallySmooth.comp_liftOfSurjective {R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] {B : Type u_1} [CommRing B] [Algebra R B] {C : Type u_4} [CommRing C] [Algebra R C] [FormallySmooth R A] (f : A →ₐ[R] C) (g : B →ₐ[R] C) (hg : Function.Surjective g) (hg' : IsNilpotent (RingHom.ker g)) :
        g.comp (liftOfSurjective f g hg hg') = f
        noncomputable def Algebra.Extension.homInfinitesimal {R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] (P₁ : Extension R A) (P₂ : Extension R A) [FormallySmooth R P₁.Ring] :

        Given extensions 0 → I₁ → P₁ → A → 0 and 0 → I₂ → P₂ → A → 0 with P₁ formally smooth, this is an arbitrarily chosen map P₁/I₁² → P₂/I₂² of extensions.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          noncomputable def Algebra.Extension.H1Cotangent.equivOfFormallySmooth {R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] (P₁ : Extension R A) (P₂ : Extension R A) [FormallySmooth R P₁.Ring] [FormallySmooth R P₂.Ring] :

          Formally smooth extensions have isomorphic H¹(L_P).

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem Algebra.Extension.H1Cotangent.equivOfFormallySmooth_toLinearMap {R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] {P₁ : Extension R A} {P₂ : Extension R A} (f : P₁.Hom P₂) [FormallySmooth R P₁.Ring] [FormallySmooth R P₂.Ring] :
            (equivOfFormallySmooth P₁ P₂) = map f
            theorem Algebra.Extension.H1Cotangent.equivOfFormallySmooth_apply {R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] {P₁ : Extension R A} {P₂ : Extension R A} (f : P₁.Hom P₂) [FormallySmooth R P₁.Ring] [FormallySmooth R P₂.Ring] (x : P₁.H1Cotangent) :
            (equivOfFormallySmooth P₁ P₂) x = (map f) x

            Any formally smooth extension can be used to calculate H¹(L_{A/R}).

            Equations
            Instances For

              Given a formally smooth R-algebra P and a surjective algebra homomorphism f : P →ₐ[R] A with kernel I (typically a presentation R[X] → A), A is formally smooth iff the P-linear map I/I² → A ⊗[P] Ω[P⁄R] is split injective. Also see Algebra.Extension.formallySmooth_iff_split_injection for the version in terms of Extension.

              Given a formally smooth R-algebra P and a surjective algebra homomorphism f : P →ₐ[R] S with kernel I (typically a presentation R[X] → S), S is formally smooth iff the P-linear map I/I² → S ⊗[P] Ω[P⁄R] is split injective.

              theorem Algebra.FormallySmooth.iff_split_surjection {R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] {P : Type u_2} [CommRing P] [Algebra R P] [FormallySmooth R P] (f : P →ₐ[R] A) (hf : Function.Surjective f) :

              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.

              theorem Algebra.FormallySmooth.of_split {R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] {P : Type u_2} [CommRing P] [Algebra R P] [FormallySmooth R P] (f : P →ₐ[R] A) (g : A →ₐ[R] P RingHom.ker f.toRingHom ^ 2) (h : f.kerSquareLift.comp g = AlgHom.id R A) :
              theorem Algebra.FormallySmooth.of_comp_surjective {R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] (H : ∀ ⦃B : Type (max u v)⦄ [inst : CommRing B] [inst_1 : Algebra R B] (I : Ideal B), I ^ 2 = Function.Surjective (Ideal.Quotient.mkₐ R I).comp) :
              theorem Algebra.FormallySmooth.iff_comp_surjective {R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] :
              FormallySmooth R A ∀ ⦃B : Type (max u v)⦄ [inst : CommRing B] [inst_1 : Algebra R B] (I : Ideal B), I ^ 2 = Function.Surjective (Ideal.Quotient.mkₐ R I).comp

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

              theorem Algebra.FormallySmooth.of_equiv {R : Type u_4} [CommRing R] {A : Type u_5} {B : Type u_6} [CommRing A] [Algebra R A] [CommRing B] [Algebra R B] [FormallySmooth R A] (e : A ≃ₐ[R] B) :
              theorem Algebra.FormallySmooth.iff_of_equiv {R : Type u_4} [CommRing R] {A : Type u_5} {B : Type u_6} [CommRing A] [Algebra R A] [CommRing B] [Algebra R B] (e : A ≃ₐ[R] B) :
              theorem Algebra.FormallySmooth.comp (R : Type u_4) [CommRing R] (A : Type u_5) [CommRing A] [Algebra R A] (B : Type u_6) [CommRing B] [Algebra R B] [Algebra A B] [IsScalarTower R A B] [FormallySmooth R A] [FormallySmooth A B] :
              theorem Algebra.FormallySmooth.of_isLocalization {R : Type u_4} {Rₘ : Type u_6} [CommRing R] [CommRing Rₘ] (M : Submonoid R) [Algebra R Rₘ] [IsLocalization M Rₘ] :
              theorem Algebra.FormallySmooth.localization_base {R : Type u_4} {Rₘ : Type u_6} {Sₘ : Type u_7} [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ₘ] [FormallySmooth R Sₘ] :
              FormallySmooth Rₘ Sₘ
              theorem Algebra.FormallySmooth.localization_map {R : Type u_4} {A : Type u_5} {Rₘ : Type u_6} {Sₘ : Type u_7} [CommRing R] [CommRing A] [CommRing Rₘ] [CommRing Sₘ] (M : Submonoid R) [Algebra R A] [Algebra R Sₘ] [Algebra A Sₘ] [Algebra R Rₘ] [Algebra Rₘ Sₘ] [IsScalarTower R Rₘ Sₘ] [IsScalarTower R A Sₘ] [IsLocalization M Rₘ] [IsLocalization (Submonoid.map (algebraMap R A) M) Sₘ] [FormallySmooth R A] :
              FormallySmooth Rₘ Sₘ
              class Algebra.Smooth (R : Type u_4) [CommRing R] (A : Type u) [CommRing A] [Algebra R A] :

              An R algebra A is smooth if it is formally smooth and of finite presentation.

              Instances
                theorem Algebra.Smooth.of_equiv {R : Type u_4} [CommRing R] {A : Type u_5} {B : Type u_6} [CommRing A] [Algebra R A] [CommRing B] [Algebra R B] [Smooth R A] (e : A ≃ₐ[R] B) :
                Smooth R B

                Being smooth is transported via algebra isomorphisms.

                theorem Algebra.Smooth.of_isLocalization_Away {R : Type u_4} [CommRing R] {A : Type u_5} [CommRing A] [Algebra R A] (r : R) [IsLocalization.Away r A] :
                Smooth R A

                Localization at an element is smooth.

                theorem Algebra.Smooth.comp (R : Type u_4) [CommRing R] (A : Type u_5) (B : Type u_6) [CommRing A] [Algebra R A] [CommRing B] [Algebra R B] [Algebra A B] [IsScalarTower R A B] [Smooth R A] [Smooth A B] :
                Smooth R B

                Smooth is stable under composition.

                instance Algebra.Smooth.baseChange (R : Type u_4) [CommRing R] (A : Type u_5) (B : Type u_6) [CommRing A] [Algebra R A] [CommRing B] [Algebra R B] [Smooth R A] :

                Smooth is stable under base change.