Metamath Proof Explorer


Theorem termolmd

Description: Terminal objects are the object part of limits of the empty diagram. (Contributed by Zhi Wang, 20-Nov-2025)

Ref Expression
Assertion termolmd Could not format assertion : No typesetting found for |- ( TermO ` C ) = dom ( (/) ( C Limit (/) ) (/) ) with typecode |-

Proof

Step Hyp Ref Expression
1 termorcl ⊢ x ∈ TermO ⁡ C → C ∈ Cat
2 vex ⊢ x ∈ V
3 2 eldm Could not format ( x e. dom ( ( C Limit (/) ) ` <. (/) , (/) >. ) <-> E. y x ( ( C Limit (/) ) ` <. (/) , (/) >. ) y ) : No typesetting found for |- ( x e. dom ( ( C Limit (/) ) ` <. (/) , (/) >. ) <-> E. y x ( ( C Limit (/) ) ` <. (/) , (/) >. ) y ) with typecode |-
4 df-br Could not format ( x ( ( C Limit (/) ) ` <. (/) , (/) >. ) y <-> <. x , y >. e. ( ( C Limit (/) ) ` <. (/) , (/) >. ) ) : No typesetting found for |- ( x ( ( C Limit (/) ) ` <. (/) , (/) >. ) y <-> <. x , y >. e. ( ( C Limit (/) ) ` <. (/) , (/) >. ) ) with typecode |-
5 lmdrcl Could not format ( <. x , y >. e. ( ( C Limit (/) ) ` <. (/) , (/) >. ) -> <. (/) , (/) >. e. ( (/) Func C ) ) : No typesetting found for |- ( <. x , y >. e. ( ( C Limit (/) ) ` <. (/) , (/) >. ) -> <. (/) , (/) >. e. ( (/) Func C ) ) with typecode |-
6 4 5 sylbi Could not format ( x ( ( C Limit (/) ) ` <. (/) , (/) >. ) y -> <. (/) , (/) >. e. ( (/) Func C ) ) : No typesetting found for |- ( x ( ( C Limit (/) ) ` <. (/) , (/) >. ) y -> <. (/) , (/) >. e. ( (/) Func C ) ) with typecode |-
7 6 func1st2nd Could not format ( x ( ( C Limit (/) ) ` <. (/) , (/) >. ) y -> ( 1st ` <. (/) , (/) >. ) ( (/) Func C ) ( 2nd ` <. (/) , (/) >. ) ) : No typesetting found for |- ( x ( ( C Limit (/) ) ` <. (/) , (/) >. ) y -> ( 1st ` <. (/) , (/) >. ) ( (/) Func C ) ( 2nd ` <. (/) , (/) >. ) ) with typecode |-
8 7 funcrcl3 Could not format ( x ( ( C Limit (/) ) ` <. (/) , (/) >. ) y -> C e. Cat ) : No typesetting found for |- ( x ( ( C Limit (/) ) ` <. (/) , (/) >. ) y -> C e. Cat ) with typecode |-
9 8 exlimiv Could not format ( E. y x ( ( C Limit (/) ) ` <. (/) , (/) >. ) y -> C e. Cat ) : No typesetting found for |- ( E. y x ( ( C Limit (/) ) ` <. (/) , (/) >. ) y -> C e. Cat ) with typecode |-
10 3 9 sylbi Could not format ( x e. dom ( ( C Limit (/) ) ` <. (/) , (/) >. ) -> C e. Cat ) : No typesetting found for |- ( x e. dom ( ( C Limit (/) ) ` <. (/) , (/) >. ) -> C e. Cat ) with typecode |-
11 initocmd Could not format ( InitO ` ( oppCat ` C ) ) = dom ( (/) ( ( oppCat ` C ) Colimit (/) ) (/) ) : No typesetting found for |- ( InitO ` ( oppCat ` C ) ) = dom ( (/) ( ( oppCat ` C ) Colimit (/) ) (/) ) with typecode |-
12 oppctermo ⊢ x ∈ TermO ⁡ C ↔ x ∈ InitO ⁡ oppCat ⁡ C
13 12 eqriv ⊢ TermO ⁡ C = InitO ⁡ oppCat ⁡ C
14 13 a1i ⊢ C ∈ Cat → TermO ⁡ C = InitO ⁡ oppCat ⁡ C
15 eqid ⊢ oppCat ⁡ C = oppCat ⁡ C
16 15 2oppchomf ⊢ Hom 𝑓 ⁡ C = Hom 𝑓 ⁡ oppCat ⁡ oppCat ⁡ C
17 16 a1i ⊢ C ∈ Cat → Hom 𝑓 ⁡ C = Hom 𝑓 ⁡ oppCat ⁡ oppCat ⁡ C
18 15 2oppccomf ⊢ comp 𝑓 ⁡ C = comp 𝑓 ⁡ oppCat ⁡ oppCat ⁡ C
19 18 a1i ⊢ C ∈ Cat → comp 𝑓 ⁡ C = comp 𝑓 ⁡ oppCat ⁡ oppCat ⁡ C
20 ral0 ⊢ ∀ x ∈ ∅ ∀ y ∈ ∅ x Hom ⁡ ∅ y = x Hom ⁡ oppCat ⁡ ∅ y
21 eqid ⊢ Hom ⁡ ∅ = Hom ⁡ ∅
22 eqid ⊢ Hom ⁡ oppCat ⁡ ∅ = Hom ⁡ oppCat ⁡ ∅
23 base0 ⊢ ∅ = Base ∅
24 23 a1i ⊢ C ∈ Cat → ∅ = Base ∅
25 eqid ⊢ oppCat ⁡ ∅ = oppCat ⁡ ∅
26 25 23 oppcbas ⊢ ∅ = Base oppCat ⁡ ∅
27 26 a1i ⊢ C ∈ Cat → ∅ = Base oppCat ⁡ ∅
28 21 22 24 27 homfeq ⊢ C ∈ Cat → Hom 𝑓 ⁡ ∅ = Hom 𝑓 ⁡ oppCat ⁡ ∅ ↔ ∀ x ∈ ∅ ∀ y ∈ ∅ x Hom ⁡ ∅ y = x Hom ⁡ oppCat ⁡ ∅ y
29 20 28 mpbiri ⊢ C ∈ Cat → Hom 𝑓 ⁡ ∅ = Hom 𝑓 ⁡ oppCat ⁡ ∅
30 ral0 ⊢ ∀ x ∈ ∅ ∀ y ∈ ∅ ∀ z ∈ ∅ ∀ f ∈ x Hom ⁡ ∅ y ∀ g ∈ y Hom ⁡ ∅ z g x y comp ⁡ ∅ z f = g x y comp ⁡ oppCat ⁡ ∅ z f
31 eqid ⊢ comp ⁡ ∅ = comp ⁡ ∅
32 eqid ⊢ comp ⁡ oppCat ⁡ ∅ = comp ⁡ oppCat ⁡ ∅
33 31 32 21 24 27 29 comfeq ⊢ C ∈ Cat → comp 𝑓 ⁡ ∅ = comp 𝑓 ⁡ oppCat ⁡ ∅ ↔ ∀ x ∈ ∅ ∀ y ∈ ∅ ∀ z ∈ ∅ ∀ f ∈ x Hom ⁡ ∅ y ∀ g ∈ y Hom ⁡ ∅ z g x y comp ⁡ ∅ z f = g x y comp ⁡ oppCat ⁡ ∅ z f
34 30 33 mpbiri ⊢ C ∈ Cat → comp 𝑓 ⁡ ∅ = comp 𝑓 ⁡ oppCat ⁡ ∅
35 elex ⊢ C ∈ Cat → C ∈ V
36 fvexd ⊢ C ∈ Cat → oppCat ⁡ oppCat ⁡ C ∈ V
37 0ex ⊢ ∅ ∈ V
38 37 a1i ⊢ C ∈ Cat → ∅ ∈ V
39 fvexd ⊢ C ∈ Cat → oppCat ⁡ ∅ ∈ V
40 17 19 29 34 35 36 38 39 lmdpropd Could not format ( C e. Cat -> ( C Limit (/) ) = ( ( oppCat ` ( oppCat ` C ) ) Limit ( oppCat ` (/) ) ) ) : No typesetting found for |- ( C e. Cat -> ( C Limit (/) ) = ( ( oppCat ` ( oppCat ` C ) ) Limit ( oppCat ` (/) ) ) ) with typecode |-
41 eqidd ⊢ C ∈ Cat → ∅ = ∅
42 0cat ⊢ ∅ ∈ Cat
43 42 a1i ⊢ C ∈ Cat → ∅ ∈ Cat
44 43 24 43 0funcg2 ⊢ C ∈ Cat → ∅ ∅ Func ∅ ∅ ↔ ∅ = ∅ ∧ ∅ = ∅
45 41 41 44 mpbir2and ⊢ C ∈ Cat → ∅ ∅ Func ∅ ∅
46 oppfval Could not format ( (/) ( (/) Func (/) ) (/) -> ( (/) oppFunc (/) ) = <. (/) , tpos (/) >. ) : No typesetting found for |- ( (/) ( (/) Func (/) ) (/) -> ( (/) oppFunc (/) ) = <. (/) , tpos (/) >. ) with typecode |-
47 45 46 syl Could not format ( C e. Cat -> ( (/) oppFunc (/) ) = <. (/) , tpos (/) >. ) : No typesetting found for |- ( C e. Cat -> ( (/) oppFunc (/) ) = <. (/) , tpos (/) >. ) with typecode |-
48 tpos0 ⊢ tpos ∅ = ∅
49 48 opeq2i ⊢ ∅ tpos ∅ = ∅ ∅
50 47 49 eqtr2di Could not format ( C e. Cat -> <. (/) , (/) >. = ( (/) oppFunc (/) ) ) : No typesetting found for |- ( C e. Cat -> <. (/) , (/) >. = ( (/) oppFunc (/) ) ) with typecode |-
51 40 50 fveq12d Could not format ( C e. Cat -> ( ( C Limit (/) ) ` <. (/) , (/) >. ) = ( ( ( oppCat ` ( oppCat ` C ) ) Limit ( oppCat ` (/) ) ) ` ( (/) oppFunc (/) ) ) ) : No typesetting found for |- ( C e. Cat -> ( ( C Limit (/) ) ` <. (/) , (/) >. ) = ( ( ( oppCat ` ( oppCat ` C ) ) Limit ( oppCat ` (/) ) ) ` ( (/) oppFunc (/) ) ) ) with typecode |-
52 df-ov Could not format ( (/) ( ( oppCat ` C ) Colimit (/) ) (/) ) = ( ( ( oppCat ` C ) Colimit (/) ) ` <. (/) , (/) >. ) : No typesetting found for |- ( (/) ( ( oppCat ` C ) Colimit (/) ) (/) ) = ( ( ( oppCat ` C ) Colimit (/) ) ` <. (/) , (/) >. ) with typecode |-
53 eqid ⊢ oppCat ⁡ oppCat ⁡ C = oppCat ⁡ oppCat ⁡ C
54 df-ov Could not format ( (/) oppFunc (/) ) = ( oppFunc ` <. (/) , (/) >. ) : No typesetting found for |- ( (/) oppFunc (/) ) = ( oppFunc ` <. (/) , (/) >. ) with typecode |-
55 fvexd ⊢ C ∈ Cat → oppCat ⁡ C ∈ V
56 53 25 54 55 38 cmddu Could not format ( C e. Cat -> ( ( ( oppCat ` C ) Colimit (/) ) ` <. (/) , (/) >. ) = ( ( ( oppCat ` ( oppCat ` C ) ) Limit ( oppCat ` (/) ) ) ` ( (/) oppFunc (/) ) ) ) : No typesetting found for |- ( C e. Cat -> ( ( ( oppCat ` C ) Colimit (/) ) ` <. (/) , (/) >. ) = ( ( ( oppCat ` ( oppCat ` C ) ) Limit ( oppCat ` (/) ) ) ` ( (/) oppFunc (/) ) ) ) with typecode |-
57 52 56 eqtrid Could not format ( C e. Cat -> ( (/) ( ( oppCat ` C ) Colimit (/) ) (/) ) = ( ( ( oppCat ` ( oppCat ` C ) ) Limit ( oppCat ` (/) ) ) ` ( (/) oppFunc (/) ) ) ) : No typesetting found for |- ( C e. Cat -> ( (/) ( ( oppCat ` C ) Colimit (/) ) (/) ) = ( ( ( oppCat ` ( oppCat ` C ) ) Limit ( oppCat ` (/) ) ) ` ( (/) oppFunc (/) ) ) ) with typecode |-
58 51 57 eqtr4d Could not format ( C e. Cat -> ( ( C Limit (/) ) ` <. (/) , (/) >. ) = ( (/) ( ( oppCat ` C ) Colimit (/) ) (/) ) ) : No typesetting found for |- ( C e. Cat -> ( ( C Limit (/) ) ` <. (/) , (/) >. ) = ( (/) ( ( oppCat ` C ) Colimit (/) ) (/) ) ) with typecode |-
59 58 dmeqd Could not format ( C e. Cat -> dom ( ( C Limit (/) ) ` <. (/) , (/) >. ) = dom ( (/) ( ( oppCat ` C ) Colimit (/) ) (/) ) ) : No typesetting found for |- ( C e. Cat -> dom ( ( C Limit (/) ) ` <. (/) , (/) >. ) = dom ( (/) ( ( oppCat ` C ) Colimit (/) ) (/) ) ) with typecode |-
60 11 14 59 3eqtr4a Could not format ( C e. Cat -> ( TermO ` C ) = dom ( ( C Limit (/) ) ` <. (/) , (/) >. ) ) : No typesetting found for |- ( C e. Cat -> ( TermO ` C ) = dom ( ( C Limit (/) ) ` <. (/) , (/) >. ) ) with typecode |-
61 60 eleq2d Could not format ( C e. Cat -> ( x e. ( TermO ` C ) <-> x e. dom ( ( C Limit (/) ) ` <. (/) , (/) >. ) ) ) : No typesetting found for |- ( C e. Cat -> ( x e. ( TermO ` C ) <-> x e. dom ( ( C Limit (/) ) ` <. (/) , (/) >. ) ) ) with typecode |-
62 1 10 61 pm5.21nii Could not format ( x e. ( TermO ` C ) <-> x e. dom ( ( C Limit (/) ) ` <. (/) , (/) >. ) ) : No typesetting found for |- ( x e. ( TermO ` C ) <-> x e. dom ( ( C Limit (/) ) ` <. (/) , (/) >. ) ) with typecode |-
63 62 eqriv Could not format ( TermO ` C ) = dom ( ( C Limit (/) ) ` <. (/) , (/) >. ) : No typesetting found for |- ( TermO ` C ) = dom ( ( C Limit (/) ) ` <. (/) , (/) >. ) with typecode |-
64 df-ov Could not format ( (/) ( C Limit (/) ) (/) ) = ( ( C Limit (/) ) ` <. (/) , (/) >. ) : No typesetting found for |- ( (/) ( C Limit (/) ) (/) ) = ( ( C Limit (/) ) ` <. (/) , (/) >. ) with typecode |-
65 64 dmeqi Could not format dom ( (/) ( C Limit (/) ) (/) ) = dom ( ( C Limit (/) ) ` <. (/) , (/) >. ) : No typesetting found for |- dom ( (/) ( C Limit (/) ) (/) ) = dom ( ( C Limit (/) ) ` <. (/) , (/) >. ) with typecode |-
66 63 65 eqtr4i Could not format ( TermO ` C ) = dom ( (/) ( C Limit (/) ) (/) ) : No typesetting found for |- ( TermO ` C ) = dom ( (/) ( C Limit (/) ) (/) ) with typecode |-