 reserve x,y,z for object, X for set,
         i,k,n,m for Nat,
         R for Relation,
         P for finite Relation,
         p,q for FinSequence;

theorem Th4:
  n in dom q & p = (q /^n)^(q|n) implies
    q = (p/^(len p-'n))^p| (len p-'n)
proof
  assume that A1: n in dom q
          and A2: p = (q /^n)^(q|n);
  set L=len p;
  set R=rng p\/rng q \/{1};
  set Ln=L-'n;
  R = rng p\/(rng q \/{1}) & R=rng q\/(rng p \/{1}) by XBOOLE_1:4;
  then reconsider P=p,Q=q as FinSequence of R
    by XBOOLE_1:7,FINSEQ_1:def 4;
  set q1n = Q/^n,qn=Q|n,pL=P|Ln,p1L=P/^Ln;
  A3: qn ^ q1n = q by RFINSEQ:8;
  then len q1n+len qn = len q by FINSEQ_1:22;
  then A4:L=len q by FINSEQ_1:22,A2;
  then A5:n <= L by FINSEQ_3:25,A1; then
  L-n=L-'n by XREAL_1:233;
  then A7: len q1n = Ln by A4,A5,RFINSEQ:def 1;
  A8: p = pL^p1L by RFINSEQ:8;
  pL = (q /^n) by A2,A7,FINSEQ_5:23;
  hence thesis by A2,A8,FINSEQ_1:33,A3;
end;
