# mathlibdocumentation

algebraic_geometry.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.

def algebraic_geometry.PresheafedSpace.stalk {C : Type u} (x : X) :
C

The stalk at x of a PresheafedSpace.

Equations
def algebraic_geometry.PresheafedSpace.stalk_map {C : Type u} (α : X Y) (x : X) :
Y.stalk ((α.base) x) X.stalk x

A morphism of presheafed spaces induces a morphism of stalks.

Equations
@[simp]
@[simp]
theorem algebraic_geometry.PresheafedSpace.stalk_map_germ_assoc {C : Type u} (α : X Y) (U : topological_space.opens (Y.carrier)) (x : U)) {X' : C} (f' : X.stalk x X') :
@[simp]
theorem algebraic_geometry.PresheafedSpace.stalk_map_germ_apply {C : Type u} (α : X Y) (U : topological_space.opens (Y.carrier)) (x : U)) (x_1 : (Y.presheaf.obj (opposite.op U))) :
((Y.presheaf.germ (α.base) x, _⟩) x_1) = (X.presheaf.germ x) ((α.c.app (opposite.op U)) x_1)
def algebraic_geometry.PresheafedSpace.restrict_stalk_iso {C : Type u} {U : Top} (f : U X) (h : open_embedding f) (x : U) :
(X.restrict f h).stalk x X.stalk (f x)

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
• h x =
@[simp]
theorem algebraic_geometry.PresheafedSpace.restrict_stalk_iso_hom_eq_germ_apply {C : Type u} {U : Top} (f : U X) (h : open_embedding f) (V : topological_space.opens U) (x : U) (hx : x V) (x_1 : ((X.restrict f h).presheaf.obj (opposite.op V))) :
((X.restrict_stalk_iso f h x).hom) (((X.restrict f h).presheaf.germ x, hx⟩) x_1) = (X.presheaf.germ f x, _⟩) x_1
@[simp]
theorem algebraic_geometry.PresheafedSpace.restrict_stalk_iso_hom_eq_germ {C : Type u} {U : Top} (f : U X) (h : open_embedding f) (V : topological_space.opens U) (x : U) (hx : x V) :
(X.restrict f h).presheaf.germ x, hx⟩ h x).hom = X.presheaf.germ f x, _⟩
@[simp]
theorem algebraic_geometry.PresheafedSpace.restrict_stalk_iso_hom_eq_germ_assoc {C : Type u} {U : Top} (f : U X) (h : open_embedding f) (V : topological_space.opens U) (x : U) (hx : x V) {X' : C} (f' : X.stalk (f x) X') :
(X.restrict f h).presheaf.germ x, hx⟩ h x).hom f' = X.presheaf.germ f x, _⟩ f'
@[simp]
theorem algebraic_geometry.PresheafedSpace.restrict_stalk_iso_inv_eq_germ_assoc {C : Type u} {U : Top} (f : U X) (h : open_embedding f) (V : topological_space.opens U) (x : U) (hx : x V) {X' : C} (f' : (X.restrict f h).stalk x X') :
X.presheaf.germ f x, _⟩ h x).inv f' = (X.restrict f h).presheaf.germ x, hx⟩ f'
@[simp]
theorem algebraic_geometry.PresheafedSpace.restrict_stalk_iso_inv_eq_germ_apply {C : Type u} {U : Top} (f : U X) (h : open_embedding f) (V : topological_space.opens U) (x : U) (hx : x V) (x_1 : (X.presheaf.obj (opposite.op (_.functor.obj V)))) :
((X.restrict_stalk_iso f h x).inv) ((X.presheaf.germ f x, _⟩) x_1) = ((X.restrict f h).presheaf.germ x, hx⟩) x_1
@[simp]
theorem algebraic_geometry.PresheafedSpace.restrict_stalk_iso_inv_eq_germ {C : Type u} {U : Top} (f : U X) (h : open_embedding f) (V : topological_space.opens U) (x : U) (hx : x V) :
X.presheaf.germ f x, _⟩ h x).inv = (X.restrict f h).presheaf.germ x, hx⟩
@[simp]
theorem algebraic_geometry.PresheafedSpace.stalk_map.id {C : Type u} (x : X) :
= 𝟙 (X.stalk x)
@[simp]
theorem algebraic_geometry.PresheafedSpace.stalk_map.comp {C : Type u} {X Y Z : algebraic_geometry.PresheafedSpace C} (α : X Y) (β : Y Z) (x : X) :
theorem algebraic_geometry.PresheafedSpace.stalk_map.congr {C : Type u} (α β : X Y) (h₁ : α = β) (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.

theorem algebraic_geometry.PresheafedSpace.stalk_map.congr_hom {C : Type u} (α β : X Y) (h : α = β) (x : X) :
theorem algebraic_geometry.PresheafedSpace.stalk_map.congr_point {C : Type u} (α : X Y) (x x' : X) (h : x = x') :
@[instance]
def algebraic_geometry.PresheafedSpace.stalk_map.is_iso {C : Type u} (α : X Y) (x : X) :
def algebraic_geometry.PresheafedSpace.stalk_map.stalk_iso {C : Type u} (α : X Y) (x : X) :
Y.stalk ((α.hom.base) x) X.stalk x

An isomorphism between presheafed spaces induces an isomorphism of stalks.

Equations