Metamath Proof Explorer


Theorem isinito

Description: The predicate "is an initial object" of a category. (Contributed by AV, 3-Apr-2020)

Ref Expression
Hypotheses isinito.b
|- B = ( Base ` C )
isinito.h
|- H = ( Hom ` C )
isinito.c
|- ( ph -> C e. Cat )
isinito.i
|- ( ph -> I e. B )
Assertion isinito
|- ( ph -> ( I e. ( InitO ` C ) <-> A. b e. B E! h h e. ( I H b ) ) )

Proof

Step Hyp Ref Expression
1 isinito.b
 |-  B = ( Base ` C )
2 isinito.h
 |-  H = ( Hom ` C )
3 isinito.c
 |-  ( ph -> C e. Cat )
4 isinito.i
 |-  ( ph -> I e. B )
5 3 1 2 initoval
 |-  ( ph -> ( InitO ` C ) = { i e. B | A. b e. B E! h h e. ( i H b ) } )
6 5 eleq2d
 |-  ( ph -> ( I e. ( InitO ` C ) <-> I e. { i e. B | A. b e. B E! h h e. ( i H b ) } ) )
7 oveq1
 |-  ( i = I -> ( i H b ) = ( I H b ) )
8 7 eleq2d
 |-  ( i = I -> ( h e. ( i H b ) <-> h e. ( I H b ) ) )
9 8 eubidv
 |-  ( i = I -> ( E! h h e. ( i H b ) <-> E! h h e. ( I H b ) ) )
10 9 ralbidv
 |-  ( i = I -> ( A. b e. B E! h h e. ( i H b ) <-> A. b e. B E! h h e. ( I H b ) ) )
11 10 elrab3
 |-  ( I e. B -> ( I e. { i e. B | A. b e. B E! h h e. ( i H b ) } <-> A. b e. B E! h h e. ( I H b ) ) )
12 4 11 syl
 |-  ( ph -> ( I e. { i e. B | A. b e. B E! h h e. ( i H b ) } <-> A. b e. B E! h h e. ( I H b ) ) )
13 6 12 bitrd
 |-  ( ph -> ( I e. ( InitO ` C ) <-> A. b e. B E! h h e. ( I H b ) ) )