| Step |
Hyp |
Ref |
Expression |
| 0 |
|
ccsh |
|- cyclShift |
| 1 |
|
vw |
|- w |
| 2 |
|
vf |
|- f |
| 3 |
|
vl |
|- l |
| 4 |
|
cn0 |
|- NN0 |
| 5 |
2
|
cv |
|- f |
| 6 |
|
cc0 |
|- 0 |
| 7 |
|
cfzo |
|- ..^ |
| 8 |
3
|
cv |
|- l |
| 9 |
6 8 7
|
co |
|- ( 0 ..^ l ) |
| 10 |
5 9
|
wfn |
|- f Fn ( 0 ..^ l ) |
| 11 |
10 3 4
|
wrex |
|- E. l e. NN0 f Fn ( 0 ..^ l ) |
| 12 |
11 2
|
cab |
|- { f | E. l e. NN0 f Fn ( 0 ..^ l ) } |
| 13 |
|
vn |
|- n |
| 14 |
|
cz |
|- ZZ |
| 15 |
1
|
cv |
|- w |
| 16 |
|
c0 |
|- (/) |
| 17 |
15 16
|
wceq |
|- w = (/) |
| 18 |
|
csubstr |
|- substr |
| 19 |
13
|
cv |
|- n |
| 20 |
|
cmo |
|- mod |
| 21 |
|
chash |
|- # |
| 22 |
15 21
|
cfv |
|- ( # ` w ) |
| 23 |
19 22 20
|
co |
|- ( n mod ( # ` w ) ) |
| 24 |
23 22
|
cop |
|- <. ( n mod ( # ` w ) ) , ( # ` w ) >. |
| 25 |
15 24 18
|
co |
|- ( w substr <. ( n mod ( # ` w ) ) , ( # ` w ) >. ) |
| 26 |
|
cconcat |
|- ++ |
| 27 |
|
cpfx |
|- prefix |
| 28 |
15 23 27
|
co |
|- ( w prefix ( n mod ( # ` w ) ) ) |
| 29 |
25 28 26
|
co |
|- ( ( w substr <. ( n mod ( # ` w ) ) , ( # ` w ) >. ) ++ ( w prefix ( n mod ( # ` w ) ) ) ) |
| 30 |
17 16 29
|
cif |
|- if ( w = (/) , (/) , ( ( w substr <. ( n mod ( # ` w ) ) , ( # ` w ) >. ) ++ ( w prefix ( n mod ( # ` w ) ) ) ) ) |
| 31 |
1 13 12 14 30
|
cmpo |
|- ( w e. { f | E. l e. NN0 f Fn ( 0 ..^ l ) } , n e. ZZ |-> if ( w = (/) , (/) , ( ( w substr <. ( n mod ( # ` w ) ) , ( # ` w ) >. ) ++ ( w prefix ( n mod ( # ` w ) ) ) ) ) ) |
| 32 |
0 31
|
wceq |
|- cyclShift = ( w e. { f | E. l e. NN0 f Fn ( 0 ..^ l ) } , n e. ZZ |-> if ( w = (/) , (/) , ( ( w substr <. ( n mod ( # ` w ) ) , ( # ` w ) >. ) ++ ( w prefix ( n mod ( # ` w ) ) ) ) ) ) |