/-- The induced scalar multiplication on
`colimit (F ⋙ forget₂ _ AddCommGroupCat)`. -/
@[simps]
noncomputable def coconePointSMul :
    R →+* End (colimit (F ⋙ forget₂ _ AddCommGroupCat)) where
  toFun r := colimMap
    { app := fun j => (F.obj j).smul r
      naturality := fun X Y f => smul_naturality _ _ }
  map_zero' := colimit.hom_ext (by simp)
  map_one' := colimit.hom_ext (by simp)
  map_add' r s := colimit.hom_ext (fun j => by
    

Proof state:
R : Type w
inst✝² : Ring R
J : Type u
inst✝¹ : Category.{v, u} J
F : J ⥤ ModuleCat R
inst✝ : HasColimit (F ⋙ forget₂ (ModuleCat R) AddCommGroupCat)
r s : R
j : J
⊢ colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGroupCat) j ≫
      OneHom.toFun
        (↑{
            toOneHom :=
              { toFun := fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r),
                map_one' := (_ : (fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r)) 1 = 1) },
            map_mul' :=
              (_ :
                ∀ (r s : R),
                  OneHom.toFun
                      { toFun := fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r),
                        map_one' := (_ : (fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r)) 1 = 1) }
                      (r * s) =
                    OneHom.toFun
                        { toFun := fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r),
                          map_one' := (_ : (fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r)) 1 = 1) }
                        r *
                      OneHom.toFun
                        { toFun := fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r),
                          map_one' := (_ : (fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r)) 1 = 1) }
                        s) })
        (r + s) =
    colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGroupCat) j ≫
      (OneHom.toFun
          (↑{
              toOneHom :=
                { toFun := fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r),
                  map_one' := (_ : (fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r)) 1 = 1) },
              map_mul' :=
                (_ :
                  ∀ (r s : R),
                    OneHom.toFun
                        { toFun := fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r),
                          map_one' := (_ : (fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r)) 1 = 1) }
                        (r * s) =
                      OneHom.toFun
                          { toFun := fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r),
                            map_one' := (_ : (fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r)) 1 = 1) }
                          r *
                        OneHom.toFun
                          { toFun := fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r),
                            map_one' := (_ : (fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r)) 1 = 1) }
                          s) })
          r +
        OneHom.toFun
          (↑{
              toOneHom :=
                { toFun := fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r),
                  map_one' := (_ : (fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r)) 1 = 1) },
              map_mul' :=
                (_ :
                  ∀ (r s : R),
                    OneHom.toFun
                        { toFun := fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r),
                          map_one' := (_ : (fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r)) 1 = 1) }
                        (r * s) =
                      OneHom.toFun
                          { toFun := fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r),
                            map_one' := (_ : (fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r)) 1 = 1) }
                          r *
                        OneHom.toFun
                          { toFun := fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r),
                            map_one' := (_ : (fun r => colimMap (NatTrans.mk fun j => (smul (F.obj j)) r)) 1 = 1) }
                          s) })
          s)

Next tactic:
simp only [Functor.comp_obj, forget₂_obj, map_add, ι_colimMap]