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;
reserve f for circular FinSequence of D;
reserve i, i1, i2, j, k for Nat;
reserve D for non empty set,
  f1 for FinSequence of D;

theorem
  for f1,k st k<len f1 holds (f1/^k).len (f1/^k)=f1.len f1 &
    (f1/^k)/.len (f1/^k)=f1/.len f1
proof
  let f1,k;
  assume
A1: k<len f1;
  then k+1<=len f1 by NAT_1:13;
  then k+1-k<=len f1-k by XREAL_1:9;
  then
A2: 1<=len (f1/^k) by A1,RFINSEQ:def 1;
  then len (f1/^k) in Seg len (f1/^k);
  then
A3: len (f1/^k) in dom (f1/^k) by FINSEQ_1:def 3;
  len (f1/^k)+k=len f1-k+k by A1,RFINSEQ:def 1
    .=len f1;
  hence
A4: (f1/^k).len (f1/^k)=f1.len f1 by A1,A3,RFINSEQ:def 1;
A5: (f1/^k)/.len (f1/^k)=(f1/^k).len (f1/^k) by A2,FINSEQ_4:15;
  0+1<=len f1 by A1,NAT_1:13;
  hence thesis by A4,A5,FINSEQ_4:15;
end;
