Step |
Hyp |
Ref |
Expression |
1 |
|
efgval.w |
|- W = ( _I ` Word ( I X. 2o ) ) |
2 |
|
efgval.r |
|- .~ = ( ~FG ` I ) |
3 |
|
efgval2.m |
|- M = ( y e. I , z e. 2o |-> <. y , ( 1o \ z ) >. ) |
4 |
|
efgval2.t |
|- T = ( v e. W |-> ( n e. ( 0 ... ( # ` v ) ) , w e. ( I X. 2o ) |-> ( v splice <. n , n , <" w ( M ` w ) "> >. ) ) ) |
5 |
|
fviss |
|- ( _I ` Word ( I X. 2o ) ) C_ Word ( I X. 2o ) |
6 |
1 5
|
eqsstri |
|- W C_ Word ( I X. 2o ) |
7 |
|
simpl |
|- ( ( X e. W /\ ( a e. ( 0 ... ( # ` X ) ) /\ b e. ( I X. 2o ) ) ) -> X e. W ) |
8 |
6 7
|
sselid |
|- ( ( X e. W /\ ( a e. ( 0 ... ( # ` X ) ) /\ b e. ( I X. 2o ) ) ) -> X e. Word ( I X. 2o ) ) |
9 |
|
simprr |
|- ( ( X e. W /\ ( a e. ( 0 ... ( # ` X ) ) /\ b e. ( I X. 2o ) ) ) -> b e. ( I X. 2o ) ) |
10 |
3
|
efgmf |
|- M : ( I X. 2o ) --> ( I X. 2o ) |
11 |
10
|
ffvelrni |
|- ( b e. ( I X. 2o ) -> ( M ` b ) e. ( I X. 2o ) ) |
12 |
11
|
ad2antll |
|- ( ( X e. W /\ ( a e. ( 0 ... ( # ` X ) ) /\ b e. ( I X. 2o ) ) ) -> ( M ` b ) e. ( I X. 2o ) ) |
13 |
9 12
|
s2cld |
|- ( ( X e. W /\ ( a e. ( 0 ... ( # ` X ) ) /\ b e. ( I X. 2o ) ) ) -> <" b ( M ` b ) "> e. Word ( I X. 2o ) ) |
14 |
|
splcl |
|- ( ( X e. Word ( I X. 2o ) /\ <" b ( M ` b ) "> e. Word ( I X. 2o ) ) -> ( X splice <. a , a , <" b ( M ` b ) "> >. ) e. Word ( I X. 2o ) ) |
15 |
8 13 14
|
syl2anc |
|- ( ( X e. W /\ ( a e. ( 0 ... ( # ` X ) ) /\ b e. ( I X. 2o ) ) ) -> ( X splice <. a , a , <" b ( M ` b ) "> >. ) e. Word ( I X. 2o ) ) |
16 |
1
|
efgrcl |
|- ( X e. W -> ( I e. _V /\ W = Word ( I X. 2o ) ) ) |
17 |
16
|
simprd |
|- ( X e. W -> W = Word ( I X. 2o ) ) |
18 |
17
|
adantr |
|- ( ( X e. W /\ ( a e. ( 0 ... ( # ` X ) ) /\ b e. ( I X. 2o ) ) ) -> W = Word ( I X. 2o ) ) |
19 |
15 18
|
eleqtrrd |
|- ( ( X e. W /\ ( a e. ( 0 ... ( # ` X ) ) /\ b e. ( I X. 2o ) ) ) -> ( X splice <. a , a , <" b ( M ` b ) "> >. ) e. W ) |
20 |
19
|
ralrimivva |
|- ( X e. W -> A. a e. ( 0 ... ( # ` X ) ) A. b e. ( I X. 2o ) ( X splice <. a , a , <" b ( M ` b ) "> >. ) e. W ) |
21 |
|
eqid |
|- ( a e. ( 0 ... ( # ` X ) ) , b e. ( I X. 2o ) |-> ( X splice <. a , a , <" b ( M ` b ) "> >. ) ) = ( a e. ( 0 ... ( # ` X ) ) , b e. ( I X. 2o ) |-> ( X splice <. a , a , <" b ( M ` b ) "> >. ) ) |
22 |
21
|
fmpo |
|- ( A. a e. ( 0 ... ( # ` X ) ) A. b e. ( I X. 2o ) ( X splice <. a , a , <" b ( M ` b ) "> >. ) e. W <-> ( a e. ( 0 ... ( # ` X ) ) , b e. ( I X. 2o ) |-> ( X splice <. a , a , <" b ( M ` b ) "> >. ) ) : ( ( 0 ... ( # ` X ) ) X. ( I X. 2o ) ) --> W ) |
23 |
20 22
|
sylib |
|- ( X e. W -> ( a e. ( 0 ... ( # ` X ) ) , b e. ( I X. 2o ) |-> ( X splice <. a , a , <" b ( M ` b ) "> >. ) ) : ( ( 0 ... ( # ` X ) ) X. ( I X. 2o ) ) --> W ) |
24 |
|
ovex |
|- ( 0 ... ( # ` X ) ) e. _V |
25 |
16
|
simpld |
|- ( X e. W -> I e. _V ) |
26 |
|
2on |
|- 2o e. On |
27 |
|
xpexg |
|- ( ( I e. _V /\ 2o e. On ) -> ( I X. 2o ) e. _V ) |
28 |
25 26 27
|
sylancl |
|- ( X e. W -> ( I X. 2o ) e. _V ) |
29 |
|
xpexg |
|- ( ( ( 0 ... ( # ` X ) ) e. _V /\ ( I X. 2o ) e. _V ) -> ( ( 0 ... ( # ` X ) ) X. ( I X. 2o ) ) e. _V ) |
30 |
24 28 29
|
sylancr |
|- ( X e. W -> ( ( 0 ... ( # ` X ) ) X. ( I X. 2o ) ) e. _V ) |
31 |
23 30
|
fexd |
|- ( X e. W -> ( a e. ( 0 ... ( # ` X ) ) , b e. ( I X. 2o ) |-> ( X splice <. a , a , <" b ( M ` b ) "> >. ) ) e. _V ) |
32 |
|
fveq2 |
|- ( u = X -> ( # ` u ) = ( # ` X ) ) |
33 |
32
|
oveq2d |
|- ( u = X -> ( 0 ... ( # ` u ) ) = ( 0 ... ( # ` X ) ) ) |
34 |
|
eqidd |
|- ( u = X -> ( I X. 2o ) = ( I X. 2o ) ) |
35 |
|
oveq1 |
|- ( u = X -> ( u splice <. a , a , <" b ( M ` b ) "> >. ) = ( X splice <. a , a , <" b ( M ` b ) "> >. ) ) |
36 |
33 34 35
|
mpoeq123dv |
|- ( u = X -> ( a e. ( 0 ... ( # ` u ) ) , b e. ( I X. 2o ) |-> ( u splice <. a , a , <" b ( M ` b ) "> >. ) ) = ( a e. ( 0 ... ( # ` X ) ) , b e. ( I X. 2o ) |-> ( X splice <. a , a , <" b ( M ` b ) "> >. ) ) ) |
37 |
|
oteq1 |
|- ( n = a -> <. n , n , <" w ( M ` w ) "> >. = <. a , n , <" w ( M ` w ) "> >. ) |
38 |
|
oteq2 |
|- ( n = a -> <. a , n , <" w ( M ` w ) "> >. = <. a , a , <" w ( M ` w ) "> >. ) |
39 |
37 38
|
eqtrd |
|- ( n = a -> <. n , n , <" w ( M ` w ) "> >. = <. a , a , <" w ( M ` w ) "> >. ) |
40 |
39
|
oveq2d |
|- ( n = a -> ( v splice <. n , n , <" w ( M ` w ) "> >. ) = ( v splice <. a , a , <" w ( M ` w ) "> >. ) ) |
41 |
|
id |
|- ( w = b -> w = b ) |
42 |
|
fveq2 |
|- ( w = b -> ( M ` w ) = ( M ` b ) ) |
43 |
41 42
|
s2eqd |
|- ( w = b -> <" w ( M ` w ) "> = <" b ( M ` b ) "> ) |
44 |
43
|
oteq3d |
|- ( w = b -> <. a , a , <" w ( M ` w ) "> >. = <. a , a , <" b ( M ` b ) "> >. ) |
45 |
44
|
oveq2d |
|- ( w = b -> ( v splice <. a , a , <" w ( M ` w ) "> >. ) = ( v splice <. a , a , <" b ( M ` b ) "> >. ) ) |
46 |
40 45
|
cbvmpov |
|- ( n e. ( 0 ... ( # ` v ) ) , w e. ( I X. 2o ) |-> ( v splice <. n , n , <" w ( M ` w ) "> >. ) ) = ( a e. ( 0 ... ( # ` v ) ) , b e. ( I X. 2o ) |-> ( v splice <. a , a , <" b ( M ` b ) "> >. ) ) |
47 |
|
fveq2 |
|- ( v = u -> ( # ` v ) = ( # ` u ) ) |
48 |
47
|
oveq2d |
|- ( v = u -> ( 0 ... ( # ` v ) ) = ( 0 ... ( # ` u ) ) ) |
49 |
|
eqidd |
|- ( v = u -> ( I X. 2o ) = ( I X. 2o ) ) |
50 |
|
oveq1 |
|- ( v = u -> ( v splice <. a , a , <" b ( M ` b ) "> >. ) = ( u splice <. a , a , <" b ( M ` b ) "> >. ) ) |
51 |
48 49 50
|
mpoeq123dv |
|- ( v = u -> ( a e. ( 0 ... ( # ` v ) ) , b e. ( I X. 2o ) |-> ( v splice <. a , a , <" b ( M ` b ) "> >. ) ) = ( a e. ( 0 ... ( # ` u ) ) , b e. ( I X. 2o ) |-> ( u splice <. a , a , <" b ( M ` b ) "> >. ) ) ) |
52 |
46 51
|
eqtrid |
|- ( v = u -> ( n e. ( 0 ... ( # ` v ) ) , w e. ( I X. 2o ) |-> ( v splice <. n , n , <" w ( M ` w ) "> >. ) ) = ( a e. ( 0 ... ( # ` u ) ) , b e. ( I X. 2o ) |-> ( u splice <. a , a , <" b ( M ` b ) "> >. ) ) ) |
53 |
52
|
cbvmptv |
|- ( v e. W |-> ( n e. ( 0 ... ( # ` v ) ) , w e. ( I X. 2o ) |-> ( v splice <. n , n , <" w ( M ` w ) "> >. ) ) ) = ( u e. W |-> ( a e. ( 0 ... ( # ` u ) ) , b e. ( I X. 2o ) |-> ( u splice <. a , a , <" b ( M ` b ) "> >. ) ) ) |
54 |
4 53
|
eqtri |
|- T = ( u e. W |-> ( a e. ( 0 ... ( # ` u ) ) , b e. ( I X. 2o ) |-> ( u splice <. a , a , <" b ( M ` b ) "> >. ) ) ) |
55 |
36 54
|
fvmptg |
|- ( ( X e. W /\ ( a e. ( 0 ... ( # ` X ) ) , b e. ( I X. 2o ) |-> ( X splice <. a , a , <" b ( M ` b ) "> >. ) ) e. _V ) -> ( T ` X ) = ( a e. ( 0 ... ( # ` X ) ) , b e. ( I X. 2o ) |-> ( X splice <. a , a , <" b ( M ` b ) "> >. ) ) ) |
56 |
31 55
|
mpdan |
|- ( X e. W -> ( T ` X ) = ( a e. ( 0 ... ( # ` X ) ) , b e. ( I X. 2o ) |-> ( X splice <. a , a , <" b ( M ` b ) "> >. ) ) ) |
57 |
56
|
feq1d |
|- ( X e. W -> ( ( T ` X ) : ( ( 0 ... ( # ` X ) ) X. ( I X. 2o ) ) --> W <-> ( a e. ( 0 ... ( # ` X ) ) , b e. ( I X. 2o ) |-> ( X splice <. a , a , <" b ( M ` b ) "> >. ) ) : ( ( 0 ... ( # ` X ) ) X. ( I X. 2o ) ) --> W ) ) |
58 |
23 57
|
mpbird |
|- ( X e. W -> ( T ` X ) : ( ( 0 ... ( # ` X ) ) X. ( I X. 2o ) ) --> W ) |
59 |
56 58
|
jca |
|- ( X e. W -> ( ( T ` X ) = ( a e. ( 0 ... ( # ` X ) ) , b e. ( I X. 2o ) |-> ( X splice <. a , a , <" b ( M ` b ) "> >. ) ) /\ ( T ` X ) : ( ( 0 ... ( # ` X ) ) X. ( I X. 2o ) ) --> W ) ) |