Skip to content

Commit d1366e1

Browse files
committed
chore(AlgebraicGeometry/Smooth): rename IsSmooth to Smooth and IsEtale to Etale (leanprover-community#35028)
This way it matches `Algebra.Smooth` and `Algebra.Etale`. Also there is no possible confusion, because these are clearly adjectives.
1 parent 0a791e3 commit d1366e1

3 files changed

Lines changed: 73 additions & 57 deletions

File tree

Mathlib/AlgebraicGeometry/Morphisms/Etale.lean

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -31,23 +31,25 @@ open CategoryTheory MorphismProperty Limits
3131
namespace AlgebraicGeometry
3232

3333
/-- A morphism of schemes is étale if it is smooth of relative dimension zero. -/
34-
abbrev IsEtale {X Y : Scheme.{u}} (f : X ⟶ Y) := IsSmoothOfRelativeDimension 0 f
34+
abbrev Etale {X Y : Scheme.{u}} (f : X ⟶ Y) := SmoothOfRelativeDimension 0 f
3535

36-
namespace IsEtale
36+
@[deprecated (since := "2026-02-09")] alias IsEtale := Etale
37+
38+
namespace Etale
3739

3840
variable {X Y : Scheme.{u}} (f : X ⟶ Y)
3941

40-
instance [IsEtale f] : IsSmooth f :=
41-
IsSmoothOfRelativeDimension.isSmooth 0 f
42+
instance [Etale f] : Smooth f :=
43+
SmoothOfRelativeDimension.smooth 0 f
4244

43-
instance : IsStableUnderBaseChange @IsEtale :=
44-
isSmoothOfRelativeDimension_isStableUnderBaseChange 0
45+
instance : IsStableUnderBaseChange @Etale :=
46+
smoothOfRelativeDimension_isStableUnderBaseChange 0
4547

4648
open RingHom in
47-
instance (priority := 900) [IsEtale f] : FormallyUnramified f where
49+
instance (priority := 900) [Etale f] : FormallyUnramified f where
4850
formallyUnramified_appLE {U} hU {V} hV e := by
4951
have : Locally (IsStandardSmoothOfRelativeDimension 0) (f.appLE U V e).hom :=
50-
HasRingHomProperty.appLE (P := @IsSmoothOfRelativeDimension 0) _
52+
HasRingHomProperty.appLE (P := @SmoothOfRelativeDimension 0) _
5153
inferInstance ⟨U, hU⟩ ⟨V, hV⟩ _
5254
have : Locally RingHom.FormallyUnramified (f.appLE U V e).hom := by
5355
apply locally_of_locally _ this
@@ -59,37 +61,37 @@ instance (priority := 900) [IsEtale f] : FormallyUnramified f where
5961
FormallyUnramified.respectsIso FormallyUnramified.ofLocalizationSpanTarget]
6062

6163
instance : MorphismProperty.HasOfPostcompProperty
62-
@IsEtale (@LocallyOfFiniteType ⊓ @FormallyUnramified) := by
64+
@Etale (@LocallyOfFiniteType ⊓ @FormallyUnramified) := by
6365
rw [MorphismProperty.hasOfPostcompProperty_iff_le_diagonal]
6466
intro X Y f ⟨hft, hfu⟩
65-
exact inferInstanceAs <| IsEtale (pullback.diagonal f)
67+
exact inferInstanceAs <| Etale (pullback.diagonal f)
6668

