Step |
Hyp |
Ref |
Expression |
1 |
|
elfzoelz |
|- ( N e. ( 1 ..^ ( # ` W ) ) -> N e. ZZ ) |
2 |
|
cshwlen |
|- ( ( W e. Word V /\ N e. ZZ ) -> ( # ` ( W cyclShift N ) ) = ( # ` W ) ) |
3 |
1 2
|
sylan2 |
|- ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) -> ( # ` ( W cyclShift N ) ) = ( # ` W ) ) |
4 |
3
|
oveq1d |
|- ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) -> ( ( # ` ( W cyclShift N ) ) - 1 ) = ( ( # ` W ) - 1 ) ) |
5 |
4
|
oveq2d |
|- ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) -> ( 0 ..^ ( ( # ` ( W cyclShift N ) ) - 1 ) ) = ( 0 ..^ ( ( # ` W ) - 1 ) ) ) |
6 |
5
|
eleq2d |
|- ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) -> ( j e. ( 0 ..^ ( ( # ` ( W cyclShift N ) ) - 1 ) ) <-> j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) ) |
7 |
6
|
adantr |
|- ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ ( A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E /\ { ( lastS ` W ) , ( W ` 0 ) } e. E ) ) -> ( j e. ( 0 ..^ ( ( # ` ( W cyclShift N ) ) - 1 ) ) <-> j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) ) |
8 |
|
simpll |
|- ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) -> W e. Word V ) |
9 |
1
|
ad2antlr |
|- ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) -> N e. ZZ ) |
10 |
|
lencl |
|- ( W e. Word V -> ( # ` W ) e. NN0 ) |
11 |
|
nn0z |
|- ( ( # ` W ) e. NN0 -> ( # ` W ) e. ZZ ) |
12 |
|
peano2zm |
|- ( ( # ` W ) e. ZZ -> ( ( # ` W ) - 1 ) e. ZZ ) |
13 |
11 12
|
syl |
|- ( ( # ` W ) e. NN0 -> ( ( # ` W ) - 1 ) e. ZZ ) |
14 |
|
nn0re |
|- ( ( # ` W ) e. NN0 -> ( # ` W ) e. RR ) |
15 |
14
|
lem1d |
|- ( ( # ` W ) e. NN0 -> ( ( # ` W ) - 1 ) <_ ( # ` W ) ) |
16 |
|
eluz2 |
|- ( ( # ` W ) e. ( ZZ>= ` ( ( # ` W ) - 1 ) ) <-> ( ( ( # ` W ) - 1 ) e. ZZ /\ ( # ` W ) e. ZZ /\ ( ( # ` W ) - 1 ) <_ ( # ` W ) ) ) |
17 |
13 11 15 16
|
syl3anbrc |
|- ( ( # ` W ) e. NN0 -> ( # ` W ) e. ( ZZ>= ` ( ( # ` W ) - 1 ) ) ) |
18 |
10 17
|
syl |
|- ( W e. Word V -> ( # ` W ) e. ( ZZ>= ` ( ( # ` W ) - 1 ) ) ) |
19 |
18
|
adantr |
|- ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) -> ( # ` W ) e. ( ZZ>= ` ( ( # ` W ) - 1 ) ) ) |
20 |
|
fzoss2 |
|- ( ( # ` W ) e. ( ZZ>= ` ( ( # ` W ) - 1 ) ) -> ( 0 ..^ ( ( # ` W ) - 1 ) ) C_ ( 0 ..^ ( # ` W ) ) ) |
21 |
19 20
|
syl |
|- ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) -> ( 0 ..^ ( ( # ` W ) - 1 ) ) C_ ( 0 ..^ ( # ` W ) ) ) |
22 |
21
|
sselda |
|- ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) -> j e. ( 0 ..^ ( # ` W ) ) ) |
23 |
|
cshwidxmod |
|- ( ( W e. Word V /\ N e. ZZ /\ j e. ( 0 ..^ ( # ` W ) ) ) -> ( ( W cyclShift N ) ` j ) = ( W ` ( ( j + N ) mod ( # ` W ) ) ) ) |
24 |
8 9 22 23
|
syl3anc |
|- ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) -> ( ( W cyclShift N ) ` j ) = ( W ` ( ( j + N ) mod ( # ` W ) ) ) ) |
25 |
|
elfzo1 |
|- ( N e. ( 1 ..^ ( # ` W ) ) <-> ( N e. NN /\ ( # ` W ) e. NN /\ N < ( # ` W ) ) ) |
26 |
25
|
simp2bi |
|- ( N e. ( 1 ..^ ( # ` W ) ) -> ( # ` W ) e. NN ) |
27 |
26
|
adantl |
|- ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) -> ( # ` W ) e. NN ) |
28 |
|
elfzom1p1elfzo |
|- ( ( ( # ` W ) e. NN /\ j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) -> ( j + 1 ) e. ( 0 ..^ ( # ` W ) ) ) |
29 |
27 28
|
sylan |
|- ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) -> ( j + 1 ) e. ( 0 ..^ ( # ` W ) ) ) |
30 |
|
cshwidxmod |
|- ( ( W e. Word V /\ N e. ZZ /\ ( j + 1 ) e. ( 0 ..^ ( # ` W ) ) ) -> ( ( W cyclShift N ) ` ( j + 1 ) ) = ( W ` ( ( ( j + 1 ) + N ) mod ( # ` W ) ) ) ) |
31 |
8 9 29 30
|
syl3anc |
|- ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) -> ( ( W cyclShift N ) ` ( j + 1 ) ) = ( W ` ( ( ( j + 1 ) + N ) mod ( # ` W ) ) ) ) |
32 |
24 31
|
preq12d |
|- ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) -> { ( ( W cyclShift N ) ` j ) , ( ( W cyclShift N ) ` ( j + 1 ) ) } = { ( W ` ( ( j + N ) mod ( # ` W ) ) ) , ( W ` ( ( ( j + 1 ) + N ) mod ( # ` W ) ) ) } ) |
33 |
32
|
adantlr |
|- ( ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ ( A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E /\ { ( lastS ` W ) , ( W ` 0 ) } e. E ) ) /\ j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) -> { ( ( W cyclShift N ) ` j ) , ( ( W cyclShift N ) ` ( j + 1 ) ) } = { ( W ` ( ( j + N ) mod ( # ` W ) ) ) , ( W ` ( ( ( j + 1 ) + N ) mod ( # ` W ) ) ) } ) |
34 |
|
2z |
|- 2 e. ZZ |
35 |
34
|
a1i |
|- ( ( N e. NN /\ ( # ` W ) e. NN /\ N < ( # ` W ) ) -> 2 e. ZZ ) |
36 |
|
nnz |
|- ( ( # ` W ) e. NN -> ( # ` W ) e. ZZ ) |
37 |
36
|
3ad2ant2 |
|- ( ( N e. NN /\ ( # ` W ) e. NN /\ N < ( # ` W ) ) -> ( # ` W ) e. ZZ ) |
38 |
|
nnnn0 |
|- ( ( # ` W ) e. NN -> ( # ` W ) e. NN0 ) |
39 |
38
|
3ad2ant2 |
|- ( ( N e. NN /\ ( # ` W ) e. NN /\ N < ( # ` W ) ) -> ( # ` W ) e. NN0 ) |
40 |
|
nnne0 |
|- ( ( # ` W ) e. NN -> ( # ` W ) =/= 0 ) |
41 |
40
|
3ad2ant2 |
|- ( ( N e. NN /\ ( # ` W ) e. NN /\ N < ( # ` W ) ) -> ( # ` W ) =/= 0 ) |
42 |
|
1red |
|- ( ( N e. NN /\ ( # ` W ) e. NN /\ N < ( # ` W ) ) -> 1 e. RR ) |
43 |
|
nnre |
|- ( N e. NN -> N e. RR ) |
44 |
43
|
3ad2ant1 |
|- ( ( N e. NN /\ ( # ` W ) e. NN /\ N < ( # ` W ) ) -> N e. RR ) |
45 |
|
nnre |
|- ( ( # ` W ) e. NN -> ( # ` W ) e. RR ) |
46 |
45
|
3ad2ant2 |
|- ( ( N e. NN /\ ( # ` W ) e. NN /\ N < ( # ` W ) ) -> ( # ` W ) e. RR ) |
47 |
|
nnge1 |
|- ( N e. NN -> 1 <_ N ) |
48 |
47
|
3ad2ant1 |
|- ( ( N e. NN /\ ( # ` W ) e. NN /\ N < ( # ` W ) ) -> 1 <_ N ) |
49 |
|
simp3 |
|- ( ( N e. NN /\ ( # ` W ) e. NN /\ N < ( # ` W ) ) -> N < ( # ` W ) ) |
50 |
42 44 46 48 49
|
lelttrd |
|- ( ( N e. NN /\ ( # ` W ) e. NN /\ N < ( # ` W ) ) -> 1 < ( # ` W ) ) |
51 |
42 50
|
gtned |
|- ( ( N e. NN /\ ( # ` W ) e. NN /\ N < ( # ` W ) ) -> ( # ` W ) =/= 1 ) |
52 |
|
nn0n0n1ge2 |
|- ( ( ( # ` W ) e. NN0 /\ ( # ` W ) =/= 0 /\ ( # ` W ) =/= 1 ) -> 2 <_ ( # ` W ) ) |
53 |
39 41 51 52
|
syl3anc |
|- ( ( N e. NN /\ ( # ` W ) e. NN /\ N < ( # ` W ) ) -> 2 <_ ( # ` W ) ) |
54 |
|
eluz2 |
|- ( ( # ` W ) e. ( ZZ>= ` 2 ) <-> ( 2 e. ZZ /\ ( # ` W ) e. ZZ /\ 2 <_ ( # ` W ) ) ) |
55 |
35 37 53 54
|
syl3anbrc |
|- ( ( N e. NN /\ ( # ` W ) e. NN /\ N < ( # ` W ) ) -> ( # ` W ) e. ( ZZ>= ` 2 ) ) |
56 |
25 55
|
sylbi |
|- ( N e. ( 1 ..^ ( # ` W ) ) -> ( # ` W ) e. ( ZZ>= ` 2 ) ) |
57 |
56
|
ad3antlr |
|- ( ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ ( A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E /\ { ( lastS ` W ) , ( W ` 0 ) } e. E ) ) /\ j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) -> ( # ` W ) e. ( ZZ>= ` 2 ) ) |
58 |
|
elfzoelz |
|- ( j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) -> j e. ZZ ) |
59 |
58
|
adantl |
|- ( ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ ( A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E /\ { ( lastS ` W ) , ( W ` 0 ) } e. E ) ) /\ j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) -> j e. ZZ ) |
60 |
1
|
ad3antlr |
|- ( ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ ( A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E /\ { ( lastS ` W ) , ( W ` 0 ) } e. E ) ) /\ j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) -> N e. ZZ ) |
61 |
|
simplrl |
|- ( ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ ( A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E /\ { ( lastS ` W ) , ( W ` 0 ) } e. E ) ) /\ j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) -> A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E ) |
62 |
|
lsw |
|- ( W e. Word V -> ( lastS ` W ) = ( W ` ( ( # ` W ) - 1 ) ) ) |
63 |
62
|
adantr |
|- ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) -> ( lastS ` W ) = ( W ` ( ( # ` W ) - 1 ) ) ) |
64 |
63
|
preq1d |
|- ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) -> { ( lastS ` W ) , ( W ` 0 ) } = { ( W ` ( ( # ` W ) - 1 ) ) , ( W ` 0 ) } ) |
65 |
64
|
eleq1d |
|- ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) -> ( { ( lastS ` W ) , ( W ` 0 ) } e. E <-> { ( W ` ( ( # ` W ) - 1 ) ) , ( W ` 0 ) } e. E ) ) |
66 |
65
|
biimpcd |
|- ( { ( lastS ` W ) , ( W ` 0 ) } e. E -> ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) -> { ( W ` ( ( # ` W ) - 1 ) ) , ( W ` 0 ) } e. E ) ) |
67 |
66
|
adantl |
|- ( ( A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E /\ { ( lastS ` W ) , ( W ` 0 ) } e. E ) -> ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) -> { ( W ` ( ( # ` W ) - 1 ) ) , ( W ` 0 ) } e. E ) ) |
68 |
67
|
impcom |
|- ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ ( A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E /\ { ( lastS ` W ) , ( W ` 0 ) } e. E ) ) -> { ( W ` ( ( # ` W ) - 1 ) ) , ( W ` 0 ) } e. E ) |
69 |
68
|
adantr |
|- ( ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ ( A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E /\ { ( lastS ` W ) , ( W ` 0 ) } e. E ) ) /\ j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) -> { ( W ` ( ( # ` W ) - 1 ) ) , ( W ` 0 ) } e. E ) |
70 |
|
clwwisshclwwslemlem |
|- ( ( ( ( # ` W ) e. ( ZZ>= ` 2 ) /\ j e. ZZ /\ N e. ZZ ) /\ A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E /\ { ( W ` ( ( # ` W ) - 1 ) ) , ( W ` 0 ) } e. E ) -> { ( W ` ( ( j + N ) mod ( # ` W ) ) ) , ( W ` ( ( ( j + 1 ) + N ) mod ( # ` W ) ) ) } e. E ) |
71 |
57 59 60 61 69 70
|
syl311anc |
|- ( ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ ( A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E /\ { ( lastS ` W ) , ( W ` 0 ) } e. E ) ) /\ j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) -> { ( W ` ( ( j + N ) mod ( # ` W ) ) ) , ( W ` ( ( ( j + 1 ) + N ) mod ( # ` W ) ) ) } e. E ) |
72 |
33 71
|
eqeltrd |
|- ( ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ ( A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E /\ { ( lastS ` W ) , ( W ` 0 ) } e. E ) ) /\ j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) ) -> { ( ( W cyclShift N ) ` j ) , ( ( W cyclShift N ) ` ( j + 1 ) ) } e. E ) |
73 |
72
|
ex |
|- ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ ( A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E /\ { ( lastS ` W ) , ( W ` 0 ) } e. E ) ) -> ( j e. ( 0 ..^ ( ( # ` W ) - 1 ) ) -> { ( ( W cyclShift N ) ` j ) , ( ( W cyclShift N ) ` ( j + 1 ) ) } e. E ) ) |
74 |
7 73
|
sylbid |
|- ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ ( A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E /\ { ( lastS ` W ) , ( W ` 0 ) } e. E ) ) -> ( j e. ( 0 ..^ ( ( # ` ( W cyclShift N ) ) - 1 ) ) -> { ( ( W cyclShift N ) ` j ) , ( ( W cyclShift N ) ` ( j + 1 ) ) } e. E ) ) |
75 |
74
|
ralrimiv |
|- ( ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) /\ ( A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E /\ { ( lastS ` W ) , ( W ` 0 ) } e. E ) ) -> A. j e. ( 0 ..^ ( ( # ` ( W cyclShift N ) ) - 1 ) ) { ( ( W cyclShift N ) ` j ) , ( ( W cyclShift N ) ` ( j + 1 ) ) } e. E ) |
76 |
75
|
ex |
|- ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) ) -> ( ( A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E /\ { ( lastS ` W ) , ( W ` 0 ) } e. E ) -> A. j e. ( 0 ..^ ( ( # ` ( W cyclShift N ) ) - 1 ) ) { ( ( W cyclShift N ) ` j ) , ( ( W cyclShift N ) ` ( j + 1 ) ) } e. E ) ) |