Metamath Proof Explorer


Theorem cshwmodn

Description: Cyclically shifting a word is invariant regarding modulo the word's length. (Contributed by AV, 26-Oct-2018) (Proof shortened by AV, 16-Oct-2022)

Ref Expression
Assertion cshwmodn WWordVNWcyclShiftN=WcyclShiftNmodW

Proof

Step Hyp Ref Expression
1 0csh0 cyclShiftN=
2 oveq1 W=WcyclShiftN=cyclShiftN
3 oveq1 W=WcyclShiftNmodW=cyclShiftNmodW
4 0csh0 cyclShiftNmodW=
5 3 4 eqtrdi W=WcyclShiftNmodW=
6 1 2 5 3eqtr4a W=WcyclShiftN=WcyclShiftNmodW
7 6 a1d W=WWordVNWcyclShiftN=WcyclShiftNmodW
8 lennncl WWordVWW
9 8 ex WWordVWW
10 9 adantr WWordVNWW
11 10 impcom WWWordVNW
12 simprr WWWordVNN
13 zre NN
14 nnrp WW+
15 modabs2 NW+NmodWmodW=NmodW
16 13 14 15 syl2anr WNNmodWmodW=NmodW
17 16 opeq1d WNNmodWmodWW=NmodWW
18 17 oveq2d WNWsubstrNmodWmodWW=WsubstrNmodWW
19 16 oveq2d WNWprefixNmodWmodW=WprefixNmodW
20 18 19 oveq12d WNWsubstrNmodWmodWW++WprefixNmodWmodW=WsubstrNmodWW++WprefixNmodW
21 11 12 20 syl2anc WWWordVNWsubstrNmodWmodWW++WprefixNmodWmodW=WsubstrNmodWW++WprefixNmodW
22 simprl WWWordVNWWordV
23 12 11 zmodcld WWWordVNNmodW0
24 23 nn0zd WWWordVNNmodW
25 cshword WWordVNmodWWcyclShiftNmodW=WsubstrNmodWmodWW++WprefixNmodWmodW
26 22 24 25 syl2anc WWWordVNWcyclShiftNmodW=WsubstrNmodWmodWW++WprefixNmodWmodW
27 cshword WWordVNWcyclShiftN=WsubstrNmodWW++WprefixNmodW
28 27 adantl WWWordVNWcyclShiftN=WsubstrNmodWW++WprefixNmodW
29 21 26 28 3eqtr4rd WWWordVNWcyclShiftN=WcyclShiftNmodW
30 29 ex WWWordVNWcyclShiftN=WcyclShiftNmodW
31 7 30 pm2.61ine WWordVNWcyclShiftN=WcyclShiftNmodW