Metamath Proof Explorer


Theorem catrid

Description: Right identity property of an identity arrow. (Contributed by Mario Carneiro, 2-Jan-2017)

Ref Expression
Hypotheses catidcl.b
|- B = ( Base ` C )
catidcl.h
|- H = ( Hom ` C )
catidcl.i
|- .1. = ( Id ` C )
catidcl.c
|- ( ph -> C e. Cat )
catidcl.x
|- ( ph -> X e. B )
catlid.o
|- .x. = ( comp ` C )
catlid.y
|- ( ph -> Y e. B )
catlid.f
|- ( ph -> F e. ( X H Y ) )
Assertion catrid
|- ( ph -> ( F ( <. X , X >. .x. Y ) ( .1. ` X ) ) = F )

Proof

Step Hyp Ref Expression
1 catidcl.b
 |-  B = ( Base ` C )
2 catidcl.h
 |-  H = ( Hom ` C )
3 catidcl.i
 |-  .1. = ( Id ` C )
4 catidcl.c
 |-  ( ph -> C e. Cat )
5 catidcl.x
 |-  ( ph -> X e. B )
6 catlid.o
 |-  .x. = ( comp ` C )
7 catlid.y
 |-  ( ph -> Y e. B )
8 catlid.f
 |-  ( ph -> F e. ( X H Y ) )
9 oveq1
 |-  ( f = F -> ( f ( <. X , X >. .x. Y ) ( .1. ` X ) ) = ( F ( <. X , X >. .x. Y ) ( .1. ` X ) ) )
10 id
 |-  ( f = F -> f = F )
11 9 10 eqeq12d
 |-  ( f = F -> ( ( f ( <. X , X >. .x. Y ) ( .1. ` X ) ) = f <-> ( F ( <. X , X >. .x. Y ) ( .1. ` X ) ) = F ) )
12 oveq2
 |-  ( y = Y -> ( X H y ) = ( X H Y ) )
13 oveq2
 |-  ( y = Y -> ( <. X , X >. .x. y ) = ( <. X , X >. .x. Y ) )
14 13 oveqd
 |-  ( y = Y -> ( f ( <. X , X >. .x. y ) ( .1. ` X ) ) = ( f ( <. X , X >. .x. Y ) ( .1. ` X ) ) )
15 14 eqeq1d
 |-  ( y = Y -> ( ( f ( <. X , X >. .x. y ) ( .1. ` X ) ) = f <-> ( f ( <. X , X >. .x. Y ) ( .1. ` X ) ) = f ) )
16 12 15 raleqbidv
 |-  ( y = Y -> ( A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) ( .1. ` X ) ) = f <-> A. f e. ( X H Y ) ( f ( <. X , X >. .x. Y ) ( .1. ` X ) ) = f ) )
17 simpr
 |-  ( ( A. f e. ( y H X ) ( g ( <. y , X >. .x. X ) f ) = f /\ A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f ) -> A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f )
18 17 ralimi
 |-  ( A. y e. B ( A. f e. ( y H X ) ( g ( <. y , X >. .x. X ) f ) = f /\ A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f ) -> A. y e. B A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f )
19 18 a1i
 |-  ( g e. ( X H X ) -> ( A. y e. B ( A. f e. ( y H X ) ( g ( <. y , X >. .x. X ) f ) = f /\ A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f ) -> A. y e. B A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f ) )
20 19 ss2rabi
 |-  { g e. ( X H X ) | A. y e. B ( A. f e. ( y H X ) ( g ( <. y , X >. .x. X ) f ) = f /\ A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f ) } C_ { g e. ( X H X ) | A. y e. B A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f }
21 1 2 6 4 3 5 cidval
 |-  ( ph -> ( .1. ` X ) = ( iota_ g e. ( X H X ) A. y e. B ( A. f e. ( y H X ) ( g ( <. y , X >. .x. X ) f ) = f /\ A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f ) ) )
22 1 2 6 4 5 catideu
 |-  ( ph -> E! g e. ( X H X ) A. y e. B ( A. f e. ( y H X ) ( g ( <. y , X >. .x. X ) f ) = f /\ A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f ) )
23 riotacl2
 |-  ( E! g e. ( X H X ) A. y e. B ( A. f e. ( y H X ) ( g ( <. y , X >. .x. X ) f ) = f /\ A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f ) -> ( iota_ g e. ( X H X ) A. y e. B ( A. f e. ( y H X ) ( g ( <. y , X >. .x. X ) f ) = f /\ A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f ) ) e. { g e. ( X H X ) | A. y e. B ( A. f e. ( y H X ) ( g ( <. y , X >. .x. X ) f ) = f /\ A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f ) } )
24 22 23 syl
 |-  ( ph -> ( iota_ g e. ( X H X ) A. y e. B ( A. f e. ( y H X ) ( g ( <. y , X >. .x. X ) f ) = f /\ A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f ) ) e. { g e. ( X H X ) | A. y e. B ( A. f e. ( y H X ) ( g ( <. y , X >. .x. X ) f ) = f /\ A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f ) } )
25 21 24 eqeltrd
 |-  ( ph -> ( .1. ` X ) e. { g e. ( X H X ) | A. y e. B ( A. f e. ( y H X ) ( g ( <. y , X >. .x. X ) f ) = f /\ A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f ) } )
26 20 25 sselid
 |-  ( ph -> ( .1. ` X ) e. { g e. ( X H X ) | A. y e. B A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f } )
27 oveq2
 |-  ( g = ( .1. ` X ) -> ( f ( <. X , X >. .x. y ) g ) = ( f ( <. X , X >. .x. y ) ( .1. ` X ) ) )
28 27 eqeq1d
 |-  ( g = ( .1. ` X ) -> ( ( f ( <. X , X >. .x. y ) g ) = f <-> ( f ( <. X , X >. .x. y ) ( .1. ` X ) ) = f ) )
29 28 2ralbidv
 |-  ( g = ( .1. ` X ) -> ( A. y e. B A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f <-> A. y e. B A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) ( .1. ` X ) ) = f ) )
30 29 elrab
 |-  ( ( .1. ` X ) e. { g e. ( X H X ) | A. y e. B A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f } <-> ( ( .1. ` X ) e. ( X H X ) /\ A. y e. B A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) ( .1. ` X ) ) = f ) )
31 30 simprbi
 |-  ( ( .1. ` X ) e. { g e. ( X H X ) | A. y e. B A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f } -> A. y e. B A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) ( .1. ` X ) ) = f )
32 26 31 syl
 |-  ( ph -> A. y e. B A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) ( .1. ` X ) ) = f )
33 16 32 7 rspcdva
 |-  ( ph -> A. f e. ( X H Y ) ( f ( <. X , X >. .x. Y ) ( .1. ` X ) ) = f )
34 11 33 8 rspcdva
 |-  ( ph -> ( F ( <. X , X >. .x. Y ) ( .1. ` X ) ) = F )