/-- Witness that the limit cone in `SemiRingCat` is a limit cone.
(Internal use only; use the limits API.)
-/
def limitConeIsLimit (F : J ⥤ SemiRingCatMax.{v, u}) : IsLimit (limitCone F) := by
  refine IsLimit.ofFaithful (forget SemiRingCatMax.{v, u}) (Types.limitConeIsLimit.{v, u} _)
    (fun s : Cone F => ofHom
      { toFun := _
        map_one' := Subtype.ext <| funext fun j => by exact (s.π.app j).map_one
        map_mul' := fun x y => Subtype.ext <| funext fun j => by exact (s.π.app j).map_mul x y
        map_zero' := Subtype.ext <| funext fun j => by exact (s.π.app j).map_zero
        map_add' := fun x y => Subtype.ext <| funext fun j => by 

Proof state:
J : Type v
inst✝ : SmallCategory J
F : J ⥤ SemiRingCatMax
s : Cone F
x y : ↑s.1
j : J
⊢ ↑(OneHom.toFun
          (↑{
              toOneHom :=
                {
                  toFun := fun v =>
                    { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j v,
                      property :=
                        (_ :
                          ∀ {j j' : J} (f : j ⟶ j'),
                            (((forget SemiRingCatMax).mapCone s).π.app j ≫ (F ⋙ forget SemiRingCatMax).map f) v =
                              ((forget SemiRingCatMax).mapCone s).π.app j' v) },
                  map_one' :=
                    (_ :
                      { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j 1,
                          property :=
                            (_ :
                              ∀ {j j' : J} (f : j ⟶ j'),
                                (((forget SemiRingCatMax).mapCone s).π.app j ≫ (F ⋙ forget SemiRingCatMax).map f) 1 =
                                  ((forget SemiRingCatMax).mapCone s).π.app j' 1) } =
                        1) },
              map_mul' :=
                (_ :
                  ∀ (x y : ↑s.1),
                    OneHom.toFun
                        {
                          toFun := fun v =>
                            { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j v,
                              property :=
                                (_ :
                                  ∀ {j j' : J} (f : j ⟶ j'),
                                    (((forget SemiRingCatMax).mapCone s).π.app j ≫ (F ⋙ forget SemiRingCatMax).map f)
                                        v =
                                      ((forget SemiRingCatMax).mapCone s).π.app j' v) },
                          map_one' :=
                            (_ :
                              { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j 1,
                                  property :=
                                    (_ :
                                      ∀ {j j' : J} (f : j ⟶ j'),
                                        (((forget SemiRingCatMax).mapCone s).π.app j ≫
                                              (F ⋙ forget SemiRingCatMax).map f)
                                            1 =
                                          ((forget SemiRingCatMax).mapCone s).π.app j' 1) } =
                                1) }
                        (x * y) =
                      OneHom.toFun
                          {
                            toFun := fun v =>
                              { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j v,
                                property :=
                                  (_ :
                                    ∀ {j j' : J} (f : j ⟶ j'),
                                      (((forget SemiRingCatMax).mapCone s).π.app j ≫ (F ⋙ forget SemiRingCatMax).map f)
                                          v =
                                        ((forget SemiRingCatMax).mapCone s).π.app j' v) },
                            map_one' :=
                              (_ :
                                { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j 1,
                                    property :=
                                      (_ :
                                        ∀ {j j' : J} (f : j ⟶ j'),
                                          (((forget SemiRingCatMax).mapCone s).π.app j ≫
                                                (F ⋙ forget SemiRingCatMax).map f)
                                              1 =
                                            ((forget SemiRingCatMax).mapCone s).π.app j' 1) } =
                                  1) }
                          x *
                        OneHom.toFun
                          {
                            toFun := fun v =>
                              { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j v,
                                property :=
                                  (_ :
                                    ∀ {j j' : J} (f : j ⟶ j'),
                                      (((forget SemiRingCatMax).mapCone s).π.app j ≫ (F ⋙ forget SemiRingCatMax).map f)
                                          v =
                                        ((forget SemiRingCatMax).mapCone s).π.app j' v) },
                            map_one' :=
                              (_ :
                                { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j 1,
                                    property :=
                                      (_ :
                                        ∀ {j j' : J} (f : j ⟶ j'),
                                          (((forget SemiRingCatMax).mapCone s).π.app j ≫
                                                (F ⋙ forget SemiRingCatMax).map f)
                                              1 =
                                            ((forget SemiRingCatMax).mapCone s).π.app j' 1) } =
                                  1) }
                          y) })
          (x + y))
      j =
    ↑(OneHom.toFun
            (↑{
                toOneHom :=
                  {
                    toFun := fun v =>
                      { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j v,
                        property :=
                          (_ :
                            ∀ {j j' : J} (f : j ⟶ j'),
                              (((forget SemiRingCatMax).mapCone s).π.app j ≫ (F ⋙ forget SemiRingCatMax).map f) v =
                                ((forget SemiRingCatMax).mapCone s).π.app j' v) },
                    map_one' :=
                      (_ :
                        { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j 1,
                            property :=
                              (_ :
                                ∀ {j j' : J} (f : j ⟶ j'),
                                  (((forget SemiRingCatMax).mapCone s).π.app j ≫ (F ⋙ forget SemiRingCatMax).map f) 1 =
                                    ((forget SemiRingCatMax).mapCone s).π.app j' 1) } =
                          1) },
                map_mul' :=
                  (_ :
                    ∀ (x y : ↑s.1),
                      OneHom.toFun
                          {
                            toFun := fun v =>
                              { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j v,
                                property :=
                                  (_ :
                                    ∀ {j j' : J} (f : j ⟶ j'),
                                      (((forget SemiRingCatMax).mapCone s).π.app j ≫ (F ⋙ forget SemiRingCatMax).map f)
                                          v =
                                        ((forget SemiRingCatMax).mapCone s).π.app j' v) },
                            map_one' :=
                              (_ :
                                { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j 1,
                                    property :=
                                      (_ :
                                        ∀ {j j' : J} (f : j ⟶ j'),
                                          (((forget SemiRingCatMax).mapCone s).π.app j ≫
                                                (F ⋙ forget SemiRingCatMax).map f)
                                              1 =
                                            ((forget SemiRingCatMax).mapCone s).π.app j' 1) } =
                                  1) }
                          (x * y) =
                        OneHom.toFun
                            {
                              toFun := fun v =>
                                { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j v,
                                  property :=
                                    (_ :
                                      ∀ {j j' : J} (f : j ⟶ j'),
                                        (((forget SemiRingCatMax).mapCone s).π.app j ≫
                                              (F ⋙ forget SemiRingCatMax).map f)
                                            v =
                                          ((forget SemiRingCatMax).mapCone s).π.app j' v) },
                              map_one' :=
                                (_ :
                                  { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j 1,
                                      property :=
                                        (_ :
                                          ∀ {j j' : J} (f : j ⟶ j'),
                                            (((forget SemiRingCatMax).mapCone s).π.app j ≫
                                                  (F ⋙ forget SemiRingCatMax).map f)
                                                1 =
                                              ((forget SemiRingCatMax).mapCone s).π.app j' 1) } =
                                    1) }
                            x *
                          OneHom.toFun
                            {
                              toFun := fun v =>
                                { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j v,
                                  property :=
                                    (_ :
                                      ∀ {j j' : J} (f : j ⟶ j'),
                                        (((forget SemiRingCatMax).mapCone s).π.app j ≫
                                              (F ⋙ forget SemiRingCatMax).map f)
                                            v =
                                          ((forget SemiRingCatMax).mapCone s).π.app j' v) },
                              map_one' :=
                                (_ :
                                  { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j 1,
                                      property :=
                                        (_ :
                                          ∀ {j j' : J} (f : j ⟶ j'),
                                            (((forget SemiRingCatMax).mapCone s).π.app j ≫
                                                  (F ⋙ forget SemiRingCatMax).map f)
                                                1 =
                                              ((forget SemiRingCatMax).mapCone s).π.app j' 1) } =
                                    1) }
                            y) })
            x +
          OneHom.toFun
            (↑{
                toOneHom :=
                  {
                    toFun := fun v =>
                      { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j v,
                        property :=
                          (_ :
                            ∀ {j j' : J} (f : j ⟶ j'),
                              (((forget SemiRingCatMax).mapCone s).π.app j ≫ (F ⋙ forget SemiRingCatMax).map f) v =
                                ((forget SemiRingCatMax).mapCone s).π.app j' v) },
                    map_one' :=
                      (_ :
                        { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j 1,
                            property :=
                              (_ :
                                ∀ {j j' : J} (f : j ⟶ j'),
                                  (((forget SemiRingCatMax).mapCone s).π.app j ≫ (F ⋙ forget SemiRingCatMax).map f) 1 =
                                    ((forget SemiRingCatMax).mapCone s).π.app j' 1) } =
                          1) },
                map_mul' :=
                  (_ :
                    ∀ (x y : ↑s.1),
                      OneHom.toFun
                          {
                            toFun := fun v =>
                              { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j v,
                                property :=
                                  (_ :
                                    ∀ {j j' : J} (f : j ⟶ j'),
                                      (((forget SemiRingCatMax).mapCone s).π.app j ≫ (F ⋙ forget SemiRingCatMax).map f)
                                          v =
                                        ((forget SemiRingCatMax).mapCone s).π.app j' v) },
                            map_one' :=
                              (_ :
                                { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j 1,
                                    property :=
                                      (_ :
                                        ∀ {j j' : J} (f : j ⟶ j'),
                                          (((forget SemiRingCatMax).mapCone s).π.app j ≫
                                                (F ⋙ forget SemiRingCatMax).map f)
                                              1 =
                                            ((forget SemiRingCatMax).mapCone s).π.app j' 1) } =
                                  1) }
                          (x * y) =
                        OneHom.toFun
                            {
                              toFun := fun v =>
                                { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j v,
                                  property :=
                                    (_ :
                                      ∀ {j j' : J} (f : j ⟶ j'),
                                        (((forget SemiRingCatMax).mapCone s).π.app j ≫
                                              (F ⋙ forget SemiRingCatMax).map f)
                                            v =
                                          ((forget SemiRingCatMax).mapCone s).π.app j' v) },
                              map_one' :=
                                (_ :
                                  { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j 1,
                                      property :=
                                        (_ :
                                          ∀ {j j' : J} (f : j ⟶ j'),
                                            (((forget SemiRingCatMax).mapCone s).π.app j ≫
                                                  (F ⋙ forget SemiRingCatMax).map f)
                                                1 =
                                              ((forget SemiRingCatMax).mapCone s).π.app j' 1) } =
                                    1) }
                            x *
                          OneHom.toFun
                            {
                              toFun := fun v =>
                                { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j v,
                                  property :=
                                    (_ :
                                      ∀ {j j' : J} (f : j ⟶ j'),
                                        (((forget SemiRingCatMax).mapCone s).π.app j ≫
                                              (F ⋙ forget SemiRingCatMax).map f)
                                            v =
                                          ((forget SemiRingCatMax).mapCone s).π.app j' v) },
                              map_one' :=
                                (_ :
                                  { val := fun j => ((forget SemiRingCatMax).mapCone s).π.app j 1,
                                      property :=
                                        (_ :
                                          ∀ {j j' : J} (f : j ⟶ j'),
                                            (((forget SemiRingCatMax).mapCone s).π.app j ≫
                                                  (F ⋙ forget SemiRingCatMax).map f)
                                                1 =
                                              ((forget SemiRingCatMax).mapCone s).π.app j' 1) } =
                                    1) }
                            y) })
            y)
      j

Next tactic:
exact (s.π.app j).map_add x y