 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 Th5:
  (p /^k)^(p|k) = (q /^n)^(q|n) implies
    ex i st p = (q /^i) ^ (q|i)
proof
  assume A1: (p /^k)^(p|k) = (q /^n)^(q|n);
  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;
  pk^p1k = p by RFINSEQ:8;
  then A2: len p1k+len pk = L by FINSEQ_1:22;
  qn ^ q1n = q by RFINSEQ:8;
  then A3: len q1n+len qn = len q by FINSEQ_1:22;
  len (p1k^pk) = len p1k+len pk by FINSEQ_1:22;
  then A4:L=len q by A2,A3, FINSEQ_1:22,A1;
  per cases;
    suppose not k in dom p;
      then p = (q /^n)^(q|n) by A1,Lm4;
      hence thesis;
    end;
    suppose A5:not n in dom q & k in dom p;
      then q = (p /^k)^(p|k) by Lm4,A1;
      then p = (q/^(len q-'k))^(q| (len q-'k)) by A5,Th4;
      hence thesis;
    end;
    suppose A6:n in dom q & k in dom p & k <= n;
      then n <= len p by A4,FINSEQ_3:25;
      then p = (q /^(n-'k))^(q| (n-'k)) by A6,A1,Th3;
      hence thesis;
    end;
    suppose A7:n in dom q & k in dom p & k > n;
      then A8: k-'n = k-n by XREAL_1:233;
      then k-'n <> 0 by A7;
      then A9: k-'n >=1 by NAT_1:14;
      A10: k <= len p by A7,FINSEQ_3:25;
      k-'n <= k-'n+n by NAT_1:11;
      then k-'n <= len p by A8,XXREAL_0:2,A10;
      then A11: k-'n in dom p by A9,FINSEQ_3:25;
      q = (p /^(k-'n))^(p| (k-'n)) by A10,A4,A7,A1,Th3;
      then p = (q/^(len q-'(k-'n)))^q| (len q-'(k-'n)) by A11,Th4;
      hence thesis;
    end;
 end;
