| Step |
Hyp |
Ref |
Expression |
| 1 |
|
cshwrepswhash1.m |
|- M = { w e. Word V | E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = w } |
| 2 |
|
nnnn0 |
|- ( N e. NN -> N e. NN0 ) |
| 3 |
|
repsdf2 |
|- ( ( A e. V /\ N e. NN0 ) -> ( W = ( A repeatS N ) <-> ( W e. Word V /\ ( # ` W ) = N /\ A. i e. ( 0 ..^ N ) ( W ` i ) = A ) ) ) |
| 4 |
2 3
|
sylan2 |
|- ( ( A e. V /\ N e. NN ) -> ( W = ( A repeatS N ) <-> ( W e. Word V /\ ( # ` W ) = N /\ A. i e. ( 0 ..^ N ) ( W ` i ) = A ) ) ) |
| 5 |
|
simp1 |
|- ( ( W e. Word V /\ ( # ` W ) = N /\ A. i e. ( 0 ..^ N ) ( W ` i ) = A ) -> W e. Word V ) |
| 6 |
5
|
adantl |
|- ( ( ( A e. V /\ N e. NN ) /\ ( W e. Word V /\ ( # ` W ) = N /\ A. i e. ( 0 ..^ N ) ( W ` i ) = A ) ) -> W e. Word V ) |
| 7 |
|
eleq1 |
|- ( N = ( # ` W ) -> ( N e. NN <-> ( # ` W ) e. NN ) ) |
| 8 |
7
|
eqcoms |
|- ( ( # ` W ) = N -> ( N e. NN <-> ( # ` W ) e. NN ) ) |
| 9 |
|
lbfzo0 |
|- ( 0 e. ( 0 ..^ ( # ` W ) ) <-> ( # ` W ) e. NN ) |
| 10 |
9
|
biimpri |
|- ( ( # ` W ) e. NN -> 0 e. ( 0 ..^ ( # ` W ) ) ) |
| 11 |
8 10
|
biimtrdi |
|- ( ( # ` W ) = N -> ( N e. NN -> 0 e. ( 0 ..^ ( # ` W ) ) ) ) |
| 12 |
11
|
3ad2ant2 |
|- ( ( W e. Word V /\ ( # ` W ) = N /\ A. i e. ( 0 ..^ N ) ( W ` i ) = A ) -> ( N e. NN -> 0 e. ( 0 ..^ ( # ` W ) ) ) ) |
| 13 |
12
|
com12 |
|- ( N e. NN -> ( ( W e. Word V /\ ( # ` W ) = N /\ A. i e. ( 0 ..^ N ) ( W ` i ) = A ) -> 0 e. ( 0 ..^ ( # ` W ) ) ) ) |
| 14 |
13
|
adantl |
|- ( ( A e. V /\ N e. NN ) -> ( ( W e. Word V /\ ( # ` W ) = N /\ A. i e. ( 0 ..^ N ) ( W ` i ) = A ) -> 0 e. ( 0 ..^ ( # ` W ) ) ) ) |
| 15 |
14
|
imp |
|- ( ( ( A e. V /\ N e. NN ) /\ ( W e. Word V /\ ( # ` W ) = N /\ A. i e. ( 0 ..^ N ) ( W ` i ) = A ) ) -> 0 e. ( 0 ..^ ( # ` W ) ) ) |
| 16 |
|
cshw0 |
|- ( W e. Word V -> ( W cyclShift 0 ) = W ) |
| 17 |
6 16
|
syl |
|- ( ( ( A e. V /\ N e. NN ) /\ ( W e. Word V /\ ( # ` W ) = N /\ A. i e. ( 0 ..^ N ) ( W ` i ) = A ) ) -> ( W cyclShift 0 ) = W ) |
| 18 |
|
oveq2 |
|- ( n = 0 -> ( W cyclShift n ) = ( W cyclShift 0 ) ) |
| 19 |
18
|
eqeq1d |
|- ( n = 0 -> ( ( W cyclShift n ) = W <-> ( W cyclShift 0 ) = W ) ) |
| 20 |
19
|
rspcev |
|- ( ( 0 e. ( 0 ..^ ( # ` W ) ) /\ ( W cyclShift 0 ) = W ) -> E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = W ) |
| 21 |
15 17 20
|
syl2anc |
|- ( ( ( A e. V /\ N e. NN ) /\ ( W e. Word V /\ ( # ` W ) = N /\ A. i e. ( 0 ..^ N ) ( W ` i ) = A ) ) -> E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = W ) |
| 22 |
|
eqeq2 |
|- ( w = W -> ( ( W cyclShift n ) = w <-> ( W cyclShift n ) = W ) ) |
| 23 |
22
|
rexbidv |
|- ( w = W -> ( E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = w <-> E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = W ) ) |
| 24 |
23
|
rspcev |
|- ( ( W e. Word V /\ E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = W ) -> E. w e. Word V E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = w ) |
| 25 |
6 21 24
|
syl2anc |
|- ( ( ( A e. V /\ N e. NN ) /\ ( W e. Word V /\ ( # ` W ) = N /\ A. i e. ( 0 ..^ N ) ( W ` i ) = A ) ) -> E. w e. Word V E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = w ) |
| 26 |
25
|
ex |
|- ( ( A e. V /\ N e. NN ) -> ( ( W e. Word V /\ ( # ` W ) = N /\ A. i e. ( 0 ..^ N ) ( W ` i ) = A ) -> E. w e. Word V E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = w ) ) |
| 27 |
4 26
|
sylbid |
|- ( ( A e. V /\ N e. NN ) -> ( W = ( A repeatS N ) -> E. w e. Word V E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = w ) ) |
| 28 |
27
|
3impia |
|- ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) -> E. w e. Word V E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = w ) |
| 29 |
|
repsw |
|- ( ( A e. V /\ N e. NN0 ) -> ( A repeatS N ) e. Word V ) |
| 30 |
2 29
|
sylan2 |
|- ( ( A e. V /\ N e. NN ) -> ( A repeatS N ) e. Word V ) |
| 31 |
30
|
3adant3 |
|- ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) -> ( A repeatS N ) e. Word V ) |
| 32 |
|
simpll3 |
|- ( ( ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) /\ u e. Word V ) /\ n e. ( 0 ..^ ( # ` W ) ) ) -> W = ( A repeatS N ) ) |
| 33 |
32
|
oveq1d |
|- ( ( ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) /\ u e. Word V ) /\ n e. ( 0 ..^ ( # ` W ) ) ) -> ( W cyclShift n ) = ( ( A repeatS N ) cyclShift n ) ) |
| 34 |
|
simp1 |
|- ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) -> A e. V ) |
| 35 |
34
|
ad2antrr |
|- ( ( ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) /\ u e. Word V ) /\ n e. ( 0 ..^ ( # ` W ) ) ) -> A e. V ) |
| 36 |
2
|
3ad2ant2 |
|- ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) -> N e. NN0 ) |
| 37 |
36
|
ad2antrr |
|- ( ( ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) /\ u e. Word V ) /\ n e. ( 0 ..^ ( # ` W ) ) ) -> N e. NN0 ) |
| 38 |
|
elfzoelz |
|- ( n e. ( 0 ..^ ( # ` W ) ) -> n e. ZZ ) |
| 39 |
38
|
adantl |
|- ( ( ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) /\ u e. Word V ) /\ n e. ( 0 ..^ ( # ` W ) ) ) -> n e. ZZ ) |
| 40 |
|
repswcshw |
|- ( ( A e. V /\ N e. NN0 /\ n e. ZZ ) -> ( ( A repeatS N ) cyclShift n ) = ( A repeatS N ) ) |
| 41 |
35 37 39 40
|
syl3anc |
|- ( ( ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) /\ u e. Word V ) /\ n e. ( 0 ..^ ( # ` W ) ) ) -> ( ( A repeatS N ) cyclShift n ) = ( A repeatS N ) ) |
| 42 |
33 41
|
eqtrd |
|- ( ( ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) /\ u e. Word V ) /\ n e. ( 0 ..^ ( # ` W ) ) ) -> ( W cyclShift n ) = ( A repeatS N ) ) |
| 43 |
42
|
eqeq1d |
|- ( ( ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) /\ u e. Word V ) /\ n e. ( 0 ..^ ( # ` W ) ) ) -> ( ( W cyclShift n ) = u <-> ( A repeatS N ) = u ) ) |
| 44 |
43
|
biimpd |
|- ( ( ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) /\ u e. Word V ) /\ n e. ( 0 ..^ ( # ` W ) ) ) -> ( ( W cyclShift n ) = u -> ( A repeatS N ) = u ) ) |
| 45 |
44
|
rexlimdva |
|- ( ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) /\ u e. Word V ) -> ( E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = u -> ( A repeatS N ) = u ) ) |
| 46 |
45
|
ralrimiva |
|- ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) -> A. u e. Word V ( E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = u -> ( A repeatS N ) = u ) ) |
| 47 |
|
eqeq1 |
|- ( w = ( A repeatS N ) -> ( w = u <-> ( A repeatS N ) = u ) ) |
| 48 |
47
|
imbi2d |
|- ( w = ( A repeatS N ) -> ( ( E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = u -> w = u ) <-> ( E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = u -> ( A repeatS N ) = u ) ) ) |
| 49 |
48
|
ralbidv |
|- ( w = ( A repeatS N ) -> ( A. u e. Word V ( E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = u -> w = u ) <-> A. u e. Word V ( E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = u -> ( A repeatS N ) = u ) ) ) |
| 50 |
49
|
rspcev |
|- ( ( ( A repeatS N ) e. Word V /\ A. u e. Word V ( E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = u -> ( A repeatS N ) = u ) ) -> E. w e. Word V A. u e. Word V ( E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = u -> w = u ) ) |
| 51 |
31 46 50
|
syl2anc |
|- ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) -> E. w e. Word V A. u e. Word V ( E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = u -> w = u ) ) |
| 52 |
|
eqeq2 |
|- ( w = u -> ( ( W cyclShift n ) = w <-> ( W cyclShift n ) = u ) ) |
| 53 |
52
|
rexbidv |
|- ( w = u -> ( E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = w <-> E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = u ) ) |
| 54 |
53
|
reu7 |
|- ( E! w e. Word V E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = w <-> ( E. w e. Word V E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = w /\ E. w e. Word V A. u e. Word V ( E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = u -> w = u ) ) ) |
| 55 |
28 51 54
|
sylanbrc |
|- ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) -> E! w e. Word V E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = w ) |
| 56 |
|
reusn |
|- ( E! w e. Word V E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = w <-> E. r { w e. Word V | E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = w } = { r } ) |
| 57 |
55 56
|
sylib |
|- ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) -> E. r { w e. Word V | E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = w } = { r } ) |
| 58 |
1
|
eqeq1i |
|- ( M = { r } <-> { w e. Word V | E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = w } = { r } ) |
| 59 |
58
|
exbii |
|- ( E. r M = { r } <-> E. r { w e. Word V | E. n e. ( 0 ..^ ( # ` W ) ) ( W cyclShift n ) = w } = { r } ) |
| 60 |
57 59
|
sylibr |
|- ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) -> E. r M = { r } ) |
| 61 |
1
|
cshwsex |
|- ( W e. Word V -> M e. _V ) |
| 62 |
61
|
3ad2ant1 |
|- ( ( W e. Word V /\ ( # ` W ) = N /\ A. i e. ( 0 ..^ N ) ( W ` i ) = A ) -> M e. _V ) |
| 63 |
4 62
|
biimtrdi |
|- ( ( A e. V /\ N e. NN ) -> ( W = ( A repeatS N ) -> M e. _V ) ) |
| 64 |
63
|
3impia |
|- ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) -> M e. _V ) |
| 65 |
|
hash1snb |
|- ( M e. _V -> ( ( # ` M ) = 1 <-> E. r M = { r } ) ) |
| 66 |
64 65
|
syl |
|- ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) -> ( ( # ` M ) = 1 <-> E. r M = { r } ) ) |
| 67 |
60 66
|
mpbird |
|- ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) ) -> ( # ` M ) = 1 ) |