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;

theorem Th81:
  f/^(i+k) = f/^i/^k
proof
  per cases;
  suppose
A1: i+k <= len f;
    i <= i+k by NAT_1:11;
    then
A2: i <= len f by A1,XXREAL_0:2;
    then
A3: len(f/^i) = len f - i by RFINSEQ:def 1;
    then
A4: k <= len(f/^i) by A1,XREAL_1:19;
A5: now
      let m be Nat;
      assume
A6:   m in dom(f/^i/^k);
      then
A7:   m+k in dom(f/^i) by FINSEQ_5:26;
      thus (f/^i/^k).m = (f/^i).(m+k) by A4,A6,RFINSEQ:def 1
        .= f.(m+k+i) by A2,A7,RFINSEQ:def 1
        .= f.(m+(i+k));
    end;
    len(f/^i/^k) = len(f/^i) - k by A4,RFINSEQ:def 1
      .= len f -(i+k) by A3;
    hence thesis by A1,A5,RFINSEQ:def 1;
  end;
  suppose that
A8: i+k > len f and
A9: i<= len f;
    len(f/^i) = len f - i by A9,RFINSEQ:def 1;
    then len(f/^i) + i = len f;
    then
A10: k > len(f/^i) by A8,XREAL_1:6;
    thus f/^(i+k) = <*>D by A8,RFINSEQ:def 1
      .= f/^i/^k by A10,RFINSEQ:def 1;
  end;
  suppose that
A11: i+k > len f and
A12: i > len f;
    thus f/^(i+k) = <*>D by A11,RFINSEQ:def 1
      .= <*>D/^k by Th80
      .= f/^i/^k by A12,RFINSEQ:def 1;
  end;
end;
