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

theorem Tr2:
  for n,m being Nat holds
  (Partial_Sums_in_cod2 Rseq).(n,m) = (Partial_Sums_in_cod1 ~Rseq).(m,n)
& (Partial_Sums_in_cod1 Rseq).(n,m) = (Partial_Sums_in_cod2 ~Rseq).(m,n)
proof
   hereby let n,m be Nat;
    defpred P[Nat] means
     (Partial_Sums_in_cod2(Rseq)).(n,$1)=(Partial_Sums_in_cod1(~Rseq)).($1,n);
Z:  n in NAT & m in NAT by ORDINAL1:def 12;
    (Partial_Sums_in_cod2(Rseq)).(n,0) = Rseq.(n,0) by DefCS; then
    (Partial_Sums_in_cod2(Rseq)).(n,0) = ~Rseq.(0,n) by Z,FUNCT_4:def 8; then
a1: P[0] by DefRS;
a2: now let k be Nat;
     assume P[k]; then
     (Partial_Sums_in_cod2(Rseq)).(n,k+1)
       = (Partial_Sums_in_cod1(~Rseq)).(k,n) + Rseq.(n,k+1) by DefCS
      .= (Partial_Sums_in_cod1(~Rseq)).(k,n) + ~Rseq.(k+1,n)
      by FUNCT_4:def 8,Z;
     hence P[k+1] by DefRS;
    end;
    for k be Nat holds P[k] from NAT_1:sch 2(a1,a2);
    hence (Partial_Sums_in_cod2 Rseq).(n,m)=(Partial_Sums_in_cod1 ~Rseq).(m,n);
Z:  n in NAT & m in NAT by ORDINAL1:def 12;
    defpred Q[Nat] means
     (Partial_Sums_in_cod1(Rseq)).($1,m)=(Partial_Sums_in_cod2(~Rseq)).(m,$1);
    (Partial_Sums_in_cod1(Rseq)).(0,m) = Rseq.(0,m) by DefRS; then
    (Partial_Sums_in_cod1(Rseq)).(0,m) = ~Rseq.(m,0) by Z,FUNCT_4:def 8; then
a4: Q[0] by DefCS;
a5: now let k be Nat;
     assume Q[k]; then
     (Partial_Sums_in_cod1(Rseq)).(k+1,m)
       = (Partial_Sums_in_cod2(~Rseq)).(m,k) + Rseq.(k+1,m) by DefRS
      .= (Partial_Sums_in_cod2(~Rseq)).(m,k) + ~Rseq.(m,k+1)
      by Z,FUNCT_4:def 8;
     hence Q[k+1] by DefCS;
    end;
    for k be Nat holds Q[k] from NAT_1:sch 2(a4,a5);
    hence (Partial_Sums_in_cod1 Rseq).(n,m)=(Partial_Sums_in_cod2 ~Rseq).(m,n);
   end;
end;
