Theorem: AlgebraicGeometry.PresheafedSpace.stalkMap.comp
File: Mathlib/AlgebraicGeometry/Stalks.lean

tactic: dsimp [stalkMap, stalkFunctor, stalkPushforward]
state_before: C : Type u
inst✝¹ : Category C
inst✝ : HasColimits C
X Y Z : PresheafedSpace C
α : X ⟶ Y
β : Y ⟶ Z
x : ↑↑X
⊢ stalkMap (α ≫ β) x = stalkMap β ((CategoryTheory.forget TopCat).map α.base x) ≫ stalkMap α x

tactic: refine colimit.hom_ext fun U => ?_
state_before: C : Type u
inst✝¹ : Category C
inst✝ : HasColimits C
X Y Z : PresheafedSpace C
α : X ⟶ Y
β : Y ⟶ Z
x : ↑↑X
⊢ colimMap
        (whiskerLeft (Functor.op (OpenNhds.inclusion ((CategoryTheory.forget TopCat).map (α.base ≫ β.base) x)))
          (α ≫ β).c) ≫
      colimMap (whiskerRight (𝟙 (Functor.op (OpenNhds.map (α.base ≫ β.base) x ⋙ OpenNhds.inclusion x))) X.presheaf) ≫
        colimit.pre (Functor.op (OpenNhds.inclusion x) ⋙ X.presheaf) (Functor.op (OpenNhds.map (α.base ≫ β.base) x)) =
    (colimMap
          (whiskerLeft
            (Functor.op
              (OpenNhds.inclusion
                ((CategoryTheory.forget TopCat).map β.base ((CategoryTheory.forget TopCat).map α.base x))))
            β.c) ≫
        colimMap
            (whiskerRight
              (𝟙
                (Functor.op
                  (OpenNhds.map β.base ((CategoryTheory.forget TopCat).map α.base x) ⋙
                    OpenNhds.inclusion ((CategoryTheory.forget TopCat).map α.base x))))
              Y.presheaf) ≫
          colimit.pre (Functor.op (OpenNhds.inclusion ((CategoryTheory.forget TopCat).map α.base x)) ⋙ Y.presheaf)
            (Functor.op (OpenNhds.map β.base ((CategoryTheory.forget TopCat).map α.base x)))) ≫
      colimMap (whiskerLeft (Functor.op (OpenNhds.inclusion ((CategoryTheory.forget TopCat).map α.base x))) α.c) ≫
        colimMap (whiskerRight (𝟙 (Functor.op (OpenNhds.map α.base x ⋙ OpenNhds.inclusion x))) X.presheaf) ≫
          colimit.pre (Functor.op (OpenNhds.inclusion x) ⋙ X.presheaf) (Functor.op (OpenNhds.map α.base x))

