Metamath Proof Explorer


Theorem termcarweu

Description: There exists a unique disjointified arrow in a terminal category. (Contributed by Zhi Wang, 20-Oct-2025)

Ref Expression
Assertion termcarweu Could not format assertion : No typesetting found for |- ( C e. TermCat -> E! a a e. ( Arrow ` C ) ) with typecode |-

Proof

Step Hyp Ref Expression
1 id Could not format ( C e. TermCat -> C e. TermCat ) : No typesetting found for |- ( C e. TermCat -> C e. TermCat ) with typecode |-
2 eqid ⊢ Base C = Base C
3 1 2 termcbas Could not format ( C e. TermCat -> E. x ( Base ` C ) = { x } ) : No typesetting found for |- ( C e. TermCat -> E. x ( Base ` C ) = { x } ) with typecode |-
4 eqid ⊢ Hom a ⁡ C = Hom a ⁡ C
5 1 adantr Could not format ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> C e. TermCat ) : No typesetting found for |- ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> C e. TermCat ) with typecode |-
6 5 termccatd Could not format ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> C e. Cat ) : No typesetting found for |- ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> C e. Cat ) with typecode |-
7 eqid ⊢ Hom ⁡ C = Hom ⁡ C
8 vsnid ⊢ x ∈ x
9 simpr Could not format ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> ( Base ` C ) = { x } ) : No typesetting found for |- ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> ( Base ` C ) = { x } ) with typecode |-
10 8 9 eleqtrrid Could not format ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> x e. ( Base ` C ) ) : No typesetting found for |- ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> x e. ( Base ` C ) ) with typecode |-
11 eqid ⊢ Id ⁡ C = Id ⁡ C
12 2 7 11 6 10 catidcl Could not format ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> ( ( Id ` C ) ` x ) e. ( x ( Hom ` C ) x ) ) : No typesetting found for |- ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> ( ( Id ` C ) ` x ) e. ( x ( Hom ` C ) x ) ) with typecode |-
13 4 2 6 7 10 10 12 elhomai2 Could not format ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> <. x , x , ( ( Id ` C ) ` x ) >. e. ( x ( HomA ` C ) x ) ) : No typesetting found for |- ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> <. x , x , ( ( Id ` C ) ` x ) >. e. ( x ( HomA ` C ) x ) ) with typecode |-
14 eqid ⊢ Arrow ⁡ C = Arrow ⁡ C
15 14 arwdmcd ⊢ a ∈ Arrow ⁡ C → a = dom a ⁡ a cod a ⁡ a 2 nd ⁡ a
16 15 adantl Could not format ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> a = <. ( domA ` a ) , ( codA ` a ) , ( 2nd ` a ) >. ) : No typesetting found for |- ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> a = <. ( domA ` a ) , ( codA ` a ) , ( 2nd ` a ) >. ) with typecode |-
17 5 adantr Could not format ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> C e. TermCat ) : No typesetting found for |- ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> C e. TermCat ) with typecode |-
18 14 2 arwdm ⊢ a ∈ Arrow ⁡ C → dom a ⁡ a ∈ Base C
19 18 adantl Could not format ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> ( domA ` a ) e. ( Base ` C ) ) : No typesetting found for |- ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> ( domA ` a ) e. ( Base ` C ) ) with typecode |-
20 10 adantr Could not format ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> x e. ( Base ` C ) ) : No typesetting found for |- ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> x e. ( Base ` C ) ) with typecode |-
21 17 2 19 20 termcbasmo Could not format ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> ( domA ` a ) = x ) : No typesetting found for |- ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> ( domA ` a ) = x ) with typecode |-
22 14 2 arwcd ⊢ a ∈ Arrow ⁡ C → cod a ⁡ a ∈ Base C
23 22 adantl Could not format ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> ( codA ` a ) e. ( Base ` C ) ) : No typesetting found for |- ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> ( codA ` a ) e. ( Base ` C ) ) with typecode |-
24 17 2 23 20 termcbasmo Could not format ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> ( codA ` a ) = x ) : No typesetting found for |- ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> ( codA ` a ) = x ) with typecode |-
25 14 7 arwhom ⊢ a ∈ Arrow ⁡ C → 2 nd ⁡ a ∈ dom a ⁡ a Hom ⁡ C cod a ⁡ a
26 25 adantl Could not format ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> ( 2nd ` a ) e. ( ( domA ` a ) ( Hom ` C ) ( codA ` a ) ) ) : No typesetting found for |- ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> ( 2nd ` a ) e. ( ( domA ` a ) ( Hom ` C ) ( codA ` a ) ) ) with typecode |-
27 12 adantr Could not format ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> ( ( Id ` C ) ` x ) e. ( x ( Hom ` C ) x ) ) : No typesetting found for |- ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> ( ( Id ` C ) ` x ) e. ( x ( Hom ` C ) x ) ) with typecode |-
28 17 2 19 23 7 26 20 20 27 termchommo Could not format ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> ( 2nd ` a ) = ( ( Id ` C ) ` x ) ) : No typesetting found for |- ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> ( 2nd ` a ) = ( ( Id ` C ) ` x ) ) with typecode |-
29 21 24 28 oteq123d Could not format ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> <. ( domA ` a ) , ( codA ` a ) , ( 2nd ` a ) >. = <. x , x , ( ( Id ` C ) ` x ) >. ) : No typesetting found for |- ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> <. ( domA ` a ) , ( codA ` a ) , ( 2nd ` a ) >. = <. x , x , ( ( Id ` C ) ` x ) >. ) with typecode |-
30 16 29 eqtrd Could not format ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> a = <. x , x , ( ( Id ` C ) ` x ) >. ) : No typesetting found for |- ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a e. ( Arrow ` C ) ) -> a = <. x , x , ( ( Id ` C ) ` x ) >. ) with typecode |-
31 simpr Could not format ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a = <. x , x , ( ( Id ` C ) ` x ) >. ) -> a = <. x , x , ( ( Id ` C ) ` x ) >. ) : No typesetting found for |- ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a = <. x , x , ( ( Id ` C ) ` x ) >. ) -> a = <. x , x , ( ( Id ` C ) ` x ) >. ) with typecode |-
32 14 4 homarw ⊢ x Hom a ⁡ C x ⊆ Arrow ⁡ C
33 32 13 sselid Could not format ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> <. x , x , ( ( Id ` C ) ` x ) >. e. ( Arrow ` C ) ) : No typesetting found for |- ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> <. x , x , ( ( Id ` C ) ` x ) >. e. ( Arrow ` C ) ) with typecode |-
34 33 adantr Could not format ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a = <. x , x , ( ( Id ` C ) ` x ) >. ) -> <. x , x , ( ( Id ` C ) ` x ) >. e. ( Arrow ` C ) ) : No typesetting found for |- ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a = <. x , x , ( ( Id ` C ) ` x ) >. ) -> <. x , x , ( ( Id ` C ) ` x ) >. e. ( Arrow ` C ) ) with typecode |-
35 31 34 eqeltrd Could not format ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a = <. x , x , ( ( Id ` C ) ` x ) >. ) -> a e. ( Arrow ` C ) ) : No typesetting found for |- ( ( ( C e. TermCat /\ ( Base ` C ) = { x } ) /\ a = <. x , x , ( ( Id ` C ) ` x ) >. ) -> a e. ( Arrow ` C ) ) with typecode |-
36 30 35 impbida Could not format ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> ( a e. ( Arrow ` C ) <-> a = <. x , x , ( ( Id ` C ) ` x ) >. ) ) : No typesetting found for |- ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> ( a e. ( Arrow ` C ) <-> a = <. x , x , ( ( Id ` C ) ` x ) >. ) ) with typecode |-
37 36 alrimiv Could not format ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> A. a ( a e. ( Arrow ` C ) <-> a = <. x , x , ( ( Id ` C ) ` x ) >. ) ) : No typesetting found for |- ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> A. a ( a e. ( Arrow ` C ) <-> a = <. x , x , ( ( Id ` C ) ` x ) >. ) ) with typecode |-
38 eqeq2 ⊢ b = x x Id ⁡ C ⁡ x → a = b ↔ a = x x Id ⁡ C ⁡ x
39 38 bibi2d ⊢ b = x x Id ⁡ C ⁡ x → a ∈ Arrow ⁡ C ↔ a = b ↔ a ∈ Arrow ⁡ C ↔ a = x x Id ⁡ C ⁡ x
40 39 albidv ⊢ b = x x Id ⁡ C ⁡ x → ∀ a a ∈ Arrow ⁡ C ↔ a = b ↔ ∀ a a ∈ Arrow ⁡ C ↔ a = x x Id ⁡ C ⁡ x
41 13 37 40 spcedv Could not format ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> E. b A. a ( a e. ( Arrow ` C ) <-> a = b ) ) : No typesetting found for |- ( ( C e. TermCat /\ ( Base ` C ) = { x } ) -> E. b A. a ( a e. ( Arrow ` C ) <-> a = b ) ) with typecode |-
42 3 41 exlimddv Could not format ( C e. TermCat -> E. b A. a ( a e. ( Arrow ` C ) <-> a = b ) ) : No typesetting found for |- ( C e. TermCat -> E. b A. a ( a e. ( Arrow ` C ) <-> a = b ) ) with typecode |-
43 eu6im ⊢ ∃ b ∀ a a ∈ Arrow ⁡ C ↔ a = b → ∃! a a ∈ Arrow ⁡ C
44 42 43 syl Could not format ( C e. TermCat -> E! a a e. ( Arrow ` C ) ) : No typesetting found for |- ( C e. TermCat -> E! a a e. ( Arrow ` C ) ) with typecode |-