/-- 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
  · 

Proof state:
case refine'_5
R : Type u
inst✝¹ : CommRing R
J : Type v
inst✝ : SmallCategory J
F : J ⥤ AlgebraCatMax R
s : Cone F
⊢ ∀ (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

Next tactic:
intro x y