Skip to content

Commit 4c72c2c

Browse files
jjaassoonnerdOne
authored andcommitted
feat(AlgebraicGeometry/GammaSpecAdjunction): a missing lemma (#13412)
Added the following lemma: Let $X$ be a locally ringed space, $R$ a ring and $U \subseteq \mathrm{Spec} R$ an open set. Then for any $f : R \to \Gamma(\mathcal O_X, X)$, if we denote $F$ as the corresponding morphism $X \to \mathrm{Spec} R$ under the gamma spec adjunction we have that the composition $res^{\mathrm{X}}\_{F^{-1}U} \circ f$ is equal to the composition $(R \to \mathcal{O}_{\mathrm{Spec} R}(U)\circ F(U)$ ```lean lemma toOpen_comp_locallyRingedSpaceAdjunction_homEquiv_app {X : LocallyRingedSpace} {R : Type u} [CommRing R] (f : LocallyRingedSpace.Γ.rightOp.obj X ⟶ op (CommRingCat.of R)) (U) : StructureSheaf.toOpen R U.unop ≫ (locallyRingedSpaceAdjunction.homEquiv X (op <| CommRingCat.of R) f).1.c.app U = f.unop ≫ X.presheaf.map (homOfLE le_top).op := by ``` found usefuly by Andrew during #12371 Co-authored-by: Andrew Yang <[email protected]>
1 parent 49941bb commit 4c72c2c

File tree

3 files changed

+58
-1
lines changed

3 files changed

+58
-1
lines changed

Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean

+37
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,43 @@ lemma locallyRingedSpaceAdjunction_counit :
368368
locallyRingedSpaceAdjunction.counit = (NatIso.op SpecΓIdentity.{u}).inv := rfl
369369
#align algebraic_geometry.Γ_Spec.LocallyRingedSpace_adjunction_counit AlgebraicGeometry.ΓSpec.locallyRingedSpaceAdjunction_counit
370370

371+
@[simp]
372+
lemma locallyRingedSpaceAdjunction_counit_app (R : CommRingCatᵒᵖ) :
373+
locallyRingedSpaceAdjunction.counit.app R =
374+
(toOpen R.unop ⊤).op := rfl
375+
376+
@[simp]
377+
lemma locallyRingedSpaceAdjunction_counit_app' (R : Type u) [CommRing R] :
378+
locallyRingedSpaceAdjunction.counit.app (op <| CommRingCat.of R) =
379+
(toOpen R ⊤).op := rfl
380+
381+
lemma locallyRingedSpaceAdjunction_homEquiv_apply
382+
{X : LocallyRingedSpace} {R : CommRingCatᵒᵖ}
383+
(f : Γ.rightOp.obj X ⟶ R) :
384+
locallyRingedSpaceAdjunction.homEquiv X R f =
385+
identityToΓSpec.app X ≫ Spec.locallyRingedSpaceMap f.unop := rfl
386+
387+
lemma locallyRingedSpaceAdjunction_homEquiv_apply'
388+
{X : LocallyRingedSpace} {R : Type u} [CommRing R]
389+
(f : CommRingCat.of R ⟶ Γ.obj <| op X) :
390+
locallyRingedSpaceAdjunction.homEquiv X (op <| CommRingCat.of R) (op f) =
391+
identityToΓSpec.app X ≫ Spec.locallyRingedSpaceMap f := rfl
392+
393+
lemma toOpen_comp_locallyRingedSpaceAdjunction_homEquiv_app
394+
{X : LocallyRingedSpace} {R : Type u} [CommRing R]
395+
(f : Γ.rightOp.obj X ⟶ op (CommRingCat.of R)) (U) :
396+
StructureSheaf.toOpen R U.unop ≫
397+
(locallyRingedSpaceAdjunction.homEquiv X (op <| CommRingCat.of R) f).1.c.app U =
398+
f.unop ≫ X.presheaf.map (homOfLE le_top).op := by
399+
rw [← StructureSheaf.toOpen_res _ _ _ (homOfLE le_top), Category.assoc,
400+
NatTrans.naturality _ (homOfLE (le_top (a := U.unop))).op,
401+
show (toOpen R ⊤) = (toOpen R ⊤).op.unop from rfl,
402+
← locallyRingedSpaceAdjunction_counit_app']
403+
simp_rw [← Γ_map_op]
404+
rw [← Γ.rightOp_map_unop, ← Category.assoc, ← unop_comp, ← Adjunction.homEquiv_counit,
405+
Equiv.symm_apply_apply]
406+
rfl
407+
371408
-- Porting Note: Commented
372409
--attribute [local semireducible] Spec.toLocallyRingedSpace
373410

Mathlib/AlgebraicGeometry/Spec.lean

+18-1
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ set_option linter.uppercaseLean3 false in
202202
-- if more is needed, add them here
203203
/-- The spectrum of a commutative ring, as a `LocallyRingedSpace`.
204204
-/
205-
@[simps! toSheafedSpace]
205+
@[simps! toSheafedSpace presheaf]
206206
def Spec.locallyRingedSpaceObj (R : CommRingCat.{u}) : LocallyRingedSpace :=
207207
{ Spec.sheafedSpaceObj R with
208208
localRing := fun x =>
@@ -211,6 +211,23 @@ def Spec.locallyRingedSpaceObj (R : CommRingCat.{u}) : LocallyRingedSpace :=
211211
set_option linter.uppercaseLean3 false in
212212
#align algebraic_geometry.Spec.LocallyRingedSpace_obj AlgebraicGeometry.Spec.locallyRingedSpaceObj
213213

214+
lemma Spec.locallyRingedSpaceObj_sheaf (R : CommRingCat.{u}) :
215+
(Spec.locallyRingedSpaceObj R).sheaf = structureSheaf R := rfl
216+
217+
lemma Spec.locallyRingedSpaceObj_sheaf' (R : Type u) [CommRing R] :
218+
(Spec.locallyRingedSpaceObj <| CommRingCat.of R).sheaf = structureSheaf R := rfl
219+
220+
lemma Spec.locallyRingedSpaceObj_presheaf_map (R : CommRingCat.{u}) {U V} (i : U ⟶ V) :
221+
(Spec.locallyRingedSpaceObj R).presheaf.map i =
222+
(structureSheaf R).1.map i := rfl
223+
224+
lemma Spec.locallyRingedSpaceObj_presheaf' (R : Type u) [CommRing R] :
225+
(Spec.locallyRingedSpaceObj <| CommRingCat.of R).presheaf = (structureSheaf R).1 := rfl
226+
227+
lemma Spec.locallyRingedSpaceObj_presheaf_map' (R : Type u) [CommRing R] {U V} (i : U ⟶ V) :
228+
(Spec.locallyRingedSpaceObj <| CommRingCat.of R).presheaf.map i =
229+
(structureSheaf R).1.map i := rfl
230+
214231
@[elementwise]
215232
theorem stalkMap_toStalk {R S : CommRingCat.{u}} (f : R ⟶ S) (p : PrimeSpectrum S) :
216233
toStalk R (PrimeSpectrum.comap f p) ≫ PresheafedSpace.stalkMap (Spec.sheafedSpaceMap f) p =

Mathlib/CategoryTheory/Opposites.lean

+3
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,9 @@ protected def rightOp (F : Cᵒᵖ ⥤ D) : C ⥤ Dᵒᵖ where
250250
map f := (F.map f.op).op
251251
#align category_theory.functor.right_op CategoryTheory.Functor.rightOp
252252

253+
lemma rightOp_map_unop {F : Cᵒᵖ ⥤ D} {X Y} (f : X ⟶ Y) :
254+
(F.rightOp.map f).unop = F.map f.op := rfl
255+
253256
instance {F : C ⥤ D} [Full F] : Full F.op where
254257
map_surjective f := ⟨(F.preimage f.unop).op, by simp⟩
255258

0 commit comments

Comments
 (0)