Metamath Proof Explorer


Theorem fucrid

Description: Right identity of natural transformations. (Contributed by Mario Carneiro, 6-Jan-2017)

Ref Expression
Hypotheses fuclid.q
|- Q = ( C FuncCat D )
fuclid.n
|- N = ( C Nat D )
fuclid.x
|- .xb = ( comp ` Q )
fuclid.1
|- .1. = ( Id ` D )
fuclid.r
|- ( ph -> R e. ( F N G ) )
Assertion fucrid
|- ( ph -> ( R ( <. F , F >. .xb G ) ( .1. o. ( 1st ` F ) ) ) = R )

Proof

Step Hyp Ref Expression
1 fuclid.q
 |-  Q = ( C FuncCat D )
2 fuclid.n
 |-  N = ( C Nat D )
3 fuclid.x
 |-  .xb = ( comp ` Q )
4 fuclid.1
 |-  .1. = ( Id ` D )
5 fuclid.r
 |-  ( ph -> R e. ( F N G ) )
6 eqid
 |-  ( Base ` C ) = ( Base ` C )
7 eqid
 |-  ( Base ` D ) = ( Base ` D )
8 relfunc
 |-  Rel ( C Func D )
9 2 natrcl
 |-  ( R e. ( F N G ) -> ( F e. ( C Func D ) /\ G e. ( C Func D ) ) )
10 5 9 syl
 |-  ( ph -> ( F e. ( C Func D ) /\ G e. ( C Func D ) ) )
11 10 simpld
 |-  ( ph -> F e. ( C Func D ) )
12 1st2ndbr
 |-  ( ( Rel ( C Func D ) /\ F e. ( C Func D ) ) -> ( 1st ` F ) ( C Func D ) ( 2nd ` F ) )
13 8 11 12 sylancr
 |-  ( ph -> ( 1st ` F ) ( C Func D ) ( 2nd ` F ) )
14 6 7 13 funcf1
 |-  ( ph -> ( 1st ` F ) : ( Base ` C ) --> ( Base ` D ) )
15 fvco3
 |-  ( ( ( 1st ` F ) : ( Base ` C ) --> ( Base ` D ) /\ x e. ( Base ` C ) ) -> ( ( .1. o. ( 1st ` F ) ) ` x ) = ( .1. ` ( ( 1st ` F ) ` x ) ) )
16 14 15 sylan
 |-  ( ( ph /\ x e. ( Base ` C ) ) -> ( ( .1. o. ( 1st ` F ) ) ` x ) = ( .1. ` ( ( 1st ` F ) ` x ) ) )
17 16 oveq2d
 |-  ( ( ph /\ x e. ( Base ` C ) ) -> ( ( R ` x ) ( <. ( ( 1st ` F ) ` x ) , ( ( 1st ` F ) ` x ) >. ( comp ` D ) ( ( 1st ` G ) ` x ) ) ( ( .1. o. ( 1st ` F ) ) ` x ) ) = ( ( R ` x ) ( <. ( ( 1st ` F ) ` x ) , ( ( 1st ` F ) ` x ) >. ( comp ` D ) ( ( 1st ` G ) ` x ) ) ( .1. ` ( ( 1st ` F ) ` x ) ) ) )
18 eqid
 |-  ( Hom ` D ) = ( Hom ` D )
19 funcrcl
 |-  ( F e. ( C Func D ) -> ( C e. Cat /\ D e. Cat ) )
20 11 19 syl
 |-  ( ph -> ( C e. Cat /\ D e. Cat ) )
21 20 simprd
 |-  ( ph -> D e. Cat )
22 21 adantr
 |-  ( ( ph /\ x e. ( Base ` C ) ) -> D e. Cat )
23 14 ffvelrnda
 |-  ( ( ph /\ x e. ( Base ` C ) ) -> ( ( 1st ` F ) ` x ) e. ( Base ` D ) )
24 eqid
 |-  ( comp ` D ) = ( comp ` D )
25 10 simprd
 |-  ( ph -> G e. ( C Func D ) )
