# Documentation

Mathlib.Geometry.RingedSpace.Stalks

# Stalks for presheaved spaces #

This file lifts constructions of stalks and pushforwards of stalks to work with the category of presheafed spaces. Additionally, we prove that restriction of presheafed spaces does not change the stalks.

@[inline, reducible]
abbrev AlgebraicGeometry.PresheafedSpace.stalk {C : Type u} (x : X) :
C

The stalk at x of a PresheafedSpace.

Equations
Instances For
def AlgebraicGeometry.PresheafedSpace.stalkMap {C : Type u} (α : X Y) (x : X) :

A morphism of presheafed spaces induces a morphism of stalks.

Equations
• One or more equations did not get rendered due to their size.
Instances For
theorem AlgebraicGeometry.PresheafedSpace.stalkMap_germ_apply {C : Type u} (α : X Y) (U : ) (x : (().obj U)) [inst : ] (x : .obj (Y.presheaf.obj ())) :
((TopCat.Presheaf.germ Y.presheaf { val := α.base x✝, property := (_ : x✝ ().obj U) }) x) = (TopCat.Presheaf.germ X.presheaf x✝) ((α.c.app ()) x)
theorem AlgebraicGeometry.PresheafedSpace.stalkMap_germ_assoc {C : Type u} (α : X Y) (U : ) (x : (().obj U)) {Z : C} (h : ) :
CategoryTheory.CategoryStruct.comp (TopCat.Presheaf.germ Y.presheaf { val := α.base x, property := (_ : x ().obj U) }) = CategoryTheory.CategoryStruct.comp (α.c.app ()) (CategoryTheory.CategoryStruct.comp (TopCat.Presheaf.germ X.presheaf x) h)
theorem AlgebraicGeometry.PresheafedSpace.stalkMap_germ {C : Type u} (α : X Y) (U : ) (x : (().obj U)) :
CategoryTheory.CategoryStruct.comp (TopCat.Presheaf.germ Y.presheaf { val := α.base x, property := (_ : x ().obj U) }) = CategoryTheory.CategoryStruct.comp (α.c.app ()) (TopCat.Presheaf.germ X.presheaf x)
theorem AlgebraicGeometry.PresheafedSpace.stalkMap_germ'_apply {C : Type u} (α : X Y) (U : ) (x : X) (hx : α.base x✝ U) [inst : ] (x : .obj (Y.presheaf.obj ())) :
((TopCat.Presheaf.germ Y.presheaf { val := α.base x✝, property := hx }) x) = (TopCat.Presheaf.germ X.presheaf { val := x✝, property := hx }) ((α.c.app ()) x)
theorem AlgebraicGeometry.PresheafedSpace.stalkMap_germ'_assoc {C : Type u} (α : X Y) (U : ) (x : X) (hx : α.base x U) {Z : C} (h : ) :
CategoryTheory.CategoryStruct.comp (TopCat.Presheaf.germ Y.presheaf { val := α.base x, property := hx }) = CategoryTheory.CategoryStruct.comp (α.c.app ()) (CategoryTheory.CategoryStruct.comp (TopCat.Presheaf.germ X.presheaf { val := x, property := hx }) h)
@[simp]
theorem AlgebraicGeometry.PresheafedSpace.stalkMap_germ' {C : Type u} (α : X Y) (U : ) (x : X) (hx : α.base x U) :
CategoryTheory.CategoryStruct.comp (TopCat.Presheaf.germ Y.presheaf { val := α.base x, property := hx }) = CategoryTheory.CategoryStruct.comp (α.c.app ()) (TopCat.Presheaf.germ X.presheaf { val := x, property := hx })
def AlgebraicGeometry.PresheafedSpace.restrictStalkIso {C : Type u} {U : TopCat} {f : U X} (h : ) (x : U) :

For an open embedding f : U ⟶ X and a point x : U, we get an isomorphism between the stalk of X at f x and the stalk of the restriction of X along f at t x.

