Metamath Proof Explorer


Theorem cshco

Description: Mapping of words commutes with the "cyclical shift" operation. (Contributed by AV, 12-Nov-2018)

Ref Expression
Assertion cshco WWordANF:ABFWcyclShiftN=FWcyclShiftN

Proof

Step Hyp Ref Expression
1 ffn F:ABFFnA
2 1 3ad2ant3 WWordANF:ABFFnA
3 cshwfn WWordANWcyclShiftNFn0..^W
4 3 3adant3 WWordANF:ABWcyclShiftNFn0..^W
5 cshwrn WWordANranWcyclShiftNA
6 5 3adant3 WWordANF:ABranWcyclShiftNA
7 fnco FFnAWcyclShiftNFn0..^WranWcyclShiftNAFWcyclShiftNFn0..^W
8 2 4 6 7 syl3anc WWordANF:ABFWcyclShiftNFn0..^W
9 wrdco WWordAF:ABFWWordB
10 9 3adant2 WWordANF:ABFWWordB
11 simp2 WWordANF:ABN
12 cshwfn FWWordBNFWcyclShiftNFn0..^FW
13 10 11 12 syl2anc WWordANF:ABFWcyclShiftNFn0..^FW
14 lenco WWordAF:ABFW=W
15 14 3adant2 WWordANF:ABFW=W
16 15 oveq2d WWordANF:AB0..^FW=0..^W
17 16 fneq2d WWordANF:ABFWcyclShiftNFn0..^FWFWcyclShiftNFn0..^W
18 13 17 mpbid WWordANF:ABFWcyclShiftNFn0..^W
19 15 adantr WWordANF:ABi0..^WFW=W
20 19 oveq2d WWordANF:ABi0..^Wi+NmodFW=i+NmodW
21 20 fveq2d WWordANF:ABi0..^WWi+NmodFW=Wi+NmodW
22 21 fveq2d WWordANF:ABi0..^WFWi+NmodFW=FWi+NmodW
23 wrdfn WWordAWFn0..^W
24 23 3ad2ant1 WWordANF:ABWFn0..^W
25 24 adantr WWordANF:ABi0..^WWFn0..^W
26 elfzoelz i0..^Wi
27 zaddcl iNi+N
28 26 11 27 syl2anr WWordANF:ABi0..^Wi+N
29 elfzo0 i0..^Wi0Wi<W
30 29 simp2bi i0..^WW
31 30 adantl WWordANF:ABi0..^WW
32 zmodfzo i+NWi+NmodW0..^W
33 28 31 32 syl2anc WWordANF:ABi0..^Wi+NmodW0..^W
34 15 oveq2d WWordANF:ABi+NmodFW=i+NmodW
35 34 eleq1d WWordANF:ABi+NmodFW0..^Wi+NmodW0..^W
36 35 adantr WWordANF:ABi0..^Wi+NmodFW0..^Wi+NmodW0..^W
37 33 36 mpbird WWordANF:ABi0..^Wi+NmodFW0..^W
38 fvco2 WFn0..^Wi+NmodFW0..^WFWi+NmodFW=FWi+NmodFW
39 25 37 38 syl2anc WWordANF:ABi0..^WFWi+NmodFW=FWi+NmodFW
40 simpl1 WWordANF:ABi0..^WWWordA
41 11 adantr WWordANF:ABi0..^WN
42 simpr WWordANF:ABi0..^Wi0..^W
43 cshwidxmod WWordANi0..^WWcyclShiftNi=Wi+NmodW
44 43 fveq2d WWordANi0..^WFWcyclShiftNi=FWi+NmodW
45 40 41 42 44 syl3anc WWordANF:ABi0..^WFWcyclShiftNi=FWi+NmodW
46 22 39 45 3eqtr4rd WWordANF:ABi0..^WFWcyclShiftNi=FWi+NmodFW
47 fvco2 WcyclShiftNFn0..^Wi0..^WFWcyclShiftNi=FWcyclShiftNi
48 4 47 sylan WWordANF:ABi0..^WFWcyclShiftNi=FWcyclShiftNi
49 10 adantr WWordANF:ABi0..^WFWWordB
50 15 eqcomd WWordANF:ABW=FW
51 50 oveq2d WWordANF:AB0..^W=0..^FW
52 51 eleq2d WWordANF:ABi0..^Wi0..^FW
53 52 biimpa WWordANF:ABi0..^Wi0..^FW
54 cshwidxmod FWWordBNi0..^FWFWcyclShiftNi=FWi+NmodFW
55 49 41 53 54 syl3anc WWordANF:ABi0..^WFWcyclShiftNi=FWi+NmodFW
56 46 48 55 3eqtr4d WWordANF:ABi0..^WFWcyclShiftNi=FWcyclShiftNi
57 8 18 56 eqfnfvd WWordANF:ABFWcyclShiftN=FWcyclShiftN