tactic: induction U with | h U => ?_
state_before: C : Type u
inst✝¹ : Category C
inst✝ : HasColimits C
X Y Z : PresheafedSpace C
α : X ⟶ Y
β : Y ⟶ Z
x : ↑↑X
U : (OpenNhds ((CategoryTheory.forget TopCat).map (α.base ≫ β.base) x))ᵒᵖ
⊢ colimit.ι
        (((whiskeringLeft (OpenNhds ((CategoryTheory.forget TopCat).map (α.base ≫ β.base) x))ᵒᵖ (Opens ↑↑Z)ᵒᵖ C).obj
              (Functor.op (OpenNhds.inclusion ((CategoryTheory.forget TopCat).map (α.base ≫ β.base) x)))).obj
          Z.presheaf)
        U ≫
      colimMap
          (whiskerLeft (Functor.op (OpenNhds.inclusion ((CategoryTheory.forget TopCat).map (α.base ≫ β.base) x)))
            (α ≫ β).c) ≫
        colimMap (whiskerRight (𝟙 (Functor.op (OpenNhds.map (α.base ≫ β.base) x ⋙ OpenNhds.inclusion x))) X.presheaf) ≫
          colimit.pre (Functor.op (OpenNhds.inclusion x) ⋙ X.presheaf) (Functor.op (OpenNhds.map (α.base ≫ β.base) x)) =
    colimit.ι
        (((whiskeringLeft (OpenNhds ((CategoryTheory.forget TopCat).map (α.base ≫ β.base) x))ᵒᵖ (Opens ↑↑Z)ᵒᵖ C).obj
              (Functor.op (OpenNhds.inclusion ((CategoryTheory.forget TopCat).map (α.base ≫ β.base) x)))).obj
          Z.presheaf)
        U ≫
      (colimMap
            (whiskerLeft
              (Functor.op
                (OpenNhds.inclusion
                  ((CategoryTheory.forget TopCat).map β.base ((CategoryTheory.forget TopCat).map α.base x))))
              β.c) ≫
          colimMap
              (whiskerRight
                (𝟙
                  (Functor.op
                    (OpenNhds.map β.base ((CategoryTheory.forget TopCat).map α.base x) ⋙
                      OpenNhds.inclusion ((CategoryTheory.forget TopCat).map α.base x))))
                Y.presheaf) ≫
            colimit.pre (Functor.op (OpenNhds.inclusion ((CategoryTheory.forget TopCat).map α.base x)) ⋙ Y.presheaf)
              (Functor.op (OpenNhds.map β.base ((CategoryTheory.forget TopCat).map α.base x)))) ≫
        colimMap (whiskerLeft (Functor.op (OpenNhds.inclusion ((CategoryTheory.forget TopCat).map α.base x))) α.c) ≫
          colimMap (whiskerRight (𝟙 (Functor.op (OpenNhds.map α.base x ⋙ OpenNhds.inclusion x))) X.presheaf) ≫
            colimit.pre (Functor.op (OpenNhds.inclusion x) ⋙ X.presheaf) (Functor.op (OpenNhds.map α.base x))

tactic: cases U
state_before: case h
C : Type u
inst✝¹ : Category C
inst✝ : HasColimits C
X Y Z : PresheafedSpace C
α : X ⟶ Y
β : Y ⟶ Z
x : ↑↑X
U : OpenNhds ((CategoryTheory.forget TopCat).map (α.base ≫ β.base) x)
⊢ colimit.ι
        (((whiskeringLeft (OpenNhds ((CategoryTheory.forget TopCat).map (α.base ≫ β.base) x))ᵒᵖ (Opens ↑↑Z)ᵒᵖ C).obj
              (Functor.op (OpenNhds.inclusion ((CategoryTheory.forget TopCat).map (α.base ≫ β.base) x)))).obj
          Z.presheaf)
        U.op ≫
      colimMap
          (whiskerLeft (Functor.op (OpenNhds.inclusion ((CategoryTheory.forget TopCat).map (α.base ≫ β.base) x)))
            (α ≫ β).c) ≫
        colimMap (whiskerRight (𝟙 (Functor.op (OpenNhds.map (α.base ≫ β.base) x ⋙ OpenNhds.inclusion x))) X.presheaf) ≫
          colimit.pre (Functor.op (OpenNhds.inclusion x) ⋙ X.presheaf) (Functor.op (OpenNhds.map (α.base ≫ β.base) x)) =
    colimit.ι
        (((whiskeringLeft (OpenNhds ((CategoryTheory.forget TopCat).map (α.base ≫ β.base) x))ᵒᵖ (Opens ↑↑Z)ᵒᵖ C).obj
              (Functor.op (OpenNhds.inclusion ((CategoryTheory.forget TopCat).map (α.base ≫ β.base) x)))).obj
          Z.presheaf)
        U.op ≫
      (colimMap
            (whiskerLeft
              (Functor.op
                (OpenNhds.inclusion
                  ((CategoryTheory.forget TopCat).map β.base ((CategoryTheory.forget TopCat).map α.base x))))
              β.c) ≫
          colimMap
              (whiskerRight
                (𝟙
                  (Functor.op
                    (OpenNhds.map β.base ((CategoryTheory.forget TopCat).map α.base x) ⋙
                      OpenNhds.inclusion ((CategoryTheory.forget TopCat).map α.base x))))
                Y.presheaf) ≫
            colimit.pre (Functor.op (OpenNhds.inclusion ((CategoryTheory.forget TopCat).map α.base x)) ⋙ Y.presheaf)
              (Functor.op (OpenNhds.map β.base ((CategoryTheory.forget TopCat).map α.base x)))) ≫
        colimMap (whiskerLeft (Functor.op (OpenNhds.inclusion ((CategoryTheory.forget TopCat).map α.base x))) α.c) ≫
          colimMap (whiskerRight (𝟙 (Functor.op (OpenNhds.map α.base x ⋙ OpenNhds.inclusion x))) X.presheaf) ≫
            colimit.pre (Functor.op (OpenNhds.inclusion x) ⋙ X.presheaf) (Functor.op (OpenNhds.map α.base x))

