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 ) ) ) ) ) ) |