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

Proof state:
J : Type v
inst✝ : SmallCategory J
F : J ⥤ SemiRingCatMax
s : Cone F
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) })
          0)
      j =
    ↑0 j

Next tactic:
exact (s.π.app j).map_zero