6769
/-- If `f ≫ g` is étale and `g` unramified, then `f` is étale. -/
68-
lemma of_comp {Z : Scheme.{u}} (g : Y ⟶ Z) [IsEtale (f ≫ g)] [LocallyOfFiniteType g]
69-
[FormallyUnramified g] : IsEtale f :=
70+
lemma of_comp {Z : Scheme.{u}} (g : Y ⟶ Z) [Etale (f ≫ g)] [LocallyOfFiniteType g]
71+
[FormallyUnramified g] : Etale f :=
7072
of_postcomp _ (W' := @LocallyOfFiniteType ⊓ @FormallyUnramified) f g ⟨‹_›, ‹_›⟩ ‹_›
7173

72-
instance : MorphismProperty.HasOfPostcompProperty @IsEtale @IsEtale := by
73-
apply MorphismProperty.HasOfPostcompProperty.of_le (W := @IsEtale)
74+
instance : MorphismProperty.HasOfPostcompProperty @Etale @Etale := by
75+
apply MorphismProperty.HasOfPostcompProperty.of_le (W := @Etale)
7476
(Q := (@LocallyOfFiniteType ⊓ @FormallyUnramified))
7577
intro X Y f hf
7678
constructor <;> infer_instance
7779

78-
end IsEtale
80+
end Etale
7981

8082
namespace Scheme
8183

8284
/-- The category `Etale X` is the category of schemes étale over `X`. -/
83-
def Etale (X : Scheme.{u}) : Type _ := MorphismProperty.Over @IsEtale ⊤ X
85+
protected def Etale (X : Scheme.{u}) : Type _ := MorphismProperty.Over @Etale ⊤ X
8486

8587
variable (X : Scheme.{u})
8688

8789
instance : Category X.Etale :=
88-
inferInstanceAs <| Category (MorphismProperty.Over @IsEtale ⊤ X)
90+
inferInstanceAs <| Category (MorphismProperty.Over @Etale ⊤ X)
8991

9092
/-- The forgetful functor from schemes étale over `X` to schemes over `X`. -/
9193
def Etale.forget : X.Etale ⥤ Over X :=
92-
MorphismProperty.Over.forget @IsEtale ⊤ X
94+
MorphismProperty.Over.forget @Etale ⊤ X
9395

9496
/-- The forgetful functor from schemes étale over `X` to schemes over `X` is fully faithful. -/
9597
def Etale.forgetFullyFaithful : (Etale.forget X).FullyFaithful :=
@@ -101,7 +103,7 @@ instance : (Etale.forget X).Faithful :=
101103
inferInstanceAs <| (MorphismProperty.Comma.forget _ _ _ _ _).Faithful
102104

103105
instance : HasPullbacks X.Etale := by
104-
unfold Etale
106+
unfold Scheme.Etale
105107
infer_instance
106108

107109
end Scheme

Mathlib/AlgebraicGeometry/Morphisms/Smooth.lean

Lines changed: 46 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ to the property of ring homomorphisms `Locally IsStandardSmooth`
2424
2525
## Implementation details
2626
27-
- Our definition is equivalent to defining `IsSmooth` as the associated scheme morphism property of
27+
- Our definition is equivalent to defining `Smooth` as the associated scheme morphism property of
2828
the property of ring maps induced by `Algebra.Smooth`. The equivalence will follow from the
29-
equivalence of `Locally IsStandardSmooth` and `Algebra.IsSmooth`, but the latter is a (hard) TODO.
29+
equivalence of `Locally IsStandardSmooth` and `Algebra.Smooth`, but the latter is a (hard) TODO.
3030
3131
The reason why we choose the definition via `IsStandardSmooth`, is because verifying that
32-
`Algebra.IsSmooth` is local in the sense of `RingHom.PropertyIsLocal` is a (hard) TODO.
32+
`Algebra.Smooth` is local in the sense of `RingHom.PropertyIsLocal` is a (hard) TODO.
3333
3434
## Notes
3535
@@ -60,85 +60,99 @@ exists an affine open neighborhood `V` of `x` and an affine open neighborhood `U
6060
standard smooth.
6161
-/
6262
@[mk_iff]
63-
class IsSmooth : Prop where
63+
class Smooth : Prop where
6464
exists_isStandardSmooth : ∀ (x : X), ∃ (U : Y.affineOpens) (V : X.affineOpens) (_ : x ∈ V.1)
6565
(e : V.1 ≤ f ⁻¹ᵁ U.1), IsStandardSmooth (f.appLE U V e).hom
6666

67-
/-- The property of scheme morphisms `IsSmooth` is associated with the ring
67+
@[deprecated (since := "2026-02-09")] alias IsSmooth := Smooth
68+
69+
/-- The property of scheme morphisms `Smooth` is associated with the ring
6870
homomorphism property `Locally IsStandardSmooth`. -/
69-
instance : HasRingHomProperty @IsSmooth (Locally IsStandardSmooth) := by
71+
instance : HasRingHomProperty @Smooth (Locally IsStandardSmooth) := by
7072
apply HasRingHomProperty.locally_of_iff
7173
· exact isStandardSmooth_localizationPreserves.away
7274
· exact isStandardSmooth_stableUnderCompositionWithLocalizationAway
7375
· intro X Y f
74-
rw [isSmooth_iff]
76+
rw [smooth_iff]
7577

7678
/-- Being smooth is stable under composition. -/
77-
instance : MorphismProperty.IsStableUnderComposition @IsSmooth :=
79+
instance : MorphismProperty.IsStableUnderComposition @Smooth :=
7880
HasRingHomProperty.stableUnderComposition <| locally_stableUnderComposition
7981
isStandardSmooth_respectsIso isStandardSmooth_localizationPreserves
8082
isStandardSmooth_stableUnderComposition
8183

8284
/-- The composition of smooth morphisms is smooth. -/
83-
instance isSmooth_comp {Z : Scheme.{u}} (g : Y ⟶ Z) [IsSmooth f] [IsSmooth g] :
84-
IsSmooth (f ≫ g) :=
85-
MorphismProperty.comp_mem _ f g ‹IsSmooth f› ‹IsSmooth g›
85+
instance smooth_comp {Z : Scheme.{u}} (g : Y ⟶ Z) [Smooth f] [Smooth g] :
86+
Smooth (f ≫ g) :=
87+
MorphismProperty.comp_mem _ f g ‹Smooth f› ‹Smooth g›
8688

8789
/-- Smooth of relative dimension `n` is stable under base change. -/
88-
lemma isSmooth_isStableUnderBaseChange : MorphismProperty.IsStableUnderBaseChange @IsSmooth :=
90+
lemma smooth_isStableUnderBaseChange : MorphismProperty.IsStableUnderBaseChange @Smooth :=
8991
HasRingHomProperty.isStableUnderBaseChange <| locally_isStableUnderBaseChange
9092
isStandardSmooth_respectsIso isStandardSmooth_isStableUnderBaseChange
9193

94+
@[deprecated (since := "2026-02-09")]
95+
alias isSmooth_isStableUnderBaseChange := smooth_isStableUnderBaseChange
96+
9297
/--
9398
A morphism of schemes `f : X ⟶ Y` is smooth of relative dimension `n` if for each `x : X` there
9499
exists an affine open neighborhood `V` of `x` and an affine open neighborhood `U` of
95100
`f.base x` with `V ≤ f ⁻¹ᵁ U` such that the induced map `Γ(Y, U) ⟶ Γ(X, V)` is
96101
standard smooth of relative dimension `n`.
97102
-/
98103
@[mk_iff]
99-
class IsSmoothOfRelativeDimension : Prop where
104+
class SmoothOfRelativeDimension : Prop where
100105
exists_isStandardSmoothOfRelativeDimension : ∀ (x : X), ∃ (U : Y.affineOpens)
101106
(V : X.affineOpens) (_ : x ∈ V.1) (e : V.1 ≤ f ⁻¹ᵁ U.1),
102107
IsStandardSmoothOfRelativeDimension n (f.appLE U V e).hom
103108

109+
@[deprecated (since := "2026-02-09")] alias IsSmoothOfRelativeDimension := SmoothOfRelativeDimension
110+
104111
/-- If `f` is smooth of any relative dimension, it is smooth. -/
105-
lemma IsSmoothOfRelativeDimension.isSmooth [IsSmoothOfRelativeDimension n f] : IsSmooth f where
112+
lemma SmoothOfRelativeDimension.smooth [SmoothOfRelativeDimension n f] : Smooth f where
106113
exists_isStandardSmooth x := by
107114
obtain ⟨U, V, hx, e, hf⟩ := exists_isStandardSmoothOfRelativeDimension (n := n) (f := f) x
108115
exact ⟨U, V, hx, e, hf.isStandardSmooth⟩
109116

110-
/-- The property of scheme morphisms `IsSmoothOfRelativeDimension n` is associated with the ring
117+
@[deprecated (since := "2026-02-09")]
118+
alias IsSmoothOfRelativeDimension.isSmooth := SmoothOfRelativeDimension.smooth
119+
120+
/-- The property of scheme morphisms `SmoothOfRelativeDimension n` is associated with the ring
111121
homomorphism property `Locally (IsStandardSmoothOfRelativeDimension n)`. -/
112-
instance : HasRingHomProperty (@IsSmoothOfRelativeDimension n)
122+
instance : HasRingHomProperty (@SmoothOfRelativeDimension n)
113123
(Locally (IsStandardSmoothOfRelativeDimension n)) := by
114124
apply HasRingHomProperty.locally_of_iff
115125
· exact (isStandardSmoothOfRelativeDimension_localizationPreserves n).away
116126
· exact isStandardSmoothOfRelativeDimension_stableUnderCompositionWithLocalizationAway n
117127
· intro X Y f
118-
rw [isSmoothOfRelativeDimension_iff]
128+
rw [smoothOfRelativeDimension_iff]
119129

120130
/-- Smooth of relative dimension `n` is stable under base change. -/
121-
lemma isSmoothOfRelativeDimension_isStableUnderBaseChange :
122-
MorphismProperty.IsStableUnderBaseChange (@IsSmoothOfRelativeDimension n) :=
131+
lemma smoothOfRelativeDimension_isStableUnderBaseChange :
132+
MorphismProperty.IsStableUnderBaseChange (@SmoothOfRelativeDimension n) :=
123133
HasRingHomProperty.isStableUnderBaseChange <| locally_isStableUnderBaseChange
124134
isStandardSmoothOfRelativeDimension_respectsIso
125135
(isStandardSmoothOfRelativeDimension_isStableUnderBaseChange n)
126136

137+
@[deprecated (since := "2026-02-09")]
138+
alias isSmoothOfRelativeDimension_isStableUnderBaseChange :=
139+
smoothOfRelativeDimension_isStableUnderBaseChange
140+
127141
/-- Open immersions are smooth of relative dimension `0`. -/
128-
instance (priority := 900) [IsOpenImmersion f] : IsSmoothOfRelativeDimension 0 f :=
142+
instance (priority := 900) [IsOpenImmersion f] : SmoothOfRelativeDimension 0 f :=
129143
HasRingHomProperty.of_isOpenImmersion
130144
(locally_holdsForLocalizationAway <|
131145
isStandardSmoothOfRelativeDimension_holdsForLocalizationAway).containsIdentities
132146

133147
/-- Open immersions are smooth. -/
134-
instance (priority := 900) [IsOpenImmersion f] : IsSmooth f :=
135-
IsSmoothOfRelativeDimension.isSmooth 0 f
148+
instance (priority := 900) [IsOpenImmersion f] : Smooth f :=
149+
SmoothOfRelativeDimension.smooth 0 f
136150

137151
/-- If `f` is smooth of relative dimension `n` and `g` is smooth of relative dimension
138152
`m`, then `f ≫ g` is smooth of relative dimension `n + m`. -/
139-
instance isSmoothOfRelativeDimension_comp {Z : Scheme.{u}} (g : Y ⟶ Z)
140-
[hf : IsSmoothOfRelativeDimension n f] [hg : IsSmoothOfRelativeDimension m g] :
141-
IsSmoothOfRelativeDimension (n + m) (f ≫ g) where
153+
instance smoothOfRelativeDimension_comp {Z : Scheme.{u}} (g : Y ⟶ Z)
154+
[hf : SmoothOfRelativeDimension n f] [hg : SmoothOfRelativeDimension m g] :
155+
SmoothOfRelativeDimension (n + m) (f ≫ g) where
142156
exists_isStandardSmoothOfRelativeDimension x := by
143157
obtain ⟨U₂, V₂, hfx₂, e₂, hf₂⟩ := hg.exists_isStandardSmoothOfRelativeDimension (f x)
144158
obtain ⟨U₁', V₁', hx₁', e₁', hf₁'⟩ := hf.exists_isStandardSmoothOfRelativeDimension x
@@ -159,20 +173,20 @@ instance isSmoothOfRelativeDimension_comp {Z : Scheme.{u}} (g : Y ⟶ Z)
159173
exact (isStandardSmoothOfRelativeDimension_stableUnderCompositionWithLocalizationAway n).left
160174
_ r _ hf₁
161175

162-
instance {Z : Scheme.{u}} (g : Y ⟶ Z) [IsSmoothOfRelativeDimension 0 f]
163-
[IsSmoothOfRelativeDimension 0 g] :
164-
IsSmoothOfRelativeDimension 0 (f ≫ g) :=
165-
inferInstanceAs <| IsSmoothOfRelativeDimension (0 + 0) (f ≫ g)
176+
instance {Z : Scheme.{u}} (g : Y ⟶ Z) [SmoothOfRelativeDimension 0 f]
177+
[SmoothOfRelativeDimension 0 g] :
178+
SmoothOfRelativeDimension 0 (f ≫ g) :=
179+
inferInstanceAs <| SmoothOfRelativeDimension (0 + 0) (f ≫ g)
166180

167181
/-- Smooth of relative dimension `0` is multiplicative. -/
168-
instance : MorphismProperty.IsMultiplicative (@IsSmoothOfRelativeDimension 0) where
182+
instance : MorphismProperty.IsMultiplicative (@SmoothOfRelativeDimension 0) where
169183
id_mem _ := inferInstance
170184
comp_mem _ _ _ _ := inferInstance
171185

172186
/-- Smooth morphisms are locally of finite presentation. -/
173-
instance (priority := 100) [hf : IsSmooth f] : LocallyOfFinitePresentation f := by
187+
instance (priority := 100) [hf : Smooth f] : LocallyOfFinitePresentation f := by
174188
rw [HasRingHomProperty.eq_affineLocally @LocallyOfFinitePresentation]
175-
rw [HasRingHomProperty.eq_affineLocally @IsSmooth] at hf
189+
rw [HasRingHomProperty.eq_affineLocally @Smooth] at hf
176190
refine affineLocally_le (fun hf ↦ ?_) f hf
177191
apply RingHom.locally_of_locally (Q := RingHom.FinitePresentation) at hf
178192
· rwa [RingHom.locally_iff_of_localizationSpanTarget finitePresentation_respectsIso

Mathlib/AlgebraicGeometry/Sites/Etale.lean

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ namespace AlgebraicGeometry.Scheme
3030

3131
/-- Big étale site: the étale precoverage on the category of schemes. -/
3232
def etalePrecoverage : Precoverage Scheme.{u} :=
33-
precoverage @IsEtale
33+
precoverage @Etale
3434

3535
/-- Big étale site: the étale pretopology on the category of schemes. -/
3636
def etalePretopology : Pretopology Scheme.{u} :=
37-
pretopology @IsEtale
37+
pretopology @Etale
3838

3939
/-- Big étale site: the étale topology on the category of schemes. -/
4040
abbrev etaleTopology : GrothendieckTopology Scheme.{u} :=
41-
grothendieckTopology @IsEtale
41+
grothendieckTopology @Etale
4242

4343
lemma zariskiTopology_le_etaleTopology : zariskiTopology ≤ etaleTopology := by
4444
apply grothendieckTopology_monotone
@@ -48,13 +48,13 @@ lemma zariskiTopology_le_etaleTopology : zariskiTopology ≤ etaleTopology := by
4848
/-- The small étale site of a scheme is the Grothendieck topology on the
4949
category of schemes étale over `X` induced from the étale topology on `Scheme.{u}`. -/
5050
def smallEtaleTopology (X : Scheme.{u}) : GrothendieckTopology X.Etale :=
51-
X.smallGrothendieckTopology (P := @IsEtale)
51+
X.smallGrothendieckTopology (P := @Etale)
5252

5353
/-- The pretopology generating the small étale site. -/
5454
def smallEtalePretopology (X : Scheme.{u}) : Pretopology X.Etale :=
55-
X.smallPretopology (Q := @IsEtale) (P := @IsEtale)
55+
X.smallPretopology (Q := @Etale) (P := @Etale)
5656

57-
instance {S : Scheme.{u}} (𝒰 : S.Cover (precoverage @IsEtale)) (i : 𝒰.I₀) : IsEtale (𝒰.f i) :=
57+
instance {S : Scheme.{u}} (𝒰 : S.Cover (precoverage @Etale)) (i : 𝒰.I₀) : Etale (𝒰.f i) :=
5858
𝒰.map_prop i
5959

6060
/-- A separably closed field `Ω` defines a point on the étale topology by the fiber

0 commit comments

Comments
 (0)