/-- Witness that the limit cone in `AlgebraCat R` is a limit cone.
(Internal use only; use the limits API.)
-/
def limitConeIsLimit (F : J ⥤ AlgebraCatMax.{v, w} R) : IsLimit (limitCone.{v, w} F) := by
  refine'
    IsLimit.ofFaithful (forget (AlgebraCat R)) (Types.limitConeIsLimit.{v, w} _)
      -- Porting note: in mathlib3 the function term
      -- `fun v => ⟨fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v`
      -- was provided by unification, and the last argument `(fun s => _)` was `(fun s => rfl)`.
      (fun s => ⟨⟨⟨⟨fun v => ⟨fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v, _⟩,
         _⟩, _⟩, _, _⟩, _⟩)
      (fun s => _)
  · intro j j' f
    exact FunLike.congr_fun (Cone.w s f) v
  · -- Porting note: we could add a custom `ext` lemma here.
    apply Subtype.ext
    ext j
    simp only [Functor.comp_obj, Functor.mapCone_pt, Functor.mapCone_π_app,
      forget_map_eq_coe]
    -- This used to be as below but we need `erw` after leanprover/lean4#2644
    -- simp [forget_map_eq_coe, AlgHom.map_one, Functor.mapCone_π_app]
    erw [map_one]
    rfl
  · intro x y
    apply Subtype.ext
    ext j
    simp only [Functor.comp_obj, Functor.mapCone_pt, Functor.mapCone_π_app,
      forget_map_eq_coe]
    -- This used to be as below, but we need `erw` after leanprover/lean4#2644
    -- simp [forget_map_eq_coe, AlgHom.map_mul, Functor.mapCone_π_app]
    erw [map_mul]
    rfl
  · simp only [Functor.comp_obj, Functor.mapCone_pt, Functor.mapCone_π_app,
      forget_map_eq_coe]
    -- The below `simp` was enough before leanprover/lean4#2644
    -- simp [forget_map_eq_coe, AlgHom.map_zero, Functor.mapCone_π_app]
    apply Subtype.ext
    dsimp
    funext u
    erw [map_zero]
    rfl
  · intro x y
    simp only [Functor.comp_obj, Functor.mapCone_pt, Functor.mapCone_π_app,
      forget_map_eq_coe]
    -- The below `simp` was enough before leanprover/lean4#2644
    -- simp [forget_map_eq_coe, AlgHom.map_add, Functor.mapCone_π_app]
    apply Subtype.ext
    dsimp
    funext u
    erw [map_add]
    rfl
  · intro r
    

