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

Proof steps:
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasColimits C
X : PresheafedSpace C
x : ↑↑X
⊢ Hom.stalkMap (𝟙 X) x = 𝟙 (X.presheaf.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.presheaf.stalk x)
tactic: dsimp [Hom.stalkMap]
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.presheaf.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.presheaf.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 ≫ (stalkFunctor C x).map (Pushforward.id X.presheaf).hom = 𝟙 (X.presheaf.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.presheaf.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 ≫ (Pushforward.id X.presheaf).hom) = 𝟙 (X.presheaf.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.presheaf.stalk x ⟶ X.presheaf.stalk x) = ((stalkFunctor C x).obj X.presheaf ⟶ (stalkFunctor C x).obj X.presheaf)
⊢ (𝟙 X).c ≫ (Pushforward.id X.presheaf).hom = 𝟙 X.presheaf
tactic: convert (stalkFunctor C x).map_id X.presheaf
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.presheaf.stalk x ⟶ X.presheaf.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.presheaf.stalk x ⟶ X.presheaf.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 (op U✝) = (𝟙 X.presheaf).app (op U✝)
tactic: ext
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.presheaf.stalk x ⟶ X.presheaf.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 (op U✝) = (𝟙 X.presheaf).app (op 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.presheaf.stalk x ⟶ X.presheaf.stalk x) = ((stalkFunctor C x).obj X.presheaf ⟶ (stalkFunctor C x).obj X.presheaf)
U✝ : Opens ↑↑X
⊢ 𝟙 (((pushforward C (𝟙 ↑X)).obj X.presheaf).obj (op U✝)) = (𝟙 X.presheaf).app (op 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.presheaf.stalk x ⟶ X.presheaf.stalk x) = ((stalkFunctor C x).obj X.presheaf ⟶ (stalkFunctor C x).obj X.presheaf)
U✝ : Opens ↑↑X
⊢ 𝟙 (((pushforward C (𝟙 ↑X)).obj X.presheaf).obj (op U✝)) = (𝟙 X.presheaf).app (op U✝)
state_after: no goals
tactic: rfl