algebraic_geometry.locally_ringed_space
⟷
Mathlib.Geometry.RingedSpace.LocallyRingedSpace
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -162,7 +162,7 @@ def forgetToSheafedSpace : LocallyRingedSpace ⥤ SheafedSpace CommRingCat
#align algebraic_geometry.LocallyRingedSpace.forget_to_SheafedSpace AlgebraicGeometry.LocallyRingedSpace.forgetToSheafedSpace
-/
-instance : Faithful forgetToSheafedSpace where
+instance : CategoryTheory.Functor.Faithful forgetToSheafedSpace where
#print AlgebraicGeometry.LocallyRingedSpace.forgetToTop /-
/-- The forgetful functor from `LocallyRingedSpace` to `Top`. -/
@@ -230,7 +230,7 @@ def isoOfSheafedSpaceIso {X Y : LocallyRingedSpace} (f : X.toSheafedSpace ≅ Y.
#align algebraic_geometry.LocallyRingedSpace.iso_of_SheafedSpace_iso AlgebraicGeometry.LocallyRingedSpace.isoOfSheafedSpaceIso
-/
-instance : ReflectsIsomorphisms forgetToSheafedSpace
+instance : CategoryTheory.Functor.ReflectsIsomorphisms forgetToSheafedSpace
where reflects X Y f i :=
{
out :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -3,8 +3,8 @@ Copyright (c) 2020 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin
-/
-import AlgebraicGeometry.RingedSpace
-import AlgebraicGeometry.Stalks
+import Geometry.RingedSpace.Basic
+import Geometry.RingedSpace.Stalks
#align_import algebraic_geometry.locally_ringed_space from "leanprover-community/mathlib"@"af471b9e3ce868f296626d33189b4ce730fa4c00"
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -330,7 +330,7 @@ theorem preimage_basicOpen {X Y : LocallyRingedSpace} (f : X ⟶ Y) {U : Opens Y
exact (PresheafedSpace.stalk_map f.1 _).isUnit_map hy
· rintro ⟨y, hy : IsUnit _, rfl⟩
erw [RingedSpace.mem_basic_open _ _ ⟨f.1.base y.1, y.2⟩]
- rw [← PresheafedSpace.stalk_map_germ_apply] at hy
+ rw [← PresheafedSpace.stalk_map_germ_apply] at hy
exact (isUnit_map_iff (PresheafedSpace.stalk_map f.1 _) _).mp hy
#align algebraic_geometry.LocallyRingedSpace.preimage_basic_open AlgebraicGeometry.LocallyRingedSpace.preimage_basicOpen
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2020 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin
-/
-import Mathbin.AlgebraicGeometry.RingedSpace
-import Mathbin.AlgebraicGeometry.Stalks
+import AlgebraicGeometry.RingedSpace
+import AlgebraicGeometry.Stalks
#align_import algebraic_geometry.locally_ringed_space from "leanprover-community/mathlib"@"af471b9e3ce868f296626d33189b4ce730fa4c00"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2020 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin
-
-! This file was ported from Lean 3 source module algebraic_geometry.locally_ringed_space
-! leanprover-community/mathlib commit af471b9e3ce868f296626d33189b4ce730fa4c00
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.AlgebraicGeometry.RingedSpace
import Mathbin.AlgebraicGeometry.Stalks
+#align_import algebraic_geometry.locally_ringed_space from "leanprover-community/mathlib"@"af471b9e3ce868f296626d33189b4ce730fa4c00"
+
/-!
# The category of locally ringed spaces
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -109,6 +109,7 @@ noncomputable def stalk (X : LocallyRingedSpace) (x : X) : CommRingCat :=
#align algebraic_geometry.LocallyRingedSpace.stalk AlgebraicGeometry.LocallyRingedSpace.stalk
-/
+#print AlgebraicGeometry.LocallyRingedSpace.stalkMap /-
/-- A morphism of locally ringed spaces `f : X ⟶ Y` induces
a local ring homomorphism from `Y.stalk (f x)` to `X.stalk x` for any `x : X`.
-/
@@ -116,6 +117,7 @@ noncomputable def stalkMap {X Y : LocallyRingedSpace} (f : X ⟶ Y) (x : X) :
Y.stalk (f.1.1 x) ⟶ X.stalk x :=
PresheafedSpace.stalkMap f.1 x
#align algebraic_geometry.LocallyRingedSpace.stalk_map AlgebraicGeometry.LocallyRingedSpace.stalkMap
+-/
instance {X Y : LocallyRingedSpace} (f : X ⟶ Y) (x : X) : IsLocalRingHom (stalkMap f x) :=
f.2 x
@@ -153,6 +155,7 @@ instance : Category LocallyRingedSpace where
id_comp' := by intros; ext1; simp [comp]
assoc' := by intros; ext1; simp [comp]
+#print AlgebraicGeometry.LocallyRingedSpace.forgetToSheafedSpace /-
/-- The forgetful functor from `LocallyRingedSpace` to `SheafedSpace CommRing`. -/
@[simps]
def forgetToSheafedSpace : LocallyRingedSpace ⥤ SheafedSpace CommRingCat
@@ -160,6 +163,7 @@ def forgetToSheafedSpace : LocallyRingedSpace ⥤ SheafedSpace CommRingCat
obj X := X.toSheafedSpace
map X Y f := f.1
#align algebraic_geometry.LocallyRingedSpace.forget_to_SheafedSpace AlgebraicGeometry.LocallyRingedSpace.forgetToSheafedSpace
+-/
instance : Faithful forgetToSheafedSpace where
@@ -171,23 +175,30 @@ def forgetToTop : LocallyRingedSpace ⥤ TopCat :=
#align algebraic_geometry.LocallyRingedSpace.forget_to_Top AlgebraicGeometry.LocallyRingedSpace.forgetToTop
-/
+#print AlgebraicGeometry.LocallyRingedSpace.comp_val /-
@[simp]
theorem comp_val {X Y Z : LocallyRingedSpace} (f : X ⟶ Y) (g : Y ⟶ Z) :
(f ≫ g).val = f.val ≫ g.val :=
rfl
#align algebraic_geometry.LocallyRingedSpace.comp_val AlgebraicGeometry.LocallyRingedSpace.comp_val
+-/
+#print AlgebraicGeometry.LocallyRingedSpace.comp_val_c /-
@[simp]
theorem comp_val_c {X Y Z : LocallyRingedSpace.{u}} (f : X ⟶ Y) (g : Y ⟶ Z) :
(f ≫ g).val.c = g.val.c ≫ (Presheaf.pushforward _ g.val.base).map f.val.c :=
rfl
#align algebraic_geometry.LocallyRingedSpace.comp_val_c AlgebraicGeometry.LocallyRingedSpace.comp_val_c
+-/
+#print AlgebraicGeometry.LocallyRingedSpace.comp_val_c_app /-
theorem comp_val_c_app {X Y Z : LocallyRingedSpace} (f : X ⟶ Y) (g : Y ⟶ Z) (U : (Opens Z)ᵒᵖ) :
(f ≫ g).val.c.app U = g.val.c.app U ≫ f.val.c.app (op <| (Opens.map g.val.base).obj U.unop) :=
rfl
#align algebraic_geometry.LocallyRingedSpace.comp_val_c_app AlgebraicGeometry.LocallyRingedSpace.comp_val_c_app
+-/
+#print AlgebraicGeometry.LocallyRingedSpace.homOfSheafedSpaceHomOfIsIso /-
/-- Given two locally ringed spaces `X` and `Y`, an isomorphism between `X` and `Y` as _sheafed_
spaces can be lifted to a morphism `X ⟶ Y` as locally ringed spaces.
@@ -203,7 +214,9 @@ def homOfSheafedSpaceHomOfIsIso {X Y : LocallyRingedSpace} (f : X.toSheafedSpace
show IsLocalRingHom (PresheafedSpace.stalkMap (SheafedSpace.forgetToPresheafedSpace.map f) x) by
infer_instance
#align algebraic_geometry.LocallyRingedSpace.hom_of_SheafedSpace_hom_of_is_iso AlgebraicGeometry.LocallyRingedSpace.homOfSheafedSpaceHomOfIsIso
+-/
+#print AlgebraicGeometry.LocallyRingedSpace.isoOfSheafedSpaceIso /-
/-- Given two locally ringed spaces `X` and `Y`, an isomorphism between `X` and `Y` as _sheafed_
spaces can be lifted to an isomorphism `X ⟶ Y` as locally ringed spaces.
@@ -218,6 +231,7 @@ def isoOfSheafedSpaceIso {X Y : LocallyRingedSpace} (f : X.toSheafedSpace ≅ Y.
hom_inv_id' := Hom.ext _ _ f.hom_inv_id
inv_hom_id' := Hom.ext _ _ f.inv_hom_id
#align algebraic_geometry.LocallyRingedSpace.iso_of_SheafedSpace_iso AlgebraicGeometry.LocallyRingedSpace.isoOfSheafedSpaceIso
+-/
instance : ReflectsIsomorphisms forgetToSheafedSpace
where reflects X Y f i :=
@@ -226,10 +240,13 @@ instance : ReflectsIsomorphisms forgetToSheafedSpace
⟨hom_of_SheafedSpace_hom_of_is_iso (CategoryTheory.inv (forget_to_SheafedSpace.map f)),
hom.ext _ _ (is_iso.hom_inv_id _), hom.ext _ _ (is_iso.inv_hom_id _)⟩ }
+#print AlgebraicGeometry.LocallyRingedSpace.is_sheafedSpace_iso /-
instance is_sheafedSpace_iso {X Y : LocallyRingedSpace} (f : X ⟶ Y) [IsIso f] : IsIso f.1 :=
LocallyRingedSpace.forgetToSheafedSpace.map_isIso f
#align algebraic_geometry.LocallyRingedSpace.is_SheafedSpace_iso AlgebraicGeometry.LocallyRingedSpace.is_sheafedSpace_iso
+-/
+#print AlgebraicGeometry.LocallyRingedSpace.restrict /-
/-- The restriction of a locally ringed space along an open embedding.
-/
@[simps]
@@ -244,12 +261,15 @@ def restrict {U : TopCat} (X : LocallyRingedSpace) {f : U ⟶ X.toTopCat} (h : O
exact (X.to_PresheafedSpace.restrict_stalk_iso h x).symm.commRingCatIsoToRingEquiv
toSheafedSpace := X.toSheafedSpace.restrict h
#align algebraic_geometry.LocallyRingedSpace.restrict AlgebraicGeometry.LocallyRingedSpace.restrict
+-/
+#print AlgebraicGeometry.LocallyRingedSpace.ofRestrict /-
/-- The canonical map from the restriction to the supspace. -/
def ofRestrict {U : TopCat} (X : LocallyRingedSpace) {f : U ⟶ X.toTopCat} (h : OpenEmbedding f) :
X.restrict h ⟶ X :=
⟨X.toPresheafedSpace.of_restrict h, fun x => inferInstance⟩
#align algebraic_geometry.LocallyRingedSpace.of_restrict AlgebraicGeometry.LocallyRingedSpace.ofRestrict
+-/
#print AlgebraicGeometry.LocallyRingedSpace.restrictTopIso /-
/-- The restriction of a locally ringed space `X` to the top subspace is isomorphic to `X` itself.
@@ -273,24 +293,33 @@ theorem Γ_def : Γ = forgetToSheafedSpace.op ⋙ SheafedSpace.Γ :=
#align algebraic_geometry.LocallyRingedSpace.Γ_def AlgebraicGeometry.LocallyRingedSpace.Γ_def
-/
+#print AlgebraicGeometry.LocallyRingedSpace.Γ_obj /-
@[simp]
theorem Γ_obj (X : LocallyRingedSpaceᵒᵖ) : Γ.obj X = (unop X).Presheaf.obj (op ⊤) :=
rfl
#align algebraic_geometry.LocallyRingedSpace.Γ_obj AlgebraicGeometry.LocallyRingedSpace.Γ_obj
+-/
+#print AlgebraicGeometry.LocallyRingedSpace.Γ_obj_op /-
theorem Γ_obj_op (X : LocallyRingedSpace) : Γ.obj (op X) = X.Presheaf.obj (op ⊤) :=
rfl
#align algebraic_geometry.LocallyRingedSpace.Γ_obj_op AlgebraicGeometry.LocallyRingedSpace.Γ_obj_op
+-/
+#print AlgebraicGeometry.LocallyRingedSpace.Γ_map /-
@[simp]
theorem Γ_map {X Y : LocallyRingedSpaceᵒᵖ} (f : X ⟶ Y) : Γ.map f = f.unop.1.c.app (op ⊤) :=
rfl
#align algebraic_geometry.LocallyRingedSpace.Γ_map AlgebraicGeometry.LocallyRingedSpace.Γ_map
+-/
+#print AlgebraicGeometry.LocallyRingedSpace.Γ_map_op /-
theorem Γ_map_op {X Y : LocallyRingedSpace} (f : X ⟶ Y) : Γ.map f.op = f.1.c.app (op ⊤) :=
rfl
#align algebraic_geometry.LocallyRingedSpace.Γ_map_op AlgebraicGeometry.LocallyRingedSpace.Γ_map_op
+-/
+#print AlgebraicGeometry.LocallyRingedSpace.preimage_basicOpen /-
theorem preimage_basicOpen {X Y : LocallyRingedSpace} (f : X ⟶ Y) {U : Opens Y}
(s : Y.Presheaf.obj (op U)) :
(Opens.map f.1.base).obj (Y.toRingedSpace.basicOpen s) =
@@ -307,6 +336,7 @@ theorem preimage_basicOpen {X Y : LocallyRingedSpace} (f : X ⟶ Y) {U : Opens Y
rw [← PresheafedSpace.stalk_map_germ_apply] at hy
exact (isUnit_map_iff (PresheafedSpace.stalk_map f.1 _) _).mp hy
#align algebraic_geometry.LocallyRingedSpace.preimage_basic_open AlgebraicGeometry.LocallyRingedSpace.preimage_basicOpen
+-/
#print AlgebraicGeometry.LocallyRingedSpace.basicOpen_zero /-
-- This actually holds for all ringed spaces with nontrivial stalks.
@@ -320,10 +350,12 @@ theorem basicOpen_zero (X : LocallyRingedSpace) (U : Opens X.carrier) :
#align algebraic_geometry.LocallyRingedSpace.basic_open_zero AlgebraicGeometry.LocallyRingedSpace.basicOpen_zero
-/
+#print AlgebraicGeometry.LocallyRingedSpace.component_nontrivial /-
instance component_nontrivial (X : LocallyRingedSpace) (U : Opens X.carrier) [hU : Nonempty U] :
Nontrivial (X.Presheaf.obj <| op U) :=
(X.toPresheafedSpace.Presheaf.germ hU.some).domain_nontrivial
#align algebraic_geometry.LocallyRingedSpace.component_nontrivial AlgebraicGeometry.LocallyRingedSpace.component_nontrivial
+-/
end LocallyRingedSpace
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin
! This file was ported from Lean 3 source module algebraic_geometry.locally_ringed_space
-! leanprover-community/mathlib commit f0c8bf9245297a541f468be517f1bde6195105e9
+! leanprover-community/mathlib commit af471b9e3ce868f296626d33189b4ce730fa4c00
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.AlgebraicGeometry.Stalks
/-!
# The category of locally ringed spaces
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
We define (bundled) locally ringed spaces (as `SheafedSpace CommRing` along with the fact that the
stalks are local rings), and morphisms between these (morphisms in `SheafedSpace` with
`is_local_ring_hom` on the stalk maps).
@@ -34,6 +37,7 @@ open CategoryTheory.Category CategoryTheory.Functor
namespace AlgebraicGeometry
+#print AlgebraicGeometry.LocallyRingedSpace /-
/-- A `LocallyRingedSpace` is a topological space equipped with a sheaf of commutative rings
such that all the stalks are local rings.
@@ -43,6 +47,7 @@ such that the morphisms induced on stalks are local ring homomorphisms. -/
structure LocallyRingedSpace extends SheafedSpace CommRingCat where
LocalRing : ∀ x, LocalRing (presheaf.stalk x)
#align algebraic_geometry.LocallyRingedSpace AlgebraicGeometry.LocallyRingedSpace
+-/
attribute [instance] LocallyRingedSpace.local_ring
@@ -50,17 +55,21 @@ namespace LocallyRingedSpace
variable (X : LocallyRingedSpace)
+#print AlgebraicGeometry.LocallyRingedSpace.toRingedSpace /-
/-- An alias for `to_SheafedSpace`, where the result type is a `RingedSpace`.
This allows us to use dot-notation for the `RingedSpace` namespace.
-/
def toRingedSpace : RingedSpace :=
X.toSheafedSpace
#align algebraic_geometry.LocallyRingedSpace.to_RingedSpace AlgebraicGeometry.LocallyRingedSpace.toRingedSpace
+-/
+#print AlgebraicGeometry.LocallyRingedSpace.toTopCat /-
/-- The underlying topological space of a locally ringed space. -/
-def toTop : TopCat :=
+def toTopCat : TopCat :=
X.1.carrier
-#align algebraic_geometry.LocallyRingedSpace.to_Top AlgebraicGeometry.LocallyRingedSpace.toTop
+#align algebraic_geometry.LocallyRingedSpace.to_Top AlgebraicGeometry.LocallyRingedSpace.toTopCat
+-/
instance : CoeSort LocallyRingedSpace (Type u) :=
⟨fun X : LocallyRingedSpace => (X.toTopCat : Type u)⟩
@@ -68,13 +77,16 @@ instance : CoeSort LocallyRingedSpace (Type u) :=
instance (x : X) : LocalRing (X.toPresheafedSpace.stalk x) :=
X.LocalRing x
+#print AlgebraicGeometry.LocallyRingedSpace.𝒪 /-
-- PROJECT: how about a typeclass "has_structure_sheaf" to mediate the 𝒪 notation, rather
-- than defining it over and over for PresheafedSpace, LRS, Scheme, etc.
/-- The structure sheaf of a locally ringed space. -/
def 𝒪 : Sheaf CommRingCat X.toTopCat :=
X.toSheafedSpace.Sheaf
#align algebraic_geometry.LocallyRingedSpace.𝒪 AlgebraicGeometry.LocallyRingedSpace.𝒪
+-/
+#print AlgebraicGeometry.LocallyRingedSpace.Hom /-
/-- A morphism of locally ringed spaces is a morphism of ringed spaces
such that the morphims induced on stalks are local ring homomorphisms. -/
@[ext]
@@ -82,10 +94,12 @@ structure Hom (X Y : LocallyRingedSpace.{u}) : Type u where
val : X.toSheafedSpace ⟶ Y.toSheafedSpace
Prop : ∀ x, IsLocalRingHom (PresheafedSpace.stalkMap val x)
#align algebraic_geometry.LocallyRingedSpace.hom AlgebraicGeometry.LocallyRingedSpace.Hom
+-/
instance : Quiver LocallyRingedSpace :=
⟨Hom⟩
+#print AlgebraicGeometry.LocallyRingedSpace.stalk /-
-- TODO perhaps we should make a bundled `LocalRing` and return one here?
-- TODO define `sheaf.stalk` so we can write `X.𝒪.stalk` here?
/-- The stalk of a locally ringed space, just as a `CommRing`.
@@ -93,6 +107,7 @@ instance : Quiver LocallyRingedSpace :=
noncomputable def stalk (X : LocallyRingedSpace) (x : X) : CommRingCat :=
X.Presheaf.stalk x
#align algebraic_geometry.LocallyRingedSpace.stalk AlgebraicGeometry.LocallyRingedSpace.stalk
+-/
/-- A morphism of locally ringed spaces `f : X ⟶ Y` induces
a local ring homomorphism from `Y.stalk (f x)` to `X.stalk x` for any `x : X`.
@@ -109,21 +124,25 @@ instance {X Y : LocallyRingedSpace} (f : X ⟶ Y) (x : X) :
IsLocalRingHom (PresheafedSpace.stalkMap f.1 x) :=
f.2 x
+#print AlgebraicGeometry.LocallyRingedSpace.id /-
/-- The identity morphism on a locally ringed space. -/
@[simps]
def id (X : LocallyRingedSpace) : Hom X X :=
⟨𝟙 _, fun x => by erw [PresheafedSpace.stalk_map.id]; apply isLocalRingHom_id⟩
#align algebraic_geometry.LocallyRingedSpace.id AlgebraicGeometry.LocallyRingedSpace.id
+-/
instance (X : LocallyRingedSpace) : Inhabited (Hom X X) :=
⟨id X⟩
+#print AlgebraicGeometry.LocallyRingedSpace.comp /-
/-- Composition of morphisms of locally ringed spaces. -/
def comp {X Y Z : LocallyRingedSpace} (f : Hom X Y) (g : Hom Y Z) : Hom X Z :=
⟨f.val ≫ g.val, fun x => by
erw [PresheafedSpace.stalk_map.comp]
exact @isLocalRingHom_comp _ _ _ _ _ _ _ _ (f.2 _) (g.2 _)⟩
#align algebraic_geometry.LocallyRingedSpace.comp AlgebraicGeometry.LocallyRingedSpace.comp
+-/
/-- The category of locally ringed spaces. -/
instance : Category LocallyRingedSpace where
@@ -144,11 +163,13 @@ def forgetToSheafedSpace : LocallyRingedSpace ⥤ SheafedSpace CommRingCat
instance : Faithful forgetToSheafedSpace where
+#print AlgebraicGeometry.LocallyRingedSpace.forgetToTop /-
/-- The forgetful functor from `LocallyRingedSpace` to `Top`. -/
@[simps]
def forgetToTop : LocallyRingedSpace ⥤ TopCat :=
forgetToSheafedSpace ⋙ SheafedSpace.forget _
#align algebraic_geometry.LocallyRingedSpace.forget_to_Top AlgebraicGeometry.LocallyRingedSpace.forgetToTop
+-/
@[simp]
theorem comp_val {X Y Z : LocallyRingedSpace} (f : X ⟶ Y) (g : Y ⟶ Z) :
@@ -230,21 +251,27 @@ def ofRestrict {U : TopCat} (X : LocallyRingedSpace) {f : U ⟶ X.toTopCat} (h :
⟨X.toPresheafedSpace.of_restrict h, fun x => inferInstance⟩
#align algebraic_geometry.LocallyRingedSpace.of_restrict AlgebraicGeometry.LocallyRingedSpace.ofRestrict
+#print AlgebraicGeometry.LocallyRingedSpace.restrictTopIso /-
/-- The restriction of a locally ringed space `X` to the top subspace is isomorphic to `X` itself.
-/
def restrictTopIso (X : LocallyRingedSpace) : X.restrict (Opens.openEmbedding ⊤) ≅ X :=
@isoOfSheafedSpaceIso (X.restrict (Opens.openEmbedding ⊤)) X X.toSheafedSpace.restrictTopIso
#align algebraic_geometry.LocallyRingedSpace.restrict_top_iso AlgebraicGeometry.LocallyRingedSpace.restrictTopIso
+-/
+#print AlgebraicGeometry.LocallyRingedSpace.Γ /-
/-- The global sections, notated Gamma.
-/
def Γ : LocallyRingedSpaceᵒᵖ ⥤ CommRingCat :=
forgetToSheafedSpace.op ⋙ SheafedSpace.Γ
#align algebraic_geometry.LocallyRingedSpace.Γ AlgebraicGeometry.LocallyRingedSpace.Γ
+-/
+#print AlgebraicGeometry.LocallyRingedSpace.Γ_def /-
theorem Γ_def : Γ = forgetToSheafedSpace.op ⋙ SheafedSpace.Γ :=
rfl
#align algebraic_geometry.LocallyRingedSpace.Γ_def AlgebraicGeometry.LocallyRingedSpace.Γ_def
+-/
@[simp]
theorem Γ_obj (X : LocallyRingedSpaceᵒᵖ) : Γ.obj X = (unop X).Presheaf.obj (op ⊤) :=
@@ -281,6 +308,7 @@ theorem preimage_basicOpen {X Y : LocallyRingedSpace} (f : X ⟶ Y) {U : Opens Y
exact (isUnit_map_iff (PresheafedSpace.stalk_map f.1 _) _).mp hy
#align algebraic_geometry.LocallyRingedSpace.preimage_basic_open AlgebraicGeometry.LocallyRingedSpace.preimage_basicOpen
+#print AlgebraicGeometry.LocallyRingedSpace.basicOpen_zero /-
-- This actually holds for all ringed spaces with nontrivial stalks.
@[simp]
theorem basicOpen_zero (X : LocallyRingedSpace) (U : Opens X.carrier) :
@@ -290,6 +318,7 @@ theorem basicOpen_zero (X : LocallyRingedSpace) (U : Opens X.carrier) :
Set.setOf_false, Set.image_empty]
rfl
#align algebraic_geometry.LocallyRingedSpace.basic_open_zero AlgebraicGeometry.LocallyRingedSpace.basicOpen_zero
+-/
instance component_nontrivial (X : LocallyRingedSpace) (U : Opens X.carrier) [hU : Nonempty U] :
Nontrivial (X.Presheaf.obj <| op U) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -130,9 +130,9 @@ instance : Category LocallyRingedSpace where
Hom := Hom
id := id
comp X Y Z f g := comp f g
- comp_id' := by intros ; ext1; simp [comp]
- id_comp' := by intros ; ext1; simp [comp]
- assoc' := by intros ; ext1; simp [comp]
+ comp_id' := by intros; ext1; simp [comp]
+ id_comp' := by intros; ext1; simp [comp]
+ assoc' := by intros; ext1; simp [comp]
/-- The forgetful functor from `LocallyRingedSpace` to `SheafedSpace CommRing`. -/
@[simps]
@@ -277,7 +277,7 @@ theorem preimage_basicOpen {X Y : LocallyRingedSpace} (f : X ⟶ Y) {U : Opens Y
exact (PresheafedSpace.stalk_map f.1 _).isUnit_map hy
· rintro ⟨y, hy : IsUnit _, rfl⟩
erw [RingedSpace.mem_basic_open _ _ ⟨f.1.base y.1, y.2⟩]
- rw [← PresheafedSpace.stalk_map_germ_apply] at hy
+ rw [← PresheafedSpace.stalk_map_germ_apply] at hy
exact (isUnit_map_iff (PresheafedSpace.stalk_map f.1 _) _).mp hy
#align algebraic_geometry.LocallyRingedSpace.preimage_basic_open AlgebraicGeometry.LocallyRingedSpace.preimage_basicOpen
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -112,9 +112,7 @@ instance {X Y : LocallyRingedSpace} (f : X ⟶ Y) (x : X) :
/-- The identity morphism on a locally ringed space. -/
@[simps]
def id (X : LocallyRingedSpace) : Hom X X :=
- ⟨𝟙 _, fun x => by
- erw [PresheafedSpace.stalk_map.id]
- apply isLocalRingHom_id⟩
+ ⟨𝟙 _, fun x => by erw [PresheafedSpace.stalk_map.id]; apply isLocalRingHom_id⟩
#align algebraic_geometry.LocallyRingedSpace.id AlgebraicGeometry.LocallyRingedSpace.id
instance (X : LocallyRingedSpace) : Inhabited (Hom X X) :=
@@ -132,18 +130,9 @@ instance : Category LocallyRingedSpace where
Hom := Hom
id := id
comp X Y Z f g := comp f g
- comp_id' := by
- intros
- ext1
- simp [comp]
- id_comp' := by
- intros
- ext1
- simp [comp]
- assoc' := by
- intros
- ext1
- simp [comp]
+ comp_id' := by intros ; ext1; simp [comp]
+ id_comp' := by intros ; ext1; simp [comp]
+ assoc' := by intros ; ext1; simp [comp]
/-- The forgetful functor from `LocallyRingedSpace` to `SheafedSpace CommRing`. -/
@[simps]
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -231,7 +231,7 @@ def restrict {U : TopCat} (X : LocallyRingedSpace) {f : U ⟶ X.toTopCat} (h : O
dsimp at *
-- We show that the stalk of the restriction is isomorphic to the original stalk,
apply @RingEquiv.localRing _ _ _ (X.local_ring (f x))
- exact (X.to_PresheafedSpace.restrict_stalk_iso h x).symm.commRingIsoToRingEquiv
+ exact (X.to_PresheafedSpace.restrict_stalk_iso h x).symm.commRingCatIsoToRingEquiv
toSheafedSpace := X.toSheafedSpace.restrict h
#align algebraic_geometry.LocallyRingedSpace.restrict AlgebraicGeometry.LocallyRingedSpace.restrict
mathlib commit https://github.com/leanprover-community/mathlib/commit/738054fa93d43512da144ec45ce799d18fd44248
@@ -4,13 +4,12 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin
! This file was ported from Lean 3 source module algebraic_geometry.locally_ringed_space
-! leanprover-community/mathlib commit d39590fc8728fbf6743249802486f8c91ffe07bc
+! leanprover-community/mathlib commit f0c8bf9245297a541f468be517f1bde6195105e9
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathbin.AlgebraicGeometry.RingedSpace
import Mathbin.AlgebraicGeometry.Stalks
-import Mathbin.Logic.Equiv.TransferInstance
/-!
# The category of locally ringed spaces
mathlib commit https://github.com/leanprover-community/mathlib/commit/9b2b58d6b14b895b2f375108e765cb47de71aebd
@@ -64,7 +64,7 @@ def toTop : TopCat :=
#align algebraic_geometry.LocallyRingedSpace.to_Top AlgebraicGeometry.LocallyRingedSpace.toTop
instance : CoeSort LocallyRingedSpace (Type u) :=
- ⟨fun X : LocallyRingedSpace => (X.toTop : Type u)⟩
+ ⟨fun X : LocallyRingedSpace => (X.toTopCat : Type u)⟩
instance (x : X) : LocalRing (X.toPresheafedSpace.stalk x) :=
X.LocalRing x
@@ -72,7 +72,7 @@ instance (x : X) : LocalRing (X.toPresheafedSpace.stalk x) :=
-- PROJECT: how about a typeclass "has_structure_sheaf" to mediate the 𝒪 notation, rather
-- than defining it over and over for PresheafedSpace, LRS, Scheme, etc.
/-- The structure sheaf of a locally ringed space. -/
-def 𝒪 : Sheaf CommRingCat X.toTop :=
+def 𝒪 : Sheaf CommRingCat X.toTopCat :=
X.toSheafedSpace.Sheaf
#align algebraic_geometry.LocallyRingedSpace.𝒪 AlgebraicGeometry.LocallyRingedSpace.𝒪
@@ -224,7 +224,7 @@ instance is_sheafedSpace_iso {X Y : LocallyRingedSpace} (f : X ⟶ Y) [IsIso f]
/-- The restriction of a locally ringed space along an open embedding.
-/
@[simps]
-def restrict {U : TopCat} (X : LocallyRingedSpace) {f : U ⟶ X.toTop} (h : OpenEmbedding f) :
+def restrict {U : TopCat} (X : LocallyRingedSpace) {f : U ⟶ X.toTopCat} (h : OpenEmbedding f) :
LocallyRingedSpace
where
LocalRing := by
@@ -237,7 +237,7 @@ def restrict {U : TopCat} (X : LocallyRingedSpace) {f : U ⟶ X.toTop} (h : Open
#align algebraic_geometry.LocallyRingedSpace.restrict AlgebraicGeometry.LocallyRingedSpace.restrict
/-- The canonical map from the restriction to the supspace. -/
-def ofRestrict {U : TopCat} (X : LocallyRingedSpace) {f : U ⟶ X.toTop} (h : OpenEmbedding f) :
+def ofRestrict {U : TopCat} (X : LocallyRingedSpace) {f : U ⟶ X.toTopCat} (h : OpenEmbedding f) :
X.restrict h ⟶ X :=
⟨X.toPresheafedSpace.of_restrict h, fun x => inferInstance⟩
#align algebraic_geometry.LocallyRingedSpace.of_restrict AlgebraicGeometry.LocallyRingedSpace.ofRestrict
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Functor.Full
a Prop (#12449)
Before this PR, Functor.Full
contained the data of the preimage of maps by a full functor F
. This PR makes Functor.Full
a proposition. This is to prevent any diamond to appear.
The lemma Functor.image_preimage
is also renamed Functor.map_preimage
.
Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>
@@ -88,7 +88,7 @@ instance : Quiver LocallyRingedSpace :=
⟨Hom⟩
@[ext] lemma Hom.ext' (X Y : LocallyRingedSpace) {f g : X ⟶ Y} (h : f.val = g.val) : f = g :=
-Hom.ext _ _ h
+ Hom.ext _ _ h
-- TODO perhaps we should make a bundled `LocalRing` and return one here?
-- TODO define `sheaf.stalk` so we can write `X.𝒪.stalk` here?
@@ -252,8 +252,9 @@ set_option linter.uppercaseLean3 false in
/-- The restriction of a locally ringed space `X` to the top subspace is isomorphic to `X` itself.
-/
-def restrictTopIso (X : LocallyRingedSpace) : X.restrict (Opens.openEmbedding ⊤) ≅ X :=
- @isoOfSheafedSpaceIso (X.restrict (Opens.openEmbedding ⊤)) X X.toSheafedSpace.restrictTopIso
+def restrictTopIso (X : LocallyRingedSpace) :
+ X.restrict (Opens.openEmbedding ⊤) ≅ X :=
+ isoOfSheafedSpaceIso X.toSheafedSpace.restrictTopIso
set_option linter.uppercaseLean3 false in
#align algebraic_geometry.LocallyRingedSpace.restrict_top_iso AlgebraicGeometry.LocallyRingedSpace.restrictTopIso
These notions on functors are now Functor.Full
, Functor.Faithful
, Functor.EssSurj
, Functor.IsEquivalence
, Functor.ReflectsIsomorphisms
. Deprecated aliases are introduced for the previous names.
@@ -154,7 +154,7 @@ def forgetToSheafedSpace : LocallyRingedSpace ⥤ SheafedSpace CommRingCat where
set_option linter.uppercaseLean3 false in
#align algebraic_geometry.LocallyRingedSpace.forget_to_SheafedSpace AlgebraicGeometry.LocallyRingedSpace.forgetToSheafedSpace
-instance : Faithful forgetToSheafedSpace where
+instance : forgetToSheafedSpace.Faithful where
map_injective {_ _} _ _ h := Hom.ext _ _ h
/-- The forgetful functor from `LocallyRingedSpace` to `Top`. -/
@@ -219,7 +219,7 @@ def isoOfSheafedSpaceIso {X Y : LocallyRingedSpace} (f : X.toSheafedSpace ≅ Y.
set_option linter.uppercaseLean3 false in
#align algebraic_geometry.LocallyRingedSpace.iso_of_SheafedSpace_iso AlgebraicGeometry.LocallyRingedSpace.isoOfSheafedSpaceIso
-instance : ReflectsIsomorphisms forgetToSheafedSpace where reflects {_ _} f i :=
+instance : forgetToSheafedSpace.ReflectsIsomorphisms where reflects {_ _} f i :=
{ out :=
⟨homOfSheafedSpaceHomOfIsIso (CategoryTheory.inv (forgetToSheafedSpace.map f)),
Hom.ext _ _ (IsIso.hom_inv_id (I := i)), Hom.ext _ _ (IsIso.inv_hom_id (I := i))⟩ }
@@ -99,8 +99,8 @@ noncomputable def stalk (X : LocallyRingedSpace) (x : X) : CommRingCat :=
set_option linter.uppercaseLean3 false in
#align algebraic_geometry.LocallyRingedSpace.stalk AlgebraicGeometry.LocallyRingedSpace.stalk
--- Porting note: added this instance to help Lean realize stalks are local (so that `0 ≠ 1`
--- works below)
+-- Porting note (#10754): added this instance to help Lean realize stalks are local
+-- (so that `0 ≠ 1` works below)
instance stalkLocal (x : X) : LocalRing <| X.stalk x := X.localRing x
/-- A morphism of locally ringed spaces `f : X ⟶ Y` induces
In this pull request, I have systematically eliminated the leading whitespace preceding the colon (:
) within all unlabelled or unclassified porting notes. This adjustment facilitates a more efficient review process for the remaining notes by ensuring no entries are overlooked due to formatting inconsistencies.
@@ -99,7 +99,7 @@ noncomputable def stalk (X : LocallyRingedSpace) (x : X) : CommRingCat :=
set_option linter.uppercaseLean3 false in
#align algebraic_geometry.LocallyRingedSpace.stalk AlgebraicGeometry.LocallyRingedSpace.stalk
--- Porting note : added this instance to help Lean realize stalks are local (so that `0 ≠ 1`
+-- Porting note: added this instance to help Lean realize stalks are local (so that `0 ≠ 1`
-- works below)
instance stalkLocal (x : X) : LocalRing <| X.stalk x := X.localRing x
@@ -171,7 +171,7 @@ theorem comp_val {X Y Z : LocallyRingedSpace} (f : X ⟶ Y) (g : Y ⟶ Z) :
set_option linter.uppercaseLean3 false in
#align algebraic_geometry.LocallyRingedSpace.comp_val AlgebraicGeometry.LocallyRingedSpace.comp_val
--- Porting note : complains that `(f ≫ g).val.c` can be further simplified
+-- Porting note: complains that `(f ≫ g).val.c` can be further simplified
-- so changed to its simp normal form `(f.val ≫ g.val).c`
@[simp]
theorem comp_val_c {X Y Z : LocallyRingedSpace} (f : X ⟶ Y) (g : Y ⟶ Z) :
@@ -243,7 +243,7 @@ def restrict {U : TopCat} (X : LocallyRingedSpace) {f : U ⟶ X.toTopCat} (h : O
set_option linter.uppercaseLean3 false in
#align algebraic_geometry.LocallyRingedSpace.restrict AlgebraicGeometry.LocallyRingedSpace.restrict
-/-- The canonical map from the restriction to the supspace. -/
+/-- The canonical map from the restriction to the subspace. -/
def ofRestrict {U : TopCat} (X : LocallyRingedSpace) {f : U ⟶ X.toTopCat} (h : OpenEmbedding f) :
X.restrict h ⟶ X :=
⟨X.toPresheafedSpace.ofRestrict h, fun _ => inferInstance⟩
AlgebraicGeometry
(#7330)
Create new folder Geometry.RingedSpace
for (locally) ringed spaces and move about half of the contents of AlgebraicGeometry
there. Files renamed:
AlgebraicGeometry.OpenImmersion.Scheme → AlgebraicGeometry.OpenImmersion
AlgebraicGeometry.RingedSpace → Geometry.RingedSpace.Basic
AlgebraicGeometry.LocallyRingedSpace → Geometry.RingedSpace.LocallyRingedSpace
AlgebraicGeometry.LocallyRingedSpace.HasColimits → Geometry.RingedSpace.LocallyRingedSpace.HasColimits
AlgebraicGeometry.OpenImmersion.Basic → Geometry.RingedSpace.OpenImmersion
AlgebraicGeometry.PresheafedSpace → Geometry.RingedSpace.PresheafedSpace
AlgebraicGeometry.PresheafedSpace.Gluing → Geometry.RingedSpace.PresheafedSpace.Gluing
AlgebraicGeometry.PresheafedSpace.HasColimits → Geometry.RingedSpace.PresheafedSpace.HasColimits
AlgebraicGeometry.SheafedSpace → Geometry.RingedSpace.SheafedSpace
AlgebraicGeometry.Stalks → Geometry.RingedSpace.Stalks
See Zulip.
@@ -3,8 +3,8 @@ Copyright (c) 2020 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin
-/
-import Mathlib.AlgebraicGeometry.RingedSpace
-import Mathlib.AlgebraicGeometry.Stalks
+import Mathlib.Geometry.RingedSpace.Basic
+import Mathlib.Geometry.RingedSpace.Stalks
#align_import algebraic_geometry.locally_ringed_space from "leanprover-community/mathlib"@"f0c8bf9245297a541f468be517f1bde6195105e9"
@@ -236,7 +236,6 @@ def restrict {U : TopCat} (X : LocallyRingedSpace) {f : U ⟶ X.toTopCat} (h : O
LocallyRingedSpace where
localRing := by
intro x
- dsimp at *
-- We show that the stalk of the restriction is isomorphic to the original stalk,
apply @RingEquiv.localRing _ _ _ (X.localRing (f x))
exact (X.restrictStalkIso h x).symm.commRingCatIsoToRingEquiv
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -59,7 +59,7 @@ def toTopCat : TopCat :=
set_option linter.uppercaseLean3 false in
#align algebraic_geometry.LocallyRingedSpace.to_Top AlgebraicGeometry.LocallyRingedSpace.toTopCat
-instance : CoeSort LocallyRingedSpace (Type _) :=
+instance : CoeSort LocallyRingedSpace (Type*) :=
⟨fun X : LocallyRingedSpace => (X.toTopCat : Type _)⟩
instance (x : X) : LocalRing (X.stalk x) :=
@@ -2,15 +2,12 @@
Copyright (c) 2020 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin
-
-! This file was ported from Lean 3 source module algebraic_geometry.locally_ringed_space
-! leanprover-community/mathlib commit f0c8bf9245297a541f468be517f1bde6195105e9
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.AlgebraicGeometry.RingedSpace
import Mathlib.AlgebraicGeometry.Stalks
+#align_import algebraic_geometry.locally_ringed_space from "leanprover-community/mathlib"@"f0c8bf9245297a541f468be517f1bde6195105e9"
+
/-!
# The category of locally ringed spaces
@@ -90,6 +90,9 @@ set_option linter.uppercaseLean3 false in
instance : Quiver LocallyRingedSpace :=
⟨Hom⟩
+@[ext] lemma Hom.ext' (X Y : LocallyRingedSpace) {f g : X ⟶ Y} (h : f.val = g.val) : f = g :=
+Hom.ext _ _ h
+
-- TODO perhaps we should make a bundled `LocalRing` and return one here?
-- TODO define `sheaf.stalk` so we can write `X.𝒪.stalk` here?
/-- The stalk of a locally ringed space, just as a `CommRing`.
AlgebraicGeometry/SheafedSpace
and AlgebraicGeometry/RingedSpace
(#5047)
@@ -19,9 +19,6 @@ stalks are local rings), and morphisms between these (morphisms in `SheafedSpace
`is_local_ring_hom` on the stalk maps).
-/
-
-universe v u
-
open CategoryTheory
open TopCat
@@ -65,8 +62,8 @@ def toTopCat : TopCat :=
set_option linter.uppercaseLean3 false in
#align algebraic_geometry.LocallyRingedSpace.to_Top AlgebraicGeometry.LocallyRingedSpace.toTopCat
-instance : CoeSort LocallyRingedSpace (Type u) :=
- ⟨fun X : LocallyRingedSpace => (X.toTopCat : Type u)⟩
+instance : CoeSort LocallyRingedSpace (Type _) :=
+ ⟨fun X : LocallyRingedSpace => (X.toTopCat : Type _)⟩
instance (x : X) : LocalRing (X.stalk x) :=
X.localRing x
@@ -82,7 +79,7 @@ set_option linter.uppercaseLean3 false in
/-- A morphism of locally ringed spaces is a morphism of ringed spaces
such that the morphisms induced on stalks are local ring homomorphisms. -/
@[ext]
-structure Hom (X Y : LocallyRingedSpace.{u}) : Type u where
+structure Hom (X Y : LocallyRingedSpace) : Type _ where
/-- the underlying morphism between ringed spaces -/
val : X.toSheafedSpace ⟶ Y.toSheafedSpace
/-- the underlying morphism induces a local ring homomorphism on stalks -/
@@ -177,7 +174,7 @@ set_option linter.uppercaseLean3 false in
-- Porting note : complains that `(f ≫ g).val.c` can be further simplified
-- so changed to its simp normal form `(f.val ≫ g.val).c`
@[simp]
-theorem comp_val_c {X Y Z : LocallyRingedSpace.{u}} (f : X ⟶ Y) (g : Y ⟶ Z) :
+theorem comp_val_c {X Y Z : LocallyRingedSpace} (f : X ⟶ Y) (g : Y ⟶ Z) :
(f.1 ≫ g.1).c = g.val.c ≫ (Presheaf.pushforward _ g.val.base).map f.val.c :=
rfl
set_option linter.uppercaseLean3 false in
@@ -302,19 +302,12 @@ theorem preimage_basicOpen {X Y : LocallyRingedSpace} (f : X ⟶ Y) {U : Opens Y
ext x
constructor
· rintro ⟨⟨y, hyU⟩, hy : IsUnit _, rfl : y = _⟩
- erw [RingedSpace.mem_basicOpen _ _ ⟨x, show x ∈ (Opens.map f.1.base).obj U from hyU⟩]
- have eq1 := PresheafedSpace.stalkMap_germ_apply _ _
- ⟨x, show x ∈ (Opens.map f.1.base).obj U from hyU⟩
- dsimp at eq1
- -- Porting note : `rw` and `erw` can't rewrite `stalkMap_germ_apply`
- rw [← eq1]
+ erw [RingedSpace.mem_basicOpen _ _ ⟨x, show x ∈ (Opens.map f.1.base).obj U from hyU⟩,
+ ← PresheafedSpace.stalkMap_germ_apply]
exact (PresheafedSpace.stalkMap f.1 _).isUnit_map hy
· rintro ⟨y, hy : IsUnit _, rfl⟩
erw [RingedSpace.mem_basicOpen _ _ ⟨f.1.base y.1, y.2⟩]
- have eq1 := PresheafedSpace.stalkMap_germ_apply _ _ y
- dsimp at eq1
- -- Porting note : `rw` and `erw` can't rewrite `stalkMap_germ_apply`
- rw [← eq1] at hy
+ erw [← PresheafedSpace.stalkMap_germ_apply] at hy
exact (isUnit_map_iff (PresheafedSpace.stalkMap f.1 _) _).mp hy
set_option linter.uppercaseLean3 false in
#align algebraic_geometry.LocallyRingedSpace.preimage_basic_open AlgebraicGeometry.LocallyRingedSpace.preimage_basicOpen
@@ -80,7 +80,7 @@ set_option linter.uppercaseLean3 false in
#align algebraic_geometry.LocallyRingedSpace.𝒪 AlgebraicGeometry.LocallyRingedSpace.𝒪
/-- A morphism of locally ringed spaces is a morphism of ringed spaces
- such that the morphims induced on stalks are local ring homomorphisms. -/
+ such that the morphisms induced on stalks are local ring homomorphisms. -/
@[ext]
structure Hom (X Y : LocallyRingedSpace.{u}) : Type u where
/-- the underlying morphism between ringed spaces -/
The unported dependencies are