-- Module: Mathlib.Geometry.RingedSpace.PresheafedSpace.HasColimits
Goal:
J : Type u'
inst : Category.{v', u'} J
C : Type u
inst_1 : Category.{v, u} C
inst_2 : HasColimitsOfShape.{v', u', v, v + 1} J TopCat
F : J ⥤ PresheafedSpace.{v, u, v} C
j₁ j₂ j₃ : J
f : j₁ ⟶ j₂
g : j₂ ⟶ j₃
U : (Opens (↑(colimit (F ⋙ forget C)) : Type v))ᵒᵖ
a :
  (F.map (f ≫ g)).c.app (op (obj (Opens.map (colimit.ι (F ⋙ forget C) j₃)) (unop U))) ≫
      𝟙
          ((F.obj j₁).presheaf.obj
            (op ((Opens.map (F.map (f ≫ g)).base).obj (obj (Opens.map (colimit.ι (F ⋙ forget C) j₃)) (unop U))))) ≫
        NatTrans.app (Iso.hom (pushforwardEq ⋯ (F.obj j₁).presheaf)) U =
    ((F.map g).c.app (op (obj (Opens.map (colimit.ι (F ⋙ forget C) j₃)) (unop U))) ≫
        𝟙
            ((F.obj j₂).presheaf.obj
              (op ((Opens.map (F.map g).base).obj (obj (Opens.map (colimit.ι (F ⋙ forget C) j₃)) (unop U))))) ≫
          NatTrans.app (Iso.hom (pushforwardEq ⋯ (F.obj j₂).presheaf)) U) ≫
      (F.map f).c.app (op (obj (Opens.map (colimit.ι (F ⋙ forget C) j₂)) (unop U))) ≫
        𝟙
            ((F.obj j₁).presheaf.obj
              (op ((Opens.map (F.map f).base).obj (obj (Opens.map (colimit.ι (F ⋙ forget C) j₂)) (unop U))))) ≫
          NatTrans.app (Iso.hom (pushforwardEq ⋯ (F.obj j₁).presheaf)) U
⊢ Eq (α :=
    obj (unop (op (obj (pushforward C (colimit.ι (F ⋙ forget C) j₃)) (F.obj j₃).presheaf))) U ⟶
      obj (unop (op (obj (pushforward C (colimit.ι (F ⋙ forget C) j₁)) (F.obj j₁).presheaf))) U)
    (NatTrans.app
      ((opEquiv (op (obj (pushforward C (colimit.ι (F ⋙ forget C) j₁)) (F.obj j₁).presheaf))
            (op (obj (pushforward C (colimit.ι (F ⋙ forget C) j₃)) (F.obj j₃).presheaf)) :
          (a :
              op ((pushforward C (colimit.ι (F ⋙ forget C) j₁)).obj (F.obj j₁).presheaf) ⟶
                op ((pushforward C (colimit.ι (F ⋙ forget C) j₃)).obj (F.obj j₃).presheaf)) →
            unop (op ((pushforward C (colimit.ι (F ⋙ forget C) j₃)).obj (F.obj j₃).presheaf)) ⟶
              unop (op ((pushforward C (colimit.ι (F ⋙ forget C) j₁)).obj (F.obj j₁).presheaf)))
        (Quiver.Hom.op
          (map (pushforward C (colimit.ι (F ⋙ forget C) j₃)) (F.map (f ≫ g)).c ≫
            Iso.inv (Pushforward.comp ((F ⋙ forget C).map (f ≫ g)) (colimit.ι (F ⋙ forget C) j₃) (F.obj j₁).presheaf) ≫
              Iso.hom (pushforwardEq ⋯ (F.obj j₁).presheaf))))
      U)
    (NatTrans.app
      ((opEquiv (op (obj (pushforward C (colimit.ι (F ⋙ forget C) j₁)) (F.obj j₁).presheaf))
            (op (obj (pushforward C (colimit.ι (F ⋙ forget C) j₃)) (F.obj j₃).presheaf)) :
          (a :
              op ((pushforward C (colimit.ι (F ⋙ forget C) j₁)).obj (F.obj j₁).presheaf) ⟶
                op ((pushforward C (colimit.ι (F ⋙ forget C) j₃)).obj (F.obj j₃).presheaf)) →
            unop (op ((pushforward C (colimit.ι (F ⋙ forget C) j₃)).obj (F.obj j₃).presheaf)) ⟶
              unop (op ((pushforward C (colimit.ι (F ⋙ forget C) j₁)).obj (F.obj j₁).presheaf)))
        (Quiver.Hom.op
            (map (pushforward C (colimit.ι (F ⋙ forget C) j₂)) (F.map f).c ≫
              Iso.inv (Pushforward.comp ((F ⋙ forget C).map f) (colimit.ι (F ⋙ forget C) j₂) (F.obj j₁).presheaf) ≫
                Iso.hom (pushforwardEq ⋯ (F.obj j₁).presheaf)) ≫
          Quiver.Hom.op
            (map (pushforward C (colimit.ι (F ⋙ forget C) j₃)) (F.map g).c ≫
              Iso.inv (Pushforward.comp ((F ⋙ forget C).map g) (colimit.ι (F ⋙ forget C) j₃) (F.obj j₂).presheaf) ≫
                Iso.hom (pushforwardEq ⋯ (F.obj j₂).presheaf))))
      U)

Tactic:
dsimp [opEquiv]

Premises used: CategoryTheory.opEquiv