let p be FinSequence of REAL ; :: thesis: for MR, MR1 being Matrix of REAL st len p = len MR holds
( MR1 = (Vec2DiagMx p) * MR iff ( len MR1 = len p & width MR1 = width MR & ( for i, j being Element of NAT st [i,j] in Indices MR1 holds
MR1 * i,j = (p . i) * (MR * i,j) ) ) )
let MR, MR1 be Matrix of REAL ; :: thesis: ( len p = len MR implies ( MR1 = (Vec2DiagMx p) * MR iff ( len MR1 = len p & width MR1 = width MR & ( for i, j being Element of NAT st [i,j] in Indices MR1 holds
MR1 * i,j = (p . i) * (MR * i,j) ) ) ) )
assume A1:
len p = len MR
; :: thesis: ( MR1 = (Vec2DiagMx p) * MR iff ( len MR1 = len p & width MR1 = width MR & ( for i, j being Element of NAT st [i,j] in Indices MR1 holds
MR1 * i,j = (p . i) * (MR * i,j) ) ) )
then A2:
dom p = dom MR
by FINSEQ_3:31;
set MM = Vec2DiagMx p;
A3:
( len (Vec2DiagMx p) = len p & width (Vec2DiagMx p) = len p & ( for i being Element of NAT st i in dom (Vec2DiagMx p) holds
( Line (Vec2DiagMx p),i has_onlyone_value_in i & (Line (Vec2DiagMx p),i) . i = p . i ) ) )
by Th25;
hereby :: thesis: ( len MR1 = len p & width MR1 = width MR & ( for i, j being Element of NAT st [i,j] in Indices MR1 holds
MR1 * i,j = (p . i) * (MR * i,j) ) implies MR1 = (Vec2DiagMx p) * MR )
assume A4:
MR1 = (Vec2DiagMx p) * MR
;
:: thesis: ( len MR1 = len p & width MR1 = width MR & ( for i, j being Element of NAT st [i,j] in Indices MR1 holds
MR1 * i,j = (p . i) * (MR * i,j) ) )then
(
len MR1 = len (Vec2DiagMx p) &
width MR1 = width MR & ( for
i,
j being
Element of
NAT st
[i,j] in Indices MR1 holds
MR1 * i,
j = (Line (Vec2DiagMx p),i) "*" (Col MR,j) ) )
by A1, A3, MATRPROB:39;
then A5:
(
dom MR1 = dom p &
dom MR1 = dom (Vec2DiagMx p) &
Seg (width MR1) = Seg (width MR) )
by A3, FINSEQ_3:31;
thus
(
len MR1 = len p &
width MR1 = width MR )
by A1, A3, A4, MATRPROB:39;
:: thesis: for i, j being Element of NAT st [i,j] in Indices MR1 holds
MR1 * i,j = (p . i) * (MR * i,j)thus
for
i,
j being
Element of
NAT st
[i,j] in Indices MR1 holds
MR1 * i,
j = (p . i) * (MR * i,j)
:: thesis: verumproof
let i,
j be
Element of
NAT ;
:: thesis: ( [i,j] in Indices MR1 implies MR1 * i,j = (p . i) * (MR * i,j) )
assume A6:
[i,j] in Indices MR1
;
:: thesis: MR1 * i,j = (p . i) * (MR * i,j)
set q =
mlt (Line (Vec2DiagMx p),i),
(Col MR,j);
(
i in Seg (len MR1) &
j in Seg (width MR1) )
by A6, MATRPROB:12;
then A7:
i in dom MR1
by FINSEQ_1:def 3;
then A8:
(
Line (Vec2DiagMx p),
i has_onlyone_value_in i &
(Line (Vec2DiagMx p),i) . i = p . i )
by A5, Th25;
(
len (Line (Vec2DiagMx p),i) = width (Vec2DiagMx p) &
len (Col MR,j) = len MR )
by MATRIX_1:def 8, MATRIX_1:def 9;
then A9:
(
mlt (Line (Vec2DiagMx p),i),
(Col MR,j) has_onlyone_value_in i &
(mlt (Line (Vec2DiagMx p),i),(Col MR,j)) . i = ((Line (Vec2DiagMx p),i) . i) * ((Col MR,j) . i) )
by A1, A3, A8, Th12;
thus MR1 * i,
j =
(Line (Vec2DiagMx p),i) "*" (Col MR,j)
by A1, A3, A4, A6, MATRPROB:39
.=
Sum (mlt (Line (Vec2DiagMx p),i),(Col MR,j))
by EUCLID_2:def 1
.=
(p . i) * ((Col MR,j) . i)
by A8, A9, Th13
.=
(p . i) * (MR * i,j)
by A2, A5, A7, MATRIX_1:def 9
;
:: thesis: verum
end;
end;
assume A10:
( len MR1 = len p & width MR1 = width MR & ( for i, j being Element of NAT st [i,j] in Indices MR1 holds
MR1 * i,j = (p . i) * (MR * i,j) ) )
; :: thesis: MR1 = (Vec2DiagMx p) * MR
then A11:
( dom MR1 = dom (Vec2DiagMx p) & dom MR = dom MR1 )
by A1, A3, FINSEQ_3:31;
for i, j being Element of NAT st [i,j] in Indices MR1 holds
MR1 * i,j = (Line (Vec2DiagMx p),i) "*" (Col MR,j)
proof
let i,
j be
Element of
NAT ;
:: thesis: ( [i,j] in Indices MR1 implies MR1 * i,j = (Line (Vec2DiagMx p),i) "*" (Col MR,j) )
assume A12:
[i,j] in Indices MR1
;
:: thesis: MR1 * i,j = (Line (Vec2DiagMx p),i) "*" (Col MR,j)
set q =
mlt (Line (Vec2DiagMx p),i),
(Col MR,j);
(
i in Seg (len MR1) &
j in Seg (width MR1) )
by A12, MATRPROB:12;
then A13:
i in dom MR1
by FINSEQ_1:def 3;
then A14:
(
Line (Vec2DiagMx p),
i has_onlyone_value_in i &
(Line (Vec2DiagMx p),i) . i = p . i )
by A11, Th25;
(
len (Line (Vec2DiagMx p),i) = width (Vec2DiagMx p) &
len (Col MR,j) = len MR )
by MATRIX_1:def 8, MATRIX_1:def 9;
then A15:
(
mlt (Line (Vec2DiagMx p),i),
(Col MR,j) has_onlyone_value_in i &
(mlt (Line (Vec2DiagMx p),i),(Col MR,j)) . i = ((Line (Vec2DiagMx p),i) . i) * ((Col MR,j) . i) )
by A1, A3, A14, Th12;
thus MR1 * i,
j =
(p . i) * (MR * i,j)
by A10, A12
.=
(p . i) * ((Col MR,j) . i)
by A11, A13, MATRIX_1:def 9
.=
Sum (mlt (Line (Vec2DiagMx p),i),(Col MR,j))
by A14, A15, Th13
.=
(Line (Vec2DiagMx p),i) "*" (Col MR,j)
by EUCLID_2:def 1
;
:: thesis: verum
end;
hence
MR1 = (Vec2DiagMx p) * MR
by A1, A3, A10, MATRPROB:39; :: thesis: verum