| Step |
Hyp |
Ref |
Expression |
| 1 |
|
elfzo0 |
|- ( I e. ( 0 ..^ ( # ` W ) ) <-> ( I e. NN0 /\ ( # ` W ) e. NN /\ I < ( # ` W ) ) ) |
| 2 |
|
nnne0 |
|- ( ( # ` W ) e. NN -> ( # ` W ) =/= 0 ) |
| 3 |
|
eqneqall |
|- ( ( # ` W ) = 0 -> ( ( # ` W ) =/= 0 -> ( ( W cyclShift N ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) ) |
| 4 |
2 3
|
syl5com |
|- ( ( # ` W ) e. NN -> ( ( # ` W ) = 0 -> ( ( W cyclShift N ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) ) |
| 5 |
4
|
3ad2ant2 |
|- ( ( I e. NN0 /\ ( # ` W ) e. NN /\ I < ( # ` W ) ) -> ( ( # ` W ) = 0 -> ( ( W cyclShift N ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) ) |
| 6 |
1 5
|
sylbi |
|- ( I e. ( 0 ..^ ( # ` W ) ) -> ( ( # ` W ) = 0 -> ( ( W cyclShift N ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) ) |
| 7 |
6
|
3ad2ant3 |
|- ( ( W e. Word V /\ N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) -> ( ( # ` W ) = 0 -> ( ( W cyclShift N ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) ) |
| 8 |
|
lencl |
|- ( W e. Word V -> ( # ` W ) e. NN0 ) |
| 9 |
|
elnnne0 |
|- ( ( # ` W ) e. NN <-> ( ( # ` W ) e. NN0 /\ ( # ` W ) =/= 0 ) ) |
| 10 |
|
simprl |
|- ( ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) -> N e. ZZ ) |
| 11 |
|
cshword |
|- ( ( W e. Word V /\ N e. ZZ ) -> ( W cyclShift N ) = ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ) |
| 12 |
10 11
|
sylan2 |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( W cyclShift N ) = ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ) |
| 13 |
12
|
fveq1d |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( ( W cyclShift N ) ` I ) = ( ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ` I ) ) |
| 14 |
|
swrdcl |
|- ( W e. Word V -> ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) e. Word V ) |
| 15 |
14
|
adantr |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) e. Word V ) |
| 16 |
|
pfxcl |
|- ( W e. Word V -> ( W prefix ( N mod ( # ` W ) ) ) e. Word V ) |
| 17 |
16
|
adantr |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( W prefix ( N mod ( # ` W ) ) ) e. Word V ) |
| 18 |
|
simpl |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> W e. Word V ) |
| 19 |
|
simpl |
|- ( ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) -> N e. ZZ ) |
| 20 |
19
|
anim2i |
|- ( ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) -> ( ( # ` W ) e. NN /\ N e. ZZ ) ) |
| 21 |
20
|
adantl |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( ( # ` W ) e. NN /\ N e. ZZ ) ) |
| 22 |
21
|
ancomd |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( N e. ZZ /\ ( # ` W ) e. NN ) ) |
| 23 |
|
zmodfzp1 |
|- ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( N mod ( # ` W ) ) e. ( 0 ... ( # ` W ) ) ) |
| 24 |
22 23
|
syl |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( N mod ( # ` W ) ) e. ( 0 ... ( # ` W ) ) ) |
| 25 |
|
nn0fz0 |
|- ( ( # ` W ) e. NN0 <-> ( # ` W ) e. ( 0 ... ( # ` W ) ) ) |
| 26 |
8 25
|
sylib |
|- ( W e. Word V -> ( # ` W ) e. ( 0 ... ( # ` W ) ) ) |
| 27 |
26
|
adantr |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( # ` W ) e. ( 0 ... ( # ` W ) ) ) |
| 28 |
|
swrdlen |
|- ( ( W e. Word V /\ ( N mod ( # ` W ) ) e. ( 0 ... ( # ` W ) ) /\ ( # ` W ) e. ( 0 ... ( # ` W ) ) ) -> ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) = ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) |
| 29 |
18 24 27 28
|
syl3anc |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) = ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) |
| 30 |
20
|
ancomd |
|- ( ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) -> ( N e. ZZ /\ ( # ` W ) e. NN ) ) |
| 31 |
30 23
|
syl |
|- ( ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) -> ( N mod ( # ` W ) ) e. ( 0 ... ( # ` W ) ) ) |
| 32 |
|
pfxlen |
|- ( ( W e. Word V /\ ( N mod ( # ` W ) ) e. ( 0 ... ( # ` W ) ) ) -> ( # ` ( W prefix ( N mod ( # ` W ) ) ) ) = ( N mod ( # ` W ) ) ) |
| 33 |
31 32
|
sylan2 |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( # ` ( W prefix ( N mod ( # ` W ) ) ) ) = ( N mod ( # ` W ) ) ) |
| 34 |
29 33
|
oveq12d |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) + ( # ` ( W prefix ( N mod ( # ` W ) ) ) ) ) = ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) |
| 35 |
29 34
|
oveq12d |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) ..^ ( ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) + ( # ` ( W prefix ( N mod ( # ` W ) ) ) ) ) ) = ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) ) |
| 36 |
35
|
eleq2d |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( I e. ( ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) ..^ ( ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) + ( # ` ( W prefix ( N mod ( # ` W ) ) ) ) ) ) <-> I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) ) ) |
| 37 |
36
|
biimparc |
|- ( ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) ) -> I e. ( ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) ..^ ( ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) + ( # ` ( W prefix ( N mod ( # ` W ) ) ) ) ) ) ) |
| 38 |
|
ccatval2 |
|- ( ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) e. Word V /\ ( W prefix ( N mod ( # ` W ) ) ) e. Word V /\ I e. ( ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) ..^ ( ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) + ( # ` ( W prefix ( N mod ( # ` W ) ) ) ) ) ) ) -> ( ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ` I ) = ( ( W prefix ( N mod ( # ` W ) ) ) ` ( I - ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) ) ) ) |
| 39 |
15 17 37 38
|
syl2an23an |
|- ( ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) ) -> ( ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ` I ) = ( ( W prefix ( N mod ( # ` W ) ) ) ` ( I - ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) ) ) ) |
| 40 |
26
|
ad2antrl |
|- ( ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) ) -> ( # ` W ) e. ( 0 ... ( # ` W ) ) ) |
| 41 |
18 24 40 28
|
syl2an23an |
|- ( ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) ) -> ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) = ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) |
| 42 |
41
|
oveq2d |
|- ( ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) ) -> ( I - ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) ) = ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) ) |
| 43 |
42
|
fveq2d |
|- ( ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) ) -> ( ( W prefix ( N mod ( # ` W ) ) ) ` ( I - ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) ) ) = ( ( W prefix ( N mod ( # ` W ) ) ) ` ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) ) ) |
| 44 |
|
elfzo2 |
|- ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) <-> ( I e. ( ZZ>= ` ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) /\ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) e. ZZ /\ I < ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) ) |
| 45 |
|
eluz2 |
|- ( I e. ( ZZ>= ` ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) <-> ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) e. ZZ /\ I e. ZZ /\ ( ( # ` W ) - ( N mod ( # ` W ) ) ) <_ I ) ) |
| 46 |
|
simpl |
|- ( ( I e. ZZ /\ ( N e. ZZ /\ ( # ` W ) e. NN ) ) -> I e. ZZ ) |
| 47 |
|
nnz |
|- ( ( # ` W ) e. NN -> ( # ` W ) e. ZZ ) |
| 48 |
47
|
adantl |
|- ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( # ` W ) e. ZZ ) |
| 49 |
|
zmodcl |
|- ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( N mod ( # ` W ) ) e. NN0 ) |
| 50 |
49
|
nn0zd |
|- ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( N mod ( # ` W ) ) e. ZZ ) |
| 51 |
48 50
|
zsubcld |
|- ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( ( # ` W ) - ( N mod ( # ` W ) ) ) e. ZZ ) |
| 52 |
51
|
adantl |
|- ( ( I e. ZZ /\ ( N e. ZZ /\ ( # ` W ) e. NN ) ) -> ( ( # ` W ) - ( N mod ( # ` W ) ) ) e. ZZ ) |
| 53 |
46 52
|
zsubcld |
|- ( ( I e. ZZ /\ ( N e. ZZ /\ ( # ` W ) e. NN ) ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ZZ ) |
| 54 |
53
|
adantlr |
|- ( ( ( I e. ZZ /\ ( ( # ` W ) - ( N mod ( # ` W ) ) ) <_ I ) /\ ( N e. ZZ /\ ( # ` W ) e. NN ) ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ZZ ) |
| 55 |
|
zre |
|- ( I e. ZZ -> I e. RR ) |
| 56 |
|
nnre |
|- ( ( # ` W ) e. NN -> ( # ` W ) e. RR ) |
| 57 |
56
|
adantl |
|- ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( # ` W ) e. RR ) |
| 58 |
49
|
nn0red |
|- ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( N mod ( # ` W ) ) e. RR ) |
| 59 |
57 58
|
resubcld |
|- ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( ( # ` W ) - ( N mod ( # ` W ) ) ) e. RR ) |
| 60 |
|
subge0 |
|- ( ( I e. RR /\ ( ( # ` W ) - ( N mod ( # ` W ) ) ) e. RR ) -> ( 0 <_ ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) <-> ( ( # ` W ) - ( N mod ( # ` W ) ) ) <_ I ) ) |
| 61 |
55 59 60
|
syl2an |
|- ( ( I e. ZZ /\ ( N e. ZZ /\ ( # ` W ) e. NN ) ) -> ( 0 <_ ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) <-> ( ( # ` W ) - ( N mod ( # ` W ) ) ) <_ I ) ) |
| 62 |
61
|
exbiri |
|- ( I e. ZZ -> ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) <_ I -> 0 <_ ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) ) ) ) |
| 63 |
62
|
com23 |
|- ( I e. ZZ -> ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) <_ I -> ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> 0 <_ ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) ) ) ) |
| 64 |
63
|
imp31 |
|- ( ( ( I e. ZZ /\ ( ( # ` W ) - ( N mod ( # ` W ) ) ) <_ I ) /\ ( N e. ZZ /\ ( # ` W ) e. NN ) ) -> 0 <_ ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) ) |
| 65 |
|
elnn0uz |
|- ( ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. NN0 <-> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ( ZZ>= ` 0 ) ) |
| 66 |
|
elnn0z |
|- ( ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. NN0 <-> ( ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ZZ /\ 0 <_ ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) ) ) |
| 67 |
65 66
|
bitr3i |
|- ( ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ( ZZ>= ` 0 ) <-> ( ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ZZ /\ 0 <_ ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) ) ) |
| 68 |
54 64 67
|
sylanbrc |
|- ( ( ( I e. ZZ /\ ( ( # ` W ) - ( N mod ( # ` W ) ) ) <_ I ) /\ ( N e. ZZ /\ ( # ` W ) e. NN ) ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ( ZZ>= ` 0 ) ) |
| 69 |
68
|
adantlr |
|- ( ( ( ( I e. ZZ /\ ( ( # ` W ) - ( N mod ( # ` W ) ) ) <_ I ) /\ I < ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( N e. ZZ /\ ( # ` W ) e. NN ) ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ( ZZ>= ` 0 ) ) |
| 70 |
50
|
adantl |
|- ( ( ( ( I e. ZZ /\ ( ( # ` W ) - ( N mod ( # ` W ) ) ) <_ I ) /\ I < ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( N e. ZZ /\ ( # ` W ) e. NN ) ) -> ( N mod ( # ` W ) ) e. ZZ ) |
| 71 |
55
|
adantr |
|- ( ( I e. ZZ /\ ( N e. ZZ /\ ( # ` W ) e. NN ) ) -> I e. RR ) |
| 72 |
59
|
adantl |
|- ( ( I e. ZZ /\ ( N e. ZZ /\ ( # ` W ) e. NN ) ) -> ( ( # ` W ) - ( N mod ( # ` W ) ) ) e. RR ) |
| 73 |
58
|
adantl |
|- ( ( I e. ZZ /\ ( N e. ZZ /\ ( # ` W ) e. NN ) ) -> ( N mod ( # ` W ) ) e. RR ) |
| 74 |
71 72 73
|
ltsubadd2d |
|- ( ( I e. ZZ /\ ( N e. ZZ /\ ( # ` W ) e. NN ) ) -> ( ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) < ( N mod ( # ` W ) ) <-> I < ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) ) |
| 75 |
74
|
adantlr |
|- ( ( ( I e. ZZ /\ ( ( # ` W ) - ( N mod ( # ` W ) ) ) <_ I ) /\ ( N e. ZZ /\ ( # ` W ) e. NN ) ) -> ( ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) < ( N mod ( # ` W ) ) <-> I < ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) ) |
| 76 |
75
|
exbiri |
|- ( ( I e. ZZ /\ ( ( # ` W ) - ( N mod ( # ` W ) ) ) <_ I ) -> ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( I < ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) < ( N mod ( # ` W ) ) ) ) ) |
| 77 |
76
|
com23 |
|- ( ( I e. ZZ /\ ( ( # ` W ) - ( N mod ( # ` W ) ) ) <_ I ) -> ( I < ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) -> ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) < ( N mod ( # ` W ) ) ) ) ) |
| 78 |
77
|
imp31 |
|- ( ( ( ( I e. ZZ /\ ( ( # ` W ) - ( N mod ( # ` W ) ) ) <_ I ) /\ I < ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( N e. ZZ /\ ( # ` W ) e. NN ) ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) < ( N mod ( # ` W ) ) ) |
| 79 |
|
elfzo2 |
|- ( ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ( 0 ..^ ( N mod ( # ` W ) ) ) <-> ( ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ( ZZ>= ` 0 ) /\ ( N mod ( # ` W ) ) e. ZZ /\ ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) < ( N mod ( # ` W ) ) ) ) |
| 80 |
69 70 78 79
|
syl3anbrc |
|- ( ( ( ( I e. ZZ /\ ( ( # ` W ) - ( N mod ( # ` W ) ) ) <_ I ) /\ I < ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( N e. ZZ /\ ( # ` W ) e. NN ) ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ( 0 ..^ ( N mod ( # ` W ) ) ) ) |
| 81 |
80
|
exp31 |
|- ( ( I e. ZZ /\ ( ( # ` W ) - ( N mod ( # ` W ) ) ) <_ I ) -> ( I < ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) -> ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ( 0 ..^ ( N mod ( # ` W ) ) ) ) ) ) |
| 82 |
81
|
3adant1 |
|- ( ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) e. ZZ /\ I e. ZZ /\ ( ( # ` W ) - ( N mod ( # ` W ) ) ) <_ I ) -> ( I < ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) -> ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ( 0 ..^ ( N mod ( # ` W ) ) ) ) ) ) |
| 83 |
45 82
|
sylbi |
|- ( I e. ( ZZ>= ` ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) -> ( I < ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) -> ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ( 0 ..^ ( N mod ( # ` W ) ) ) ) ) ) |
| 84 |
83
|
imp |
|- ( ( I e. ( ZZ>= ` ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) /\ I < ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) -> ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ( 0 ..^ ( N mod ( # ` W ) ) ) ) ) |
| 85 |
84
|
3adant2 |
|- ( ( I e. ( ZZ>= ` ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) /\ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) e. ZZ /\ I < ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) -> ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ( 0 ..^ ( N mod ( # ` W ) ) ) ) ) |
| 86 |
44 85
|
sylbi |
|- ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) -> ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ( 0 ..^ ( N mod ( # ` W ) ) ) ) ) |
| 87 |
86
|
expdcom |
|- ( N e. ZZ -> ( ( # ` W ) e. NN -> ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ( 0 ..^ ( N mod ( # ` W ) ) ) ) ) ) |
| 88 |
87
|
adantr |
|- ( ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) -> ( ( # ` W ) e. NN -> ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ( 0 ..^ ( N mod ( # ` W ) ) ) ) ) ) |
| 89 |
88
|
impcom |
|- ( ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) -> ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ( 0 ..^ ( N mod ( # ` W ) ) ) ) ) |
| 90 |
89
|
adantl |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ( 0 ..^ ( N mod ( # ` W ) ) ) ) ) |
| 91 |
90
|
impcom |
|- ( ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ( 0 ..^ ( N mod ( # ` W ) ) ) ) |
| 92 |
|
pfxfv |
|- ( ( W e. Word V /\ ( N mod ( # ` W ) ) e. ( 0 ... ( # ` W ) ) /\ ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) e. ( 0 ..^ ( N mod ( # ` W ) ) ) ) -> ( ( W prefix ( N mod ( # ` W ) ) ) ` ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) ) = ( W ` ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) ) ) |
| 93 |
18 24 91 92
|
syl2an23an |
|- ( ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) ) -> ( ( W prefix ( N mod ( # ` W ) ) ) ` ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) ) = ( W ` ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) ) ) |
| 94 |
|
elfzoelz |
|- ( I e. ( 0 ..^ ( # ` W ) ) -> I e. ZZ ) |
| 95 |
94
|
zcnd |
|- ( I e. ( 0 ..^ ( # ` W ) ) -> I e. CC ) |
| 96 |
95
|
ad2antll |
|- ( ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) -> I e. CC ) |
| 97 |
|
nncn |
|- ( ( # ` W ) e. NN -> ( # ` W ) e. CC ) |
| 98 |
97
|
adantr |
|- ( ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) -> ( # ` W ) e. CC ) |
| 99 |
30 49
|
syl |
|- ( ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) -> ( N mod ( # ` W ) ) e. NN0 ) |
| 100 |
99
|
nn0cnd |
|- ( ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) -> ( N mod ( # ` W ) ) e. CC ) |
| 101 |
96 98 100
|
subsub3d |
|- ( ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) = ( ( I + ( N mod ( # ` W ) ) ) - ( # ` W ) ) ) |
| 102 |
101
|
ad2antll |
|- ( ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) = ( ( I + ( N mod ( # ` W ) ) ) - ( # ` W ) ) ) |
| 103 |
30
|
ad2antll |
|- ( ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) ) -> ( N e. ZZ /\ ( # ` W ) e. NN ) ) |
| 104 |
97
|
adantl |
|- ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( # ` W ) e. CC ) |
| 105 |
49
|
nn0cnd |
|- ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( N mod ( # ` W ) ) e. CC ) |
| 106 |
104 105
|
npcand |
|- ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) = ( # ` W ) ) |
| 107 |
106
|
ex |
|- ( N e. ZZ -> ( ( # ` W ) e. NN -> ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) = ( # ` W ) ) ) |
| 108 |
107
|
adantr |
|- ( ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) -> ( ( # ` W ) e. NN -> ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) = ( # ` W ) ) ) |
| 109 |
108
|
impcom |
|- ( ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) -> ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) = ( # ` W ) ) |
| 110 |
109
|
adantl |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) = ( # ` W ) ) |
| 111 |
110
|
oveq2d |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) = ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) ) |
| 112 |
111
|
eleq2d |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) <-> I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) ) ) |
| 113 |
112
|
biimpac |
|- ( ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) ) -> I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) ) |
| 114 |
|
modaddmodup |
|- ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) -> ( ( I + ( N mod ( # ` W ) ) ) - ( # ` W ) ) = ( ( I + N ) mod ( # ` W ) ) ) ) |
| 115 |
103 113 114
|
sylc |
|- ( ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) ) -> ( ( I + ( N mod ( # ` W ) ) ) - ( # ` W ) ) = ( ( I + N ) mod ( # ` W ) ) ) |
| 116 |
102 115
|
eqtrd |
|- ( ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) ) -> ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) = ( ( I + N ) mod ( # ` W ) ) ) |
| 117 |
116
|
fveq2d |
|- ( ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) ) -> ( W ` ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) |
| 118 |
93 117
|
eqtrd |
|- ( ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) ) -> ( ( W prefix ( N mod ( # ` W ) ) ) ` ( I - ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) |
| 119 |
39 43 118
|
3eqtrd |
|- ( ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) /\ ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) ) -> ( ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) |
| 120 |
119
|
ex |
|- ( I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) -> ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) ) |
| 121 |
112
|
notbid |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) <-> -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) ) ) |
| 122 |
14
|
ad2antrr |
|- ( ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) /\ -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) ) -> ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) e. Word V ) |
| 123 |
16
|
ad2antrr |
|- ( ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) /\ -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) ) -> ( W prefix ( N mod ( # ` W ) ) ) e. Word V ) |
| 124 |
49
|
ancoms |
|- ( ( ( # ` W ) e. NN /\ N e. ZZ ) -> ( N mod ( # ` W ) ) e. NN0 ) |
| 125 |
124
|
nn0zd |
|- ( ( ( # ` W ) e. NN /\ N e. ZZ ) -> ( N mod ( # ` W ) ) e. ZZ ) |
| 126 |
125
|
adantrr |
|- ( ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) -> ( N mod ( # ` W ) ) e. ZZ ) |
| 127 |
|
zre |
|- ( N e. ZZ -> N e. RR ) |
| 128 |
127
|
adantr |
|- ( ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) -> N e. RR ) |
| 129 |
|
nnrp |
|- ( ( # ` W ) e. NN -> ( # ` W ) e. RR+ ) |
| 130 |
|
modlt |
|- ( ( N e. RR /\ ( # ` W ) e. RR+ ) -> ( N mod ( # ` W ) ) < ( # ` W ) ) |
| 131 |
128 129 130
|
syl2anr |
|- ( ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) -> ( N mod ( # ` W ) ) < ( # ` W ) ) |
| 132 |
|
simprrr |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> I e. ( 0 ..^ ( # ` W ) ) ) |
| 133 |
|
fzonfzoufzol |
|- ( ( ( N mod ( # ` W ) ) e. ZZ /\ ( N mod ( # ` W ) ) < ( # ` W ) /\ I e. ( 0 ..^ ( # ` W ) ) ) -> ( -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) -> I e. ( 0 ..^ ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) ) ) |
| 134 |
126 131 132 133
|
syl2an23an |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) -> I e. ( 0 ..^ ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) ) ) |
| 135 |
134
|
imp |
|- ( ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) /\ -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) ) -> I e. ( 0 ..^ ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) ) |
| 136 |
|
simpll |
|- ( ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) /\ -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) ) -> W e. Word V ) |
| 137 |
24
|
adantr |
|- ( ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) /\ -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) ) -> ( N mod ( # ` W ) ) e. ( 0 ... ( # ` W ) ) ) |
| 138 |
26
|
ad2antrr |
|- ( ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) /\ -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) ) -> ( # ` W ) e. ( 0 ... ( # ` W ) ) ) |
| 139 |
136 137 138 28
|
syl3anc |
|- ( ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) /\ -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) ) -> ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) = ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) |
| 140 |
139
|
oveq2d |
|- ( ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) /\ -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) ) -> ( 0 ..^ ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) ) = ( 0 ..^ ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) ) |
| 141 |
135 140
|
eleqtrrd |
|- ( ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) /\ -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) ) -> I e. ( 0 ..^ ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) ) ) |
| 142 |
|
ccatval1 |
|- ( ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) e. Word V /\ ( W prefix ( N mod ( # ` W ) ) ) e. Word V /\ I e. ( 0 ..^ ( # ` ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) ) ) -> ( ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ` I ) = ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ` I ) ) |
| 143 |
122 123 141 142
|
syl3anc |
|- ( ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) /\ -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) ) -> ( ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ` I ) = ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ` I ) ) |
| 144 |
|
swrdfv |
|- ( ( ( W e. Word V /\ ( N mod ( # ` W ) ) e. ( 0 ... ( # ` W ) ) /\ ( # ` W ) e. ( 0 ... ( # ` W ) ) ) /\ I e. ( 0 ..^ ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) ) -> ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ` I ) = ( W ` ( I + ( N mod ( # ` W ) ) ) ) ) |
| 145 |
136 137 138 135 144
|
syl31anc |
|- ( ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) /\ -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) ) -> ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ` I ) = ( W ` ( I + ( N mod ( # ` W ) ) ) ) ) |
| 146 |
30
|
ad2antlr |
|- ( ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) /\ -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) ) -> ( N e. ZZ /\ ( # ` W ) e. NN ) ) |
| 147 |
|
modaddmodlo |
|- ( ( N e. ZZ /\ ( # ` W ) e. NN ) -> ( I e. ( 0 ..^ ( ( # ` W ) - ( N mod ( # ` W ) ) ) ) -> ( I + ( N mod ( # ` W ) ) ) = ( ( I + N ) mod ( # ` W ) ) ) ) |
| 148 |
146 135 147
|
sylc |
|- ( ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) /\ -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) ) -> ( I + ( N mod ( # ` W ) ) ) = ( ( I + N ) mod ( # ` W ) ) ) |
| 149 |
148
|
fveq2d |
|- ( ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) /\ -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) ) -> ( W ` ( I + ( N mod ( # ` W ) ) ) ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) |
| 150 |
143 145 149
|
3eqtrd |
|- ( ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) /\ -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) ) -> ( ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) |
| 151 |
150
|
ex |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( # ` W ) ) -> ( ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) ) |
| 152 |
121 151
|
sylbid |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) -> ( ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) ) |
| 153 |
152
|
com12 |
|- ( -. I e. ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) ..^ ( ( ( # ` W ) - ( N mod ( # ` W ) ) ) + ( N mod ( # ` W ) ) ) ) -> ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) ) |
| 154 |
120 153
|
pm2.61i |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) |
| 155 |
13 154
|
eqtrd |
|- ( ( W e. Word V /\ ( ( # ` W ) e. NN /\ ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) ) ) -> ( ( W cyclShift N ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) |
| 156 |
155
|
exp32 |
|- ( W e. Word V -> ( ( # ` W ) e. NN -> ( ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) -> ( ( W cyclShift N ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) ) ) |
| 157 |
156
|
com12 |
|- ( ( # ` W ) e. NN -> ( W e. Word V -> ( ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) -> ( ( W cyclShift N ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) ) ) |
| 158 |
9 157
|
sylbir |
|- ( ( ( # ` W ) e. NN0 /\ ( # ` W ) =/= 0 ) -> ( W e. Word V -> ( ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) -> ( ( W cyclShift N ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) ) ) |
| 159 |
158
|
ex |
|- ( ( # ` W ) e. NN0 -> ( ( # ` W ) =/= 0 -> ( W e. Word V -> ( ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) -> ( ( W cyclShift N ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) ) ) ) |
| 160 |
159
|
com23 |
|- ( ( # ` W ) e. NN0 -> ( W e. Word V -> ( ( # ` W ) =/= 0 -> ( ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) -> ( ( W cyclShift N ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) ) ) ) |
| 161 |
8 160
|
mpcom |
|- ( W e. Word V -> ( ( # ` W ) =/= 0 -> ( ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) -> ( ( W cyclShift N ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) ) ) |
| 162 |
161
|
com23 |
|- ( W e. Word V -> ( ( N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) -> ( ( # ` W ) =/= 0 -> ( ( W cyclShift N ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) ) ) |
| 163 |
162
|
3impib |
|- ( ( W e. Word V /\ N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) -> ( ( # ` W ) =/= 0 -> ( ( W cyclShift N ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) ) |
| 164 |
7 163
|
pm2.61dne |
|- ( ( W e. Word V /\ N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) ) -> ( ( W cyclShift N ) ` I ) = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) |