Theorem: AlgebraicGeometry.PresheafedSpace.stalkMap.id
File: Mathlib/Geometry/RingedSpace/Stalks.lean

tactic: dsimp [stalkMap]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasColimits C
X : PresheafedSpace C
x : ↑↑X
⊢ stalkMap (𝟙 X) x = 𝟙 (X.stalk x)
state_after: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasColimits C
X : PresheafedSpace C
x : ↑↑X
⊢ (stalkFunctor C x).map (𝟙 X).c ≫ stalkPushforward C (𝟙 ↑X) X.presheaf x = 𝟙 (X.stalk x)

tactic: simp only [stalkPushforward.id]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasColimits C
X : PresheafedSpace C
x : ↑↑X
⊢ (stalkFunctor C x).map (𝟙 X).c ≫ stalkPushforward C (𝟙 ↑X) X.presheaf x = 𝟙 (X.stalk x)
state_after: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasColimits C
X : PresheafedSpace C
x : ↑↑X
⊢ (stalkFunctor C x).map (𝟙 X).c ≫ (stalkFunctor C x).map (Pushforward.id X.presheaf).hom = 𝟙 (X.stalk x)

tactic: erw [← map_comp]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasColimits C
X : PresheafedSpace C
x : ↑↑X
⊢ (stalkFunctor C x).map (𝟙 X).c ≫ (stalkFunctor C x).map (Pushforward.id X.presheaf).hom = 𝟙 (X.stalk x)
state_after: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasColimits C
X : PresheafedSpace C
x : ↑↑X
⊢ (stalkFunctor C x).map ((𝟙 X).c ≫ (Pushforward.id X.presheaf).hom) = 𝟙 (X.stalk x)

tactic: convert (stalkFunctor C x).map_id X.presheaf
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasColimits C
X : PresheafedSpace C
x : ↑↑X
⊢ (stalkFunctor C x).map ((𝟙 X).c ≫ (Pushforward.id X.presheaf).hom) = 𝟙 (X.stalk x)
state_after: case h.e'_2.h.h.e'_8
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasColimits C
X : PresheafedSpace C
x : ↑↑X
e_1✝ : (X.stalk x ⟶ X.stalk x) = ((stalkFunctor C x).obj X.presheaf ⟶ (stalkFunctor C x).obj X.presheaf)
⊢ (𝟙 X).c ≫ (Pushforward.id X.presheaf).hom = 𝟙 X.presheaf

tactic: ext
state_before: case h.e'_2.h.h.e'_8
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasColimits C
X : PresheafedSpace C
x : ↑↑X
e_1✝ : (X.stalk x ⟶ X.stalk x) = ((stalkFunctor C x).obj X.presheaf ⟶ (stalkFunctor C x).obj X.presheaf)
⊢ (𝟙 X).c ≫ (Pushforward.id X.presheaf).hom = 𝟙 X.presheaf
state_after: case h.e'_2.h.h.e'_8.w
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasColimits C
X : PresheafedSpace C
x : ↑↑X
e_1✝ : (X.stalk x ⟶ X.stalk x) = ((stalkFunctor C x).obj X.presheaf ⟶ (stalkFunctor C x).obj X.presheaf)
U✝ : Opens ↑↑X
⊢ ((𝟙 X).c ≫ (Pushforward.id X.presheaf).hom).app { unop := U✝ } = (𝟙 X.presheaf).app { unop := U✝ }

tactic: simp only [id_c, id_comp, Pushforward.id_hom_app, op_obj, eqToHom_refl, map_id]
state_before: case h.e'_2.h.h.e'_8.w
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasColimits C
X : PresheafedSpace C
x : ↑↑X
e_1✝ : (X.stalk x ⟶ X.stalk x) = ((stalkFunctor C x).obj X.presheaf ⟶ (stalkFunctor C x).obj X.presheaf)
U✝ : Opens ↑↑X
⊢ ((𝟙 X).c ≫ (Pushforward.id X.presheaf).hom).app { unop := U✝ } = (𝟙 X.presheaf).app { unop := U✝ }
state_after: case h.e'_2.h.h.e'_8.w
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasColimits C
X : PresheafedSpace C
x : ↑↑X
e_1✝ : (X.stalk x ⟶ X.stalk x) = ((stalkFunctor C x).obj X.presheaf ⟶ (stalkFunctor C x).obj X.presheaf)
U✝ : Opens ↑↑X
⊢ 𝟙 (X.presheaf.obj { unop := (Opens.map (𝟙 ↑X)).obj U✝ }) = (𝟙 X.presheaf).app { unop := U✝ }

tactic: rfl
state_before: case h.e'_2.h.h.e'_8.w
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasColimits C
X : PresheafedSpace C
x : ↑↑X
e_1✝ : (X.stalk x ⟶ X.stalk x) = ((stalkFunctor C x).obj X.presheaf ⟶ (stalkFunctor C x).obj X.presheaf)
U✝ : Opens ↑↑X
⊢ 𝟙 (X.presheaf.obj { unop := (Opens.map (𝟙 ↑X)).obj U✝ }) = (𝟙 X.presheaf).app { unop := U✝ }
state_after: no goals