Theorem: CategoryTheory.GrothendieckTopology.plusMap_id
File: Mathlib/CategoryTheory/Sites/Plus.lean

tactic: ext : 2
state_before: C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
P✝ : Cᵒᵖ ⥤ D
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P : Cᵒᵖ ⥤ D
⊢ J.plusMap (𝟙 P) = 𝟙 (J.plusObj P)
state_after: case w.h
C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
P✝ : Cᵒᵖ ⥤ D
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P : Cᵒᵖ ⥤ D
x✝ : Cᵒᵖ
⊢ (J.plusMap (𝟙 P)).app x✝ = (𝟙 (J.plusObj P)).app x✝

tactic: dsimp only [plusMap, plusObj]
state_before: case w.h
C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
P✝ : Cᵒᵖ ⥤ D
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P : Cᵒᵖ ⥤ D
x✝ : Cᵒᵖ
⊢ (J.plusMap (𝟙 P)).app x✝ = (𝟙 (J.plusObj P)).app x✝
state_after: case w.h
C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
P✝ : Cᵒᵖ ⥤ D
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P : Cᵒᵖ ⥤ D
x✝ : Cᵒᵖ
⊢ colimMap (J.diagramNatTrans (𝟙 P) x✝.unop) =
    (𝟙
          { obj := fun X => colimit (J.diagram P X.unop),
            map := fun {X Y} f =>
              colimMap (J.diagramPullback P f.unop) ≫ colimit.pre (J.diagram P Y.unop) (J.pullback f.unop).op,
            map_id := ⋯, map_comp := ⋯ }).app
      x✝

tactic: rw [J.diagramNatTrans_id, NatTrans.id_app]
state_before: case w.h
C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
P✝ : Cᵒᵖ ⥤ D
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P : Cᵒᵖ ⥤ D
x✝ : Cᵒᵖ
⊢ colimMap (J.diagramNatTrans (𝟙 P) x✝.unop) =
    (𝟙
          { obj := fun X => colimit (J.diagram P X.unop),
            map := fun {X Y} f =>
              colimMap (J.diagramPullback P f.unop) ≫ colimit.pre (J.diagram P Y.unop) (J.pullback f.unop).op,
            map_id := ⋯, map_comp := ⋯ }).app
      x✝
state_after: case w.h
C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
P✝ : Cᵒᵖ ⥤ D
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P : Cᵒᵖ ⥤ D
x✝ : Cᵒᵖ
⊢ colimMap (𝟙 (J.diagram P x✝.unop)) =
    𝟙
      ({ obj := fun X => colimit (J.diagram P X.unop),
            map := fun {X Y} f =>
              colimMap (J.diagramPullback P f.unop) ≫ colimit.pre (J.diagram P Y.unop) (J.pullback f.unop).op,
            map_id := ⋯, map_comp := ⋯ }.obj
        x✝)

tactic: ext
state_before: case w.h
C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
P✝ : Cᵒᵖ ⥤ D
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P : Cᵒᵖ ⥤ D
x✝ : Cᵒᵖ
⊢ colimMap (𝟙 (J.diagram P x✝.unop)) =
    𝟙
      ({ obj := fun X => colimit (J.diagram P X.unop),
            map := fun {X Y} f =>
              colimMap (J.diagramPullback P f.unop) ≫ colimit.pre (J.diagram P Y.unop) (J.pullback f.unop).op,
            map_id := ⋯, map_comp := ⋯ }.obj
        x✝)
state_after: case w.h.w
C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
P✝ : Cᵒᵖ ⥤ D
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P : Cᵒᵖ ⥤ D
x✝ : Cᵒᵖ
j✝ : (J.Cover x✝.unop)ᵒᵖ
⊢ colimit.ι (J.diagram P x✝.unop) j✝ ≫ colimMap (𝟙 (J.diagram P x✝.unop)) =
    colimit.ι (J.diagram P x✝.unop) j✝ ≫
      𝟙
        ({ obj := fun X => colimit (J.diagram P X.unop),
              map := fun {X Y} f =>
                colimMap (J.diagramPullback P f.unop) ≫ colimit.pre (J.diagram P Y.unop) (J.pullback f.unop).op,
              map_id := ⋯, map_comp := ⋯ }.obj
          x✝)

tactic: dsimp
state_before: case w.h.w
C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
P✝ : Cᵒᵖ ⥤ D
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P : Cᵒᵖ ⥤ D
x✝ : Cᵒᵖ
j✝ : (J.Cover x✝.unop)ᵒᵖ
⊢ colimit.ι (J.diagram P x✝.unop) j✝ ≫ colimMap (𝟙 (J.diagram P x✝.unop)) =
    colimit.ι (J.diagram P x✝.unop) j✝ ≫
      𝟙
        ({ obj := fun X => colimit (J.diagram P X.unop),
              map := fun {X Y} f =>
                colimMap (J.diagramPullback P f.unop) ≫ colimit.pre (J.diagram P Y.unop) (J.pullback f.unop).op,
              map_id := ⋯, map_comp := ⋯ }.obj
          x✝)
state_after: case w.h.w
C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
P✝ : Cᵒᵖ ⥤ D
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P : Cᵒᵖ ⥤ D
x✝ : Cᵒᵖ
j✝ : (J.Cover x✝.unop)ᵒᵖ
⊢ colimit.ι (J.diagram P x✝.unop) j✝ ≫ colimMap (𝟙 (J.diagram P x✝.unop)) =
    colimit.ι (J.diagram P x✝.unop) j✝ ≫ 𝟙 (colimit (J.diagram P x✝.unop))

tactic: simp
state_before: case w.h.w
C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
P✝ : Cᵒᵖ ⥤ D
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P : Cᵒᵖ ⥤ D
x✝ : Cᵒᵖ
j✝ : (J.Cover x✝.unop)ᵒᵖ
⊢ colimit.ι (J.diagram P x✝.unop) j✝ ≫ colimMap (𝟙 (J.diagram P x✝.unop)) =
    colimit.ι (J.diagram P x✝.unop) j✝ ≫ 𝟙 (colimit (J.diagram P x✝.unop))
state_after: no goals