reserve p,q,r for FinSequence;
reserve u,v,x,y,y1,y2,z for object, A,D,X,Y for set;
reserve i,j,k,l,m,n for Nat;
reserve J for Nat;

theorem
  for F being FinSequence, A be Subset of rng F
  ex p being Permutation of dom F st (F-A`)^(F-A) = F*p
proof
  let F be FinSequence;
  let A be Subset of rng F;
  set F1 = F-A`, F2 = F-A;
  A` = (rng F) \ A by SUBSET_1:def 4;
  then F"A` misses F"A by FUNCT_1:71,XBOOLE_1:79;
  then card (F"A`) + card (F"A) =  card ((F"A`) \/ (F"A)) by CARD_2:40
                               .=card (F"(A`\/A)) by RELAT_1:140
                               .= card (F"[#]rng F) by SUBSET_1:10
                               .= card (F"rng F) by SUBSET_1:def 3
                               .=card dom F by RELAT_1:134
                               .=len F by CARD_1:62;
  then A1:len F = len F -card (F"A`) + (len F -card (F"A))
               .= len F1 + (len F -card (F"A)) by Th57
               .= len F1 + len F2 by Th57;
 (rng F) \ (rng F1) = (rng F) \ (rng F \ A`) by Th63
    .= rng F \ (rng F \ (rng F \ A)) by SUBSET_1:def 4
    .= rng F \ (rng F /\ A) by XBOOLE_1:48
    .= rng F \ A by XBOOLE_1:47
    .= rng F2 by Th63;
  then reconsider
  p = Sgm(F"(rng F1))^Sgm(F"(rng F2)) as Permutation of dom F by Th112;
  reconsider F3 = F * p as FinSequence by FINSEQ_2:40;
  take p;
A2: now
A3: F"A` = F"(rng F \ A) by SUBSET_1:def 4
      .= F"(rng F) \ F"A by FUNCT_1:69
      .= dom F \ F"A by RELAT_1:134;
A4: F"(rng F) = dom F by RELAT_1:134;
    then
A5: card(F"(rng F) \ F"A`) = card (F"(rng F)) - card (F"A`) by A3,CARD_2:44
,XBOOLE_1:36
      .= card Seg len F - card (F"A`) by A4,FINSEQ_1:def 3
      .= len F - card (F"A`) by FINSEQ_1:57
      .= len (F - A`) by Th57;
    F"(rng F1) c= dom F by RELAT_1:132;
    then
    F"(rng F1) c= Seg len F by FINSEQ_1:def 3;
    then
a6: F"(rng F1) is included_in_Seg by FINSEQ_1:def 13;
    let k be Nat such that
A7: k in dom F1;
A8: dom Sgm(F"(rng F1)) = Seg len Sgm(F"(rng F1)) by FINSEQ_1:def 3
      .= Seg card(F"(rng F1)) by a6,Th37
      .= Seg card(F"(rng F \ A`)) by Th63
      .= Seg len (F - A`) by A5,FUNCT_1:69
      .= dom F1 by FINSEQ_1:def 3;
    dom Sgm(F"(rng F1)) c= dom p by FINSEQ_1:26;
    hence (F*p).k = F.(p.k) by A7,A8,FUNCT_1:13
      .= F.(Sgm(F"(rng F1)).k) by A7,A8,FINSEQ_1:def 7
      .= (F*Sgm(F"(rng F1))).k by A7,A8,FUNCT_1:13
      .= (F*Sgm(F"(rng F \ A`))).k by Th63
      .= (F*Sgm(F"(rng F \ (rng F \ A)))).k by SUBSET_1:def 4
      .= (F*Sgm(F"(rng F /\ A))).k by XBOOLE_1:48
      .= (F*Sgm(F"(rng F) /\ F"A)).k by FUNCT_1:68
      .= (F*Sgm(dom F /\ F"A)).k by RELAT_1:134
      .= F1.k by A3,XBOOLE_1:48;
  end;
A9: now
A10: F"(rng F) = dom F by RELAT_1:134;
    F"A c= dom F by RELAT_1:132;
    then F"A c= F"(rng F) by RELAT_1:134;
    then
A11: card(F"(rng F) \ F"A) = card (F"(rng F)) - card (F"A) by CARD_2:44
      .= card Seg len F - card (F"A) by A10,FINSEQ_1:def 3
      .= len F - card (F"A) by FINSEQ_1:57
      .= len (F - A) by Th57;
      dom F = Seg len F by FINSEQ_1:def 3;
    then F"(rng F2) is included_in_Seg by FINSEQ_1:def 13,RELAT_1:132;
    then len Sgm(F"(rng F2)) = card(F"(rng F2)) by Th37
      .= card(F"(rng F \ A)) by Th63
      .= len (F - A) by A11,FUNCT_1:69;
    then
A12: dom Sgm(F"(rng F2)) = dom F2 by Th27;
A13: F"(rng F) = dom F by RELAT_1:134;
    F"A` = F"(rng F \ A) by SUBSET_1:def 4
      .= F"(rng F) \ F"A by FUNCT_1:69
      .= dom F \ F"A by RELAT_1:134; then
A14: card(F"(rng F) \ F"A`) = card (F"(rng F)) - card (F"A`)
   by A13,CARD_2:44,XBOOLE_1:36
      .= card Seg len F - card (F"A`) by A13,FINSEQ_1:def 3
      .= len F - card (F"A`) by FINSEQ_1:57
      .= len (F - A`) by Th57;
    let k be Nat such that
A15: k in dom F2;
    F"(rng F1) c= dom F by RELAT_1:132;
    then F"(rng F1) c= Seg len F by FINSEQ_1:def 3;
    then F"(rng F1) is included_in_Seg by FINSEQ_1:def 13;
    then
A16: len Sgm(F"(rng F1)) = card(F"(rng F1)) by Th37
      .= card(F"(rng F \ A`)) by Th63
      .= len (F - A`) by A14,FUNCT_1:69;
    then len F1 + k in dom p by A15,A12,FINSEQ_1:28;
    hence (F*p).(len F1 + k) = F.(p.(len F1 + k)) by FUNCT_1:13
      .= F.(Sgm(F"(rng F2)).k) by A15,A12,A16,FINSEQ_1:def 7
      .= (F*Sgm(F"(rng F2))).k by A15,A12,FUNCT_1:13
      .= (F*Sgm(F"(rng F \ A))).k by Th63
      .= (F*Sgm(F"(rng F) \ F"A)).k by FUNCT_1:69
      .= F2.k by RELAT_1:134;
  end;
  len F3 = len F1 + len F2 by A1,FINSEQ_2:44;
  hence thesis by A2,A9,Th36;
end;
