reserve x,y for object,
        D,D1,D2 for non empty set,
        i,j,k,m,n for Nat,
        f,g for FinSequence of D*,
        f1 for FinSequence of D1*,
        f2 for FinSequence of D2*;

theorem
  k in dom (f.(n+1))
    implies
  f.(n+1).k = (D-concatenation "**" f).(k + len (D-concatenation "**" (f|n)))
proof
  set DC=D-concatenation;
  set n1=n+1;
  assume A1:k in dom (f.n1);
  then f.n1 <>{};
  then A2:n1 in dom f by FUNCT_1:def 2;
  then n1 <= len f by FINSEQ_3:25;
  then A3:f|n1 = (f|n) ^ <*f/.n1*> by FINSEQ_5:82;
  A4:f.n1=f/.n1 by A2,PARTFUN1:def 6;
  consider q be FinSequence such that
  A5: f=(f|n1)^q by FINSEQ_1:80;
  reconsider q as FinSequence  of D* by A5,FINSEQ_1:36;
  A6: DC"**"(f|n1) = (DC"**"(f|n))^(DC"**" <*f/.n1*>) by A3,Th3
                  .= (DC"**"(f|n))^(f/.n1) by FINSOP_1:11;
  then A7:(DC"**"(f|n1)).(k+len (DC"**"(f|n))) = (f.n1).k
      by A4,A1,FINSEQ_1:def 7;
  A8: k+len (DC"**"(f|n))  in dom (DC"**"(f|n1)) by A6,A4,A1,FINSEQ_1:28;
  DC"**"f = (DC"**"(f|n1))^(DC"**"q) by A5,Th3;
  hence thesis by A8,FINSEQ_1:def 7,A7;
end;
