reserve x,y for set,
  n,m for Nat,
  r,s for Real;

theorem Th7:
  for f be FinSequence, n be Nat st n + 1 = len f holds f = (f|n) ^ <*f.(n+1)*>
proof
  let f be FinSequence, n be Nat;
  assume
A1: n + 1 = len f;
  set x = f.(n+1);
  set fn = f|n;
A3: len fn = n by A1,FINSEQ_1:59,NAT_1:11;
A4: dom f = Seg len f by FINSEQ_1:def 3;
A5: n<=n+1 by NAT_1:11;
A6: now
    let m be Nat;
    assume
A7: m in dom f;
    then
A8: 1<=m by A4,FINSEQ_1:1;
A9: m<=len f by A4,A7,FINSEQ_1:1;
    now
      per cases;
      case
        m = len f;
        hence f.m = (fn^<*x*>).m by A1,A3,FINSEQ_1:42;
      end;
      case
        m <> len f;
        then m<n+1 by A1,A9,XXREAL_0:1;
        then
A10:    m<=n by NAT_1:13;
        then 1<=n by A8,XXREAL_0:2;
        then
A11:    n in dom f by A1,A5,FINSEQ_3:25;
A12:    Seg len fn = dom fn by FINSEQ_1:def 3;
A13:    m in dom fn by A3,A8,A10,FINSEQ_3:25;
        hence (fn^<*x*>).m = fn.m by FINSEQ_1:def 7
          .= f.m by A3,A13,A11,A12,Th6;
      end;
    end;
    hence f.m = (fn^<*x*>).m;
  end;
  len (fn^<*x*>) = n + len <*x*> by A3,FINSEQ_1:22
    .= len f by A1,FINSEQ_1:40;
  hence thesis by A6,FINSEQ_2:9;
end;