Proof state:
case refine'_6
R : Type u
inst✝¹ : CommRing R
J : Type v
inst✝ : SmallCategory J
F : J ⥤ AlgebraCatMax R
s : Cone F
r : R
⊢ OneHom.toFun
      (↑↑{
            toMonoidHom :=
              {
                toOneHom :=
                  {
                    toFun := fun v =>
                      { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                        property := (_ : ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                    map_one' :=
                      (_ :
                        (fun v =>
                              { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                property := (_ : ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                            1 =
                          1) },
                map_mul' :=
                  (_ :
                    ∀ (x y : ↑s.pt),
                      OneHom.toFun
                          {
                            toFun := fun v =>
                              { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                property := (_ : ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                            map_one' :=
                              (_ :
                                (fun v =>
                                      { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                        property :=
                                          (_ : ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                                    1 =
                                  1) }
                          (x * y) =
                        OneHom.toFun
                            {
                              toFun := fun v =>
                                { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                  property :=
                                    (_ : ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                              map_one' :=
                                (_ :
                                  (fun v =>
                                        { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                          property :=
                                            (_ : ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                                      1 =
                                    1) }
                            x *
                          OneHom.toFun
                            {
                              toFun := fun v =>
                                { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                  property :=
                                    (_ : ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                              map_one' :=
                                (_ :
                                  (fun v =>
                                        { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                          property :=
                                            (_ : ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                                      1 =
                                    1) }
                            y) },
            map_zero' :=
              (_ :
                OneHom.toFun
                    (↑{
                        toOneHom :=
                          {
                            toFun := fun v =>
                              { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                property := (_ : ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                            map_one' :=
                              (_ :
                                (fun v =>
                                      { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                        property :=
                                          (_ : ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                                    1 =
                                  1) },
                        map_mul' :=
                          (_ :
                            ∀ (x y : ↑s.pt),
                              OneHom.toFun
                                  {
                                    toFun := fun v =>
                                      { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                        property :=
                                          (_ : ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                                    map_one' :=
                                      (_ :
                                        (fun v =>
                                              { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                                property :=
                                                  (_ :
                                                    ∀ {j j' : J} (f : j ⟶ j'),
                                                      (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                                            1 =
                                          1) }
                                  (x * y) =
                                OneHom.toFun
                                    {
                                      toFun := fun v =>
                                        { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                          property :=
                                            (_ : ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                                      map_one' :=
                                        (_ :
                                          (fun v =>
                                                { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                                  property :=
                                                    (_ :
                                                      ∀ {j j' : J} (f : j ⟶ j'),
                                                        (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                                              1 =
                                            1) }
                                    x *
                                  OneHom.toFun
                                    {
                                      toFun := fun v =>
                                        { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                          property :=
                                            (_ : ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                                      map_one' :=
                                        (_ :
                                          (fun v =>
                                                { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                                  property :=
                                                    (_ :
                                                      ∀ {j j' : J} (f : j ⟶ j'),
                                                        (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                                              1 =
                                            1) }
                                    y) })
                    0 =
                  0),
            map_add' :=
              (_ :
                ∀ (x y : ↑s.pt),
                  OneHom.toFun
                      (↑{
                          toOneHom :=
                            {
                              toFun := fun v =>
                                { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                  property :=
                                    (_ : ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                              map_one' :=
                                (_ :
                                  (fun v =>
                                        { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                          property :=
                                            (_ : ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                                      1 =
                                    1) },
                          map_mul' :=
                            (_ :
                              ∀ (x y : ↑s.pt),
                                OneHom.toFun
                                    {
                                      toFun := fun v =>
                                        { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                          property :=
                                            (_ : ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                                      map_one' :=
                                        (_ :
                                          (fun v =>
                                                { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                                  property :=
                                                    (_ :
                                                      ∀ {j j' : J} (f : j ⟶ j'),
                                                        (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                                              1 =
                                            1) }
                                    (x * y) =
                                  OneHom.toFun
                                      {
                                        toFun := fun v =>
                                          { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                            property :=
                                              (_ :
                                                ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                                        map_one' :=
                                          (_ :
                                            (fun v =>
                                                  { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                                    property :=
                                                      (_ :
                                                        ∀ {j j' : J} (f : j ⟶ j'),
                                                          (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                                                1 =
                                              1) }
                                      x *
                                    OneHom.toFun
                                      {
                                        toFun := fun v =>
                                          { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                            property :=
                                              (_ :
                                                ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                                        map_one' :=
                                          (_ :
                                            (fun v =>
                                                  { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                                    property :=
                                                      (_ :
                                                        ∀ {j j' : J} (f : j ⟶ j'),
                                                          (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                                                1 =
                                              1) }
                                      y) })
                      (x + y) =
                    OneHom.toFun
                        (↑{
                            toOneHom :=
                              {
                                toFun := fun v =>
                                  { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                    property :=
                                      (_ : ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                                map_one' :=
                                  (_ :
                                    (fun v =>
                                          { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                            property :=
                                              (_ :
                                                ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                                        1 =
                                      1) },
                            map_mul' :=
                              (_ :
                                ∀ (x y : ↑s.pt),
                                  OneHom.toFun
                                      {
                                        toFun := fun v =>
                                          { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                            property :=
                                              (_ :
                                                ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                                        map_one' :=
                                          (_ :
                                            (fun v =>
                                                  { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                                    property :=
                                                      (_ :
                                                        ∀ {j j' : J} (f : j ⟶ j'),
                                                          (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                                                1 =
                                              1) }
                                      (x * y) =
                                    OneHom.toFun
                                        {
                                          toFun := fun v =>
                                            { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                              property :=
                                                (_ :
                                                  ∀ {j j' : J} (f : j ⟶ j'),
                                                    (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                                          map_one' :=
                                            (_ :
                                              (fun v =>
                                                    { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                                      property :=
                                                        (_ :
                                                          ∀ {j j' : J} (f : j ⟶ j'),
                                                            (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                                                  1 =
                                                1) }
                                        x *
                                      OneHom.toFun
                                        {
                                          toFun := fun v =>
                                            { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                              property :=
                                                (_ :
                                                  ∀ {j j' : J} (f : j ⟶ j'),
                                                    (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                                          map_one' :=
                                            (_ :
                                              (fun v =>
                                                    { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                                      property :=
                                                        (_ :
                                                          ∀ {j j' : J} (f : j ⟶ j'),
                                                            (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                                                  1 =
                                                1) }
                                        y) })
                        x +
                      OneHom.toFun
                        (↑{
                            toOneHom :=
                              {
                                toFun := fun v =>
                                  { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                    property :=
                                      (_ : ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                                map_one' :=
                                  (_ :
                                    (fun v =>
                                          { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                            property :=
                                              (_ :
                                                ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                                        1 =
                                      1) },
                            map_mul' :=
                              (_ :
                                ∀ (x y : ↑s.pt),
                                  OneHom.toFun
                                      {
                                        toFun := fun v =>
                                          { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                            property :=
                                              (_ :
                                                ∀ {j j' : J} (f : j ⟶ j'), (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                                        map_one' :=
                                          (_ :
                                            (fun v =>
                                                  { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                                    property :=
                                                      (_ :
                                                        ∀ {j j' : J} (f : j ⟶ j'),
                                                          (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                                                1 =
                                              1) }
                                      (x * y) =
                                    OneHom.toFun
                                        {
                                          toFun := fun v =>
                                            { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                              property :=
                                                (_ :
                                                  ∀ {j j' : J} (f : j ⟶ j'),
                                                    (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                                          map_one' :=
                                            (_ :
                                              (fun v =>
                                                    { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                                      property :=
                                                        (_ :
                                                          ∀ {j j' : J} (f : j ⟶ j'),
                                                            (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                                                  1 =
                                                1) }
                                        x *
                                      OneHom.toFun
                                        {
                                          toFun := fun v =>
                                            { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                              property :=
                                                (_ :
                                                  ∀ {j j' : J} (f : j ⟶ j'),
                                                    (s.π.app j ≫ F.map f) v = (s.π.app j') v) },
                                          map_one' :=
                                            (_ :
                                              (fun v =>
                                                    { val := fun j => ((forget (AlgebraCat R)).mapCone s).π.app j v,
                                                      property :=
                                                        (_ :
                                                          ∀ {j j' : J} (f : j ⟶ j'),
                                                            (s.π.app j ≫ F.map f) v = (s.π.app j') v) })
                                                  1 =
                                                1) }
                                        y) })
                        y) })
      ((algebraMap R ↑s.pt) r) =
    (algebraMap R ↑(limitCone F).pt) r

Next tactic:
apply Subtype.ext