Metamath Proof Explorer


Theorem evlfval

Description: Value of the evaluation functor. (Contributed by Mario Carneiro, 12-Jan-2017)

Ref Expression
Hypotheses evlfval.e
|- E = ( C evalF D )
evlfval.c
|- ( ph -> C e. Cat )
evlfval.d
|- ( ph -> D e. Cat )
evlfval.b
|- B = ( Base ` C )
evlfval.h
|- H = ( Hom ` C )
evlfval.o
|- .x. = ( comp ` D )
evlfval.n
|- N = ( C Nat D )
Assertion evlfval
|- ( ph -> E = <. ( f e. ( C Func D ) , x e. B |-> ( ( 1st ` f ) ` x ) ) , ( x e. ( ( C Func D ) X. B ) , y e. ( ( C Func D ) X. B ) |-> [_ ( 1st ` x ) / m ]_ [_ ( 1st ` y ) / n ]_ ( a e. ( m N n ) , g e. ( ( 2nd ` x ) H ( 2nd ` y ) ) |-> ( ( a ` ( 2nd ` y ) ) ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. .x. ( ( 1st ` n ) ` ( 2nd ` y ) ) ) ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) ) ) >. )

Proof

Step Hyp Ref Expression
1 evlfval.e
 |-  E = ( C evalF D )
2 evlfval.c
 |-  ( ph -> C e. Cat )
3 evlfval.d
 |-  ( ph -> D e. Cat )
4 evlfval.b
 |-  B = ( Base ` C )
5 evlfval.h
 |-  H = ( Hom ` C )
