| Step |
Hyp |
Ref |
Expression |
| 1 |
|
cshwrnid |
|- ( ( W e. Word D /\ N e. ZZ ) -> ran ( W cyclShift N ) = ran W ) |
| 2 |
1
|
3adant2 |
|- ( ( W e. Word D /\ W : dom W -1-1-> D /\ N e. ZZ ) -> ran ( W cyclShift N ) = ran W ) |
| 3 |
|
wrddm |
|- ( W e. Word D -> dom W = ( 0 ..^ ( # ` W ) ) ) |
| 4 |
3
|
3ad2ant1 |
|- ( ( W e. Word D /\ W : dom W -1-1-> D /\ N e. ZZ ) -> dom W = ( 0 ..^ ( # ` W ) ) ) |
| 5 |
|
simp2 |
|- ( ( W e. Word D /\ W : dom W -1-1-> D /\ N e. ZZ ) -> W : dom W -1-1-> D ) |
| 6 |
|
f1eq2 |
|- ( dom W = ( 0 ..^ ( # ` W ) ) -> ( W : dom W -1-1-> D <-> W : ( 0 ..^ ( # ` W ) ) -1-1-> D ) ) |
| 7 |
6
|
biimpa |
|- ( ( dom W = ( 0 ..^ ( # ` W ) ) /\ W : dom W -1-1-> D ) -> W : ( 0 ..^ ( # ` W ) ) -1-1-> D ) |
| 8 |
4 5 7
|
syl2anc |
|- ( ( W e. Word D /\ W : dom W -1-1-> D /\ N e. ZZ ) -> W : ( 0 ..^ ( # ` W ) ) -1-1-> D ) |
| 9 |
|
simp3 |
|- ( ( W e. Word D /\ W : dom W -1-1-> D /\ N e. ZZ ) -> N e. ZZ ) |
| 10 |
|
eqid |
|- ( W cyclShift N ) = ( W cyclShift N ) |
| 11 |
|
cshf1 |
|- ( ( W : ( 0 ..^ ( # ` W ) ) -1-1-> D /\ N e. ZZ /\ ( W cyclShift N ) = ( W cyclShift N ) ) -> ( W cyclShift N ) : ( 0 ..^ ( # ` W ) ) -1-1-> D ) |
| 12 |
10 11
|
mp3an3 |
|- ( ( W : ( 0 ..^ ( # ` W ) ) -1-1-> D /\ N e. ZZ ) -> ( W cyclShift N ) : ( 0 ..^ ( # ` W ) ) -1-1-> D ) |
| 13 |
8 9 12
|
syl2anc |
|- ( ( W e. Word D /\ W : dom W -1-1-> D /\ N e. ZZ ) -> ( W cyclShift N ) : ( 0 ..^ ( # ` W ) ) -1-1-> D ) |
| 14 |
|
f1eq2 |
|- ( dom W = ( 0 ..^ ( # ` W ) ) -> ( ( W cyclShift N ) : dom W -1-1-> D <-> ( W cyclShift N ) : ( 0 ..^ ( # ` W ) ) -1-1-> D ) ) |
| 15 |
14
|
biimpar |
|- ( ( dom W = ( 0 ..^ ( # ` W ) ) /\ ( W cyclShift N ) : ( 0 ..^ ( # ` W ) ) -1-1-> D ) -> ( W cyclShift N ) : dom W -1-1-> D ) |
| 16 |
4 13 15
|
syl2anc |
|- ( ( W e. Word D /\ W : dom W -1-1-> D /\ N e. ZZ ) -> ( W cyclShift N ) : dom W -1-1-> D ) |
| 17 |
|
f1f1orn |
|- ( ( W cyclShift N ) : dom W -1-1-> D -> ( W cyclShift N ) : dom W -1-1-onto-> ran ( W cyclShift N ) ) |
| 18 |
16 17
|
syl |
|- ( ( W e. Word D /\ W : dom W -1-1-> D /\ N e. ZZ ) -> ( W cyclShift N ) : dom W -1-1-onto-> ran ( W cyclShift N ) ) |
| 19 |
|
f1oeq3 |
|- ( ran ( W cyclShift N ) = ran W -> ( ( W cyclShift N ) : dom W -1-1-onto-> ran ( W cyclShift N ) <-> ( W cyclShift N ) : dom W -1-1-onto-> ran W ) ) |
| 20 |
19
|
biimpa |
|- ( ( ran ( W cyclShift N ) = ran W /\ ( W cyclShift N ) : dom W -1-1-onto-> ran ( W cyclShift N ) ) -> ( W cyclShift N ) : dom W -1-1-onto-> ran W ) |
| 21 |
2 18 20
|
syl2anc |
|- ( ( W e. Word D /\ W : dom W -1-1-> D /\ N e. ZZ ) -> ( W cyclShift N ) : dom W -1-1-onto-> ran W ) |