reserve n for Nat,
  a,b for Real,
  s for Real_Sequence;

theorem
  (for n st n>=1 holds s.n = 1/((3*n-2)*(3*n+1)) & s.0=0) implies for n
  st n>=1 holds Partial_Sums(s).n = n/(3*n+1)
proof
  defpred X[Nat] means Partial_Sums(s).$1= $1/(3*$1+1);
  assume
A1: for n st n>=1 holds s.n = 1/((3*n-2)*(3*n+1)) & s.0=0;
A2: for n be Nat st n>=1 & X[n] holds X[n+1]
  proof
    let n be Nat;
    assume that
    n>=1 and
A3: Partial_Sums(s).n = n/(3*n+1);
A4: n+1>=1 by NAT_1:11;
    3*n+1>=1 by NAT_1:11;
    then
A5: 3*n+1>0 by XXREAL_0:2;
    3*n+4>=4 by NAT_1:11;
    then
A6: 3*n+4>0 by XXREAL_0:2;
    Partial_Sums(s).(n+1) =n/(3*n+1)+ s.(n+1) by A3,SERIES_1:def 1
      .=n/(3*n+1)+1/((3*(n+1)-2)*(3*(n+1)+1)) by A1,A4
      .=n/(3*n+1)+1/(3*n+1)*(1/(3*n+4)) by XCMPLX_1:102
      .=n*(1/(3*n+1))+1/(3*n+1)*(1/(3*n+4)) by XCMPLX_1:99
      .=(n+1/(3*n+4))*(1/(3*n+1))
      .=((n*(3*n+4)+1)/(3*n+4))*(1/(3*n+1)) by A6,XCMPLX_1:113
      .=((n+1)*(3*n+1))/(3*n+4)*(1/(3*n+1))
      .=(3*n+1)*((n+1)/(3*n+4))*(1/(3*n+1)) by XCMPLX_1:74
      .=(n+1)/(3*(n+1)+1) by A5,XCMPLX_1:107;
    hence thesis;
  end;
  Partial_Sums(s).(1+0)=Partial_Sums(s).0+s.(1+0) by SERIES_1:def 1
    .= s.0 + s.1 by SERIES_1:def 1
    .=0+s.1 by A1
    .=1/((3*1-2)*(3*1+1)) by A1
    .= 1/(3*1+1);
  then
A7: X[1];
  for n be Nat st n>=1 holds X[n] from NAT_1:sch 8(A7,A2);
  hence thesis;
end;
