let D be non empty set ; for s being FinSequence of D
for n, m being Integer st 1 <= len s holds
Op-Shift ((Op-Shift (s,n)),m) = Op-Shift (s,(n + m))
let s be FinSequence of D; for n, m being Integer st 1 <= len s holds
Op-Shift ((Op-Shift (s,n)),m) = Op-Shift (s,(n + m))
let n, m be Integer; ( 1 <= len s implies Op-Shift ((Op-Shift (s,n)),m) = Op-Shift (s,(n + m)) )
assume AS:
1 <= len s
; Op-Shift ((Op-Shift (s,n)),m) = Op-Shift (s,(n + m))
P1:
( len (Op-Shift (s,n)) = len s & ( for i being Nat st i in Seg (len s) holds
(Op-Shift (s,n)) . i = s . ((((i - 1) + n) mod (len s)) + 1) ) )
by defShift, AS;
P4:
( len (Op-Shift (s,(n + m))) = len s & ( for i being Nat st i in Seg (len s) holds
(Op-Shift (s,(n + m))) . i = s . ((((i - 1) + (n + m)) mod (len s)) + 1) ) )
by defShift, AS;
P5:
len (Op-Shift ((Op-Shift (s,n)),m)) = len (Op-Shift (s,(n + m)))
by P4, defShift, AS, P1;
now for i being Nat st i in dom (Op-Shift ((Op-Shift (s,n)),m)) holds
(Op-Shift ((Op-Shift (s,n)),m)) . i = (Op-Shift (s,(n + m))) . ilet i be
Nat;
( i in dom (Op-Shift ((Op-Shift (s,n)),m)) implies (Op-Shift ((Op-Shift (s,n)),m)) . i = (Op-Shift (s,(n + m))) . i )assume P9P:
i in dom (Op-Shift ((Op-Shift (s,n)),m))
;
(Op-Shift ((Op-Shift (s,n)),m)) . i = (Op-Shift (s,(n + m))) . ithen P9:
i in Seg (len s)
by P4, P5, FINSEQ_1:def 3;
P10:
i in Seg (len (Op-Shift (s,n)))
by P1, P4, P5, P9P, FINSEQ_1:def 3;
reconsider i1 =
((i - 1) + m) mod (len s) as
Element of
NAT by INT_1:3, INT_1:57;
P21:
0 + 1
<= i1 + 1
by XREAL_1:6;
((i - 1) + m) mod (len s) < len s
by AS, INT_1:58;
then
i1 + 1
<= len s
by NAT_1:13;
then P14:
i1 + 1
in Seg (len s)
by P21;
P17:
i1 mod (len s) = ((i - 1) + m) mod (len s)
by NAT_D:65;
P16:
(i1 + n) mod (len s) =
((((i - 1) + m) mod (len s)) + (n mod (len s))) mod (len s)
by P17, NAT_D:66
.=
(((i - 1) + m) + n) mod (len s)
by NAT_D:66
;
P11:
(Op-Shift ((Op-Shift (s,n)),m)) . i =
(Op-Shift (s,n)) . (i1 + 1)
by P10, defShift, AS, P1
.=
s . (((((i1 + 1) - 1) + n) mod (len s)) + 1)
by P14, defShift, AS
.=
s . (((((i - 1) + n) + m) mod (len s)) + 1)
by P16
;
(Op-Shift (s,(n + m))) . i = s . ((((i - 1) + (n + m)) mod (len s)) + 1)
by P9, defShift, AS;
hence
(Op-Shift ((Op-Shift (s,n)),m)) . i = (Op-Shift (s,(n + m))) . i
by P11;
verum end;
hence
Op-Shift ((Op-Shift (s,n)),m) = Op-Shift (s,(n + m))
by P5, FINSEQ_2:9; verum