Equations
• One or more equations did not get rendered due to their size.
Instances For
theorem AlgebraicGeometry.PresheafedSpace.restrictStalkIso_hom_eq_germ_apply {C : Type u} {U : TopCat} {f : U X} (h : ) (V : ) (x : U) (hx : x✝ V) [inst : ] (x : .obj ((CategoryTheory.Functor.comp (IsOpenMap.functorNhds (_ : ) x✝).op (CategoryTheory.Functor.comp ().op X.presheaf)).obj (Opposite.op { obj := V, property := hx }))) :
(CategoryTheory.Limits.colimit.pre (CategoryTheory.Functor.comp ().op X.presheaf) (IsOpenMap.functorNhds (_ : ) x✝).op) ((CategoryTheory.Limits.colimit.ι (CategoryTheory.Functor.comp (IsOpenMap.functorNhds (_ : ) x✝).op (CategoryTheory.Functor.comp ().op X.presheaf)) (Opposite.op { obj := V, property := hx })) x) = (CategoryTheory.Limits.colimit.ι (CategoryTheory.Functor.comp ().op X.presheaf) (Opposite.op ((IsOpenMap.functorNhds (_ : ) x✝).obj { obj := V, property := hx }))) x
theorem AlgebraicGeometry.PresheafedSpace.restrictStalkIso_hom_eq_germ_assoc {C : Type u} {U : TopCat} {f : U X} (h : ) (V : ) (x : U) (hx : x V) {Z : C} (h : ) :
CategoryTheory.CategoryStruct.comp (TopCat.Presheaf.germ .presheaf { val := x, property := hx }) = CategoryTheory.CategoryStruct.comp (TopCat.Presheaf.germ X.presheaf { val := f x, property := (_ : ∃ a ∈ V, f a = f x) }) h
theorem AlgebraicGeometry.PresheafedSpace.restrictStalkIso_hom_eq_germ {C : Type u} {U : TopCat} {f : U X} (h : ) (V : ) (x : U) (hx : x V) :
CategoryTheory.CategoryStruct.comp (TopCat.Presheaf.germ .presheaf { val := x, property := hx }) = TopCat.Presheaf.germ X.presheaf { val := f x, property := (_ : f x (IsOpenMap.functor (_ : )).obj V) }
theorem AlgebraicGeometry.PresheafedSpace.restrictStalkIso_inv_eq_germ_apply {C : Type u} {U : TopCat} {f : U X} (h : ) (V : ) (x : U) (hx : x✝ V) [inst : ] (x : .obj (X.presheaf.obj (Opposite.op ((IsOpenMap.functor (_ : )).obj V)))) :
.inv ((TopCat.Presheaf.germ X.presheaf { val := f x✝, property := (_ : ∃ a ∈ V, f a = f x✝) }) x) = (TopCat.Presheaf.germ (CategoryTheory.Functor.comp (IsOpenMap.functor (_ : )).op X.presheaf) { val := x✝, property := hx }) x
theorem AlgebraicGeometry.PresheafedSpace.restrictStalkIso_inv_eq_germ_assoc {C : Type u} {U : TopCat} {f : U X} (h : ) (V : ) (x : U) (hx : x V) {Z : C} :
CategoryTheory.CategoryStruct.comp (TopCat.Presheaf.germ X.presheaf { val := f x, property := (_ : ∃ a ∈ V, f a = f x) }) = CategoryTheory.CategoryStruct.comp (TopCat.Presheaf.germ .presheaf { val := x, property := hx }) h
@[simp]
theorem AlgebraicGeometry.PresheafedSpace.restrictStalkIso_inv_eq_germ {C : Type u} {U : TopCat} {f : U X} (h : ) (V : ) (x : U) (hx : x V) :
CategoryTheory.CategoryStruct.comp (TopCat.Presheaf.germ X.presheaf { val := f x, property := (_ : f x (IsOpenMap.functor (_ : )).obj V) }) = TopCat.Presheaf.germ .presheaf { val := x, property := hx }
theorem AlgebraicGeometry.PresheafedSpace.restrictStalkIso_inv_eq_ofRestrict {C : Type u} {U : TopCat} {f : U X} (h : ) (x : U) :
instance AlgebraicGeometry.PresheafedSpace.ofRestrict_stalkMap_isIso {C : Type u} {U : TopCat} {f : U X} (h : ) (x : U) :
Equations
• One or more equations did not get rendered due to their size.
@[simp]
@[simp]
theorem AlgebraicGeometry.PresheafedSpace.stalkMap.comp {C : Type u} (α : X Y) (β : Y Z) (x : X) :
theorem AlgebraicGeometry.PresheafedSpace.stalkMap.congr {C : Type u} (α : X Y) (β : X Y) (h₁ : α = β) (x : X) (x' : X) (h₂ : x = x') :

If α = β and x = x', we would like to say that stalk_map α x = stalk_map β x'. Unfortunately, this equality is not well-formed, as their types are not definitionally the same. To get a proper congruence lemma, we therefore have to introduce these eq_to_hom arrows on either side of the equality.

instance AlgebraicGeometry.PresheafedSpace.stalkMap.isIso {C : Type u} (α : X Y) (x : X) :
Equations

An isomorphism between presheafed spaces induces an isomorphism of stalks.

Equations
Instances For
theorem AlgebraicGeometry.PresheafedSpace.stalkMap.stalkSpecializes_stalkMap_assoc {C : Type u} (f : X Y) {x : X} {y : X} (h : x y) {Z : C} (h : ) :
theorem AlgebraicGeometry.PresheafedSpace.stalkMap.stalkSpecializes_stalkMap_apply {C : Type u} (f : X Y) {x : X} {y : X} (h : x✝ y) [inst : ] (x : .obj (TopCat.Presheaf.stalk Y.presheaf (f.base y))) :
((TopCat.Presheaf.stalkSpecializes Y.presheaf (_ : f.base x✝ f.base y)) x) = () x
@[simp]
theorem AlgebraicGeometry.PresheafedSpace.stalkMap.stalkSpecializes_stalkMap {C : Type u} (f : X Y) {x : X} {y : X} (h : x y) :