reserve i,j,k,n,m for Nat,
  x,y,z,y1,y2 for object, X,Y,D for set,
  p,q for XFinSequence;
reserve k1,k2 for Nat;
reserve D for non empty set,
  F,G for XFinSequence of D,
  b for BinOp of D,
  d,d1,d2 for Element of D;
reserve F for XFinSequence,
        rF,rF1,rF2 for real-valued XFinSequence,
        r for Real,
        cF,cF1,cF2 for complex-valued XFinSequence,
        c,c1,c2 for Complex;

theorem Th60: :: STIRL2_1:52
  rF is nonnegative-yielding & len rF > 0 &
  (ex x st x in dom rF & rF.x = r) implies Sum rF >= r
proof
  assume that
A1:rF is nonnegative-yielding and
A2: len rF > 0 and
A3: ex x st x in dom rF & rF.x = r;
  consider x such that
A4: x in dom rF and
A5: rF.x = r by A3;
  reconsider lenrF1=len rF-1 as Element of NAT by A2,NAT_1:20;
A6: dom rF=lenrF1+1;
  reconsider x as Element of NAT by A4;
A7: lenrF1 < lenrF1+1 by NAT_1:13;
A8:  x < len rF by A4,AFINSQ_1:86;
  then
A9: x<=lenrF1 by A6,NAT_1:13;
  consider f be sequence of REAL such that
A10: f.0 = rF.0 and
A11: for n st n+1 < len rF holds f.(n + 1) = addreal.(f.n,rF.(n + 1)) and
A12: addreal "**" rF= f.(len rF-1) by Def8,A2;
defpred P[Nat] means $1 < x implies f.$1 >= 0;
0 in len rF by A2,AFINSQ_1:86;
then rF.0 in rng rF by FUNCT_1:def 3;
then
A13:P[0] by A1,A10,PARTFUN3:def 4;
A14:P[n] implies P[n+1]
proof
  assume A15:P[n];
  assume A16:n+1 < x;
  then n < x & n+1 < len rF by A8,NAT_1:13,XXREAL_0:2;
  then A17:f.(n + 1) = addreal.(f.n,rF.(n + 1)) & f.n >=0 & n+1 in dom rF
       by A11,A15,AFINSQ_1:86;
  then rF.(n+1) in rng rF by FUNCT_1:def 3;
  then rF.(n+1) >=0 by A1,PARTFUN3:def 4;
  then f.n+rF.(n + 1) >=zz+zz by A16,A15,NAT_1:13;
  hence thesis by A17,BINOP_2:def 9;

end;
A18:P[n] from NAT_1:sch 2(A13,A14);
  defpred P[Nat] means x <= $1 & $1 < len rF implies f.$1 >= r;
  now
    per cases;
    suppose
A19:  x=0;
      assume that
      x <= x and
      x < len rF;
      thus f.x>=r by A5,A10,A19;
    end;
    suppose
      x>0;
      then reconsider x1=x-1 as Element of NAT by NAT_1:20;
      assume that
      x <= x and
A20:  x < len rF;
A21:       x1 <x1+1 by NAT_1:13;
      x1+1 < len rF by A20;
      then f.x = addreal.(f.x1,rF.x) by A11;
      then f.x=f.x1+rF.x & f.x1 >=0
       by A21,A18,BINOP_2:def 9;
      then f.x>=r+(0 qua Real) by A5,XREAL_1:7;
      hence f.x>=r;
    end;
  end;
  then
A22: P[x];
A23: for m be Nat st m>=x & P[m] holds P[m+1]
  proof
    let m be Nat such that
A24: m>=x and
A25: P[m];
    reconsider m1 = m as Element of NAT by ORDINAL1:def 12;
    assume that
    x <= m+1 and
A26: m+1 < len rF;
       m+1 in dom rF by A26,AFINSQ_1:86;
then A27:rF.(m+1) in rng rF by FUNCT_1:def 3;
    f.(m1 + 1) = addreal.(f.m1,rF.(m1 + 1)) by A11,A26;
    then f.(m1+1)=f.m1+rF.(m1+1) & rF.(m1+1) >=0
   by A27,A1,BINOP_2:def 9,PARTFUN3:def 4;
    then f.(m+1) >= r+(0 qua Real) by A24,A25,A26,NAT_1:13,XREAL_1:7;
    hence thesis;
  end;
  for m be Nat st m>=x holds P[m] from NAT_1:sch 8(A22,A23);
  then addreal "**" rF >= r by A12,A9,A7;
  hence thesis by Th47;
end;
