Metamath Proof Explorer


Theorem functermceu

Description: There exists a unique functor to a terminal category. (Contributed by Zhi Wang, 17-Oct-2025)

Ref Expression
Hypotheses functermceu.c
|- ( ph -> C e. Cat )
functermceu.d
|- ( ph -> D e. TermCat )
Assertion functermceu
|- ( ph -> E! f f e. ( C Func D ) )

Proof

Step Hyp Ref Expression
1 functermceu.c
 |-  ( ph -> C e. Cat )
2 functermceu.d
 |-  ( ph -> D e. TermCat )
3 opex
 |-  <. ( ( Base ` C ) X. ( Base ` D ) ) , ( x e. ( Base ` C ) , y e. ( Base ` C ) |-> ( ( x ( Hom ` C ) y ) X. ( ( ( ( Base ` C ) X. ( Base ` D ) ) ` x ) ( Hom ` D ) ( ( ( Base ` C ) X. ( Base ` D ) ) ` y ) ) ) ) >. e. _V
4 3 a1i
 |-  ( ph -> <. ( ( Base ` C ) X. ( Base ` D ) ) , ( x e. ( Base ` C ) , y e. ( Base ` C ) |-> ( ( x ( Hom ` C ) y ) X. ( ( ( ( Base ` C ) X. ( Base ` D ) ) ` x ) ( Hom ` D ) ( ( ( Base ` C ) X. ( Base ` D ) ) ` y ) ) ) ) >. e. _V )
5 eqid
 |-  ( Base ` C ) = ( Base ` C )
6 eqid
 |-  ( Base ` D ) = ( Base ` D )
7 eqid
 |-  ( Hom ` C ) = ( Hom ` C )
8 eqid
 |-  ( Hom ` D ) = ( Hom ` D )
9 eqid
 |-  ( ( Base ` C ) X. ( Base ` D ) ) = ( ( Base ` C ) X. ( Base ` D ) )
10 eqid
 |-  ( x e. ( Base ` C ) , y e. ( Base ` C ) |-> ( ( x ( Hom ` C ) y ) X. ( ( ( ( Base ` C ) X. ( Base ` D ) ) ` x ) ( Hom ` D ) ( ( ( Base ` C ) X. ( Base ` D ) ) ` y ) ) ) ) = ( x e. ( Base ` C ) , y e. ( Base ` C ) |-> ( ( x ( Hom ` C ) y ) X. ( ( ( ( Base ` C ) X. ( Base ` D ) ) ` x ) ( Hom ` D ) ( ( ( Base ` C ) X. ( Base ` D ) ) ` y ) ) ) )
11 1 2 5 6 7 8 9 10 functermc2
 |-  ( ph -> ( C Func D ) = { <. ( ( Base ` C ) X. ( Base ` D ) ) , ( x e. ( Base ` C ) , y e. ( Base ` C ) |-> ( ( x ( Hom ` C ) y ) X. ( ( ( ( Base ` C ) X. ( Base ` D ) ) ` x ) ( Hom ` D ) ( ( ( Base ` C ) X. ( Base ` D ) ) ` y ) ) ) ) >. } )
12 sneq
 |-  ( f = <. ( ( Base ` C ) X. ( Base ` D ) ) , ( x e. ( Base ` C ) , y e. ( Base ` C ) |-> ( ( x ( Hom ` C ) y ) X. ( ( ( ( Base ` C ) X. ( Base ` D ) ) ` x ) ( Hom ` D ) ( ( ( Base ` C ) X. ( Base ` D ) ) ` y ) ) ) ) >. -> { f } = { <. ( ( Base ` C ) X. ( Base ` D ) ) , ( x e. ( Base ` C ) , y e. ( Base ` C ) |-> ( ( x ( Hom ` C ) y ) X. ( ( ( ( Base ` C ) X. ( Base ` D ) ) ` x ) ( Hom ` D ) ( ( ( Base ` C ) X. ( Base ` D ) ) ` y ) ) ) ) >. } )
13 12 eqeq2d
 |-  ( f = <. ( ( Base ` C ) X. ( Base ` D ) ) , ( x e. ( Base ` C ) , y e. ( Base ` C ) |-> ( ( x ( Hom ` C ) y ) X. ( ( ( ( Base ` C ) X. ( Base ` D ) ) ` x ) ( Hom ` D ) ( ( ( Base ` C ) X. ( Base ` D ) ) ` y ) ) ) ) >. -> ( ( C Func D ) = { f } <-> ( C Func D ) = { <. ( ( Base ` C ) X. ( Base ` D ) ) , ( x e. ( Base ` C ) , y e. ( Base ` C ) |-> ( ( x ( Hom ` C ) y ) X. ( ( ( ( Base ` C ) X. ( Base ` D ) ) ` x ) ( Hom ` D ) ( ( ( Base ` C ) X. ( Base ` D ) ) ` y ) ) ) ) >. } ) )
14 4 11 13 spcedv
 |-  ( ph -> E. f ( C Func D ) = { f } )
15 eusn
 |-  ( E! f f e. ( C Func D ) <-> E. f ( C Func D ) = { f } )
16 14 15 sylibr
 |-  ( ph -> E! f f e. ( C Func D ) )