Metamath Proof Explorer


Theorem cshf1

Description: Cyclically shifting a word which contains a symbol at most once results in a word which contains a symbol at most once. (Contributed by AV, 14-Mar-2021)

Ref Expression
Assertion cshf1 F:0..^F1-1ASG=FcyclShiftSG:0..^F1-1A

Proof

Step Hyp Ref Expression
1 f1f F:0..^F1-1AF:0..^FA
2 iswrdi F:0..^FAFWordA
3 1 2 syl F:0..^F1-1AFWordA
4 cshwf FWordASFcyclShiftS:0..^FA
5 4 3adant1 F:0..^F1-1AFWordASFcyclShiftS:0..^FA
6 5 adantr F:0..^F1-1AFWordASG=FcyclShiftSFcyclShiftS:0..^FA
7 feq1 G=FcyclShiftSG:0..^FAFcyclShiftS:0..^FA
8 7 adantl F:0..^F1-1AFWordASG=FcyclShiftSG:0..^FAFcyclShiftS:0..^FA
9 6 8 mpbird F:0..^F1-1AFWordASG=FcyclShiftSG:0..^FA
10 dff13 F:0..^F1-1AF:0..^FAx0..^Fy0..^FFx=Fyx=y
11 fveq1 G=FcyclShiftSGi=FcyclShiftSi
12 11 3ad2ant1 G=FcyclShiftSFWordASGi=FcyclShiftSi
13 12 adantr G=FcyclShiftSFWordASi0..^Fj0..^FGi=FcyclShiftSi
14 cshwidxmod FWordASi0..^FFcyclShiftSi=Fi+SmodF
15 14 3expia FWordASi0..^FFcyclShiftSi=Fi+SmodF
16 15 3adant1 G=FcyclShiftSFWordASi0..^FFcyclShiftSi=Fi+SmodF
17 16 com12 i0..^FG=FcyclShiftSFWordASFcyclShiftSi=Fi+SmodF
18 17 adantr i0..^Fj0..^FG=FcyclShiftSFWordASFcyclShiftSi=Fi+SmodF
19 18 impcom G=FcyclShiftSFWordASi0..^Fj0..^FFcyclShiftSi=Fi+SmodF
20 13 19 eqtrd G=FcyclShiftSFWordASi0..^Fj0..^FGi=Fi+SmodF
21 fveq1 G=FcyclShiftSGj=FcyclShiftSj
22 21 3ad2ant1 G=FcyclShiftSFWordASGj=FcyclShiftSj
23 22 adantr G=FcyclShiftSFWordASi0..^Fj0..^FGj=FcyclShiftSj
24 cshwidxmod FWordASj0..^FFcyclShiftSj=Fj+SmodF
25 24 3expia FWordASj0..^FFcyclShiftSj=Fj+SmodF
26 25 3adant1 G=FcyclShiftSFWordASj0..^FFcyclShiftSj=Fj+SmodF
27 26 adantld G=FcyclShiftSFWordASi0..^Fj0..^FFcyclShiftSj=Fj+SmodF
28 27 imp G=FcyclShiftSFWordASi0..^Fj0..^FFcyclShiftSj=Fj+SmodF
29 23 28 eqtrd G=FcyclShiftSFWordASi0..^Fj0..^FGj=Fj+SmodF
30 20 29 eqeq12d G=FcyclShiftSFWordASi0..^Fj0..^FGi=GjFi+SmodF=Fj+SmodF
31 30 adantlr G=FcyclShiftSFWordASx0..^Fy0..^FFx=Fyx=yi0..^Fj0..^FGi=GjFi+SmodF=Fj+SmodF
32 elfzo0 i0..^Fi0Fi<F
33 nn0z i0i
34 33 adantr i0Fi
35 34 adantl Si0Fi
36 simpl Si0FS
37 35 36 zaddcld Si0Fi+S
38 simpr i0FF
39 38 adantl Si0FF
40 37 39 jca Si0Fi+SF
41 40 ex Si0Fi+SF
42 41 3ad2ant3 G=FcyclShiftSFWordASi0Fi+SF
43 42 com12 i0FG=FcyclShiftSFWordASi+SF
44 43 3adant3 i0Fi<FG=FcyclShiftSFWordASi+SF
45 32 44 sylbi i0..^FG=FcyclShiftSFWordASi+SF
46 45 adantr i0..^Fj0..^FG=FcyclShiftSFWordASi+SF
47 46 impcom G=FcyclShiftSFWordASi0..^Fj0..^Fi+SF
48 zmodfzo i+SFi+SmodF0..^F
49 47 48 syl G=FcyclShiftSFWordASi0..^Fj0..^Fi+SmodF0..^F
50 elfzo0 j0..^Fj0Fj<F
51 nn0z j0j
52 51 adantr j0Fj
53 52 adantl Sj0Fj
54 simpl Sj0FS
55 53 54 zaddcld Sj0Fj+S
56 simpr j0FF
57 56 adantl Sj0FF
58 55 57 jca Sj0Fj+SF
59 58 expcom j0FSj+SF
60 59 3adant3 j0Fj<FSj+SF
61 50 60 sylbi j0..^FSj+SF
62 61 com12 Sj0..^Fj+SF
63 62 3ad2ant3 G=FcyclShiftSFWordASj0..^Fj+SF
64 63 adantld G=FcyclShiftSFWordASi0..^Fj0..^Fj+SF
65 64 imp G=FcyclShiftSFWordASi0..^Fj0..^Fj+SF
66 zmodfzo j+SFj+SmodF0..^F
67 65 66 syl G=FcyclShiftSFWordASi0..^Fj0..^Fj+SmodF0..^F
68 fveqeq2 x=i+SmodFFx=FyFi+SmodF=Fy
69 eqeq1 x=i+SmodFx=yi+SmodF=y
70 68 69 imbi12d x=i+SmodFFx=Fyx=yFi+SmodF=Fyi+SmodF=y
71 fveq2 y=j+SmodFFy=Fj+SmodF
72 71 eqeq2d y=j+SmodFFi+SmodF=FyFi+SmodF=Fj+SmodF
73 eqeq2 y=j+SmodFi+SmodF=yi+SmodF=j+SmodF
74 72 73 imbi12d y=j+SmodFFi+SmodF=Fyi+SmodF=yFi+SmodF=Fj+SmodFi+SmodF=j+SmodF
75 70 74 rspc2v i+SmodF0..^Fj+SmodF0..^Fx0..^Fy0..^FFx=Fyx=yFi+SmodF=Fj+SmodFi+SmodF=j+SmodF
76 49 67 75 syl2anc G=FcyclShiftSFWordASi0..^Fj0..^Fx0..^Fy0..^FFx=Fyx=yFi+SmodF=Fj+SmodFi+SmodF=j+SmodF
77 simpr G=FcyclShiftSFWordASi0..^Fj0..^FFi+SmodF=Fj+SmodFi+SmodF=j+SmodFFi+SmodF=Fj+SmodFi+SmodF=j+SmodF
78 addmodlteq i0..^Fj0..^FSi+SmodF=j+SmodFi=j
79 78 3expa i0..^Fj0..^FSi+SmodF=j+SmodFi=j
80 79 ancoms Si0..^Fj0..^Fi+SmodF=j+SmodFi=j
81 80 bicomd Si0..^Fj0..^Fi=ji+SmodF=j+SmodF
82 81 3ad2antl3 G=FcyclShiftSFWordASi0..^Fj0..^Fi=ji+SmodF=j+SmodF
83 82 adantr G=FcyclShiftSFWordASi0..^Fj0..^FFi+SmodF=Fj+SmodFi+SmodF=j+SmodFi=ji+SmodF=j+SmodF
84 77 83 sylibrd G=FcyclShiftSFWordASi0..^Fj0..^FFi+SmodF=Fj+SmodFi+SmodF=j+SmodFFi+SmodF=Fj+SmodFi=j
85 84 ex G=FcyclShiftSFWordASi0..^Fj0..^FFi+SmodF=Fj+SmodFi+SmodF=j+SmodFFi+SmodF=Fj+SmodFi=j
86 76 85 syld G=FcyclShiftSFWordASi0..^Fj0..^Fx0..^Fy0..^FFx=Fyx=yFi+SmodF=Fj+SmodFi=j
87 86 impancom G=FcyclShiftSFWordASx0..^Fy0..^FFx=Fyx=yi0..^Fj0..^FFi+SmodF=Fj+SmodFi=j
88 87 imp G=FcyclShiftSFWordASx0..^Fy0..^FFx=Fyx=yi0..^Fj0..^FFi+SmodF=Fj+SmodFi=j
89 31 88 sylbid G=FcyclShiftSFWordASx0..^Fy0..^FFx=Fyx=yi0..^Fj0..^FGi=Gji=j
90 89 ralrimivva G=FcyclShiftSFWordASx0..^Fy0..^FFx=Fyx=yi0..^Fj0..^FGi=Gji=j
91 90 3exp1 G=FcyclShiftSFWordASx0..^Fy0..^FFx=Fyx=yi0..^Fj0..^FGi=Gji=j
92 91 com14 x0..^Fy0..^FFx=Fyx=yFWordASG=FcyclShiftSi0..^Fj0..^FGi=Gji=j
93 92 adantl F:0..^FAx0..^Fy0..^FFx=Fyx=yFWordASG=FcyclShiftSi0..^Fj0..^FGi=Gji=j
94 10 93 sylbi F:0..^F1-1AFWordASG=FcyclShiftSi0..^Fj0..^FGi=Gji=j
95 94 3imp1 F:0..^F1-1AFWordASG=FcyclShiftSi0..^Fj0..^FGi=Gji=j
96 9 95 jca F:0..^F1-1AFWordASG=FcyclShiftSG:0..^FAi0..^Fj0..^FGi=Gji=j
97 96 3exp1 F:0..^F1-1AFWordASG=FcyclShiftSG:0..^FAi0..^Fj0..^FGi=Gji=j
98 3 97 mpd F:0..^F1-1ASG=FcyclShiftSG:0..^FAi0..^Fj0..^FGi=Gji=j
99 98 3imp F:0..^F1-1ASG=FcyclShiftSG:0..^FAi0..^Fj0..^FGi=Gji=j
100 dff13 G:0..^F1-1AG:0..^FAi0..^Fj0..^FGi=Gji=j
101 99 100 sylibr F:0..^F1-1ASG=FcyclShiftSG:0..^F1-1A