Metamath Proof Explorer


Theorem isinito2lem

Description: The predicate "is an initial object" of a category, using universal property. (Contributed by Zhi Wang, 23-Oct-2025)

Ref Expression
Hypotheses isinito2.1 1 ˙ = SetCat 1 𝑜
isinito2.f F = 1 st 1 ˙ Δ func C
isinito2lem.c φ C Cat
isinito2lem.i φ I Base C
Assertion isinito2lem Could not format assertion : No typesetting found for |- ( ph -> ( I e. ( InitO ` C ) <-> I ( F ( C UP .1. ) (/) ) (/) ) ) with typecode |-

Proof

Step Hyp Ref Expression
1 isinito2.1 1 ˙ = SetCat 1 𝑜
2 isinito2.f F = 1 st 1 ˙ Δ func C
3 isinito2lem.c φ C Cat
4 isinito2lem.i φ I Base C
5 reutru ∃! f f I Hom C x ∃! f I Hom C x
6 0ex V
7 eqeq1 y = y = I 2 nd F x f 1 st F I 1 st F x = I 2 nd F x f 1 st F I 1 st F x
8 7 reubidv y = ∃! f I Hom C x y = I 2 nd F x f 1 st F I 1 st F x ∃! f I Hom C x = I 2 nd F x f 1 st F I 1 st F x
9 6 8 ralsn y ∃! f I Hom C x y = I 2 nd F x f 1 st F I 1 st F x ∃! f I Hom C x = I 2 nd F x f 1 st F I 1 st F x
10 eqid 1 ˙ Δ func C = 1 ˙ Δ func C
11 setc1oterm Could not format ( SetCat ` 1o ) e. TermCat : No typesetting found for |- ( SetCat ` 1o ) e. TermCat with typecode |-
12 1 11 eqeltri Could not format .1. e. TermCat : No typesetting found for |- .1. e. TermCat with typecode |-
13 12 a1i Could not format ( ph -> .1. e. TermCat ) : No typesetting found for |- ( ph -> .1. e. TermCat ) with typecode |-
14 13 termccd φ 1 ˙ Cat
15 1 setc1obas 1 𝑜 = Base 1 ˙
16 0lt1o 1 𝑜
17 16 a1i φ 1 𝑜
18 eqid Base C = Base C
19 10 14 3 15 17 2 18 4 diag11 φ 1 st F I =
20 19 adantr φ x Base C 1 st F I =
21 20 opeq2d φ x Base C 1 st F I =
22 14 adantr φ x Base C 1 ˙ Cat
23 3 adantr φ x Base C C Cat
24 16 a1i φ x Base C 1 𝑜
25 simpr φ x Base C x Base C
26 10 22 23 15 24 2 18 25 diag11 φ x Base C 1 st F x =
27 21 26 oveq12d φ x Base C 1 st F I 1 st F x =
28 snex V
29 28 ovsn2 =
30 27 29 eqtrdi φ x Base C 1 st F I 1 st F x =
31 30 adantr φ x Base C f I Hom C x 1 st F I 1 st F x =
32 12 a1i Could not format ( ( ( ph /\ x e. ( Base ` C ) ) /\ f e. ( I ( Hom ` C ) x ) ) -> .1. e. TermCat ) : No typesetting found for |- ( ( ( ph /\ x e. ( Base ` C ) ) /\ f e. ( I ( Hom ` C ) x ) ) -> .1. e. TermCat ) with typecode |-
33 32 termccd φ x Base C f I Hom C x 1 ˙ Cat
34 3 ad2antrr φ x Base C f I Hom C x C Cat
35 16 a1i φ x Base C f I Hom C x 1 𝑜
36 4 ad2antrr φ x Base C f I Hom C x I Base C
37 eqid Hom C = Hom C
38 eqid Id 1 ˙ = Id 1 ˙
39 simplr φ x Base C f I Hom C x x Base C
40 simpr φ x Base C f I Hom C x f I Hom C x
41 10 33 34 15 35 2 18 36 37 38 39 40 diag12 φ x Base C f I Hom C x I 2 nd F x f = Id 1 ˙
42 1 38 setc1oid Id 1 ˙ =
43 41 42 eqtrdi φ x Base C f I Hom C x I 2 nd F x f =
44 eqidd φ x Base C f I Hom C x =
45 31 43 44 oveq123d φ x Base C f I Hom C x I 2 nd F x f 1 st F I 1 st F x =
46 6 ovsn2 =
47 45 46 eqtr2di φ x Base C f I Hom C x = I 2 nd F x f 1 st F I 1 st F x
48 tbtru = I 2 nd F x f 1 st F I 1 st F x = I 2 nd F x f 1 st F I 1 st F x
49 47 48 sylib φ x Base C f I Hom C x = I 2 nd F x f 1 st F I 1 st F x
50 49 reubidva φ x Base C ∃! f I Hom C x = I 2 nd F x f 1 st F I 1 st F x ∃! f I Hom C x
51 9 50 bitr2id φ x Base C ∃! f I Hom C x y ∃! f I Hom C x y = I 2 nd F x f 1 st F I 1 st F x
52 26 oveq2d φ x Base C 1 𝑜 1 st F x = 1 𝑜
53 1oex 1 𝑜 V
54 53 ovsn2 1 𝑜 = 1 𝑜
55 df1o2 1 𝑜 =
56 54 55 eqtri 1 𝑜 =
57 52 56 eqtrdi φ x Base C 1 𝑜 1 st F x =
58 57 raleqdv φ x Base C y 1 𝑜 1 st F x ∃! f I Hom C x y = I 2 nd F x f 1 st F I 1 st F x y ∃! f I Hom C x y = I 2 nd F x f 1 st F I 1 st F x
59 51 58 bitr4d φ x Base C ∃! f I Hom C x y 1 𝑜 1 st F x ∃! f I Hom C x y = I 2 nd F x f 1 st F I 1 st F x
60 5 59 bitrid φ x Base C ∃! f f I Hom C x y 1 𝑜 1 st F x ∃! f I Hom C x y = I 2 nd F x f 1 st F I 1 st F x
61 60 ralbidva φ x Base C ∃! f f I Hom C x x Base C y 1 𝑜 1 st F x ∃! f I Hom C x y = I 2 nd F x f 1 st F I 1 st F x
62 18 37 3 4 isinito φ I InitO C x Base C ∃! f f I Hom C x
63 1 setc1ohomfval 1 𝑜 = Hom 1 ˙
64 1 setc1ocofval = comp 1 ˙
65 1 2 3 funcsetc1ocl φ F C Func 1 ˙
66 65 func1st2nd φ 1 st F C Func 1 ˙ 2 nd F
67 19 oveq2d φ 1 𝑜 1 st F I = 1 𝑜
68 67 54 eqtrdi φ 1 𝑜 1 st F I = 1 𝑜
69 16 68 eleqtrrid φ 1 𝑜 1 st F I
70 18 15 37 63 64 17 66 4 69 isup Could not format ( ph -> ( I ( <. ( 1st ` F ) , ( 2nd ` F ) >. ( C UP .1. ) (/) ) (/) <-> A. x e. ( Base ` C ) A. y e. ( (/) { <. (/) , (/) , 1o >. } ( ( 1st ` F ) ` x ) ) E! f e. ( I ( Hom ` C ) x ) y = ( ( ( I ( 2nd ` F ) x ) ` f ) ( <. (/) , ( ( 1st ` F ) ` I ) >. { <. <. (/) , (/) >. , (/) , { <. (/) , (/) , (/) >. } >. } ( ( 1st ` F ) ` x ) ) (/) ) ) ) : No typesetting found for |- ( ph -> ( I ( <. ( 1st ` F ) , ( 2nd ` F ) >. ( C UP .1. ) (/) ) (/) <-> A. x e. ( Base ` C ) A. y e. ( (/) { <. (/) , (/) , 1o >. } ( ( 1st ` F ) ` x ) ) E! f e. ( I ( Hom ` C ) x ) y = ( ( ( I ( 2nd ` F ) x ) ` f ) ( <. (/) , ( ( 1st ` F ) ` I ) >. { <. <. (/) , (/) >. , (/) , { <. (/) , (/) , (/) >. } >. } ( ( 1st ` F ) ` x ) ) (/) ) ) ) with typecode |-
71 61 62 70 3bitr4d Could not format ( ph -> ( I e. ( InitO ` C ) <-> I ( <. ( 1st ` F ) , ( 2nd ` F ) >. ( C UP .1. ) (/) ) (/) ) ) : No typesetting found for |- ( ph -> ( I e. ( InitO ` C ) <-> I ( <. ( 1st ` F ) , ( 2nd ` F ) >. ( C UP .1. ) (/) ) (/) ) ) with typecode |-
72 65 up1st2ndb Could not format ( ph -> ( I ( F ( C UP .1. ) (/) ) (/) <-> I ( <. ( 1st ` F ) , ( 2nd ` F ) >. ( C UP .1. ) (/) ) (/) ) ) : No typesetting found for |- ( ph -> ( I ( F ( C UP .1. ) (/) ) (/) <-> I ( <. ( 1st ` F ) , ( 2nd ` F ) >. ( C UP .1. ) (/) ) (/) ) ) with typecode |-
73 71 72 bitr4d Could not format ( ph -> ( I e. ( InitO ` C ) <-> I ( F ( C UP .1. ) (/) ) (/) ) ) : No typesetting found for |- ( ph -> ( I e. ( InitO ` C ) <-> I ( F ( C UP .1. ) (/) ) (/) ) ) with typecode |-