6 evlfval.o
 |-  .x. = ( comp ` D )
7 evlfval.n
 |-  N = ( C Nat D )
8 df-evlf
 |-  evalF = ( c e. Cat , d e. Cat |-> <. ( f e. ( c Func d ) , x e. ( Base ` c ) |-> ( ( 1st ` f ) ` x ) ) , ( x e. ( ( c Func d ) X. ( Base ` c ) ) , y e. ( ( c Func d ) X. ( Base ` c ) ) |-> [_ ( 1st ` x ) / m ]_ [_ ( 1st ` y ) / n ]_ ( a e. ( m ( c Nat d ) n ) , g e. ( ( 2nd ` x ) ( Hom ` c ) ( 2nd ` y ) ) |-> ( ( a ` ( 2nd ` y ) ) ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. ( comp ` d ) ( ( 1st ` n ) ` ( 2nd ` y ) ) ) ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) ) ) >. )
9 8 a1i
 |-  ( ph -> evalF = ( c e. Cat , d e. Cat |-> <. ( f e. ( c Func d ) , x e. ( Base ` c ) |-> ( ( 1st ` f ) ` x ) ) , ( x e. ( ( c Func d ) X. ( Base ` c ) ) , y e. ( ( c Func d ) X. ( Base ` c ) ) |-> [_ ( 1st ` x ) / m ]_ [_ ( 1st ` y ) / n ]_ ( a e. ( m ( c Nat d ) n ) , g e. ( ( 2nd ` x ) ( Hom ` c ) ( 2nd ` y ) ) |-> ( ( a ` ( 2nd ` y ) ) ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. ( comp ` d ) ( ( 1st ` n ) ` ( 2nd ` y ) ) ) ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) ) ) >. ) )
10 simprl
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> c = C )
11 simprr
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> d = D )
12 10 11 oveq12d
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> ( c Func d ) = ( C Func D ) )
13 10 fveq2d
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> ( Base ` c ) = ( Base ` C ) )
14 13 4 eqtr4di
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> ( Base ` c ) = B )
15 eqidd
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> ( ( 1st ` f ) ` x ) = ( ( 1st ` f ) ` x ) )
16 12 14 15 mpoeq123dv
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> ( f e. ( c Func d ) , x e. ( Base ` c ) |-> ( ( 1st ` f ) ` x ) ) = ( f e. ( C Func D ) , x e. B |-> ( ( 1st ` f ) ` x ) ) )
17 12 14 xpeq12d
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> ( ( c Func d ) X. ( Base ` c ) ) = ( ( C Func D ) X. B ) )
18 10 11 oveq12d
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> ( c Nat d ) = ( C Nat D ) )
19 18 7 eqtr4di
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> ( c Nat d ) = N )
20 19 oveqd
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> ( m ( c Nat d ) n ) = ( m N n ) )
21 10 fveq2d
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> ( Hom ` c ) = ( Hom ` C ) )
22 21 5 eqtr4di
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> ( Hom ` c ) = H )
23 22 oveqd
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> ( ( 2nd ` x ) ( Hom ` c ) ( 2nd ` y ) ) = ( ( 2nd ` x ) H ( 2nd ` y ) ) )
24 11 fveq2d
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> ( comp ` d ) = ( comp ` D ) )
25 24 6 eqtr4di
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> ( comp ` d ) = .x. )
26 25 oveqd
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. ( comp ` d ) ( ( 1st ` n ) ` ( 2nd ` y ) ) ) = ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. .x. ( ( 1st ` n ) ` ( 2nd ` y ) ) ) )
27 26 oveqd
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> ( ( a ` ( 2nd ` y ) ) ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. ( comp ` d ) ( ( 1st ` n ) ` ( 2nd ` y ) ) ) ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) = ( ( a ` ( 2nd ` y ) ) ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. .x. ( ( 1st ` n ) ` ( 2nd ` y ) ) ) ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) )
28 20 23 27 mpoeq123dv
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> ( a e. ( m ( c Nat d ) n ) , g e. ( ( 2nd ` x ) ( Hom ` c ) ( 2nd ` y ) ) |-> ( ( a ` ( 2nd ` y ) ) ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. ( comp ` d ) ( ( 1st ` n ) ` ( 2nd ` y ) ) ) ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) ) = ( a e. ( m N n ) , g e. ( ( 2nd ` x ) H ( 2nd ` y ) ) |-> ( ( a ` ( 2nd ` y ) ) ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. .x. ( ( 1st ` n ) ` ( 2nd ` y ) ) ) ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) ) )
29 28 csbeq2dv
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> [_ ( 1st ` y ) / n ]_ ( a e. ( m ( c Nat d ) n ) , g e. ( ( 2nd ` x ) ( Hom ` c ) ( 2nd ` y ) ) |-> ( ( a ` ( 2nd ` y ) ) ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. ( comp ` d ) ( ( 1st ` n ) ` ( 2nd ` y ) ) ) ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) ) = [_ ( 1st ` y ) / n ]_ ( a e. ( m N n ) , g e. ( ( 2nd ` x ) H ( 2nd ` y ) ) |-> ( ( a ` ( 2nd ` y ) ) ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. .x. ( ( 1st ` n ) ` ( 2nd ` y ) ) ) ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) ) )
30 29 csbeq2dv
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> [_ ( 1st ` x ) / m ]_ [_ ( 1st ` y ) / n ]_ ( a e. ( m ( c Nat d ) n ) , g e. ( ( 2nd ` x ) ( Hom ` c ) ( 2nd ` y ) ) |-> ( ( a ` ( 2nd ` y ) ) ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. ( comp ` d ) ( ( 1st ` n ) ` ( 2nd ` y ) ) ) ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) ) = [_ ( 1st ` x ) / m ]_ [_ ( 1st ` y ) / n ]_ ( a e. ( m N n ) , g e. ( ( 2nd ` x ) H ( 2nd ` y ) ) |-> ( ( a ` ( 2nd ` y ) ) ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. .x. ( ( 1st ` n ) ` ( 2nd ` y ) ) ) ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) ) )
31 17 17 30 mpoeq123dv
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> ( x e. ( ( c Func d ) X. ( Base ` c ) ) , y e. ( ( c Func d ) X. ( Base ` c ) ) |-> [_ ( 1st ` x ) / m ]_ [_ ( 1st ` y ) / n ]_ ( a e. ( m ( c Nat d ) n ) , g e. ( ( 2nd ` x ) ( Hom ` c ) ( 2nd ` y ) ) |-> ( ( a ` ( 2nd ` y ) ) ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. ( comp ` d ) ( ( 1st ` n ) ` ( 2nd ` y ) ) ) ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) ) ) = ( x e. ( ( C Func D ) X. B ) , y e. ( ( C Func D ) X. B ) |-> [_ ( 1st ` x ) / m ]_ [_ ( 1st ` y ) / n ]_ ( a e. ( m N n ) , g e. ( ( 2nd ` x ) H ( 2nd ` y ) ) |-> ( ( a ` ( 2nd ` y ) ) ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. .x. ( ( 1st ` n ) ` ( 2nd ` y ) ) ) ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) ) ) )
32 16 31 opeq12d
 |-  ( ( ph /\ ( c = C /\ d = D ) ) -> <. ( f e. ( c Func d ) , x e. ( Base ` c ) |-> ( ( 1st ` f ) ` x ) ) , ( x e. ( ( c Func d ) X. ( Base ` c ) ) , y e. ( ( c Func d ) X. ( Base ` c ) ) |-> [_ ( 1st ` x ) / m ]_ [_ ( 1st ` y ) / n ]_ ( a e. ( m ( c Nat d ) n ) , g e. ( ( 2nd ` x ) ( Hom ` c ) ( 2nd ` y ) ) |-> ( ( a ` ( 2nd ` y ) ) ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. ( comp ` d ) ( ( 1st ` n ) ` ( 2nd ` y ) ) ) ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) ) ) >. = <. ( f e. ( C Func D ) , x e. B |-> ( ( 1st ` f ) ` x ) ) , ( x e. ( ( C Func D ) X. B ) , y e. ( ( C Func D ) X. B ) |-> [_ ( 1st ` x ) / m ]_ [_ ( 1st ` y ) / n ]_ ( a e. ( m N n ) , g e. ( ( 2nd ` x ) H ( 2nd ` y ) ) |-> ( ( a ` ( 2nd ` y ) ) ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. .x. ( ( 1st ` n ) ` ( 2nd ` y ) ) ) ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) ) ) >. )
33 opex
 |-  <. ( f e. ( C Func D ) , x e. B |-> ( ( 1st ` f ) ` x ) ) , ( x e. ( ( C Func D ) X. B ) , y e. ( ( C Func D ) X. B ) |-> [_ ( 1st ` x ) / m ]_ [_ ( 1st ` y ) / n ]_ ( a e. ( m N n ) , g e. ( ( 2nd ` x ) H ( 2nd ` y ) ) |-> ( ( a ` ( 2nd ` y ) ) ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. .x. ( ( 1st ` n ) ` ( 2nd ` y ) ) ) ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) ) ) >. e. _V
34 33 a1i
 |-  ( ph -> <. ( f e. ( C Func D ) , x e. B |-> ( ( 1st ` f ) ` x ) ) , ( x e. ( ( C Func D ) X. B ) , y e. ( ( C Func D ) X. B ) |-> [_ ( 1st ` x ) / m ]_ [_ ( 1st ` y ) / n ]_ ( a e. ( m N n ) , g e. ( ( 2nd ` x ) H ( 2nd ` y ) ) |-> ( ( a ` ( 2nd ` y ) ) ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. .x. ( ( 1st ` n ) ` ( 2nd ` y ) ) ) ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) ) ) >. e. _V )
35 9 32 2 3 34 ovmpod
 |-  ( ph -> ( C evalF D ) = <. ( f e. ( C Func D ) , x e. B |-> ( ( 1st ` f ) ` x ) ) , ( x e. ( ( C Func D ) X. B ) , y e. ( ( C Func D ) X. B ) |-> [_ ( 1st ` x ) / m ]_ [_ ( 1st ` y ) / n ]_ ( a e. ( m N n ) , g e. ( ( 2nd ` x ) H ( 2nd ` y ) ) |-> ( ( a ` ( 2nd ` y ) ) ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. .x. ( ( 1st ` n ) ` ( 2nd ` y ) ) ) ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) ) ) >. )
36 1 35 syl5eq
 |-  ( ph -> E = <. ( f e. ( C Func D ) , x e. B |-> ( ( 1st ` f ) ` x ) ) , ( x e. ( ( C Func D ) X. B ) , y e. ( ( C Func D ) X. B ) |-> [_ ( 1st ` x ) / m ]_ [_ ( 1st ` y ) / n ]_ ( a e. ( m N n ) , g e. ( ( 2nd ` x ) H ( 2nd ` y ) ) |-> ( ( a ` ( 2nd ` y ) ) ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) , ( ( 1st ` m ) ` ( 2nd ` y ) ) >. .x. ( ( 1st ` n ) ` ( 2nd ` y ) ) ) ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) ) ) >. )