
theorem Th18:
  for f be Real_Sequence, n be Nat st f.0 = 0 holds
  Sum FinSeq (f,n) = Sum (f |_ Seg n)
  proof
    let f be Real_Sequence, n be Nat;
    assume
A0: f.0 = 0;
    set f1 = f |_ Seg n;
    set g = FinSeq (f,n);
    reconsider f0 = f.0 as Element of REAL;
    set h = <*f0*> ^ g;
A1: dom f = NAT by FUNCT_2:def 1;
A2: dom g = Seg n by A1,RELAT_1:62; then
    Seg len g = Seg n by FINSEQ_1:def 3; then
A3: len g = n by FINSEQ_1:6;
    len h = len <*f0*> + len g by FINSEQ_1:22; then
A4: len h = n + 1 by A3,FINSEQ_1:39;
    reconsider g as FinSequence of REAL;
A5: len <*f0*> = 1 by FINSEQ_1:39;
A6: for k be Nat st k < n + 1 holds f1.k = h.(k+1)
    proof
      let k be Nat;
      assume k < n + 1; then
A7:   k <= n by NAT_1:13;
      per cases by NAT_1:14;
      suppose
A8:     1 <= k; then
A9:     k in dom g by FINSEQ_3:25,A7,A3;
A10:   (f | Seg n).k = f.k by FUNCT_1:49,A2,FINSEQ_3:25,A7,A3,A8;
       (f |_ Seg n).k = f.k by A2,A8,Th17,FINSEQ_3:25,A7,A3;
        hence thesis by FINSEQ_1:def 7,A5,A9,A10;
      end;
      suppose
A11:     k = 0; then
        not k in Seg n by FINSEQ_1:1; then
        not k in dom (f | Seg n) by RELAT_1:57; then
        f1.k = (NAT --> 0).k by FUNCT_4:11;
        hence thesis by A0,A11;
      end;
    end;
    for k be Nat st k >= n + 1 holds f1.k = 0
    proof
      let k be Nat;
      assume k >= n + 1; then
      k > n by XXREAL_0:2,NAT_1:16; then
      not k in Seg n by FINSEQ_1:1; then
      not k in dom (f | Seg n) by RELAT_1:57; then
      f1.k = (NAT --> 0).k by FUNCT_4:11 .= 0;
      hence thesis;
    end; then
    Sum f1 = Sum h by IRRAT_1:18,A6,A4; then
    Sum f1 = f0 + Sum g by RVSUM_1:76;
    hence thesis by A0;
  end;
