| Step |
Hyp |
Ref |
Expression |
| 1 |
|
precoffunc.r |
|- R = ( D FuncCat E ) |
| 2 |
|
precoffunc.s |
|- S = ( C FuncCat E ) |
| 3 |
|
precoffunc.b |
|- B = ( D Func E ) |
| 4 |
|
precoffunc.n |
|- N = ( D Nat E ) |
| 5 |
|
precoffunc.f |
|- ( ph -> F ( C Func D ) G ) |
| 6 |
|
precoffunc.e |
|- ( ph -> E e. Cat ) |
| 7 |
|
precoffunc.k |
|- ( ph -> K = ( g e. B |-> ( g o.func <. F , G >. ) ) ) |
| 8 |
|
precoffunc.l |
|- ( ph -> L = ( g e. B , h e. B |-> ( a e. ( g N h ) |-> ( a o. F ) ) ) ) |
| 9 |
|
eqid |
|- ( C FuncCat D ) = ( C FuncCat D ) |
| 10 |
|
eqidd |
|- ( ph -> ( <. ( C FuncCat D ) , R >. curryF ( ( <. C , D >. o.F E ) o.func ( ( C FuncCat D ) swapF R ) ) ) = ( <. ( C FuncCat D ) , R >. curryF ( ( <. C , D >. o.F E ) o.func ( ( C FuncCat D ) swapF R ) ) ) ) |
| 11 |
|
df-br |
|- ( F ( C Func D ) G <-> <. F , G >. e. ( C Func D ) ) |
| 12 |
5 11
|
sylib |
|- ( ph -> <. F , G >. e. ( C Func D ) ) |
| 13 |
3
|
mpteq1i |
|- ( g e. B |-> ( g o.func <. F , G >. ) ) = ( g e. ( D Func E ) |-> ( g o.func <. F , G >. ) ) |
| 14 |
7 13
|
eqtrdi |
|- ( ph -> K = ( g e. ( D Func E ) |-> ( g o.func <. F , G >. ) ) ) |
| 15 |
3
|
a1i |
|- ( ph -> B = ( D Func E ) ) |
| 16 |
4
|
a1i |
|- ( ph -> N = ( D Nat E ) ) |
| 17 |
16
|
oveqd |
|- ( ph -> ( g N h ) = ( g ( D Nat E ) h ) ) |
| 18 |
|
relfunc |
|- Rel ( C Func D ) |
| 19 |
|
brrelex12 |
|- ( ( Rel ( C Func D ) /\ F ( C Func D ) G ) -> ( F e. _V /\ G e. _V ) ) |
| 20 |
18 5 19
|
sylancr |
|- ( ph -> ( F e. _V /\ G e. _V ) ) |
| 21 |
|
op1stg |
|- ( ( F e. _V /\ G e. _V ) -> ( 1st ` <. F , G >. ) = F ) |
| 22 |
20 21
|
syl |
|- ( ph -> ( 1st ` <. F , G >. ) = F ) |
| 23 |
22
|
eqcomd |
|- ( ph -> F = ( 1st ` <. F , G >. ) ) |
| 24 |
23
|
coeq2d |
|- ( ph -> ( a o. F ) = ( a o. ( 1st ` <. F , G >. ) ) ) |
| 25 |
17 24
|
mpteq12dv |
|- ( ph -> ( a e. ( g N h ) |-> ( a o. F ) ) = ( a e. ( g ( D Nat E ) h ) |-> ( a o. ( 1st ` <. F , G >. ) ) ) ) |
| 26 |
15 15 25
|
mpoeq123dv |
|- ( ph -> ( g e. B , h e. B |-> ( a e. ( g N h ) |-> ( a o. F ) ) ) = ( g e. ( D Func E ) , h e. ( D Func E ) |-> ( a e. ( g ( D Nat E ) h ) |-> ( a o. ( 1st ` <. F , G >. ) ) ) ) ) |
| 27 |
8 26
|
eqtrd |
|- ( ph -> L = ( g e. ( D Func E ) , h e. ( D Func E ) |-> ( a e. ( g ( D Nat E ) h ) |-> ( a o. ( 1st ` <. F , G >. ) ) ) ) ) |
| 28 |
14 27
|
opeq12d |
|- ( ph -> <. K , L >. = <. ( g e. ( D Func E ) |-> ( g o.func <. F , G >. ) ) , ( g e. ( D Func E ) , h e. ( D Func E ) |-> ( a e. ( g ( D Nat E ) h ) |-> ( a o. ( 1st ` <. F , G >. ) ) ) ) >. ) |
| 29 |
|
eqidd |
|- ( ph -> ( ( 1st ` ( <. ( C FuncCat D ) , R >. curryF ( ( <. C , D >. o.F E ) o.func ( ( C FuncCat D ) swapF R ) ) ) ) ` <. F , G >. ) = ( ( 1st ` ( <. ( C FuncCat D ) , R >. curryF ( ( <. C , D >. o.F E ) o.func ( ( C FuncCat D ) swapF R ) ) ) ) ` <. F , G >. ) ) |
| 30 |
9 1 10 12 6 29
|
precofval2 |
|- ( ph -> ( ( 1st ` ( <. ( C FuncCat D ) , R >. curryF ( ( <. C , D >. o.F E ) o.func ( ( C FuncCat D ) swapF R ) ) ) ) ` <. F , G >. ) = <. ( g e. ( D Func E ) |-> ( g o.func <. F , G >. ) ) , ( g e. ( D Func E ) , h e. ( D Func E ) |-> ( a e. ( g ( D Nat E ) h ) |-> ( a o. ( 1st ` <. F , G >. ) ) ) ) >. ) |
| 31 |
28 30
|
eqtr4d |
|- ( ph -> <. K , L >. = ( ( 1st ` ( <. ( C FuncCat D ) , R >. curryF ( ( <. C , D >. o.F E ) o.func ( ( C FuncCat D ) swapF R ) ) ) ) ` <. F , G >. ) ) |
| 32 |
9 1 10 12 6 31 2
|
precofcl |
|- ( ph -> <. K , L >. e. ( R Func S ) ) |
| 33 |
|
df-br |
|- ( K ( R Func S ) L <-> <. K , L >. e. ( R Func S ) ) |
| 34 |
32 33
|
sylibr |
|- ( ph -> K ( R Func S ) L ) |