-- Module: Mathlib.Algebra.Category.ModuleCat.Presheaf.ColimitFunctor
Goal:
C : Type u
inst : Category.{v, u} C
inst_1 : LocallySmall.{w, v, u} C
inst_2 : IsCofiltered.{v, u} C
inst_3 : InitiallySmall.{w, v, u} C
R : CategoryTheory.Functor.{v, w, u, w + 1} Cᵒᵖ RingCat
cR : Cocone R
hcR : IsColimit cR
M : PresheafOfModules R
cM : Cocone M.presheaf
hcM : IsColimit cM
N : ModuleCat (↑cR.pt : Type w)
α : ModuleColimit hcR hcM →+ (↑N : Type w)
h :
  ∀ (U : Cᵒᵖ) (r : (↑(R.obj U) : Type w)) (m : (↑(M.obj U) : Type w)),
    (@ConcreteCategory.hom _ AddCommGrpCat.instCategory
            (fun (x1 x2 : AddCommGrpCat.{w}) ↦ (↑x1 : Type w) →+ (↑x2 : Type w)) AddCommGrpCat.carrier _ _
            (M.presheaf.obj U) (AddCommGrpCat.of (↑N : Type w))
            (NatTrans.app
                ((homEquiv' hcR hcM :
                    (a : ModuleColimit hcR hcM →+ (↑N : Type w)) →
                      M.presheaf ⟶ (Functor.const Cᵒᵖ).obj (AddCommGrpCat.of (↑N : Type w)))
                  α)
                U :
              M.presheaf.obj U ⟶
                Functor.obj.{v, w, u, w + 1} (Functor.obj (Functor.const Cᵒᵖ) (AddCommGrpCat.of (↑N : Type w))) U) :
          (a : (↑(M.obj U) : Type w)) → (↑N : Type w))
        (r • m) =
      HSMul.hSMul (α := (↑cR.pt : Type w)) (β := (↑N : Type w))
        ((ConcreteCategory.hom (FC := fun (R S : RingCat.{w}) ↦ (↑R : Type w) →+* (↑S : Type w)) (CC := RingCat.carrier)
                (cR.ι.app U) :
              (a : (↑(R.obj U) : Type w)) → (↑cR.pt : Type w))
            r :
          (↑cR.pt : Type w))
        ((@ConcreteCategory.hom _ AddCommGrpCat.instCategory
                (fun (x1 x2 : AddCommGrpCat.{w}) ↦ (↑x1 : Type w) →+ (↑x2 : Type w)) AddCommGrpCat.carrier _ _
                (M.presheaf.obj U) (AddCommGrpCat.of (↑N : Type w))
                (NatTrans.app
                    ((homEquiv' hcR hcM :
                        (a : ModuleColimit hcR hcM →+ (↑N : Type w)) →
                          M.presheaf ⟶ (Functor.const Cᵒᵖ).obj (AddCommGrpCat.of (↑N : Type w)))
                      α)
                    U :
                  M.presheaf.obj U ⟶
                    Functor.obj.{v, w, u, w + 1} (Functor.obj (Functor.const Cᵒᵖ) (AddCommGrpCat.of (↑N : Type w))) U) :
              (a : (↑(M.obj U) : Type w)) → (↑N : Type w))
            m :
          (↑N : Type w))
r : (↑cR.pt : Type w)
m : ModuleColimit hcR hcM
refine_1 :
  ∀ (U : Cᵒᵖ) (r : (↑(R.obj U) : Type w)) (m : (↑(M.obj U) : Type w)),
    (α : (a : ModuleColimit hcR hcM) → (↑N : Type w))
        (HSMul.hSMul (α := (↑cR.pt : Type w)) (β := ModuleColimit hcR hcM)
          ((ιR cR : (a : (↑(R.obj U) : Type w)) → (↑cR.pt : Type w)) r : (↑cR.pt : Type w))
          ((ιM : (a : (↑(M.obj U) : Type w)) → ModuleColimit hcR hcM) m : ModuleColimit hcR hcM)) =
      HSMul.hSMul (α := (↑cR.pt : Type w)) (β := (↑N : Type w))
        ((ιR cR : (a : (↑(R.obj U) : Type w)) → (↑cR.pt : Type w)) r : (↑cR.pt : Type w))
        ((α : (a : ModuleColimit hcR hcM) → (↑N : Type w))
            ((ιM : (a : (↑(M.obj U) : Type w)) → ModuleColimit hcR hcM) m : ModuleColimit hcR hcM) :
          (↑N : Type w))
⊢ (α : (a : ModuleColimit hcR hcM) → (↑N : Type w)) (r • m) =
    HSMul.hSMul (β := (↑N : Type w)) r ((α : (a : ModuleColimit hcR hcM) → (↑N : Type w)) m : (↑N : Type w))

Tactic:
obtain ⟨U, r, m, rfl, rfl⟩ := jointly_surjective₂ r m

Premises used: PresheafOfModules.ModuleColimit.jointly_surjective₂, rfl