 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 Th3:
  (p /^k)^(p|k) = (q /^n)^(q|n) & k <= n & n <= len p
    implies p = (q /^(n-'k)) ^ (q| (n-'k))
proof
  assume A1: (p /^k)^(p|k) = (q /^n)^(q|n);
  set nk=n-'k;
  set L=len p;
  set R=rng p\/rng q \/{1};
  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 p1k = P/^k,pk=P|k,q1n = Q/^n,qn=Q|n;
  assume A2:k <= n;
  then A3:n-k=n-'k by XREAL_1:233;
  then A4:nk+k=n;
  A5:nk <= nk+k by NAT_1:11;
  then A6: n-'nk=n-nk by XREAL_1:233,A3;
  qn ^ q1n = q by RFINSEQ:8;
  then A7: len q1n+len qn = len q by FINSEQ_1:22;
  A8:qn = (qn|nk)^(qn /^ nk) by RFINSEQ:8;
  assume A9:n <=L;
  then reconsider Lk=L-k,Ln=L-n as Nat by A2,XXREAL_0:2,NAT_1:21;
  A10: len (p1k^pk) = len p1k+len pk by FINSEQ_1:22;
  A11: pk^p1k = p by RFINSEQ:8;
  then len p1k+len pk = L by FINSEQ_1:22;
  then L=len q by A7,A10, FINSEQ_1:22,A1;
  then A12: len q1n = Ln by A9,RFINSEQ:def 1;
  A13:p1k = (p1k|Ln)^(p1k /^ Ln) by RFINSEQ:8;
  then A14:q1n^qn = (p1k|Ln)^((p1k /^ Ln)^pk) by A1,FINSEQ_1:32;
  k <= L by A9,A2,XXREAL_0:2;
  then A15: len p1k = Lk by RFINSEQ:def 1;
  then len (p1k|Ln)= Ln by A2,XREAL_1:10,FINSEQ_1:59;
  then A16:p1k|Ln = (q1n^qn) |Ln by A14,FINSEQ_5:23
      .= q1n by A12,FINSEQ_5:23;
   Lk>= Ln by A2,XREAL_1:10;
  then A17:len (p1k /^ Ln) = Lk-Ln by A15,RFINSEQ:def 1;
  A18:qn|nk = ((p1k /^ Ln)^pk) |nk by A16,A14,FINSEQ_1:33
      .= (p1k /^ Ln) by A17,FINSEQ_5:23,A3;
  qn = (p1k /^ Ln)^pk by A16,A14,FINSEQ_1:33;
  then (qn /^ nk) = pk by A18,A8,FINSEQ_1:33;
  hence p = ((Q/^nk) |k) ^ (q1n ^ qn|nk)
               by A6,FINSEQ_5:80,A3,A13,A16,A18,A11
       .= ((Q/^nk) |k) ^ ((Q/^nk/^k) ^ qn|nk) by FINSEQ_6:81,A4
       .= ((Q/^nk) |k ^ (Q/^nk/^k)) ^ (qn|nk) by FINSEQ_1:32
       .= Q/^nk ^ (qn|nk) by RFINSEQ:8
       .= q/^nk ^ q|nk by A5,FINSEQ_1:82,A3;
end;
