reserve x,y,z for set;
reserve f,f1,f2,f3 for FinSequence,
  p,p1,p2,p3 for set,
  i,k for Nat;
reserve D for non empty set,
  p,p1,p2,p3 for Element of D,
  f,f1,f2 for FinSequence of D;
reserve D for non empty set;
reserve p, q for FinSequence,
  X, Y, x, y for set,
  D for non empty set,
  i, j, k, l, m, n, r for Nat;
reserve a, a1, a2 for TwoValued Alternating FinSequence;
reserve fs, fs1, fs2 for FinSequence of X,
  fss, fss2 for Subset of fs;
reserve F, F1 for FinSequence of INT,
  k, m, n, ma for Nat;
reserve i,j,k,m,n for Nat,
  D for non empty set,
  p for Element of D,
  f for FinSequence of D;
reserve D for non empty set,
  p for Element of D,
  f for FinSequence of D;

theorem Th9:
  p in rng f & 1 <= i & i <= len(f:-p) implies (Rotate(f,p))/.i = f
  /.(i -' 1 + p..f)
proof
  assume that
A1: p in rng f and
A2: 1 <= i and
A3: i <= len(f:-p);
A4: i in dom(f:-p) by A2,A3,FINSEQ_3:25;
A5: i = i -' 1 + 1 by A2,XREAL_1:235;
  Rotate(f,p) = (f:-p)^((f-:p)/^1) by A1,Def2;
  hence (Rotate(f,p))/.i = (f:-p)/.i by A4,FINSEQ_4:68
    .= f/.(i -' 1 + p..f) by A1,A5,A4,FINSEQ_5:52;
end;
