@@ -11,10 +11,11 @@ import Mathlib.RingTheory.Unramified.Basic
1111
1212# Étale morphisms
1313
14- An `R`-algebra `A` is formally étale if for every `R`-algebra `B`,
14+ An `R`-algebra `A` is formally etale if `Ω[A⁄R]` and `H¹(L_{A/R})` both vanish.
15+ This is equivalent to the standard definition that "for every `R`-algebra `B`,
1516every square-zero ideal `I : Ideal B` and `f : A →ₐ[R] B ⧸ I`, there exists
16- exactly one lift `A →ₐ[R] B`.
17- It is étale if it is formally étale and of finite presentation.
17+ exactly one lift `A →ₐ[R] B`" .
18+ An `R`-algebra `A` is étale if it is formally étale and of finite presentation.
1819
1920We show that the property extends onto nilpotent ideals, and that these properties are stable
2021under `R`-algebra homomorphisms and compositions.
@@ -26,58 +27,78 @@ localization at an element.
2627
2728open scoped TensorProduct
2829
29- universe u
30+ universe u v
3031
3132namespace Algebra
3233
33- section
34+ variable {R : Type u} {A : Type v} {B : Type *} [CommRing R] [CommRing A] [Algebra R A]
35+ [CommRing B] [Algebra R B]
3436
35- variable (R : Type u) [CommRing R]
36- variable (A : Type u) [CommRing A] [Algebra R A]
37+ section
3738
38- /-- An `R` algebra `A` is formally étale if for every `R`-algebra, every square-zero ideal
39- `I : Ideal B` and `f : A →ₐ[R] B ⧸ I`, there exists exactly one lift `A →ₐ[R] B`. -/
39+ variable (R A) in
40+ /-- An `R`-algebra `A` is formally etale if both `Ω[A⁄R]` and `H¹(L_{A/R})` are zero.
41+ For the infinitesimal lifting definition, see `FormallyEtale.iff_comp_bijective`. -/
4042@[mk_iff, stacks 00UQ]
4143class FormallyEtale : Prop where
42- comp_bijective :
43- ∀ ⦃B : Type u⦄ [CommRing B],
44- ∀ [Algebra R B] (I : Ideal B) (_ : I ^ 2 = ⊥),
45- Function.Bijective ((Ideal.Quotient.mkₐ R I).comp : (A →ₐ[R] B) → A →ₐ[R] B ⧸ I)
44+ subsingleton_kaehlerDifferential : Subsingleton Ω[A⁄R]
45+ subsingleton_h1Cotangent : Subsingleton (H1Cotangent R A)
46+
47+ attribute [instance]
48+ FormallyEtale.subsingleton_kaehlerDifferential FormallyEtale.subsingleton_h1Cotangent
4649
4750end
4851
4952namespace FormallyEtale
5053
5154section
5255
53- variable {R : Type u} [CommRing R]
54- variable {A : Type u} [CommRing A] [Algebra R A]
56+ instance (priority := 100 ) [FormallyEtale R A] :
57+ FormallyUnramified R A := ⟨inferInstance⟩
58+
59+ instance (priority := 100 ) [FormallyEtale R A] : FormallySmooth R A :=
60+ ⟨inferInstance, inferInstance⟩
5561
56- theorem iff_unramified_and_smooth :
57- FormallyEtale R A ↔ FormallyUnramified R A ∧ FormallySmooth R A := by
58- rw [FormallyUnramified.iff_comp_injective, formallySmooth_iff, formallyEtale_iff]
59- simp_rw [← forall_and, Function.Bijective]
62+ theorem iff_formallyUnramified_and_formallySmooth :
63+ FormallyEtale R A ↔ FormallyUnramified R A ∧ FormallySmooth R A :=
64+ ⟨fun _ ↦ ⟨inferInstance, inferInstance⟩, fun ⟨_, _⟩ ↦ ⟨inferInstance, inferInstance⟩⟩
6065
61- instance (priority := 100 ) to_unramified [h : FormallyEtale R A] :
62- FormallyUnramified R A :=
63- (FormallyEtale.iff_unramified_and_smooth.mp h).1
66+ @[deprecated (since := "2025-11-03")]
67+ alias iff_unramified_and_smooth := iff_formallyUnramified_and_formallySmooth
6468
65- instance (priority := 100 ) to_smooth [h : FormallyEtale R A] : FormallySmooth R A :=
66- (FormallyEtale.iff_unramified_and_smooth.mp h).2
69+ theorem of_formallyUnramified_and_formallySmooth [FormallyUnramified R A]
70+ [FormallySmooth R A] : FormallyEtale R A :=
71+ FormallyEtale.iff_formallyUnramified_and_formallySmooth.mpr ⟨‹_›, ‹_›⟩
6772
68- theorem of_unramified_and_smooth [h₁ : FormallyUnramified R A]
69- [h₂ : FormallySmooth R A] : FormallyEtale R A :=
70- FormallyEtale.iff_unramified_and_smooth.mpr ⟨h₁, h₂⟩
73+ @[deprecated (since := "2025-11-03")]
74+ alias of_unramified_and_smooth := of_formallyUnramified_and_formallySmooth
75+
76+ variable (R A) in
77+ lemma comp_bijective [FormallyEtale R A] (I : Ideal B) (hI : I ^ 2 = ⊥) :
78+ Function.Bijective ((Ideal.Quotient.mkₐ R I).comp : (A →ₐ[R] B) → A →ₐ[R] B ⧸ I) :=
79+ ⟨FormallyUnramified.comp_injective I hI, FormallySmooth.comp_surjective R A I hI⟩
80+
81+ /--
82+ An `R`-algebra `A` is formally etale iff "for every `R`-algebra `B`,
83+ every square-zero ideal `I : Ideal B` and `f : A →ₐ[R] B ⧸ I`, there exists
84+ a unique lift `A →ₐ[R] B`".
85+ -/
86+ theorem iff_comp_bijective :
87+ FormallyEtale R A ↔ ∀ ⦃B : Type max u v⦄ [CommRing B] [Algebra R B] (I : Ideal B), I ^ 2 = ⊥ →
88+ Function.Bijective ((Ideal.Quotient.mkₐ R I).comp : (A →ₐ[R] B) → A →ₐ[R] B ⧸ I) :=
89+ ⟨fun _ _ ↦ comp_bijective R A, fun H ↦
90+ have : FormallyUnramified R A := FormallyUnramified.iff_comp_injective_of_small.{max u v}.mpr
91+ (by aesop (add safe Function.Bijective.injective))
92+ have : FormallySmooth R A := FormallySmooth.of_comp_surjective
93+ (by aesop (add safe Function.Bijective.surjective))
94+ .of_formallyUnramified_and_formallySmooth⟩
7195
7296end
7397
7498section OfEquiv
7599
76- variable {R : Type u} [CommRing R]
77- variable {A B : Type u} [CommRing A] [Algebra R A] [CommRing B] [Algebra R B]
78-
79100theorem of_equiv [FormallyEtale R A] (e : A ≃ₐ[R] B) : FormallyEtale R B :=
80- FormallyEtale.iff_unramified_and_smooth .mpr
101+ FormallyEtale.iff_formallyUnramified_and_formallySmooth .mpr
81102 ⟨FormallyUnramified.of_equiv e, FormallySmooth.of_equiv e⟩
82103
83104theorem iff_of_equiv (e : A ≃ₐ[R] B) : FormallyEtale R A ↔ FormallyEtale R B :=
@@ -87,12 +108,10 @@ end OfEquiv
87108
88109section Comp
89110
90- variable (R : Type u) [CommRing R]
91- variable (A : Type u) [CommRing A] [Algebra R A]
92- variable (B : Type u) [CommRing B] [Algebra R B] [Algebra A B] [IsScalarTower R A B]
93-
94- theorem comp [FormallyEtale R A] [FormallyEtale A B] : FormallyEtale R B :=
95- FormallyEtale.iff_unramified_and_smooth.mpr
111+ variable (R A B) in
112+ theorem comp [Algebra A B] [IsScalarTower R A B] [FormallyEtale R A] [FormallyEtale A B] :
113+ FormallyEtale R B :=
114+ FormallyEtale.iff_formallyUnramified_and_formallySmooth.mpr
96115 ⟨FormallyUnramified.comp R A B, FormallySmooth.comp R A B⟩
97116
98117end Comp
@@ -101,12 +120,8 @@ section BaseChange
101120
102121open scoped TensorProduct
103122
104- variable {R : Type u} [CommRing R]
105- variable {A : Type u} [CommRing A] [Algebra R A]
106- variable (B : Type u) [CommRing B] [Algebra R B]
107-
108- instance base_change [FormallyEtale R A] : FormallyEtale B (B ⊗[R] A) :=
109- FormallyEtale.iff_unramified_and_smooth.mpr ⟨inferInstance, inferInstance⟩
123+ instance [FormallyEtale R A] : FormallyEtale B (B ⊗[R] A) :=
124+ .of_formallyUnramified_and_formallySmooth
110125
111126end BaseChange
112127
@@ -129,7 +144,7 @@ subset `M` of `R`.
129144-/
130145
131146/-! Let R, S, Rₘ, Sₘ be commutative rings -/
132- variable {R S Rₘ Sₘ : Type u } [CommRing R] [CommRing S] [CommRing Rₘ] [CommRing Sₘ]
147+ variable {R S Rₘ Sₘ : Type * } [CommRing R] [CommRing S] [CommRing Rₘ] [CommRing Sₘ]
133148/-! Let M be a multiplicatively closed subset of `R` -/
134149variable (M : Submonoid R)
135150/-! Assume that the rings are in a commutative diagram as above. -/
@@ -140,11 +155,11 @@ variable [IsLocalization M Rₘ] [IsLocalization (M.map (algebraMap R S)) Sₘ]
140155include M
141156
142157theorem of_isLocalization : FormallyEtale R Rₘ :=
143- FormallyEtale.iff_unramified_and_smooth .mpr
158+ FormallyEtale.iff_formallyUnramified_and_formallySmooth .mpr
144159 ⟨FormallyUnramified.of_isLocalization M, FormallySmooth.of_isLocalization M⟩
145160
146161theorem localization_base [FormallyEtale R Sₘ] : FormallyEtale Rₘ Sₘ :=
147- FormallyEtale.iff_unramified_and_smooth .mpr
162+ FormallyEtale.iff_formallyUnramified_and_formallySmooth .mpr
148163 ⟨FormallyUnramified.localization_base M, FormallySmooth.localization_base M⟩
149164
150165/-- The localization of a formally étale map is formally étale. -/
@@ -159,9 +174,7 @@ end FormallyEtale
159174
160175section
161176
162- variable (R : Type u) [CommRing R]
163- variable (A : Type u) [CommRing A] [Algebra R A]
164-
177+ variable (R A) in
165178/-- An `R`-algebra `A` is étale if it is formally étale and of finite presentation. -/
166179@[stacks 00U1 "Note that this is a different definition from this Stacks entry, but
167180<https://stacks.math.columbia.edu/tag/00UR> shows that it is equivalent to the definition here." ]
@@ -175,9 +188,6 @@ namespace Etale
175188
176189attribute [instance] formallyEtale finitePresentation
177190
178- variable {R : Type u} [CommRing R]
179- variable {A B : Type u} [CommRing A] [Algebra R A] [CommRing B] [Algebra R B]
180-
181191/-- Being étale is transported via algebra isomorphisms. -/
182192theorem of_equiv [Etale R A] (e : A ≃ₐ[R] B) : Etale R B where
183193 formallyEtale := FormallyEtale.of_equiv e
@@ -198,17 +208,19 @@ instance baseChange [Etale R A] : Etale B (B ⊗[R] A) where
198208end Comp
199209
200210/-- Localization at an element is étale. -/
201- theorem of_isLocalization_Away (r : R) [IsLocalization.Away r A] : Etale R A where
211+ theorem of_isLocalizationAway (r : R) [IsLocalization.Away r A] : Etale R A where
202212 formallyEtale := Algebra.FormallyEtale.of_isLocalization (Submonoid.powers r)
203213 finitePresentation := IsLocalization.Away.finitePresentation r
204214
215+ @[deprecated (since := "2025-11-03")] alias of_isLocalization_Away := of_isLocalizationAway
216+
205217end Etale
206218
207219end Algebra
208220
209221namespace RingHom
210222
211- variable {R S : Type u } [CommRing R] [CommRing S]
223+ variable {R S : Type * } [CommRing R] [CommRing S]
212224
213225/--
214226A ring homomorphism `R →+* A` is formally étale if it is formally unramified and formally smooth.
0 commit comments