reserve i, j, m, n for Nat,
  z, B0 for set,
  f, x0 for real-valued FinSequence;

theorem Th30:
  for x0 being Element of REAL n holds x0 = Sum (ProjFinSeq x0)
proof
  let x0 be Element of REAL n;
  set f=ProjFinSeq x0;
  reconsider n2=n as Element of NAT by ORDINAL1:def 12;
  now
    per cases;
    case
A1:   len f>0;
      set g2 = accum f;
A2:   len f=len g2 by Def10;
A3:   f.1=g2.1 by Def10;
      defpred P[Nat] means for i being Nat st 1<=i & i<=len f & 1<=$1 & $1<=
len f holds (i<= $1 implies (g2/.$1).i= x0.i)& (i> $1 implies (g2/.$1).i=0);
A4:   len f=n by Def12;
A5:   0+1<=len f by A1,NAT_1:13;
A6:   for k being Nat st P[k] holds P[k+1]
      proof
        let k be Nat;
        reconsider k2=k as Element of NAT by ORDINAL1:def 12;
        assume
A7:     P[k];
        for i being Nat st 1<=i & i<=len f & 1<=k+1 & k+1<=len f holds (i
        <= k+1 implies (g2/.(k+1)).i= x0.i)& (i> k+1 implies (g2/.(k+1)).i=0)
        proof
          let i be Nat;
          assume that
A8:       1<=i and
A9:      i<=len f and
A10:      1<=k+1 and
A11:      k+1<=len f;
          g2/.(k+1) is Element of REAL n;
          then reconsider r=g2.(k+1) as Element of REAL n by A2,A10,A11,
FINSEQ_4:15;
          reconsider i2=i as Element of NAT by ORDINAL1:def 12;
A12:      g2/.(k+1)=g2.(k+1) by A2,A10,A11,FINSEQ_4:15;
          now
            per cases;
            case
A13:          1<=k;
              reconsider r3=f/.(k+1) as Element of REAL n;
              reconsider r2=g2/.k as Element of REAL n;
A14:          (ProjFinSeq x0)/.(k+1)=(ProjFinSeq x0).(k+1) by A10,A11,
FINSEQ_4:15
                .=(|( x0,Base_FinSeq(n2,k+1) )|)*(Base_FinSeq(n2,k+1) ) by A4
,A10,A11,Def12;
A15:          k<k+1 by XREAL_1:29;
              then
A16:          k<len f by A11,XXREAL_0:2;
              then r=g2/.k + f/.(k+1) by Def10,A13;
              then
A17:          r.i=r2.i+r3.i by RVSUM_1:11;
A18:          now
                assume
A19:            i<=k+1;
                per cases by A19,XXREAL_0:1;
                suppose
A20:              i<k+1;
                  then
A21:              i<=k by NAT_1:13;
                  (f/.(k+1)).i = |(x0,Base_FinSeq(n2,k+1))|*((Base_FinSeq
                  (n2,k2+1) ).i2) by A14,RVSUM_1:44
                    .= |( x0,Base_FinSeq(n2,k+1) )|* 0 by A4,A8,A9,A20,
MATRIXR2:76;
                  hence
                  (g2/.(k+1)).i= x0.i by A7,A8,A9,A12,A13,A16,A17,A21;
                end;
                suppose
A22:              i=k+1;
                  then
A23:              (g2/.k).i= 0 by A7,A8,A9,A13,A15,A16;
                  (f/.(k+1)).i = |(x0,Base_FinSeq(n2,k+1))|*((Base_FinSeq
                  (n2,k2+1) ).i2) by A14,RVSUM_1:44
                    .= (|( x0,Base_FinSeq(n2,k+1) )|)* 1 by A4,A8,A9,A22,
MATRIXR2:75
                    .= x0.(k+1) by A4,A10,A11,Th29;
                  hence (g2/.(k+1)).i= x0.i by A2,A8,A9,A17,A22,A23,FINSEQ_4:15