26 1st2ndbr
 |-  ( ( Rel ( C Func D ) /\ G e. ( C Func D ) ) -> ( 1st ` G ) ( C Func D ) ( 2nd ` G ) )
27 8 25 26 sylancr
 |-  ( ph -> ( 1st ` G ) ( C Func D ) ( 2nd ` G ) )
28 6 7 27 funcf1
 |-  ( ph -> ( 1st ` G ) : ( Base ` C ) --> ( Base ` D ) )
29 28 ffvelrnda
 |-  ( ( ph /\ x e. ( Base ` C ) ) -> ( ( 1st ` G ) ` x ) e. ( Base ` D ) )
30 2 5 nat1st2nd
 |-  ( ph -> R e. ( <. ( 1st ` F ) , ( 2nd ` F ) >. N <. ( 1st ` G ) , ( 2nd ` G ) >. ) )
31 30 adantr
 |-  ( ( ph /\ x e. ( Base ` C ) ) -> R e. ( <. ( 1st ` F ) , ( 2nd ` F ) >. N <. ( 1st ` G ) , ( 2nd ` G ) >. ) )
32 simpr
 |-  ( ( ph /\ x e. ( Base ` C ) ) -> x e. ( Base ` C ) )
33 2 31 6 18 32 natcl
 |-  ( ( ph /\ x e. ( Base ` C ) ) -> ( R ` x ) e. ( ( ( 1st ` F ) ` x ) ( Hom ` D ) ( ( 1st ` G ) ` x ) ) )
34 7 18 4 22 23 24 29 33 catrid
 |-  ( ( ph /\ x e. ( Base ` C ) ) -> ( ( R ` x ) ( <. ( ( 1st ` F ) ` x ) , ( ( 1st ` F ) ` x ) >. ( comp ` D ) ( ( 1st ` G ) ` x ) ) ( .1. ` ( ( 1st ` F ) ` x ) ) ) = ( R ` x ) )
35 17 34 eqtrd
 |-  ( ( ph /\ x e. ( Base ` C ) ) -> ( ( R ` x ) ( <. ( ( 1st ` F ) ` x ) , ( ( 1st ` F ) ` x ) >. ( comp ` D ) ( ( 1st ` G ) ` x ) ) ( ( .1. o. ( 1st ` F ) ) ` x ) ) = ( R ` x ) )
36 35 mpteq2dva
 |-  ( ph -> ( x e. ( Base ` C ) |-> ( ( R ` x ) ( <. ( ( 1st ` F ) ` x ) , ( ( 1st ` F ) ` x ) >. ( comp ` D ) ( ( 1st ` G ) ` x ) ) ( ( .1. o. ( 1st ` F ) ) ` x ) ) ) = ( x e. ( Base ` C ) |-> ( R ` x ) ) )
37 1 2 4 11 fucidcl
 |-  ( ph -> ( .1. o. ( 1st ` F ) ) e. ( F N F ) )
38 1 2 6 24 3 37 5 fucco
 |-  ( ph -> ( R ( <. F , F >. .xb G ) ( .1. o. ( 1st ` F ) ) ) = ( x e. ( Base ` C ) |-> ( ( R ` x ) ( <. ( ( 1st ` F ) ` x ) , ( ( 1st ` F ) ` x ) >. ( comp ` D ) ( ( 1st ` G ) ` x ) ) ( ( .1. o. ( 1st ` F ) ) ` x ) ) ) )
39 2 30 6 natfn
 |-  ( ph -> R Fn ( Base ` C ) )
40 dffn5
 |-  ( R Fn ( Base ` C ) <-> R = ( x e. ( Base ` C ) |-> ( R ` x ) ) )
41 39 40 sylib
 |-  ( ph -> R = ( x e. ( Base ` C ) |-> ( R ` x ) ) )
42 36 38 41 3eqtr4d
 |-  ( ph -> ( R ( <. F , F >. .xb G ) ( .1. o. ( 1st ` F ) ) ) = R )