/-- Auxiliary definition for `AlgebraicGeometry.PresheafedSpace.colimitCoconeIsColimit`.
-/
def descCApp (F : J ⥤ PresheafedSpace.{_, _, v} C) (s : Cocone F) (U : (Opens s.pt.carrier)ᵒᵖ) :
    s.pt.presheaf.obj U ⟶
      (colimit.desc (F ⋙ PresheafedSpace.forget C) ((PresheafedSpace.forget C).mapCocone s) _*
            limit (pushforwardDiagramToColimit F).leftOp).obj
        U := by
  refine'
    limit.lift _
        { pt := s.pt.presheaf.obj U
          π :=
            { app := fun j => _
              naturality := fun j j' f => _ } } ≫
      (limitObjIsoLimitCompEvaluation _ _).inv
  -- We still need to construct the `app` and `naturality'` fields omitted above.
  · refine' (s.ι.app (unop j)).c.app U ≫ (F.obj (unop j)).presheaf.map (eqToHom _)
    dsimp
    rw [← Opens.map_comp_obj]
    simp
  · dsimp
    rw [PresheafedSpace.congr_app (s.w f.unop).symm U]
    have w :=
      Functor.congr_obj
        (congr_arg Opens.map (colimit.ι_desc ((PresheafedSpace.forget C).mapCocone s) (unop j)))
        (unop U)
    simp only [Opens.map_comp_obj_unop] at w
    replace w := congr_arg op w
    have w' := NatTrans.congr (F.map f.unop).c w
    rw [w']
    

Proof state:
case refine'_2
J : Type u'
inst✝⁴ : Category.{v', u'} J
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasColimitsOfShape J TopCat
inst✝¹ : ∀ (X : TopCat), HasLimitsOfShape Jᵒᵖ (Presheaf C X)
inst✝ : HasLimitsOfShape Jᵒᵖ C
F : J ⥤ PresheafedSpace C
s : Cocone F
U : (Opens ↑↑s.pt)ᵒᵖ
j j' : Jᵒᵖ
f : j ⟶ j'
w :
  op
      ((Opens.map (colimit.ι (F ⋙ forget C) j.unop)).obj
        ((Opens.map (colimit.desc (F ⋙ forget C) ((forget C).mapCocone s))).obj U.unop)) =
    op ((Opens.map (((forget C).mapCocone s).ι.app j.unop)).obj U.unop)
w' :
  (F.map f.unop).c.app
      (op
        ((Opens.map (colimit.ι (F ⋙ forget C) j.unop)).obj
          ((Opens.map (colimit.desc (F ⋙ forget C) ((forget C).mapCocone s))).obj U.unop))) =
    (F.obj j.unop).presheaf.map (eqToHom w) ≫
      (F.map f.unop).c.app (op ((Opens.map (((forget C).mapCocone s).ι.app j.unop)).obj U.unop)) ≫
        ((F.map f.unop).base _* (F.obj j'.unop).presheaf).map
          (eqToHom
            (_ :
              op ((Opens.map (((forget C).mapCocone s).ι.app j.unop)).obj U.unop) =
                op
                  ((Opens.map (colimit.ι (F ⋙ forget C) j.unop)).obj
                    ((Opens.map (colimit.desc (F ⋙ forget C) ((forget C).mapCocone s))).obj U.unop))))
⊢ 𝟙 (s.pt.presheaf.obj U) ≫
      ((F.map f.unop ≫ s.ι.app j.unop).c.app U ≫
          (F.obj j'.unop).presheaf.map
            (eqToHom
              (_ :
                (Opens.map (F.map f.unop ≫ s.ι.app j.unop).base).op.obj U =
                  (Opens.map (s.ι.app j'.unop).base).op.obj U))) ≫
        (F.obj j'.unop).presheaf.map
          (eqToHom
            (_ :
              op ((Opens.map (s.ι.app j'.unop).base).obj U.unop) =
                op
                  ((Opens.map (colimit.ι (F ⋙ forget C) j'.unop)).obj
                    ((Opens.map (colimit.desc (F ⋙ forget C) ((forget C).mapCocone s))).obj U.unop)))) =
    ((s.ι.app j.unop).c.app U ≫
        (F.obj j.unop).presheaf.map
          (eqToHom
            (_ :
              op ((Opens.map (s.ι.app j.unop).base).obj U.unop) =
                op
                  ((Opens.map (colimit.ι (F ⋙ forget C) j.unop)).obj
                    ((Opens.map (colimit.desc (F ⋙ forget C) ((forget C).mapCocone s))).obj U.unop))))) ≫
      ((F.obj j.unop).presheaf.map (eqToHom w) ≫
          (F.map f.unop).c.app (op ((Opens.map (((forget C).mapCocone s).ι.app j.unop)).obj U.unop)) ≫
            ((F.map f.unop).base _* (F.obj j'.unop).presheaf).map
              (eqToHom
                (_ :
                  op ((Opens.map (((forget C).mapCocone s).ι.app j.unop)).obj U.unop) =
                    op
                      ((Opens.map (colimit.ι (F ⋙ forget C) j.unop)).obj
                        ((Opens.map (colimit.desc (F ⋙ forget C) ((forget C).mapCocone s))).obj U.unop))))) ≫
        (Pushforward.comp (F.obj j'.unop).presheaf (F.map f.unop).base (colimit.ι (F ⋙ forget C) j.unop)).inv.app
            (op ((Opens.map (colimit.desc (F ⋙ forget C) ((forget C).mapCocone s))).obj U.unop)) ≫
          (pushforwardEq
                  (_ : (F ⋙ forget C).map f.unop ≫ colimit.ι (F ⋙ forget C) j.unop = colimit.ι (F ⋙ forget C) j'.unop)
                  (F.obj j'.unop).presheaf).hom.app
            (op ((Opens.map (colimit.desc (F ⋙ forget C) ((forget C).mapCocone s))).obj U.unop))

Next tactic:
simp