tactic: simp only [whiskeringLeft_obj_obj, comp_obj, op_obj, unop_op, OpenNhds.inclusion_obj,
  ι_colimMap_assoc, pushforwardObj_obj, Opens.map_comp_obj, whiskerLeft_app, comp_c_app,
  OpenNhds.map_obj, whiskerRight_app, NatTrans.id_app, map_id, colimit.ι_pre, id_comp, assoc,
  colimit.ι_pre_assoc]
state_before: case h.mk
C : Type u
inst✝¹ : Category C
inst✝ : HasColimits C
X Y Z : PresheafedSpace C
α : X ⟶ Y
β : Y ⟶ Z
x : ↑↑X
obj✝ : Opens ↑↑Z
property✝ : (CategoryTheory.forget TopCat).map (α.base ≫ β.base) x ∈ obj✝
⊢ colimit.ι
        (((whiskeringLeft (OpenNhds ((CategoryTheory.forget TopCat).map (α.base ≫ β.base) x))ᵒᵖ (Opens ↑↑Z)ᵒᵖ C).obj
              (Functor.op (OpenNhds.inclusion ((CategoryTheory.forget TopCat).map (α.base ≫ β.base) x)))).obj
          Z.presheaf)
        { obj := obj✝, property := property✝ }.op ≫
      colimMap
          (whiskerLeft (Functor.op (OpenNhds.inclusion ((CategoryTheory.forget TopCat).map (α.base ≫ β.base) x)))
            (α ≫ β).c) ≫
        colimMap (whiskerRight (𝟙 (Functor.op (OpenNhds.map (α.base ≫ β.base) x ⋙ OpenNhds.inclusion x))) X.presheaf) ≫
          colimit.pre (Functor.op (OpenNhds.inclusion x) ⋙ X.presheaf) (Functor.op (OpenNhds.map (α.base ≫ β.base) x)) =
    colimit.ι
        (((whiskeringLeft (OpenNhds ((CategoryTheory.forget TopCat).map (α.base ≫ β.base) x))ᵒᵖ (Opens ↑↑Z)ᵒᵖ C).obj
              (Functor.op (OpenNhds.inclusion ((CategoryTheory.forget TopCat).map (α.base ≫ β.base) x)))).obj
          Z.presheaf)
        { obj := obj✝, property := property✝ }.op ≫
      (colimMap
            (whiskerLeft
              (Functor.op
                (OpenNhds.inclusion
                  ((CategoryTheory.forget TopCat).map β.base ((CategoryTheory.forget TopCat).map α.base x))))
              β.c) ≫
          colimMap
              (whiskerRight
                (𝟙
                  (Functor.op
                    (OpenNhds.map β.base ((CategoryTheory.forget TopCat).map α.base x) ⋙
                      OpenNhds.inclusion ((CategoryTheory.forget TopCat).map α.base x))))
                Y.presheaf) ≫
            colimit.pre (Functor.op (OpenNhds.inclusion ((CategoryTheory.forget TopCat).map α.base x)) ⋙ Y.presheaf)
              (Functor.op (OpenNhds.map β.base ((CategoryTheory.forget TopCat).map α.base x)))) ≫
        colimMap (whiskerLeft (Functor.op (OpenNhds.inclusion ((CategoryTheory.forget TopCat).map α.base x))) α.c) ≫
          colimMap (whiskerRight (𝟙 (Functor.op (OpenNhds.map α.base x ⋙ OpenNhds.inclusion x))) X.presheaf) ≫
            colimit.pre (Functor.op (OpenNhds.inclusion x) ⋙ X.presheaf) (Functor.op (OpenNhds.map α.base x))