This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: The value of the value of a curried operation given in maps-to notation is the operation value of the original operation. (Contributed by AV, 27-Oct-2019)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | fvmpocurryd.f | |- F = ( x e. X , y e. Y |-> C ) |
|
| fvmpocurryd.c | |- ( ph -> A. x e. X A. y e. Y C e. V ) |
||
| fvmpocurryd.y | |- ( ph -> Y e. W ) |
||
| fvmpocurryd.a | |- ( ph -> A e. X ) |
||
| fvmpocurryd.b | |- ( ph -> B e. Y ) |
||
| Assertion | fvmpocurryd | |- ( ph -> ( ( curry F ` A ) ` B ) = ( A F B ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | fvmpocurryd.f | |- F = ( x e. X , y e. Y |-> C ) |
|
| 2 | fvmpocurryd.c | |- ( ph -> A. x e. X A. y e. Y C e. V ) |
|
| 3 | fvmpocurryd.y | |- ( ph -> Y e. W ) |
|
| 4 | fvmpocurryd.a | |- ( ph -> A e. X ) |
|
| 5 | fvmpocurryd.b | |- ( ph -> B e. Y ) |
|
| 6 | csbcom | |- [_ B / b ]_ [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C = [_ A / a ]_ [_ B / b ]_ [_ b / y ]_ [_ a / x ]_ C |
|
| 7 | csbcow | |- [_ B / b ]_ [_ b / y ]_ [_ a / x ]_ C = [_ B / y ]_ [_ a / x ]_ C |
|
| 8 | 7 | csbeq2i | |- [_ A / a ]_ [_ B / b ]_ [_ b / y ]_ [_ a / x ]_ C = [_ A / a ]_ [_ B / y ]_ [_ a / x ]_ C |
| 9 | csbcom | |- [_ A / a ]_ [_ B / y ]_ [_ a / x ]_ C = [_ B / y ]_ [_ A / a ]_ [_ a / x ]_ C |
|
| 10 | csbcow | |- [_ A / a ]_ [_ a / x ]_ C = [_ A / x ]_ C |
|
| 11 | 10 | csbeq2i | |- [_ B / y ]_ [_ A / a ]_ [_ a / x ]_ C = [_ B / y ]_ [_ A / x ]_ C |
| 12 | 9 11 | eqtri | |- [_ A / a ]_ [_ B / y ]_ [_ a / x ]_ C = [_ B / y ]_ [_ A / x ]_ C |
| 13 | 6 8 12 | 3eqtri | |- [_ B / b ]_ [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C = [_ B / y ]_ [_ A / x ]_ C |
| 14 | nfcsb1v | |- F/_ x [_ A / x ]_ C |
|
| 15 | 14 | nfel1 | |- F/ x [_ A / x ]_ C e. V |
| 16 | nfcsb1v | |- F/_ y [_ B / y ]_ [_ A / x ]_ C |
|
| 17 | 16 | nfel1 | |- F/ y [_ B / y ]_ [_ A / x ]_ C e. V |
| 18 | csbeq1a | |- ( x = A -> C = [_ A / x ]_ C ) |
|
| 19 | 18 | eleq1d | |- ( x = A -> ( C e. V <-> [_ A / x ]_ C e. V ) ) |
| 20 | csbeq1a | |- ( y = B -> [_ A / x ]_ C = [_ B / y ]_ [_ A / x ]_ C ) |
|
| 21 | 20 | eleq1d | |- ( y = B -> ( [_ A / x ]_ C e. V <-> [_ B / y ]_ [_ A / x ]_ C e. V ) ) |
| 22 | 15 17 19 21 | rspc2 | |- ( ( A e. X /\ B e. Y ) -> ( A. x e. X A. y e. Y C e. V -> [_ B / y ]_ [_ A / x ]_ C e. V ) ) |
| 23 | 22 | imp | |- ( ( ( A e. X /\ B e. Y ) /\ A. x e. X A. y e. Y C e. V ) -> [_ B / y ]_ [_ A / x ]_ C e. V ) |
| 24 | 4 5 2 23 | syl21anc | |- ( ph -> [_ B / y ]_ [_ A / x ]_ C e. V ) |
| 25 | 13 24 | eqeltrid | |- ( ph -> [_ B / b ]_ [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C e. V ) |
| 26 | eqid | |- ( b e. Y |-> [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C ) = ( b e. Y |-> [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C ) |
|
| 27 | 26 | fvmpts | |- ( ( B e. Y /\ [_ B / b ]_ [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C e. V ) -> ( ( b e. Y |-> [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C ) ` B ) = [_ B / b ]_ [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C ) |
| 28 | 5 25 27 | syl2anc | |- ( ph -> ( ( b e. Y |-> [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C ) ` B ) = [_ B / b ]_ [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C ) |
| 29 | nfcv | |- F/_ a C |
|
| 30 | nfcv | |- F/_ b C |
|
| 31 | nfcv | |- F/_ x b |
|
| 32 | nfcsb1v | |- F/_ x [_ a / x ]_ C |
|
| 33 | 31 32 | nfcsbw | |- F/_ x [_ b / y ]_ [_ a / x ]_ C |
| 34 | nfcsb1v | |- F/_ y [_ b / y ]_ [_ a / x ]_ C |
|
| 35 | csbeq1a | |- ( x = a -> C = [_ a / x ]_ C ) |
|
| 36 | csbeq1a | |- ( y = b -> [_ a / x ]_ C = [_ b / y ]_ [_ a / x ]_ C ) |
|
| 37 | 35 36 | sylan9eq | |- ( ( x = a /\ y = b ) -> C = [_ b / y ]_ [_ a / x ]_ C ) |
| 38 | 29 30 33 34 37 | cbvmpo | |- ( x e. X , y e. Y |-> C ) = ( a e. X , b e. Y |-> [_ b / y ]_ [_ a / x ]_ C ) |
| 39 | 1 38 | eqtri | |- F = ( a e. X , b e. Y |-> [_ b / y ]_ [_ a / x ]_ C ) |
| 40 | 32 | nfel1 | |- F/ x [_ a / x ]_ C e. V |
| 41 | 34 | nfel1 | |- F/ y [_ b / y ]_ [_ a / x ]_ C e. V |
| 42 | 35 | eleq1d | |- ( x = a -> ( C e. V <-> [_ a / x ]_ C e. V ) ) |
| 43 | 36 | eleq1d | |- ( y = b -> ( [_ a / x ]_ C e. V <-> [_ b / y ]_ [_ a / x ]_ C e. V ) ) |
| 44 | 40 41 42 43 | rspc2 | |- ( ( a e. X /\ b e. Y ) -> ( A. x e. X A. y e. Y C e. V -> [_ b / y ]_ [_ a / x ]_ C e. V ) ) |
| 45 | 2 44 | mpan9 | |- ( ( ph /\ ( a e. X /\ b e. Y ) ) -> [_ b / y ]_ [_ a / x ]_ C e. V ) |
| 46 | 45 | ralrimivva | |- ( ph -> A. a e. X A. b e. Y [_ b / y ]_ [_ a / x ]_ C e. V ) |
| 47 | 5 | ne0d | |- ( ph -> Y =/= (/) ) |
| 48 | 39 46 47 3 4 | mpocurryvald | |- ( ph -> ( curry F ` A ) = ( b e. Y |-> [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C ) ) |
| 49 | 48 | fveq1d | |- ( ph -> ( ( curry F ` A ) ` B ) = ( ( b e. Y |-> [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C ) ` B ) ) |
| 50 | 1 | a1i | |- ( ph -> F = ( x e. X , y e. Y |-> C ) ) |
| 51 | csbcow | |- [_ y / b ]_ [_ b / y ]_ [_ a / x ]_ C = [_ y / y ]_ [_ a / x ]_ C |
|
| 52 | csbid | |- [_ y / y ]_ [_ a / x ]_ C = [_ a / x ]_ C |
|
| 53 | 51 52 | eqtr2i | |- [_ a / x ]_ C = [_ y / b ]_ [_ b / y ]_ [_ a / x ]_ C |
| 54 | 53 | a1i | |- ( ph -> [_ a / x ]_ C = [_ y / b ]_ [_ b / y ]_ [_ a / x ]_ C ) |
| 55 | 54 | csbeq2dv | |- ( ph -> [_ x / a ]_ [_ a / x ]_ C = [_ x / a ]_ [_ y / b ]_ [_ b / y ]_ [_ a / x ]_ C ) |
| 56 | csbcow | |- [_ x / a ]_ [_ a / x ]_ C = [_ x / x ]_ C |
|
| 57 | csbid | |- [_ x / x ]_ C = C |
|
| 58 | 56 57 | eqtri | |- [_ x / a ]_ [_ a / x ]_ C = C |
| 59 | csbcom | |- [_ x / a ]_ [_ y / b ]_ [_ b / y ]_ [_ a / x ]_ C = [_ y / b ]_ [_ x / a ]_ [_ b / y ]_ [_ a / x ]_ C |
|
| 60 | 55 58 59 | 3eqtr3g | |- ( ph -> C = [_ y / b ]_ [_ x / a ]_ [_ b / y ]_ [_ a / x ]_ C ) |
| 61 | csbeq1 | |- ( x = A -> [_ x / a ]_ [_ b / y ]_ [_ a / x ]_ C = [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C ) |
|
| 62 | 61 | adantr | |- ( ( x = A /\ y = B ) -> [_ x / a ]_ [_ b / y ]_ [_ a / x ]_ C = [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C ) |
| 63 | 62 | csbeq2dv | |- ( ( x = A /\ y = B ) -> [_ y / b ]_ [_ x / a ]_ [_ b / y ]_ [_ a / x ]_ C = [_ y / b ]_ [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C ) |
| 64 | csbeq1 | |- ( y = B -> [_ y / b ]_ [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C = [_ B / b ]_ [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C ) |
|
| 65 | 64 | adantl | |- ( ( x = A /\ y = B ) -> [_ y / b ]_ [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C = [_ B / b ]_ [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C ) |
| 66 | 63 65 | eqtrd | |- ( ( x = A /\ y = B ) -> [_ y / b ]_ [_ x / a ]_ [_ b / y ]_ [_ a / x ]_ C = [_ B / b ]_ [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C ) |
| 67 | 60 66 | sylan9eq | |- ( ( ph /\ ( x = A /\ y = B ) ) -> C = [_ B / b ]_ [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C ) |
| 68 | eqidd | |- ( ( ph /\ x = A ) -> Y = Y ) |
|
| 69 | nfv | |- F/ x ph |
|
| 70 | nfv | |- F/ y ph |
|
| 71 | nfcv | |- F/_ y A |
|
| 72 | nfcv | |- F/_ x B |
|
| 73 | nfcv | |- F/_ x A |
|
| 74 | 73 33 | nfcsbw | |- F/_ x [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C |
| 75 | 72 74 | nfcsbw | |- F/_ x [_ B / b ]_ [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C |
| 76 | 13 16 | nfcxfr | |- F/_ y [_ B / b ]_ [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C |
| 77 | 50 67 68 4 5 25 69 70 71 72 75 76 | ovmpodxf | |- ( ph -> ( A F B ) = [_ B / b ]_ [_ A / a ]_ [_ b / y ]_ [_ a / x ]_ C ) |
| 78 | 28 49 77 | 3eqtr4d | |- ( ph -> ( ( curry F ` A ) ` B ) = ( A F B ) ) |