Metamath Proof Explorer


Theorem idfudiag1

Description: If the identity functor of a category is the same as a constant functor to the category, then the category is terminal. (Contributed by Zhi Wang, 19-Oct-2025)

Ref Expression
Hypotheses idfudiag1.i I = id func C
idfudiag1.l L = C Δ func C
idfudiag1.c φ C Cat
idfudiag1.b B = Base C
idfudiag1.x φ X B
idfudiag1.k K = 1 st L X
idfudiag1.e φ I = K
Assertion idfudiag1 Could not format assertion : No typesetting found for |- ( ph -> C e. TermCat ) with typecode |-

Proof

Step Hyp Ref Expression
1 idfudiag1.i I = id func C
2 idfudiag1.l L = C Δ func C
3 idfudiag1.c φ C Cat
4 idfudiag1.b B = Base C
5 idfudiag1.x φ X B
6 idfudiag1.k K = 1 st L X
7 idfudiag1.e φ I = K
8 4 a1i φ B = Base C
9 eqidd φ Hom C = Hom C
10 fveq2 p = y z Hom C p = Hom C y z
11 df-ov y Hom C z = Hom C y z
12 10 11 eqtr4di p = y z Hom C p = y Hom C z
13 12 reseq2d p = y z I Hom C p = I y Hom C z
14 13 mpompt p B × B I Hom C p = y B , z B I y Hom C z
15 14 a1i φ p B × B I Hom C p = y B , z B I y Hom C z
16 ovex y Hom C z V
17 resiexg y Hom C z V I y Hom C z V
18 16 17 mp1i φ y B z B I y Hom C z V
19 15 18 ovmpt4d φ y B z B y p B × B I Hom C p z = I y Hom C z
20 eqid Hom C = Hom C
21 1 4 3 20 idfuval φ I = I B p B × B I Hom C p
22 eqid Id C = Id C
23 2 3 3 4 5 6 4 20 22 diag1a φ K = B × X y B , z B y Hom C z × Id C X
24 7 21 23 3eqtr3d φ I B p B × B I Hom C p = B × X y B , z B y Hom C z × Id C X
25 4 fvexi B V
26 resiexg B V I B V
27 25 26 ax-mp I B V
28 25 25 xpex B × B V
29 28 mptex p B × B I Hom C p V
30 27 29 opth I B p B × B I Hom C p = B × X y B , z B y Hom C z × Id C X I B = B × X p B × B I Hom C p = y B , z B y Hom C z × Id C X
31 30 simprbi I B p B × B I Hom C p = B × X y B , z B y Hom C z × Id C X p B × B I Hom C p = y B , z B y Hom C z × Id C X
32 24 31 syl φ p B × B I Hom C p = y B , z B y Hom C z × Id C X
33 snex Id C X V
34 16 33 xpex y Hom C z × Id C X V
35 34 a1i φ y B z B y Hom C z × Id C X V
36 32 35 ovmpt4d φ y B z B y p B × B I Hom C p z = y Hom C z × Id C X
37 19 36 eqtr3d φ y B z B I y Hom C z = y Hom C z × Id C X
38 3 adantr φ y B z B C Cat
39 simprl φ y B z B y B
40 4 20 22 38 39 catidcl φ y B z B Id C y y Hom C y
41 1 2 3 4 5 6 7 idfudiag1bas φ B = X
42 41 adantr φ y B z B B = X
43 39 42 eleqtrd φ y B z B y X
44 elsni y X y = X
45 43 44 syl φ y B z B y = X
46 simprr φ y B z B z B
47 46 42 eleqtrd φ y B z B z X
48 elsni z X z = X
49 47 48 syl φ y B z B z = X
50 45 49 eqtr4d φ y B z B y = z
51 50 oveq2d φ y B z B y Hom C y = y Hom C z
52 40 51 eleqtrd φ y B z B Id C y y Hom C z
53 52 ne0d φ y B z B y Hom C z
54 37 53 idfudiag1lem φ y B z B y Hom C z = Id C X
55 mosn y Hom C z = Id C X * f f y Hom C z
56 54 55 syl φ y B z B * f f y Hom C z
57 8 9 56 3 isthincd φ C ThinCat
58 sneq x = X x = X
59 58 eqeq2d x = X B = x B = X
60 5 41 59 spcedv φ x B = x
61 4 istermc Could not format ( C e. TermCat <-> ( C e. ThinCat /\ E. x B = { x } ) ) : No typesetting found for |- ( C e. TermCat <-> ( C e. ThinCat /\ E. x B = { x } ) ) with typecode |-
62 57 60 61 sylanbrc Could not format ( ph -> C e. TermCat ) : No typesetting found for |- ( ph -> C e. TermCat ) with typecode |-