| 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 |  | cycpmco2lem.1 |  |-  ( ph -> K e. ran W ) | 
						
							| 10 |  | cycpmco2lem5.1 |  |-  ( ph -> ( `' U ` K ) = ( ( # ` U ) - 1 ) ) | 
						
							| 11 | 9 | adantr |  |-  ( ( ph /\ ( # ` W ) = E ) -> K e. ran W ) | 
						
							| 12 |  | ovexd |  |-  ( ph -> ( ( `' W ` J ) + 1 ) e. _V ) | 
						
							| 13 | 7 12 | eqeltrid |  |-  ( ph -> E e. _V ) | 
						
							| 14 | 5 | eldifad |  |-  ( ph -> I e. D ) | 
						
							| 15 | 14 | s1cld |  |-  ( ph -> <" I "> e. Word D ) | 
						
							| 16 |  | 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 ) >. ) ) ) | 
						
							| 17 | 4 13 13 15 16 | syl13anc |  |-  ( ph -> ( W splice <. E , E , <" I "> >. ) = ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ) | 
						
							| 18 | 8 17 | eqtrid |  |-  ( ph -> U = ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ) | 
						
							| 19 | 18 | fveq2d |  |-  ( ph -> ( # ` U ) = ( # ` ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ) ) | 
						
							| 20 |  | ssrab2 |  |-  { w e. Word D | w : dom w -1-1-> D } C_ Word D | 
						
							| 21 |  | eqid |  |-  ( Base ` S ) = ( Base ` S ) | 
						
							| 22 | 1 2 21 | tocycf |  |-  ( D e. V -> M : { w e. Word D | w : dom w -1-1-> D } --> ( Base ` S ) ) | 
						
							| 23 | 3 22 | syl |  |-  ( ph -> M : { w e. Word D | w : dom w -1-1-> D } --> ( Base ` S ) ) | 
						
							| 24 | 23 | fdmd |  |-  ( ph -> dom M = { w e. Word D | w : dom w -1-1-> D } ) | 
						
							| 25 | 4 24 | eleqtrd |  |-  ( ph -> W e. { w e. Word D | w : dom w -1-1-> D } ) | 
						
							| 26 | 20 25 | sselid |  |-  ( ph -> W e. Word D ) | 
						
							| 27 |  | pfxcl |  |-  ( W e. Word D -> ( W prefix E ) e. Word D ) | 
						
							| 28 | 26 27 | syl |  |-  ( ph -> ( W prefix E ) e. Word D ) | 
						
							| 29 |  | ccatcl |  |-  ( ( ( W prefix E ) e. Word D /\ <" I "> e. Word D ) -> ( ( W prefix E ) ++ <" I "> ) e. Word D ) | 
						
							| 30 | 28 15 29 | syl2anc |  |-  ( ph -> ( ( W prefix E ) ++ <" I "> ) e. Word D ) | 
						
							| 31 |  | swrdcl |  |-  ( W e. Word D -> ( W substr <. E , ( # ` W ) >. ) e. Word D ) | 
						
							| 32 | 26 31 | syl |  |-  ( ph -> ( W substr <. E , ( # ` W ) >. ) e. Word D ) | 
						
							| 33 |  | 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 ) >. ) ) ) ) | 
						
							| 34 | 30 32 33 | syl2anc |  |-  ( ph -> ( # ` ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ) = ( ( # ` ( ( W prefix E ) ++ <" I "> ) ) + ( # ` ( W substr <. E , ( # ` W ) >. ) ) ) ) | 
						
							| 35 |  | ccatws1len |  |-  ( ( W prefix E ) e. Word D -> ( # ` ( ( W prefix E ) ++ <" I "> ) ) = ( ( # ` ( W prefix E ) ) + 1 ) ) | 
						
							| 36 | 28 35 | syl |  |-  ( ph -> ( # ` ( ( W prefix E ) ++ <" I "> ) ) = ( ( # ` ( W prefix E ) ) + 1 ) ) | 
						
							| 37 |  | id |  |-  ( w = W -> w = W ) | 
						
							| 38 |  | dmeq |  |-  ( w = W -> dom w = dom W ) | 
						
							| 39 |  | eqidd |  |-  ( w = W -> D = D ) | 
						
							| 40 | 37 38 39 | f1eq123d |  |-  ( w = W -> ( w : dom w -1-1-> D <-> W : dom W -1-1-> D ) ) | 
						
							| 41 | 40 | elrab |  |-  ( W e. { w e. Word D | w : dom w -1-1-> D } <-> ( W e. Word D /\ W : dom W -1-1-> D ) ) | 
						
							| 42 | 25 41 | sylib |  |-  ( ph -> ( W e. Word D /\ W : dom W -1-1-> D ) ) | 
						
							| 43 | 42 | simprd |  |-  ( ph -> W : dom W -1-1-> D ) | 
						
							| 44 |  | f1cnv |  |-  ( W : dom W -1-1-> D -> `' W : ran W -1-1-onto-> dom W ) | 
						
							| 45 | 43 44 | syl |  |-  ( ph -> `' W : ran W -1-1-onto-> dom W ) | 
						
							| 46 |  | f1of |  |-  ( `' W : ran W -1-1-onto-> dom W -> `' W : ran W --> dom W ) | 
						
							| 47 | 45 46 | syl |  |-  ( ph -> `' W : ran W --> dom W ) | 
						
							| 48 | 47 6 | ffvelcdmd |  |-  ( ph -> ( `' W ` J ) e. dom W ) | 
						
							| 49 |  | wrddm |  |-  ( W e. Word D -> dom W = ( 0 ..^ ( # ` W ) ) ) | 
						
							| 50 | 26 49 | syl |  |-  ( ph -> dom W = ( 0 ..^ ( # ` W ) ) ) | 
						
							| 51 | 48 50 | eleqtrd |  |-  ( ph -> ( `' W ` J ) e. ( 0 ..^ ( # ` W ) ) ) | 
						
							| 52 |  | fzofzp1 |  |-  ( ( `' W ` J ) e. ( 0 ..^ ( # ` W ) ) -> ( ( `' W ` J ) + 1 ) e. ( 0 ... ( # ` W ) ) ) | 
						
							| 53 | 51 52 | syl |  |-  ( ph -> ( ( `' W ` J ) + 1 ) e. ( 0 ... ( # ` W ) ) ) | 
						
							| 54 | 7 53 | eqeltrid |  |-  ( ph -> E e. ( 0 ... ( # ` W ) ) ) | 
						
							| 55 |  | pfxlen |  |-  ( ( W e. Word D /\ E e. ( 0 ... ( # ` W ) ) ) -> ( # ` ( W prefix E ) ) = E ) | 
						
							| 56 | 26 54 55 | syl2anc |  |-  ( ph -> ( # ` ( W prefix E ) ) = E ) | 
						
							| 57 | 56 | oveq1d |  |-  ( ph -> ( ( # ` ( W prefix E ) ) + 1 ) = ( E + 1 ) ) | 
						
							| 58 | 36 57 | eqtrd |  |-  ( ph -> ( # ` ( ( W prefix E ) ++ <" I "> ) ) = ( E + 1 ) ) | 
						
							| 59 |  | lencl |  |-  ( W e. Word D -> ( # ` W ) e. NN0 ) | 
						
							| 60 | 26 59 | syl |  |-  ( ph -> ( # ` W ) e. NN0 ) | 
						
							| 61 |  | nn0fz0 |  |-  ( ( # ` W ) e. NN0 <-> ( # ` W ) e. ( 0 ... ( # ` W ) ) ) | 
						
							| 62 | 60 61 | sylib |  |-  ( ph -> ( # ` W ) e. ( 0 ... ( # ` W ) ) ) | 
						
							| 63 |  | swrdlen |  |-  ( ( W e. Word D /\ E e. ( 0 ... ( # ` W ) ) /\ ( # ` W ) e. ( 0 ... ( # ` W ) ) ) -> ( # ` ( W substr <. E , ( # ` W ) >. ) ) = ( ( # ` W ) - E ) ) | 
						
							| 64 | 26 54 62 63 | syl3anc |  |-  ( ph -> ( # ` ( W substr <. E , ( # ` W ) >. ) ) = ( ( # ` W ) - E ) ) | 
						
							| 65 | 58 64 | oveq12d |  |-  ( ph -> ( ( # ` ( ( W prefix E ) ++ <" I "> ) ) + ( # ` ( W substr <. E , ( # ` W ) >. ) ) ) = ( ( E + 1 ) + ( ( # ` W ) - E ) ) ) | 
						
							| 66 | 19 34 65 | 3eqtrd |  |-  ( ph -> ( # ` U ) = ( ( E + 1 ) + ( ( # ` W ) - E ) ) ) | 
						
							| 67 |  | fz0ssnn0 |  |-  ( 0 ... ( # ` W ) ) C_ NN0 | 
						
							| 68 | 67 54 | sselid |  |-  ( ph -> E e. NN0 ) | 
						
							| 69 | 68 | nn0zd |  |-  ( ph -> E e. ZZ ) | 
						
							| 70 | 69 | peano2zd |  |-  ( ph -> ( E + 1 ) e. ZZ ) | 
						
							| 71 | 70 | zcnd |  |-  ( ph -> ( E + 1 ) e. CC ) | 
						
							| 72 | 60 | nn0cnd |  |-  ( ph -> ( # ` W ) e. CC ) | 
						
							| 73 | 68 | nn0cnd |  |-  ( ph -> E e. CC ) | 
						
							| 74 | 71 72 73 | addsubassd |  |-  ( ph -> ( ( ( E + 1 ) + ( # ` W ) ) - E ) = ( ( E + 1 ) + ( ( # ` W ) - E ) ) ) | 
						
							| 75 |  | 1cnd |  |-  ( ph -> 1 e. CC ) | 
						
							| 76 | 73 75 72 | addassd |  |-  ( ph -> ( ( E + 1 ) + ( # ` W ) ) = ( E + ( 1 + ( # ` W ) ) ) ) | 
						
							| 77 | 76 | oveq1d |  |-  ( ph -> ( ( ( E + 1 ) + ( # ` W ) ) - E ) = ( ( E + ( 1 + ( # ` W ) ) ) - E ) ) | 
						
							| 78 | 66 74 77 | 3eqtr2d |  |-  ( ph -> ( # ` U ) = ( ( E + ( 1 + ( # ` W ) ) ) - E ) ) | 
						
							| 79 | 75 72 | addcld |  |-  ( ph -> ( 1 + ( # ` W ) ) e. CC ) | 
						
							| 80 | 73 79 | pncan2d |  |-  ( ph -> ( ( E + ( 1 + ( # ` W ) ) ) - E ) = ( 1 + ( # ` W ) ) ) | 
						
							| 81 | 75 72 | addcomd |  |-  ( ph -> ( 1 + ( # ` W ) ) = ( ( # ` W ) + 1 ) ) | 
						
							| 82 | 78 80 81 | 3eqtrd |  |-  ( ph -> ( # ` U ) = ( ( # ` W ) + 1 ) ) | 
						
							| 83 |  | oveq1 |  |-  ( ( # ` W ) = E -> ( ( # ` W ) + 1 ) = ( E + 1 ) ) | 
						
							| 84 | 82 83 | sylan9eq |  |-  ( ( ph /\ ( # ` W ) = E ) -> ( # ` U ) = ( E + 1 ) ) | 
						
							| 85 | 84 | oveq1d |  |-  ( ( ph /\ ( # ` W ) = E ) -> ( ( # ` U ) - 1 ) = ( ( E + 1 ) - 1 ) ) | 
						
							| 86 | 73 75 | pncand |  |-  ( ph -> ( ( E + 1 ) - 1 ) = E ) | 
						
							| 87 | 86 | adantr |  |-  ( ( ph /\ ( # ` W ) = E ) -> ( ( E + 1 ) - 1 ) = E ) | 
						
							| 88 | 85 87 | eqtrd |  |-  ( ( ph /\ ( # ` W ) = E ) -> ( ( # ` U ) - 1 ) = E ) | 
						
							| 89 | 88 | fveq2d |  |-  ( ( ph /\ ( # ` W ) = E ) -> ( U ` ( ( # ` U ) - 1 ) ) = ( U ` E ) ) | 
						
							| 90 | 10 | fveq2d |  |-  ( ph -> ( U ` ( `' U ` K ) ) = ( U ` ( ( # ` U ) - 1 ) ) ) | 
						
							| 91 | 1 2 3 4 5 6 7 8 | cycpmco2f1 |  |-  ( ph -> U : dom U -1-1-> D ) | 
						
							| 92 |  | f1f1orn |  |-  ( U : dom U -1-1-> D -> U : dom U -1-1-onto-> ran U ) | 
						
							| 93 | 91 92 | syl |  |-  ( ph -> U : dom U -1-1-onto-> ran U ) | 
						
							| 94 |  | ssun1 |  |-  ran W C_ ( ran W u. { I } ) | 
						
							| 95 | 1 2 3 4 5 6 7 8 | cycpmco2rn |  |-  ( ph -> ran U = ( ran W u. { I } ) ) | 
						
							| 96 | 94 95 | sseqtrrid |  |-  ( ph -> ran W C_ ran U ) | 
						
							| 97 | 96 | sselda |  |-  ( ( ph /\ K e. ran W ) -> K e. ran U ) | 
						
							| 98 |  | f1ocnvfv2 |  |-  ( ( U : dom U -1-1-onto-> ran U /\ K e. ran U ) -> ( U ` ( `' U ` K ) ) = K ) | 
						
							| 99 | 93 97 98 | syl2an2r |  |-  ( ( ph /\ K e. ran W ) -> ( U ` ( `' U ` K ) ) = K ) | 
						
							| 100 | 9 99 | mpdan |  |-  ( ph -> ( U ` ( `' U ` K ) ) = K ) | 
						
							| 101 | 90 100 | eqtr3d |  |-  ( ph -> ( U ` ( ( # ` U ) - 1 ) ) = K ) | 
						
							| 102 | 101 | adantr |  |-  ( ( ph /\ ( # ` W ) = E ) -> ( U ` ( ( # ` U ) - 1 ) ) = K ) | 
						
							| 103 | 1 2 3 4 5 6 7 8 | cycpmco2lem2 |  |-  ( ph -> ( U ` E ) = I ) | 
						
							| 104 | 103 | adantr |  |-  ( ( ph /\ ( # ` W ) = E ) -> ( U ` E ) = I ) | 
						
							| 105 | 89 102 104 | 3eqtr3d |  |-  ( ( ph /\ ( # ` W ) = E ) -> K = I ) | 
						
							| 106 | 5 | eldifbd |  |-  ( ph -> -. I e. ran W ) | 
						
							| 107 | 106 | adantr |  |-  ( ( ph /\ ( # ` W ) = E ) -> -. I e. ran W ) | 
						
							| 108 | 105 107 | eqneltrd |  |-  ( ( ph /\ ( # ` W ) = E ) -> -. K e. ran W ) | 
						
							| 109 | 11 108 | pm2.21dd |  |-  ( ( ph /\ ( # ` W ) = E ) -> ( ( M ` U ) ` ( U ` ( ( # ` U ) - 1 ) ) ) = ( ( M ` W ) ` ( U ` ( ( # ` U ) - 1 ) ) ) ) | 
						
							| 110 |  | splcl |  |-  ( ( W e. Word D /\ <" I "> e. Word D ) -> ( W splice <. E , E , <" I "> >. ) e. Word D ) | 
						
							| 111 | 26 15 110 | syl2anc |  |-  ( ph -> ( W splice <. E , E , <" I "> >. ) e. Word D ) | 
						
							| 112 | 8 111 | eqeltrid |  |-  ( ph -> U e. Word D ) | 
						
							| 113 |  | nn0p1gt0 |  |-  ( ( # ` W ) e. NN0 -> 0 < ( ( # ` W ) + 1 ) ) | 
						
							| 114 | 60 113 | syl |  |-  ( ph -> 0 < ( ( # ` W ) + 1 ) ) | 
						
							| 115 | 114 82 | breqtrrd |  |-  ( ph -> 0 < ( # ` U ) ) | 
						
							| 116 |  | eqidd |  |-  ( ph -> ( ( # ` U ) - 1 ) = ( ( # ` U ) - 1 ) ) | 
						
							| 117 | 1 3 112 91 115 116 | cycpmfv2 |  |-  ( ph -> ( ( M ` U ) ` ( U ` ( ( # ` U ) - 1 ) ) ) = ( U ` 0 ) ) | 
						
							| 118 | 117 | adantr |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> ( ( M ` U ) ` ( U ` ( ( # ` U ) - 1 ) ) ) = ( U ` 0 ) ) | 
						
							| 119 |  | f1f |  |-  ( W : dom W -1-1-> D -> W : dom W --> D ) | 
						
							| 120 | 43 119 | syl |  |-  ( ph -> W : dom W --> D ) | 
						
							| 121 | 120 | frnd |  |-  ( ph -> ran W C_ D ) | 
						
							| 122 | 3 121 | ssexd |  |-  ( ph -> ran W e. _V ) | 
						
							| 123 | 6 | ne0d |  |-  ( ph -> ran W =/= (/) ) | 
						
							| 124 |  | hashgt0 |  |-  ( ( ran W e. _V /\ ran W =/= (/) ) -> 0 < ( # ` ran W ) ) | 
						
							| 125 | 122 123 124 | syl2anc |  |-  ( ph -> 0 < ( # ` ran W ) ) | 
						
							| 126 | 4 | dmexd |  |-  ( ph -> dom W e. _V ) | 
						
							| 127 |  | hashf1rn |  |-  ( ( dom W e. _V /\ W : dom W -1-1-> D ) -> ( # ` W ) = ( # ` ran W ) ) | 
						
							| 128 | 126 43 127 | syl2anc |  |-  ( ph -> ( # ` W ) = ( # ` ran W ) ) | 
						
							| 129 | 125 128 | breqtrrd |  |-  ( ph -> 0 < ( # ` W ) ) | 
						
							| 130 |  | eqidd |  |-  ( ph -> ( ( # ` W ) - 1 ) = ( ( # ` W ) - 1 ) ) | 
						
							| 131 | 1 3 26 43 129 130 | cycpmfv2 |  |-  ( ph -> ( ( M ` W ) ` ( W ` ( ( # ` W ) - 1 ) ) ) = ( W ` 0 ) ) | 
						
							| 132 | 131 | adantr |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> ( ( M ` W ) ` ( W ` ( ( # ` W ) - 1 ) ) ) = ( W ` 0 ) ) | 
						
							| 133 | 8 | a1i |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> U = ( W splice <. E , E , <" I "> >. ) ) | 
						
							| 134 | 1 2 3 4 5 6 7 8 | cycpmco2lem3 |  |-  ( ph -> ( ( # ` U ) - 1 ) = ( # ` W ) ) | 
						
							| 135 | 73 75 | addcomd |  |-  ( ph -> ( E + 1 ) = ( 1 + E ) ) | 
						
							| 136 | 135 | oveq2d |  |-  ( ph -> ( ( ( ( # ` W ) - 1 ) - E ) + ( E + 1 ) ) = ( ( ( ( # ` W ) - 1 ) - E ) + ( 1 + E ) ) ) | 
						
							| 137 | 72 75 | subcld |  |-  ( ph -> ( ( # ` W ) - 1 ) e. CC ) | 
						
							| 138 | 137 73 75 | nppcan3d |  |-  ( ph -> ( ( ( ( # ` W ) - 1 ) - E ) + ( 1 + E ) ) = ( ( ( # ` W ) - 1 ) + 1 ) ) | 
						
							| 139 | 72 75 | npcand |  |-  ( ph -> ( ( ( # ` W ) - 1 ) + 1 ) = ( # ` W ) ) | 
						
							| 140 | 136 138 139 | 3eqtrd |  |-  ( ph -> ( ( ( ( # ` W ) - 1 ) - E ) + ( E + 1 ) ) = ( # ` W ) ) | 
						
							| 141 | 134 140 | eqtr4d |  |-  ( ph -> ( ( # ` U ) - 1 ) = ( ( ( ( # ` W ) - 1 ) - E ) + ( E + 1 ) ) ) | 
						
							| 142 | 141 | adantr |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> ( ( # ` U ) - 1 ) = ( ( ( ( # ` W ) - 1 ) - E ) + ( E + 1 ) ) ) | 
						
							| 143 | 133 142 | fveq12d |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> ( U ` ( ( # ` U ) - 1 ) ) = ( ( W splice <. E , E , <" I "> >. ) ` ( ( ( ( # ` W ) - 1 ) - E ) + ( E + 1 ) ) ) ) | 
						
							| 144 | 26 | adantr |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> W e. Word D ) | 
						
							| 145 |  | nn0fz0 |  |-  ( E e. NN0 <-> E e. ( 0 ... E ) ) | 
						
							| 146 | 68 145 | sylib |  |-  ( ph -> E e. ( 0 ... E ) ) | 
						
							| 147 | 146 | adantr |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> E e. ( 0 ... E ) ) | 
						
							| 148 | 54 | adantr |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> E e. ( 0 ... ( # ` W ) ) ) | 
						
							| 149 | 15 | adantr |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> <" I "> e. Word D ) | 
						
							| 150 | 72 | adantr |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> ( # ` W ) e. CC ) | 
						
							| 151 |  | 1cnd |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> 1 e. CC ) | 
						
							| 152 | 73 | adantr |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> E e. CC ) | 
						
							| 153 | 150 151 152 | sub32d |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> ( ( ( # ` W ) - 1 ) - E ) = ( ( ( # ` W ) - E ) - 1 ) ) | 
						
							| 154 |  | fznn0sub |  |-  ( E e. ( 0 ... ( # ` W ) ) -> ( ( # ` W ) - E ) e. NN0 ) | 
						
							| 155 | 54 154 | syl |  |-  ( ph -> ( ( # ` W ) - E ) e. NN0 ) | 
						
							| 156 | 155 | adantr |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> ( ( # ` W ) - E ) e. NN0 ) | 
						
							| 157 |  | simpr |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> ( # ` W ) =/= E ) | 
						
							| 158 | 150 152 156 157 | subne0nn |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> ( ( # ` W ) - E ) e. NN ) | 
						
							| 159 |  | fzo0end |  |-  ( ( ( # ` W ) - E ) e. NN -> ( ( ( # ` W ) - E ) - 1 ) e. ( 0 ..^ ( ( # ` W ) - E ) ) ) | 
						
							| 160 | 158 159 | syl |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> ( ( ( # ` W ) - E ) - 1 ) e. ( 0 ..^ ( ( # ` W ) - E ) ) ) | 
						
							| 161 | 153 160 | eqeltrd |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> ( ( ( # ` W ) - 1 ) - E ) e. ( 0 ..^ ( ( # ` W ) - E ) ) ) | 
						
							| 162 |  | s1len |  |-  ( # ` <" I "> ) = 1 | 
						
							| 163 | 162 | eqcomi |  |-  1 = ( # ` <" I "> ) | 
						
							| 164 | 163 | oveq2i |  |-  ( E + 1 ) = ( E + ( # ` <" I "> ) ) | 
						
							| 165 | 164 | a1i |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> ( E + 1 ) = ( E + ( # ` <" I "> ) ) ) | 
						
							| 166 | 144 147 148 149 161 165 | splfv3 |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> ( ( W splice <. E , E , <" I "> >. ) ` ( ( ( ( # ` W ) - 1 ) - E ) + ( E + 1 ) ) ) = ( W ` ( ( ( ( # ` W ) - 1 ) - E ) + E ) ) ) | 
						
							| 167 | 137 73 | npcand |  |-  ( ph -> ( ( ( ( # ` W ) - 1 ) - E ) + E ) = ( ( # ` W ) - 1 ) ) | 
						
							| 168 | 167 | fveq2d |  |-  ( ph -> ( W ` ( ( ( ( # ` W ) - 1 ) - E ) + E ) ) = ( W ` ( ( # ` W ) - 1 ) ) ) | 
						
							| 169 | 168 | adantr |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> ( W ` ( ( ( ( # ` W ) - 1 ) - E ) + E ) ) = ( W ` ( ( # ` W ) - 1 ) ) ) | 
						
							| 170 | 143 166 169 | 3eqtrd |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> ( U ` ( ( # ` U ) - 1 ) ) = ( W ` ( ( # ` W ) - 1 ) ) ) | 
						
							| 171 | 170 | fveq2d |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> ( ( M ` W ) ` ( U ` ( ( # ` U ) - 1 ) ) ) = ( ( M ` W ) ` ( W ` ( ( # ` W ) - 1 ) ) ) ) | 
						
							| 172 | 18 | fveq1d |  |-  ( ph -> ( U ` 0 ) = ( ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ` 0 ) ) | 
						
							| 173 |  | nn0p1nn |  |-  ( E e. NN0 -> ( E + 1 ) e. NN ) | 
						
							| 174 | 68 173 | syl |  |-  ( ph -> ( E + 1 ) e. NN ) | 
						
							| 175 |  | lbfzo0 |  |-  ( 0 e. ( 0 ..^ ( E + 1 ) ) <-> ( E + 1 ) e. NN ) | 
						
							| 176 | 174 175 | sylibr |  |-  ( ph -> 0 e. ( 0 ..^ ( E + 1 ) ) ) | 
						
							| 177 | 58 | oveq2d |  |-  ( ph -> ( 0 ..^ ( # ` ( ( W prefix E ) ++ <" I "> ) ) ) = ( 0 ..^ ( E + 1 ) ) ) | 
						
							| 178 | 176 177 | eleqtrrd |  |-  ( ph -> 0 e. ( 0 ..^ ( # ` ( ( W prefix E ) ++ <" I "> ) ) ) ) | 
						
							| 179 |  | 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 ) ) | 
						
							| 180 | 30 32 178 179 | syl3anc |  |-  ( ph -> ( ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ` 0 ) = ( ( ( W prefix E ) ++ <" I "> ) ` 0 ) ) | 
						
							| 181 |  | elfzonn0 |  |-  ( ( `' W ` J ) e. ( 0 ..^ ( # ` W ) ) -> ( `' W ` J ) e. NN0 ) | 
						
							| 182 | 51 181 | syl |  |-  ( ph -> ( `' W ` J ) e. NN0 ) | 
						
							| 183 |  | nn0p1nn |  |-  ( ( `' W ` J ) e. NN0 -> ( ( `' W ` J ) + 1 ) e. NN ) | 
						
							| 184 | 182 183 | syl |  |-  ( ph -> ( ( `' W ` J ) + 1 ) e. NN ) | 
						
							| 185 | 7 184 | eqeltrid |  |-  ( ph -> E e. NN ) | 
						
							| 186 |  | lbfzo0 |  |-  ( 0 e. ( 0 ..^ E ) <-> E e. NN ) | 
						
							| 187 | 185 186 | sylibr |  |-  ( ph -> 0 e. ( 0 ..^ E ) ) | 
						
							| 188 | 56 | oveq2d |  |-  ( ph -> ( 0 ..^ ( # ` ( W prefix E ) ) ) = ( 0 ..^ E ) ) | 
						
							| 189 | 187 188 | eleqtrrd |  |-  ( ph -> 0 e. ( 0 ..^ ( # ` ( W prefix E ) ) ) ) | 
						
							| 190 |  | 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 ) ) | 
						
							| 191 | 28 15 189 190 | syl3anc |  |-  ( ph -> ( ( ( W prefix E ) ++ <" I "> ) ` 0 ) = ( ( W prefix E ) ` 0 ) ) | 
						
							| 192 |  | nn0p1gt0 |  |-  ( ( `' W ` J ) e. NN0 -> 0 < ( ( `' W ` J ) + 1 ) ) | 
						
							| 193 | 182 192 | syl |  |-  ( ph -> 0 < ( ( `' W ` J ) + 1 ) ) | 
						
							| 194 | 193 7 | breqtrrdi |  |-  ( ph -> 0 < E ) | 
						
							| 195 | 194 | gt0ne0d |  |-  ( ph -> E =/= 0 ) | 
						
							| 196 |  | fzne1 |  |-  ( ( E e. ( 0 ... ( # ` W ) ) /\ E =/= 0 ) -> E e. ( ( 0 + 1 ) ... ( # ` W ) ) ) | 
						
							| 197 | 54 195 196 | syl2anc |  |-  ( ph -> E e. ( ( 0 + 1 ) ... ( # ` W ) ) ) | 
						
							| 198 |  | 0p1e1 |  |-  ( 0 + 1 ) = 1 | 
						
							| 199 | 198 | oveq1i |  |-  ( ( 0 + 1 ) ... ( # ` W ) ) = ( 1 ... ( # ` W ) ) | 
						
							| 200 | 197 199 | eleqtrdi |  |-  ( ph -> E e. ( 1 ... ( # ` W ) ) ) | 
						
							| 201 |  | pfxfv0 |  |-  ( ( W e. Word D /\ E e. ( 1 ... ( # ` W ) ) ) -> ( ( W prefix E ) ` 0 ) = ( W ` 0 ) ) | 
						
							| 202 | 26 200 201 | syl2anc |  |-  ( ph -> ( ( W prefix E ) ` 0 ) = ( W ` 0 ) ) | 
						
							| 203 | 180 191 202 | 3eqtrd |  |-  ( ph -> ( ( ( ( W prefix E ) ++ <" I "> ) ++ ( W substr <. E , ( # ` W ) >. ) ) ` 0 ) = ( W ` 0 ) ) | 
						
							| 204 | 172 203 | eqtrd |  |-  ( ph -> ( U ` 0 ) = ( W ` 0 ) ) | 
						
							| 205 | 204 | adantr |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> ( U ` 0 ) = ( W ` 0 ) ) | 
						
							| 206 | 132 171 205 | 3eqtr4rd |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> ( U ` 0 ) = ( ( M ` W ) ` ( U ` ( ( # ` U ) - 1 ) ) ) ) | 
						
							| 207 | 118 206 | eqtrd |  |-  ( ( ph /\ ( # ` W ) =/= E ) -> ( ( M ` U ) ` ( U ` ( ( # ` U ) - 1 ) ) ) = ( ( M ` W ) ` ( U ` ( ( # ` U ) - 1 ) ) ) ) | 
						
							| 208 | 109 207 | pm2.61dane |  |-  ( ph -> ( ( M ` U ) ` ( U ` ( ( # ` U ) - 1 ) ) ) = ( ( M ` W ) ` ( U ` ( ( # ` U ) - 1 ) ) ) ) | 
						
							| 209 | 101 | fveq2d |  |-  ( ph -> ( ( M ` U ) ` ( U ` ( ( # ` U ) - 1 ) ) ) = ( ( M ` U ) ` K ) ) | 
						
							| 210 | 101 | fveq2d |  |-  ( ph -> ( ( M ` W ) ` ( U ` ( ( # ` U ) - 1 ) ) ) = ( ( M ` W ) ` K ) ) | 
						
							| 211 | 208 209 210 | 3eqtr3d |  |-  ( ph -> ( ( M ` U ) ` K ) = ( ( M ` W ) ` K ) ) |