reserve i for Nat, x,y for set;
reserve S for non empty non void ManySortedSign;
reserve X for non-empty ManySortedSet of S;

theorem TT:
  for a1,a2,a3,a4,a5,a6,a7 being object
  for f being FinSequence holds f = <*a1,a2,a3,a4,a5,a6,a7*> iff len f = 7 &
  f.1 = a1 & f.2 = a2 & f.3 = a3 & f.4 = a4 & f.5 = a5 & f.6 = a6 & f.7 = a7
  proof
    let a1,a2,a3,a4,a5,a6,a7 be object;
    let f be FinSequence;
A1: now
      let f be FinSequence;
      assume A2: f = <*a1,a2,a3,a4,a5,a6,a7*>;
      hence len f  = len <*a1,a2,a3,a4,a5*>+len <*a6,a7*>
      by FINSEQ_1:22 .= 5+len <*a6,a7*> by FINSEQ_4:78 .= 5+2 by FINSEQ_1:44
      .= 7;
      dom <*a1,a2,a3,a4,a5*> = Seg 5 by FINSEQ_1:89; then
      1 in dom <*a1,a2,a3,a4,a5*> & 2 in dom <*a1,a2,a3,a4,a5*> &
      3 in dom <*a1,a2,a3,a4,a5*> & 4 in dom <*a1,a2,a3,a4,a5*> &
      5 in dom <*a1,a2,a3,a4,a5*>; then
      f.1 = <*a1,a2,a3,a4,a5*>.1 & f.2 = <*a1,a2,a3,a4,a5*>.2 &
      f.3 = <*a1,a2,a3,a4,a5*>.3 & f.4 = <*a1,a2,a3,a4,a5*>.4 &
      f.5 = <*a1,a2,a3,a4,a5*>.5 by A2,FINSEQ_1:def 7;
      hence f.1 = a1 & f.2 = a2 & f.3 = a3 & f.4 = a4 & f.5 = a5;
A3:   len <*a1,a2,a3,a4,a5*> = 5 by FINSEQ_4:78;
A4:   1 in Seg 2 & 2 in Seg 2; then
      1 in dom <*a6,a7*> & 5+1 = 6 by FINSEQ_1:89;
      hence f.6 = <*a6,a7*>.1 by A2,A3,FINSEQ_1:def 7 .= a6;
      2 in dom <*a6,a7*> & 5+2 = 7 by A4,FINSEQ_1:89;
      hence f.7 = <*a6,a7*>.2 by A2,A3,FINSEQ_1:def 7 .= a7;
    end;
    hence f = <*a1,a2,a3,a4,a5,a6,a7*> implies len f = 7 &
    f.1 = a1 & f.2 = a2 & f.3 = a3 & f.4 = a4 & f.5 = a5 & f.6 = a6 & f.7=a7;
    assume A5: len f = 7; len <*a1,a2,a3,a4,a5,a6,a7*> = 7 by A1; then
A6: dom f = Seg 7 & dom <*a1,a2,a3,a4,a5,a6,a7*> = Seg 7 by A5,FINSEQ_1:def 3;
    assume A7: f.1 = a1;
    assume A8: f.2 = a2;
    assume A9: f.3 = a3;
    assume A10: f.4 = a4;
    assume A11: f.5 = a5;
    assume A12: f.6 = a6;
    assume A13: f.7 = a7;
    now let x be object;
      assume x in Seg 7; then
      x = 1 or x = 2 or x = 3 or x = 4 or x = 5 or x = 6 or x = 7
      by FINSEQ_3:5,ENUMSET1:def 5;
      hence f.x = <*a1,a2,a3,a4,a5,a6,a7*>.x by A1,A7,A8,A9,A10,A11,A12,A13;
    end;
    hence f = <*a1,a2,a3,a4,a5,a6,a7*> by A6;
  end;
