Theorem: ModuleCat.HasColimit.coconePointSMul_apply
File: Mathlib/Algebra/Category/ModuleCat/Colimits.lean

Proof steps:
state_before: R : Type w
inst✝² : Ring R
J : Type u
inst✝¹ : Category.{v, u} J
F : J ⥤ ModuleCat R
inst✝ : HasColimit (F ⋙ forget₂ (ModuleCat R) AddCommGrp)
⊢ ∀ (j : J),
    colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j ≫
        (↑{ toFun := fun r => colimMap { app := fun j => (F.obj j).smul r, naturality := ⋯ }, map_one' := ⋯,
                map_mul' := ⋯ }).toFun
          0 =
      colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j ≫ 0
state_after: no goals
tactic: simp
state_before: R : Type w
inst✝² : Ring R
J : Type u
inst✝¹ : Category.{v, u} J
F : J ⥤ ModuleCat R
inst✝ : HasColimit (F ⋙ forget₂ (ModuleCat R) AddCommGrp)
⊢ ∀ (j : J),
    colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j ≫
        (fun r => colimMap { app := fun j => (F.obj j).smul r, naturality := ⋯ }) 1 =
      colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j ≫ 1
state_after: no goals
tactic: simp
state_before: R : Type w
inst✝² : Ring R
J : Type u
inst✝¹ : Category.{v, u} J
F : J ⥤ ModuleCat R
inst✝ : HasColimit (F ⋙ forget₂ (ModuleCat R) AddCommGrp)
r s : R
j : J
⊢ colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j ≫
      (↑{ toFun := fun r => colimMap { app := fun j => (F.obj j).smul r, naturality := ⋯ }, map_one' := ⋯,
              map_mul' := ⋯ }).toFun
        (r + s) =
    colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j ≫
      ((↑{ toFun := fun r => colimMap { app := fun j => (F.obj j).smul r, naturality := ⋯ }, map_one' := ⋯,
                map_mul' := ⋯ }).toFun
          r +
        (↑{ toFun := fun r => colimMap { app := fun j => (F.obj j).smul r, naturality := ⋯ }, map_one' := ⋯,
                map_mul' := ⋯ }).toFun
          s)
state_after: R : Type w
inst✝² : Ring R
J : Type u
inst✝¹ : Category.{v, u} J
F : J ⥤ ModuleCat R
inst✝ : HasColimit (F ⋙ forget₂ (ModuleCat R) AddCommGrp)
r s : R
j : J
⊢ ((F.obj j).smul r + (F.obj j).smul s) ≫ colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j =
    colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j ≫
      (colimMap { app := fun j => (F.obj j).smul r, naturality := ⋯ } +
        colimMap { app := fun j => (F.obj j).smul s, naturality := ⋯ })
tactic: simp only [Functor.comp_obj, forget₂_obj, map_add, ι_colimMap]
state_before: R : Type w
inst✝² : Ring R
J : Type u
inst✝¹ : Category.{v, u} J
F : J ⥤ ModuleCat R
inst✝ : HasColimit (F ⋙ forget₂ (ModuleCat R) AddCommGrp)
r s : R
j : J
⊢ ((F.obj j).smul r + (F.obj j).smul s) ≫ colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j =
    colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j ≫
      (colimMap { app := fun j => (F.obj j).smul r, naturality := ⋯ } +
        colimMap { app := fun j => (F.obj j).smul s, naturality := ⋯ })
state_after: R : Type w
inst✝² : Ring R
J : Type u
inst✝¹ : Category.{v, u} J
F : J ⥤ ModuleCat R
inst✝ : HasColimit (F ⋙ forget₂ (ModuleCat R) AddCommGrp)
r s : R
j : J
⊢ (F.obj j).smul r ≫ colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j +
      (F.obj j).smul s ≫ colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j =
    colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j ≫
        colimMap { app := fun j => (F.obj j).smul r, naturality := ⋯ } +
      colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j ≫
        colimMap { app := fun j => (F.obj j).smul s, naturality := ⋯ }
tactic: rw [Preadditive.add_comp, Preadditive.comp_add]
state_before: R : Type w
inst✝² : Ring R
J : Type u
inst✝¹ : Category.{v, u} J
F : J ⥤ ModuleCat R
inst✝ : HasColimit (F ⋙ forget₂ (ModuleCat R) AddCommGrp)
r s : R
j : J
⊢ (F.obj j).smul r ≫ colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j +
      (F.obj j).smul s ≫ colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j =
    colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j ≫
        colimMap { app := fun j => (F.obj j).smul r, naturality := ⋯ } +
      colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j ≫
        colimMap { app := fun j => (F.obj j).smul s, naturality := ⋯ }
state_after: no goals
tactic: simp only [ι_colimMap, Functor.comp_obj, forget₂_obj]
state_before: R : Type w
inst✝² : Ring R
J : Type u
inst✝¹ : Category.{v, u} J
F : J ⥤ ModuleCat R
inst✝ : HasColimit (F ⋙ forget₂ (ModuleCat R) AddCommGrp)
r s : R
j : J
⊢ colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j ≫
      { toFun := fun r => colimMap { app := fun j => (F.obj j).smul r, naturality := ⋯ }, map_one' := ⋯ }.toFun
        (r * s) =
    colimit.ι (F ⋙ forget₂ (ModuleCat R) AddCommGrp) j ≫
      ({ toFun := fun r => colimMap { app := fun j => (F.obj j).smul r, naturality := ⋯ }, map_one' := ⋯ }.toFun r *
        { toFun := fun r => colimMap { app := fun j => (F.obj j).smul r, naturality := ⋯ }, map_one' := ⋯ }.toFun s)
state_after: no goals
tactic: simp