;
                end;
              end;
              now
                assume
A24:            i>k+1; then
A25:            i>k by A15,XXREAL_0:2;
                (f/.(k+1)).i = (|( x0,Base_FinSeq(n2,k+1) )|)*((
                Base_FinSeq(n2,k2+1) ).i2) by A14,RVSUM_1:44
                  .= (|( x0,Base_FinSeq(n2,k+1) )|)* 0 by A4,A8,A9,A24,
MATRIXR2:76
                  .= 0;
                hence (g2/.(k+1)).i=0 by A7,A8,A9,A12,A13,A16,A17,A25;
              end;
              hence (i<= k+1 implies (g2/.(k+1)).i= x0.i)& (i> k+1 implies (g2
              /.(k+1)).i= 0) by A18;
            end;
            case
              k<1;
              then
A26:          k+1<= 0+1 by NAT_1:13;
              then
A27:          k=0 by XREAL_1:6;
A28:          now
                assume
A29:            i> 0+1;
                (g2/.1)=f.1 by A5,A2,A3,FINSEQ_4:15;
                then
                (g2/.1).i= ((|( x0,Base_FinSeq(n2,1) )|)*(Base_FinSeq(n2,
                1) )).i by A5,A4,Def12
                  .= (|( x0,Base_FinSeq(n2,1) )|)*((Base_FinSeq(n2,1) ).i2)
                by RVSUM_1:44
                  .= (|( x0,Base_FinSeq(n2,1) )|)* 0 by A4,A9,A29,MATRIXR2:76
                  .= 0;
                hence (g2/.(k+1)).i= 0 by A27;
              end;
A30:          now
                assume i<= 0+1; then
A31:            i=1 by A8,XXREAL_0:1;
                (g2/.1)=f.1 by A5,A2,A3,FINSEQ_4:15;
                then
                (g2/.1).1= ((|( x0,Base_FinSeq(n2,1) )|)*(Base_FinSeq(n2,
                1) )).1 by A5,A4,Def12
                  .= (|( x0,Base_FinSeq(n2,1) )|)*((Base_FinSeq(n2,1) ).1)
                by RVSUM_1:44
                  .= (|( x0,Base_FinSeq(n2,1) )|)* 1 by A5,A4,MATRIXR2:75
                  .= x0.1 by A5,A4,Th29;
                hence (g2/.(0+1)).i= x0.i by A31;
              end;
              k<=0 by A26,XREAL_1:6;
              hence (i<= k+1 implies (g2/.(k+1)).i= x0.i)& (i> k+1 implies (g2
              /.(k+1)).i= 0) by A30,A28;
            end;
          end;
          hence thesis;
        end;
        hence P[k+1];
      end;
      reconsider r4=g2/.(len f) as Element of REAL n;
A32:  len x0=n by CARD_1:def 7;
      then
A33:  len x0 = len r4 by CARD_1:def 7;
A34:  P[0];
A35:  for k being Nat holds P[k] from NAT_1:sch 2(A34,A6);
      for i being Nat st 1<=i & i<=len (r4) holds (g2/.(len f)).i=x0.i
      proof
        let i be Nat;
        assume that
A36:    1<=i and
A37:    i<=len r4;
A38:    i<=len f by A4,A37,CARD_1:def 7;
        1<=len f by A4,A32,A33,A36,A37,XXREAL_0:2;
        hence (g2/.(len f)).i=x0.i by A35,A36,A38;
      end;
      then x0=g2/.(len f) by A33,FINSEQ_1:14;
      hence x0=g2.(len f) by A5,A2,FINSEQ_4:15;
    end;
    case len f<=0; then
A39:  n=0 by Def12;
      then x0=<*>REAL;
      hence x0 = 0*n by A39;
    end;
  end;
  hence x0=Sum (ProjFinSeq x0) by Def11;
end;
