let n, m be Nat; for Rseq being Function of [:NAT,NAT:],REAL
for M being Matrix of n + 1,m + 1,REAL st ( for i, j being Nat st i <= n & j <= m holds
Rseq . (i,j) = M * ((i + 1),(j + 1)) ) holds
(Partial_Sums Rseq) . (n,m) = SumAll M
let Rseq be Function of [:NAT,NAT:],REAL; for M being Matrix of n + 1,m + 1,REAL st ( for i, j being Nat st i <= n & j <= m holds
Rseq . (i,j) = M * ((i + 1),(j + 1)) ) holds
(Partial_Sums Rseq) . (n,m) = SumAll M
let M be Matrix of n + 1,m + 1,REAL; ( ( for i, j being Nat st i <= n & j <= m holds
Rseq . (i,j) = M * ((i + 1),(j + 1)) ) implies (Partial_Sums Rseq) . (n,m) = SumAll M )
assume A1:
for i, j being Nat st i <= n & j <= m holds
Rseq . (i,j) = M * ((i + 1),(j + 1))
; (Partial_Sums Rseq) . (n,m) = SumAll M
A2:
len M = n + 1
by MATRIX_0:25;
then A3:
width M = m + 1
by MATRIX_0:20;
X1:
for i being Nat st i <= n holds
(Partial_Sums_in_cod2 Rseq) . (i,m) = (LineSum M) . (i + 1)
proof
let i be
Nat;
( i <= n implies (Partial_Sums_in_cod2 Rseq) . (i,m) = (LineSum M) . (i + 1) )
assume B0:
i <= n
;
(Partial_Sums_in_cod2 Rseq) . (i,m) = (LineSum M) . (i + 1)
then
( 1
<= i + 1 &
i + 1
<= n + 1 )
by NAT_1:11, XREAL_1:6;
then B01:
i + 1
in Seg (n + 1)
by FINSEQ_1:1;
defpred S1[
Nat]
means ( $1
+ 1
<= width M implies
(Partial_Sums_in_cod2 Rseq) . (
i,$1)
= Sum ((Line (M,(i + 1))) | ($1 + 1)) );
now ( 0 + 1 <= width M implies (Partial_Sums_in_cod2 Rseq) . (i,0) = Sum ((Line (M,(i + 1))) | (0 + 1)) )assume
0 + 1
<= width M
;
(Partial_Sums_in_cod2 Rseq) . (i,0) = Sum ((Line (M,(i + 1))) | (0 + 1))B2:
(Partial_Sums_in_cod2 Rseq) . (
i,
0)
= Rseq . (
i,
0)
by DefCS;
len (Line (M,(i + 1))) = m + 1
by A3, MATRIX_0:def 7;
then B5:
len ((Line (M,(i + 1))) | 1) = 1
by NAT_1:11, FINSEQ_1:59;
1
<= width M
by A3, NAT_1:11;
then B4:
1
in Seg (width M)
by FINSEQ_1:1;
((Line (M,(i + 1))) | 1) . 1
= (Line (M,(i + 1))) . 1
by FINSEQ_3:112;
then
(Line (M,(i + 1))) | (0 + 1) = <*(M * ((i + 1),1))*>
by B5, B4, MATRIX_0:def 7, FINSEQ_1:40;
then B6:
Sum ((Line (M,(i + 1))) | (0 + 1)) = M * (
(i + 1),1)
by RVSUM_1:73;
thus
(Partial_Sums_in_cod2 Rseq) . (
i,
0)
= Sum ((Line (M,(i + 1))) | (0 + 1))
by A1, B0, B2, B6;
verum end;
then P0:
S1[
0 ]
;
P1:
for
k being
Nat st
S1[
k] holds
S1[
k + 1]
proof
let k be
Nat;
( S1[k] implies S1[k + 1] )
assume C1:
S1[
k]
;
S1[k + 1]
now ( (k + 1) + 1 <= width M implies (Partial_Sums_in_cod2 Rseq) . (i,(k + 1)) = Sum ((Line (M,(i + 1))) | ((k + 1) + 1)) )assume C2:
(k + 1) + 1
<= width M
;
(Partial_Sums_in_cod2 Rseq) . (i,(k + 1)) = Sum ((Line (M,(i + 1))) | ((k + 1) + 1))then C3:
(
k + 1
<= (k + 1) + 1 &
(k + 1) + 1
<= len (Line (M,(i + 1))) )
by MATRIX_0:def 7, NAT_1:11;
then C5:
len ((Line (M,(i + 1))) | ((k + 1) + 1)) = (k + 1) + 1
by FINSEQ_1:59;
then
(Line (M,(i + 1))) | ((k + 1) + 1) = (((Line (M,(i + 1))) | ((k + 1) + 1)) | (k + 1)) ^ <*(((Line (M,(i + 1))) | ((k + 1) + 1)) /. (len ((Line (M,(i + 1))) | ((k + 1) + 1))))*>
by FINSEQ_5:21;
then C6:
(Line (M,(i + 1))) | ((k + 1) + 1) = ((Line (M,(i + 1))) | (k + 1)) ^ <*(((Line (M,(i + 1))) | (k + 2)) /. (k + 2))*>
by C5, FINSEQ_1:82, NAT_1:11;
1
<= (k + 1) + 1
by NAT_1:11;
then C7:
k + 2
in Seg (width M)
by C2, FINSEQ_1:1;
C8:
k + 1
<= m
by A3, C2, XREAL_1:6;
k + 2
in Seg (len ((Line (M,(i + 1))) | (k + 2)))
by C5, FINSEQ_1:4;
then
k + 2
in dom ((Line (M,(i + 1))) | (k + 2))
by FINSEQ_1:def 3;
then
((Line (M,(i + 1))) | (k + 2)) /. (k + 2) = ((Line (M,(i + 1))) | (k + 2)) . (k + 2)
by PARTFUN1:def 6;
then
((Line (M,(i + 1))) | (k + 2)) /. (k + 2) = (Line (M,(i + 1))) . (k + 2)
by FINSEQ_3:112;
then
((Line (M,(i + 1))) | (k + 2)) /. (k + 2) = M * (
(i + 1),
(k + 2))
by C7, MATRIX_0:def 7;
then
Sum ((Line (M,(i + 1))) | ((k + 1) + 1)) = (Sum ((Line (M,(i + 1))) | (k + 1))) + (M * ((i + 1),(k + 2)))
by C6, RVSUM_1:74;
then
Sum ((Line (M,(i + 1))) | ((k + 1) + 1)) = ((Partial_Sums_in_cod2 Rseq) . (i,k)) + (Rseq . (i,(k + 1)))
by C3, B0, A1, C8, C1, C2, XXREAL_0:2;
hence
(Partial_Sums_in_cod2 Rseq) . (
i,
(k + 1))
= Sum ((Line (M,(i + 1))) | ((k + 1) + 1))
by DefCS;
verum end;
hence
S1[
k + 1]
;
verum
end;
C9:
m + 1
= len (Line (M,(i + 1)))
by A3, MATRIX_0:def 7;
for
k being
Nat holds
S1[
k]
from NAT_1:sch 2(P0, P1);
then
(Partial_Sums_in_cod2 Rseq) . (
i,
m)
= Sum ((Line (M,(i + 1))) | (m + 1))
by A3;
then
(Partial_Sums_in_cod2 Rseq) . (
i,
m)
= Sum (Line (M,(i + 1)))
by C9, FINSEQ_1:58;
hence
(Partial_Sums_in_cod2 Rseq) . (
i,
m)
= (LineSum M) . (i + 1)
by B01, A2, MATRPROB:20;
verum
end;
defpred S1[ Nat] means ( $1 <= n implies (Partial_Sums_in_cod1 (Partial_Sums_in_cod2 Rseq)) . ($1,m) = Sum ((LineSum M) | ($1 + 1)) );
then P2:
S1[ 0 ]
;
P3:
for k being Nat st S1[k] holds
S1[k + 1]
proof
let k be
Nat;
( S1[k] implies S1[k + 1] )
assume E1:
S1[
k]
;
S1[k + 1]
now ( k + 1 <= n implies (Partial_Sums_in_cod1 (Partial_Sums_in_cod2 Rseq)) . ((k + 1),m) = Sum ((LineSum M) | ((k + 1) + 1)) )assume E2:
k + 1
<= n
;
(Partial_Sums_in_cod1 (Partial_Sums_in_cod2 Rseq)) . ((k + 1),m) = Sum ((LineSum M) | ((k + 1) + 1))then
(
k + 1
<= (k + 1) + 1 &
(k + 1) + 1
<= n + 1 )
by NAT_1:11, XREAL_1:6;
then
(k + 1) + 1
<= len (LineSum M)
by A2, MATRPROB:20;
then E3:
len ((LineSum M) | ((k + 1) + 1)) = (k + 1) + 1
by FINSEQ_1:59;
then E5:
(LineSum M) | ((k + 1) + 1) =
(((LineSum M) | ((k + 1) + 1)) | (k + 1)) ^ <*(((LineSum M) | ((k + 1) + 1)) /. (len ((LineSum M) | ((k + 1) + 1))))*>
by FINSEQ_5:21
.=
((LineSum M) | (k + 1)) ^ <*(((LineSum M) | ((k + 1) + 1)) /. ((k + 1) + 1))*>
by E3, NAT_1:11, FINSEQ_1:82
;
E7:
k <= k + 1
by NAT_1:11;
k + 2
in Seg (len ((LineSum M) | (k + 2)))
by E3, FINSEQ_1:4;
then
k + 2
in dom ((LineSum M) | (k + 2))
by FINSEQ_1:def 3;
then ((LineSum M) | (k + 2)) /. (k + 2) =
((LineSum M) | (k + 2)) . (k + 2)
by PARTFUN1:def 6
.=
(LineSum M) . (k + 2)
by FINSEQ_3:112
;
then Sum ((LineSum M) | ((k + 1) + 1)) =
(Sum ((LineSum M) | (k + 1))) + ((LineSum M) . ((k + 1) + 1))
by E5, RVSUM_1:74
.=
((Partial_Sums_in_cod1 (Partial_Sums_in_cod2 Rseq)) . (k,m)) + ((Partial_Sums_in_cod2 Rseq) . ((k + 1),m))
by E1, E7, E2, X1, XXREAL_0:2
;
hence
(Partial_Sums_in_cod1 (Partial_Sums_in_cod2 Rseq)) . (
(k + 1),
m)
= Sum ((LineSum M) | ((k + 1) + 1))
by DefRS;
verum end;
hence
S1[
k + 1]
;
verum
end;
for k being Nat holds S1[k]
from NAT_1:sch 2(P2, P3);
then X2:
(Partial_Sums_in_cod1 (Partial_Sums_in_cod2 Rseq)) . (n,m) = Sum ((LineSum M) | (n + 1))
;
len (LineSum M) = n + 1
by A2, MATRPROB:20;
then
(LineSum M) | (n + 1) = LineSum M
by FINSEQ_1:58;
then
(Partial_Sums_in_cod1 (Partial_Sums_in_cod2 Rseq)) . (n,m) = SumAll M
by X2, MATRPROB:def 3;
hence
(Partial_Sums Rseq) . (n,m) = SumAll M
by th103; verum