 reserve Rseq, Rseq1, Rseq2 for Function of [:NAT,NAT:],REAL;

theorem thADD:
  Partial_Sums_in_cod2(Rseq1+Rseq2)
   = Partial_Sums_in_cod2(Rseq1) + Partial_Sums_in_cod2(Rseq2) &
  Partial_Sums_in_cod1(Rseq1+Rseq2)
   = Partial_Sums_in_cod1(Rseq1) + Partial_Sums_in_cod1(Rseq2)
proof
   set CS1 = Partial_Sums_in_cod2(Rseq1);
   set CS2 = Partial_Sums_in_cod2(Rseq2);
   set CS12 = Partial_Sums_in_cod2(Rseq1+Rseq2);
   set RS1 = Partial_Sums_in_cod1(Rseq1);
   set RS2 = Partial_Sums_in_cod1(Rseq2);
   set RS12 = Partial_Sums_in_cod1(Rseq1+Rseq2);
   now let n be Element of NAT, m be Element of NAT;
    defpred C[Nat] means CS12.(n,$1) = CS1.(n,$1) + CS2.(n,$1);
    CS12.(n,0) = (Rseq1+Rseq2).(n,0) by DefCS
     .= Rseq1.(n,0) + Rseq2.(n,0) by lmADD
     .= CS1.(n,0) + Rseq2.(n,0) by DefCS; then
a1: C[0] by DefCS;
a2: for k be Nat st C[k] holds C[k+1]
    proof
     let k be Nat;
     assume a3: C[k];
     CS12.(n,k+1) = CS12.(n,k) + (Rseq1+Rseq2).(n,k+1) by DefCS
      .= CS1.(n,k) + CS2.(n,k) + ( Rseq1.(n,k+1) + Rseq2.(n,k+1) ) by a3,lmADD
      .= CS1.(n,k) + Rseq1.(n,k+1) + CS2.(n,k) + Rseq2.(n,k+1)
      .= CS1.(n,k+1) + CS2.(n,k) + Rseq2.(n,k+1) by DefCS
      .= CS1.(n,k+1) + ( CS2.(n,k) + Rseq2.(n,k+1) );
     hence C[k+1] by DefCS;
    end;
    for k be Nat holds C[k] from NAT_1:sch 2(a1,a2); then
    C[m];
    hence CS12.(n,m) = (CS1+CS2).(n,m) by lmADD;
   end;
   hence CS12 = CS1 + CS2 by BINOP_1:2;
   now let n,m be Element of NAT;
    defpred R[Nat] means RS12.($1,m) = RS1.($1,m) + RS2.($1,m);
    RS12.(0,m) = (Rseq1+Rseq2).(0,m) by DefRS
     .= Rseq1.(0,m) + Rseq2.(0,m) by lmADD
     .= RS1.(0,m) + Rseq2.(0,m) by DefRS; then
a4: R[0] by DefRS;
a5: for k be Nat st R[k] holds R[k+1]
    proof
     let k be Nat;
     assume a6: R[k];
     RS12.(k+1,m) = RS12.(k,m) + (Rseq1+Rseq2).(k+1,m) by DefRS
      .= RS1.(k,m) + RS2.(k,m) + (Rseq1.(k+1,m) + Rseq2.(k+1,m)) by a6,lmADD
      .= RS1.(k,m) + Rseq1.(k+1,m) + RS2.(k,m) + Rseq2.(k+1,m)
      .= RS1.(k+1,m) + RS2.(k,m) + Rseq2.(k+1,m) by DefRS
      .= RS1.(k+1,m) + (RS2.(k,m) + Rseq2.(k+1,m));
     hence R[k+1] by DefRS;
    end;
    for k be Nat holds R[k] from NAT_1:sch 2(a4,a5); then
    R[n];
    hence RS12.(n,m) = (RS1+RS2).(n,m) by lmADD;
   end;
   hence RS12 = RS1 + RS2 by BINOP_1:2;
end;
