Step |
Hyp |
Ref |
Expression |
1 |
|
cycpmco2.c |
|- M = ( toCyc ` D ) |
2 |
|
cycpmco2.s |
|- S = ( SymGrp ` D ) |
3 |
|
cycpmco2.d |
|- ( ph -> D e. V ) |
4 |
|
cycpmco2.w |
|- ( ph -> W e. dom M ) |
5 |
|
cycpmco2.i |
|- ( ph -> I e. ( D \ ran W ) ) |
6 |
|
cycpmco2.j |
|- ( ph -> J e. ran W ) |
7 |
|
cycpmco2.e |
|- E = ( ( `' W ` J ) + 1 ) |
8 |
|
cycpmco2.1 |
|- U = ( W splice <. E , E , <" I "> >. ) |
9 |
1 2 3 4 5 6 7 8
|
cycpmco2lem1 |
|- ( ph -> ( ( M ` W ) ` ( ( M ` <" I J "> ) ` I ) ) = ( ( M ` W ) ` J ) ) |
10 |
3
|
adantr |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> D e. V ) |
11 |
|
ssrab2 |
|- { w e. Word D | w : dom w -1-1-> D } C_ Word D |
12 |
|
eqid |
|- ( Base ` S ) = ( Base ` S ) |
13 |
1 2 12
|
tocycf |
|- ( D e. V -> M : { w e. Word D | w : dom w -1-1-> D } --> ( Base ` S ) ) |
14 |
3 13
|
syl |
|- ( ph -> M : { w e. Word D | w : dom w -1-1-> D } --> ( Base ` S ) ) |
15 |
14
|
fdmd |
|- ( ph -> dom M = { w e. Word D | w : dom w -1-1-> D } ) |
16 |
4 15
|
eleqtrd |
|- ( ph -> W e. { w e. Word D | w : dom w -1-1-> D } ) |
17 |
11 16
|
sselid |
|- ( ph -> W e. Word D ) |
18 |
5
|
eldifad |
|- ( ph -> I e. D ) |
19 |
18
|
s1cld |
|- ( ph -> <" I "> e. Word D ) |
20 |
|
splcl |
|- ( ( W e. Word D /\ <" I "> e. Word D ) -> ( W splice <. E , E , <" I "> >. ) e. Word D ) |
21 |
17 19 20
|
syl2anc |
|- ( ph -> ( W splice <. E , E , <" I "> >. ) e. Word D ) |
22 |
8 21
|
eqeltrid |
|- ( ph -> U e. Word D ) |
23 |
22
|
adantr |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> U e. Word D ) |
24 |
1 2 3 4 5 6 7 8
|
cycpmco2f1 |
|- ( ph -> U : dom U -1-1-> D ) |
25 |
24
|
adantr |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> U : dom U -1-1-> D ) |
26 |
|
simpr |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> E e. ( 0 ..^ ( # ` W ) ) ) |
27 |
1 2 3 4 5 6 7 8
|
cycpmco2lem3 |
|- ( ph -> ( ( # ` U ) - 1 ) = ( # ` W ) ) |
28 |
27
|
oveq2d |
|- ( ph -> ( 0 ..^ ( ( # ` U ) - 1 ) ) = ( 0 ..^ ( # ` W ) ) ) |
29 |
28
|
adantr |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( 0 ..^ ( ( # ` U ) - 1 ) ) = ( 0 ..^ ( # ` W ) ) ) |
30 |
26 29
|
eleqtrrd |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> E e. ( 0 ..^ ( ( # ` U ) - 1 ) ) ) |
31 |
1 10 23 25 30
|
cycpmfv1 |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( ( M ` U ) ` ( U ` E ) ) = ( U ` ( E + 1 ) ) ) |
32 |
1 2 3 4 5 6 7 8
|
cycpmco2lem2 |
|- ( ph -> ( U ` E ) = I ) |
33 |
32
|
fveq2d |
|- ( ph -> ( ( M ` U ) ` ( U ` E ) ) = ( ( M ` U ) ` I ) ) |
34 |
33
|
adantr |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( ( M ` U ) ` ( U ` E ) ) = ( ( M ` U ) ` I ) ) |
35 |
17
|
adantr |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> W e. Word D ) |
36 |
|
lencl |
|- ( W e. Word D -> ( # ` W ) e. NN0 ) |
37 |
17 36
|
syl |
|- ( ph -> ( # ` W ) e. NN0 ) |
38 |
|
nn0fz0 |
|- ( ( # ` W ) e. NN0 <-> ( # ` W ) e. ( 0 ... ( # ` W ) ) ) |
39 |
37 38
|
sylib |
|- ( ph -> ( # ` W ) e. ( 0 ... ( # ` W ) ) ) |
40 |
39
|
adantr |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( # ` W ) e. ( 0 ... ( # ` W ) ) ) |
41 |
|
swrdfv0 |
|- ( ( W e. Word D /\ E e. ( 0 ..^ ( # ` W ) ) /\ ( # ` W ) e. ( 0 ... ( # ` W ) ) ) -> ( ( W substr <. E , ( # ` W ) >. ) ` 0 ) = ( W ` E ) ) |
42 |
35 26 40 41
|
syl3anc |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( ( W substr <. E , ( # ` W ) >. ) ` 0 ) = ( W ` E ) ) |
43 |
|
ovexd |
|- ( ph -> ( ( `' W ` J ) + 1 ) e. _V ) |
44 |
7 43
|
eqeltrid |
|- ( ph -> E e. _V ) |
45 |
|
splval |
|- ( ( W e. dom M /\ ( E e. _V /\ E e. _V /\ <" I "> e. Word D ) ) -> ( W splice <. E , E , <" I "> >. ) = ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ) |
46 |
4 44 44 19 45
|
syl13anc |
|- ( ph -> ( W splice <. E , E , <" I "> >. ) = ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ) |
47 |
8 46
|
syl5eq |
|- ( ph -> U = ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ) |
48 |
47
|
fveq1d |
|- ( ph -> ( U ` ( E + 1 ) ) = ( ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ` ( E + 1 ) ) ) |
49 |
48
|
adantr |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( U ` ( E + 1 ) ) = ( ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ` ( E + 1 ) ) ) |
50 |
|
pfxcl |
|- ( W e. Word D -> ( W prefix E ) e. Word D ) |
51 |
17 50
|
syl |
|- ( ph -> ( W prefix E ) e. Word D ) |
52 |
|
ccatcl |
|- ( ( ( W prefix E ) e. Word D /\ <" I "> e. Word D ) -> ( ( W prefix E ) ++ <" I "> ) e. Word D ) |
53 |
51 19 52
|
syl2anc |
|- ( ph -> ( ( W prefix E ) ++ <" I "> ) e. Word D ) |
54 |
53
|
adantr |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( ( W prefix E ) ++ <" I "> ) e. Word D ) |
55 |
|
swrdcl |
|- ( W e. Word D -> ( W substr <. E , ( # ` W ) >. ) e. Word D ) |
56 |
17 55
|
syl |
|- ( ph -> ( W substr <. E , ( # ` W ) >. ) e. Word D ) |
57 |
56
|
adantr |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( W substr <. E , ( # ` W ) >. ) e. Word D ) |
58 |
|
1z |
|- 1 e. ZZ |
59 |
|
fzoaddel |
|- ( ( E e. ( 0 ..^ ( # ` W ) ) /\ 1 e. ZZ ) -> ( E + 1 ) e. ( ( 0 + 1 ) ..^ ( ( # ` W ) + 1 ) ) ) |
60 |
58 59
|
mpan2 |
|- ( E e. ( 0 ..^ ( # ` W ) ) -> ( E + 1 ) e. ( ( 0 + 1 ) ..^ ( ( # ` W ) + 1 ) ) ) |
61 |
|
elfzolt2b |
|- ( ( E + 1 ) e. ( ( 0 + 1 ) ..^ ( ( # ` W ) + 1 ) ) -> ( E + 1 ) e. ( ( E + 1 ) ..^ ( ( # ` W ) + 1 ) ) ) |
62 |
60 61
|
syl |
|- ( E e. ( 0 ..^ ( # ` W ) ) -> ( E + 1 ) e. ( ( E + 1 ) ..^ ( ( # ` W ) + 1 ) ) ) |
63 |
62
|
adantl |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( E + 1 ) e. ( ( E + 1 ) ..^ ( ( # ` W ) + 1 ) ) ) |
64 |
|
ccatws1len |
|- ( ( W prefix E ) e. Word D -> ( # ` ( ( W prefix E ) ++ <" I "> ) ) = ( ( # ` ( W prefix E ) ) + 1 ) ) |
65 |
51 64
|
syl |
|- ( ph -> ( # ` ( ( W prefix E ) ++ <" I "> ) ) = ( ( # ` ( W prefix E ) ) + 1 ) ) |
66 |
|
id |
|- ( w = W -> w = W ) |
67 |
|
dmeq |
|- ( w = W -> dom w = dom W ) |
68 |
|
eqidd |
|- ( w = W -> D = D ) |
69 |
66 67 68
|
f1eq123d |
|- ( w = W -> ( w : dom w -1-1-> D <-> W : dom W -1-1-> D ) ) |
70 |
69
|
elrab3 |
|- ( W e. Word D -> ( W e. { w e. Word D | w : dom w -1-1-> D } <-> W : dom W -1-1-> D ) ) |
71 |
70
|
biimpa |
|- ( ( W e. Word D /\ W e. { w e. Word D | w : dom w -1-1-> D } ) -> W : dom W -1-1-> D ) |
72 |
17 16 71
|
syl2anc |
|- ( ph -> W : dom W -1-1-> D ) |
73 |
|
f1cnv |
|- ( W : dom W -1-1-> D -> `' W : ran W -1-1-onto-> dom W ) |
74 |
72 73
|
syl |
|- ( ph -> `' W : ran W -1-1-onto-> dom W ) |
75 |
|
f1of |
|- ( `' W : ran W -1-1-onto-> dom W -> `' W : ran W --> dom W ) |
76 |
74 75
|
syl |
|- ( ph -> `' W : ran W --> dom W ) |
77 |
76 6
|
ffvelrnd |
|- ( ph -> ( `' W ` J ) e. dom W ) |
78 |
|
wrddm |
|- ( W e. Word D -> dom W = ( 0 ..^ ( # ` W ) ) ) |
79 |
17 78
|
syl |
|- ( ph -> dom W = ( 0 ..^ ( # ` W ) ) ) |
80 |
77 79
|
eleqtrd |
|- ( ph -> ( `' W ` J ) e. ( 0 ..^ ( # ` W ) ) ) |
81 |
|
fzofzp1 |
|- ( ( `' W ` J ) e. ( 0 ..^ ( # ` W ) ) -> ( ( `' W ` J ) + 1 ) e. ( 0 ... ( # ` W ) ) ) |
82 |
80 81
|
syl |
|- ( ph -> ( ( `' W ` J ) + 1 ) e. ( 0 ... ( # ` W ) ) ) |
83 |
7 82
|
eqeltrid |
|- ( ph -> E e. ( 0 ... ( # ` W ) ) ) |
84 |
|
pfxlen |
|- ( ( W e. Word D /\ E e. ( 0 ... ( # ` W ) ) ) -> ( # ` ( W prefix E ) ) = E ) |
85 |
17 83 84
|
syl2anc |
|- ( ph -> ( # ` ( W prefix E ) ) = E ) |
86 |
85
|
oveq1d |
|- ( ph -> ( ( # ` ( W prefix E ) ) + 1 ) = ( E + 1 ) ) |
87 |
65 86
|
eqtrd |
|- ( ph -> ( # ` ( ( W prefix E ) ++ <" I "> ) ) = ( E + 1 ) ) |
88 |
87
|
adantr |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( # ` ( ( W prefix E ) ++ <" I "> ) ) = ( E + 1 ) ) |
89 |
47
|
fveq2d |
|- ( ph -> ( # ` U ) = ( # ` ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ) ) |
90 |
|
ccatlen |
|- ( ( ( ( W prefix E ) ++ <" I "> ) e. Word D /\ ( W substr <. E , ( # ` W ) >. ) e. Word D ) -> ( # ` ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ) = ( ( # ` ( ( W prefix E ) ++ <" I "> ) ) + ( # ` ( W substr <. E , ( # ` W ) >. ) ) ) ) |
91 |
53 56 90
|
syl2anc |
|- ( ph -> ( # ` ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ) = ( ( # ` ( ( W prefix E ) ++ <" I "> ) ) + ( # ` ( W substr <. E , ( # ` W ) >. ) ) ) ) |
92 |
|
swrdlen |
|- ( ( W e. Word D /\ E e. ( 0 ... ( # ` W ) ) /\ ( # ` W ) e. ( 0 ... ( # ` W ) ) ) -> ( # ` ( W substr <. E , ( # ` W ) >. ) ) = ( ( # ` W ) - E ) ) |
93 |
17 83 39 92
|
syl3anc |
|- ( ph -> ( # ` ( W substr <. E , ( # ` W ) >. ) ) = ( ( # ` W ) - E ) ) |
94 |
87 93
|
oveq12d |
|- ( ph -> ( ( # ` ( ( W prefix E ) ++ <" I "> ) ) + ( # ` ( W substr <. E , ( # ` W ) >. ) ) ) = ( ( E + 1 ) + ( ( # ` W ) - E ) ) ) |
95 |
89 91 94
|
3eqtrd |
|- ( ph -> ( # ` U ) = ( ( E + 1 ) + ( ( # ` W ) - E ) ) ) |
96 |
|
fz0ssnn0 |
|- ( 0 ... ( # ` W ) ) C_ NN0 |
97 |
96 83
|
sselid |
|- ( ph -> E e. NN0 ) |
98 |
97
|
nn0zd |
|- ( ph -> E e. ZZ ) |
99 |
98
|
peano2zd |
|- ( ph -> ( E + 1 ) e. ZZ ) |
100 |
99
|
zcnd |
|- ( ph -> ( E + 1 ) e. CC ) |
101 |
37
|
nn0cnd |
|- ( ph -> ( # ` W ) e. CC ) |
102 |
97
|
nn0cnd |
|- ( ph -> E e. CC ) |
103 |
100 101 102
|
addsubassd |
|- ( ph -> ( ( ( E + 1 ) + ( # ` W ) ) - E ) = ( ( E + 1 ) + ( ( # ` W ) - E ) ) ) |
104 |
|
1cnd |
|- ( ph -> 1 e. CC ) |
105 |
102 104 101
|
addassd |
|- ( ph -> ( ( E + 1 ) + ( # ` W ) ) = ( E + ( 1 + ( # ` W ) ) ) ) |
106 |
105
|
oveq1d |
|- ( ph -> ( ( ( E + 1 ) + ( # ` W ) ) - E ) = ( ( E + ( 1 + ( # ` W ) ) ) - E ) ) |
107 |
95 103 106
|
3eqtr2d |
|- ( ph -> ( # ` U ) = ( ( E + ( 1 + ( # ` W ) ) ) - E ) ) |
108 |
104 101
|
addcld |
|- ( ph -> ( 1 + ( # ` W ) ) e. CC ) |
109 |
102 108
|
pncan2d |
|- ( ph -> ( ( E + ( 1 + ( # ` W ) ) ) - E ) = ( 1 + ( # ` W ) ) ) |
110 |
104 101
|
addcomd |
|- ( ph -> ( 1 + ( # ` W ) ) = ( ( # ` W ) + 1 ) ) |
111 |
107 109 110
|
3eqtrd |
|- ( ph -> ( # ` U ) = ( ( # ` W ) + 1 ) ) |
112 |
89 111 91
|
3eqtr3rd |
|- ( ph -> ( ( # ` ( ( W prefix E ) ++ <" I "> ) ) + ( # ` ( W substr <. E , ( # ` W ) >. ) ) ) = ( ( # ` W ) + 1 ) ) |
113 |
112
|
adantr |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( ( # ` ( ( W prefix E ) ++ <" I "> ) ) + ( # ` ( W substr <. E , ( # ` W ) >. ) ) ) = ( ( # ` W ) + 1 ) ) |
114 |
88 113
|
oveq12d |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( ( # ` ( ( W prefix E ) ++ <" I "> ) ) ..^ ( ( # ` ( ( W prefix E ) ++ <" I "> ) ) + ( # ` ( W substr <. E , ( # ` W ) >. ) ) ) ) = ( ( E + 1 ) ..^ ( ( # ` W ) + 1 ) ) ) |
115 |
63 114
|
eleqtrrd |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( E + 1 ) e. ( ( # ` ( ( W prefix E ) ++ <" I "> ) ) ..^ ( ( # ` ( ( W prefix E ) ++ <" I "> ) ) + ( # ` ( W substr <. E , ( # ` W ) >. ) ) ) ) ) |
116 |
|
ccatval2 |
|- ( ( ( ( W prefix E ) ++ <" I "> ) e. Word D /\ ( W substr <. E , ( # ` W ) >. ) e. Word D /\ ( E + 1 ) e. ( ( # ` ( ( W prefix E ) ++ <" I "> ) ) ..^ ( ( # ` ( ( W prefix E ) ++ <" I "> ) ) + ( # ` ( W substr <. E , ( # ` W ) >. ) ) ) ) ) -> ( ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ` ( E + 1 ) ) = ( ( W substr <. E , ( # ` W ) >. ) ` ( ( E + 1 ) - ( # ` ( ( W prefix E ) ++ <" I "> ) ) ) ) ) |
117 |
54 57 115 116
|
syl3anc |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ` ( E + 1 ) ) = ( ( W substr <. E , ( # ` W ) >. ) ` ( ( E + 1 ) - ( # ` ( ( W prefix E ) ++ <" I "> ) ) ) ) ) |
118 |
87
|
oveq2d |
|- ( ph -> ( ( E + 1 ) - ( # ` ( ( W prefix E ) ++ <" I "> ) ) ) = ( ( E + 1 ) - ( E + 1 ) ) ) |
119 |
100
|
subidd |
|- ( ph -> ( ( E + 1 ) - ( E + 1 ) ) = 0 ) |
120 |
118 119
|
eqtrd |
|- ( ph -> ( ( E + 1 ) - ( # ` ( ( W prefix E ) ++ <" I "> ) ) ) = 0 ) |
121 |
120
|
fveq2d |
|- ( ph -> ( ( W substr <. E , ( # ` W ) >. ) ` ( ( E + 1 ) - ( # ` ( ( W prefix E ) ++ <" I "> ) ) ) ) = ( ( W substr <. E , ( # ` W ) >. ) ` 0 ) ) |
122 |
121
|
adantr |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( ( W substr <. E , ( # ` W ) >. ) ` ( ( E + 1 ) - ( # ` ( ( W prefix E ) ++ <" I "> ) ) ) ) = ( ( W substr <. E , ( # ` W ) >. ) ` 0 ) ) |
123 |
49 117 122
|
3eqtrd |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( U ` ( E + 1 ) ) = ( ( W substr <. E , ( # ` W ) >. ) ` 0 ) ) |
124 |
7
|
fveq2i |
|- ( W ` E ) = ( W ` ( ( `' W ` J ) + 1 ) ) |
125 |
124
|
a1i |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( W ` E ) = ( W ` ( ( `' W ` J ) + 1 ) ) ) |
126 |
72
|
adantr |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> W : dom W -1-1-> D ) |
127 |
7
|
oveq1i |
|- ( E - 1 ) = ( ( ( `' W ` J ) + 1 ) - 1 ) |
128 |
|
elfzonn0 |
|- ( ( `' W ` J ) e. ( 0 ..^ ( # ` W ) ) -> ( `' W ` J ) e. NN0 ) |
129 |
80 128
|
syl |
|- ( ph -> ( `' W ` J ) e. NN0 ) |
130 |
129
|
nn0cnd |
|- ( ph -> ( `' W ` J ) e. CC ) |
131 |
130 104
|
pncand |
|- ( ph -> ( ( ( `' W ` J ) + 1 ) - 1 ) = ( `' W ` J ) ) |
132 |
127 131
|
eqtr2id |
|- ( ph -> ( `' W ` J ) = ( E - 1 ) ) |
133 |
132
|
adantr |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( `' W ` J ) = ( E - 1 ) ) |
134 |
|
nn0p1gt0 |
|- ( ( `' W ` J ) e. NN0 -> 0 < ( ( `' W ` J ) + 1 ) ) |
135 |
129 134
|
syl |
|- ( ph -> 0 < ( ( `' W ` J ) + 1 ) ) |
136 |
135 7
|
breqtrrdi |
|- ( ph -> 0 < E ) |
137 |
136
|
gt0ne0d |
|- ( ph -> E =/= 0 ) |
138 |
137
|
adantr |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> E =/= 0 ) |
139 |
|
fzo1fzo0n0 |
|- ( E e. ( 1 ..^ ( # ` W ) ) <-> ( E e. ( 0 ..^ ( # ` W ) ) /\ E =/= 0 ) ) |
140 |
26 138 139
|
sylanbrc |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> E e. ( 1 ..^ ( # ` W ) ) ) |
141 |
|
elfzo1elm1fzo0 |
|- ( E e. ( 1 ..^ ( # ` W ) ) -> ( E - 1 ) e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) |
142 |
140 141
|
syl |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( E - 1 ) e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) |
143 |
133 142
|
eqeltrd |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( `' W ` J ) e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) |
144 |
1 10 35 126 143
|
cycpmfv1 |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( ( M ` W ) ` ( W ` ( `' W ` J ) ) ) = ( W ` ( ( `' W ` J ) + 1 ) ) ) |
145 |
|
f1f1orn |
|- ( W : dom W -1-1-> D -> W : dom W -1-1-onto-> ran W ) |
146 |
72 145
|
syl |
|- ( ph -> W : dom W -1-1-onto-> ran W ) |
147 |
|
f1ocnvfv2 |
|- ( ( W : dom W -1-1-onto-> ran W /\ J e. ran W ) -> ( W ` ( `' W ` J ) ) = J ) |
148 |
146 6 147
|
syl2anc |
|- ( ph -> ( W ` ( `' W ` J ) ) = J ) |
149 |
148
|
fveq2d |
|- ( ph -> ( ( M ` W ) ` ( W ` ( `' W ` J ) ) ) = ( ( M ` W ) ` J ) ) |
150 |
149
|
adantr |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( ( M ` W ) ` ( W ` ( `' W ` J ) ) ) = ( ( M ` W ) ` J ) ) |
151 |
125 144 150
|
3eqtr2rd |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( ( M ` W ) ` J ) = ( W ` E ) ) |
152 |
42 123 151
|
3eqtr4d |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( U ` ( E + 1 ) ) = ( ( M ` W ) ` J ) ) |
153 |
31 34 152
|
3eqtr3rd |
|- ( ( ph /\ E e. ( 0 ..^ ( # ` W ) ) ) -> ( ( M ` W ) ` J ) = ( ( M ` U ) ` I ) ) |
154 |
149
|
adantr |
|- ( ( ph /\ E = ( # ` W ) ) -> ( ( M ` W ) ` ( W ` ( `' W ` J ) ) ) = ( ( M ` W ) ` J ) ) |
155 |
3
|
adantr |
|- ( ( ph /\ E = ( # ` W ) ) -> D e. V ) |
156 |
17
|
adantr |
|- ( ( ph /\ E = ( # ` W ) ) -> W e. Word D ) |
157 |
72
|
adantr |
|- ( ( ph /\ E = ( # ` W ) ) -> W : dom W -1-1-> D ) |
158 |
136
|
adantr |
|- ( ( ph /\ E = ( # ` W ) ) -> 0 < E ) |
159 |
|
simpr |
|- ( ( ph /\ E = ( # ` W ) ) -> E = ( # ` W ) ) |
160 |
158 159
|
breqtrd |
|- ( ( ph /\ E = ( # ` W ) ) -> 0 < ( # ` W ) ) |
161 |
|
oveq1 |
|- ( E = ( # ` W ) -> ( E - 1 ) = ( ( # ` W ) - 1 ) ) |
162 |
132 161
|
sylan9eq |
|- ( ( ph /\ E = ( # ` W ) ) -> ( `' W ` J ) = ( ( # ` W ) - 1 ) ) |
163 |
1 155 156 157 160 162
|
cycpmfv2 |
|- ( ( ph /\ E = ( # ` W ) ) -> ( ( M ` W ) ` ( W ` ( `' W ` J ) ) ) = ( W ` 0 ) ) |
164 |
154 163
|
eqtr3d |
|- ( ( ph /\ E = ( # ` W ) ) -> ( ( M ` W ) ` J ) = ( W ` 0 ) ) |
165 |
22
|
adantr |
|- ( ( ph /\ E = ( # ` W ) ) -> U e. Word D ) |
166 |
24
|
adantr |
|- ( ( ph /\ E = ( # ` W ) ) -> U : dom U -1-1-> D ) |
167 |
|
nn0p1gt0 |
|- ( ( # ` W ) e. NN0 -> 0 < ( ( # ` W ) + 1 ) ) |
168 |
37 167
|
syl |
|- ( ph -> 0 < ( ( # ` W ) + 1 ) ) |
169 |
168 111
|
breqtrrd |
|- ( ph -> 0 < ( # ` U ) ) |
170 |
169
|
adantr |
|- ( ( ph /\ E = ( # ` W ) ) -> 0 < ( # ` U ) ) |
171 |
27
|
adantr |
|- ( ( ph /\ E = ( # ` W ) ) -> ( ( # ` U ) - 1 ) = ( # ` W ) ) |
172 |
159 171
|
eqtr4d |
|- ( ( ph /\ E = ( # ` W ) ) -> E = ( ( # ` U ) - 1 ) ) |
173 |
1 155 165 166 170 172
|
cycpmfv2 |
|- ( ( ph /\ E = ( # ` W ) ) -> ( ( M ` U ) ` ( U ` E ) ) = ( U ` 0 ) ) |
174 |
47
|
fveq1d |
|- ( ph -> ( U ` 0 ) = ( ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ` 0 ) ) |
175 |
174
|
adantr |
|- ( ( ph /\ E = ( # ` W ) ) -> ( U ` 0 ) = ( ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ` 0 ) ) |
176 |
|
nn0p1nn |
|- ( E e. NN0 -> ( E + 1 ) e. NN ) |
177 |
97 176
|
syl |
|- ( ph -> ( E + 1 ) e. NN ) |
178 |
|
lbfzo0 |
|- ( 0 e. ( 0 ..^ ( E + 1 ) ) <-> ( E + 1 ) e. NN ) |
179 |
177 178
|
sylibr |
|- ( ph -> 0 e. ( 0 ..^ ( E + 1 ) ) ) |
180 |
87
|
oveq2d |
|- ( ph -> ( 0 ..^ ( # ` ( ( W prefix E ) ++ <" I "> ) ) ) = ( 0 ..^ ( E + 1 ) ) ) |
181 |
179 180
|
eleqtrrd |
|- ( ph -> 0 e. ( 0 ..^ ( # ` ( ( W prefix E ) ++ <" I "> ) ) ) ) |
182 |
|
ccatval1 |
|- ( ( ( ( W prefix E ) ++ <" I "> ) e. Word D /\ ( W substr <. E , ( # ` W ) >. ) e. Word D /\ 0 e. ( 0 ..^ ( # ` ( ( W prefix E ) ++ <" I "> ) ) ) ) -> ( ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ` 0 ) = ( ( ( W prefix E ) ++ <" I "> ) ` 0 ) ) |
183 |
53 56 181 182
|
syl3anc |
|- ( ph -> ( ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ` 0 ) = ( ( ( W prefix E ) ++ <" I "> ) ` 0 ) ) |
184 |
|
nn0p1nn |
|- ( ( `' W ` J ) e. NN0 -> ( ( `' W ` J ) + 1 ) e. NN ) |
185 |
129 184
|
syl |
|- ( ph -> ( ( `' W ` J ) + 1 ) e. NN ) |
186 |
7 185
|
eqeltrid |
|- ( ph -> E e. NN ) |
187 |
|
lbfzo0 |
|- ( 0 e. ( 0 ..^ E ) <-> E e. NN ) |
188 |
186 187
|
sylibr |
|- ( ph -> 0 e. ( 0 ..^ E ) ) |
189 |
85
|
oveq2d |
|- ( ph -> ( 0 ..^ ( # ` ( W prefix E ) ) ) = ( 0 ..^ E ) ) |
190 |
188 189
|
eleqtrrd |
|- ( ph -> 0 e. ( 0 ..^ ( # ` ( W prefix E ) ) ) ) |
191 |
|
ccatval1 |
|- ( ( ( W prefix E ) e. Word D /\ <" I "> e. Word D /\ 0 e. ( 0 ..^ ( # ` ( W prefix E ) ) ) ) -> ( ( ( W prefix E ) ++ <" I "> ) ` 0 ) = ( ( W prefix E ) ` 0 ) ) |
192 |
51 19 190 191
|
syl3anc |
|- ( ph -> ( ( ( W prefix E ) ++ <" I "> ) ` 0 ) = ( ( W prefix E ) ` 0 ) ) |
193 |
|
fzne1 |
|- ( ( E e. ( 0 ... ( # ` W ) ) /\ E =/= 0 ) -> E e. ( ( 0 + 1 ) ... ( # ` W ) ) ) |
194 |
83 137 193
|
syl2anc |
|- ( ph -> E e. ( ( 0 + 1 ) ... ( # ` W ) ) ) |
195 |
|
0p1e1 |
|- ( 0 + 1 ) = 1 |
196 |
195
|
oveq1i |
|- ( ( 0 + 1 ) ... ( # ` W ) ) = ( 1 ... ( # ` W ) ) |
197 |
194 196
|
eleqtrdi |
|- ( ph -> E e. ( 1 ... ( # ` W ) ) ) |
198 |
|
pfxfv0 |
|- ( ( W e. Word D /\ E e. ( 1 ... ( # ` W ) ) ) -> ( ( W prefix E ) ` 0 ) = ( W ` 0 ) ) |
199 |
17 197 198
|
syl2anc |
|- ( ph -> ( ( W prefix E ) ` 0 ) = ( W ` 0 ) ) |
200 |
183 192 199
|
3eqtrd |
|- ( ph -> ( ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ` 0 ) = ( W ` 0 ) ) |
201 |
200
|
adantr |
|- ( ( ph /\ E = ( # ` W ) ) -> ( ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ` 0 ) = ( W ` 0 ) ) |
202 |
173 175 201
|
3eqtrd |
|- ( ( ph /\ E = ( # ` W ) ) -> ( ( M ` U ) ` ( U ` E ) ) = ( W ` 0 ) ) |
203 |
33
|
adantr |
|- ( ( ph /\ E = ( # ` W ) ) -> ( ( M ` U ) ` ( U ` E ) ) = ( ( M ` U ) ` I ) ) |
204 |
164 202 203
|
3eqtr2d |
|- ( ( ph /\ E = ( # ` W ) ) -> ( ( M ` W ) ` J ) = ( ( M ` U ) ` I ) ) |
205 |
|
elfzr |
|- ( E e. ( 0 ... ( # ` W ) ) -> ( E e. ( 0 ..^ ( # ` W ) ) \/ E = ( # ` W ) ) ) |
206 |
83 205
|
syl |
|- ( ph -> ( E e. ( 0 ..^ ( # ` W ) ) \/ E = ( # ` W ) ) ) |
207 |
153 204 206
|
mpjaodan |
|- ( ph -> ( ( M ` W ) ` J ) = ( ( M ` U ) ` I ) ) |
208 |
9 207
|
eqtrd |
|- ( ph -> ( ( M ` W ) ` ( ( M ` <" I J "> ) ` I ) ) = ( ( M ` U ) ` I ) ) |