let x be FinSequence of REAL ; :: thesis: for A being Matrix of REAL st width A = len x & len x > 0 & len A > 0 holds
A * (ColVec2Mx x) = ColVec2Mx (A * x)
let A be Matrix of REAL ; :: thesis: ( width A = len x & len x > 0 & len A > 0 implies A * (ColVec2Mx x) = ColVec2Mx (A * x) )
assume A1:
( width A = len x & len x > 0 & len A > 0 )
; :: thesis: A * (ColVec2Mx x) = ColVec2Mx (A * x)
then A2:
len (A * x) = len A
by MATRIXR1:61;
then A3:
( len (ColVec2Mx (A * x)) = len (A * x) & width (ColVec2Mx (A * x)) = 1 )
by A1, MATRIXR1:def 9;
A4:
( len (ColVec2Mx x) = len x & width (ColVec2Mx x) = 1 )
by A1, MATRIXR1:def 9;
then A5:
( len (ColVec2Mx (A * x)) = len A & width (ColVec2Mx (A * x)) = width (ColVec2Mx x) )
by A1, A2, MATRIXR1:def 9;
A6:
len (MXR2MXF (ColVec2Mx (A * x))) = len (MXR2MXF A)
by A1, A2, MATRIXR1:def 9;
A7: width (MXR2MXF (ColVec2Mx (A * x))) =
1
by A1, A2, MATRIXR1:def 9
.=
width (MXR2MXF (ColVec2Mx x))
by A1, MATRIXR1:def 9
;
A8:
len (MXR2MXF (ColVec2Mx x)) = width (MXR2MXF A)
by A1, MATRIXR1:def 9;
then A9:
len ((MXR2MXF A) * (MXR2MXF (ColVec2Mx x))) = len A
by MATRIX_3:def 4;
A10: width ((MXR2MXF A) * (MXR2MXF (ColVec2Mx x))) =
width (ColVec2Mx x)
by A8, MATRIX_3:def 4
.=
1
by A1, MATRIXR1:def 9
;
for i, j being Nat st [i,j] in Indices (MXR2MXF (ColVec2Mx (A * x))) holds
(MXR2MXF (ColVec2Mx (A * x))) * i,j = (Line (MXR2MXF A),i) "*" (Col (MXR2MXF (ColVec2Mx x)),j)
proof
let i,
j be
Nat;
:: thesis: ( [i,j] in Indices (MXR2MXF (ColVec2Mx (A * x))) implies (MXR2MXF (ColVec2Mx (A * x))) * i,j = (Line (MXR2MXF A),i) "*" (Col (MXR2MXF (ColVec2Mx x)),j) )
assume A11:
[i,j] in Indices (MXR2MXF (ColVec2Mx (A * x)))
;
:: thesis: (MXR2MXF (ColVec2Mx (A * x))) * i,j = (Line (MXR2MXF A),i) "*" (Col (MXR2MXF (ColVec2Mx x)),j)
A12:
Indices (ColVec2Mx (A * x)) = [:(Seg (len A)),(Seg 1):]
by A2, A3, FINSEQ_1:def 3;
then A13:
(
j in Seg 1 &
i in Seg (len A) )
by A11, ZFMISC_1:106;
then
( 1
<= j &
j <= 1 )
by FINSEQ_1:3;
then A14:
j = 1
by XXREAL_0:1;
A15:
i in dom (A * x)
by A2, A13, FINSEQ_1:def 3;
A16:
(
i in Seg (len (ColVec2Mx (A * x))) & 1
in Seg 1 )
by A5, A11, A12, ZFMISC_1:106;
Indices (ColVec2Mx (A * x)) = [:(Seg (len (ColVec2Mx (A * x)))),(Seg 1):]
by A3, FINSEQ_1:def 3;
then
[i,1] in Indices (ColVec2Mx (A * x))
by A16, ZFMISC_1:106;
then consider p2 being
FinSequence of
REAL such that A17:
(
p2 = (ColVec2Mx (A * x)) . i &
(ColVec2Mx (A * x)) * i,1
= p2 . 1 )
by MATRIX_1:def 6;
A18:
(Col (A * (ColVec2Mx x)),1) . i =
<*((A * x) . i)*> . 1
by FINSEQ_1:57
.=
(ColVec2Mx (A * x)) * i,1
by A1, A2, A15, A17, MATRIXR1:def 9
;
len (A * (ColVec2Mx x)) = len A
by A1, A4, MATRIX_3:def 4;
then
i in dom (A * (ColVec2Mx x))
by A13, FINSEQ_1:def 3;
then A19:
(Col (A * (ColVec2Mx x)),1) . i = (A * (ColVec2Mx x)) * i,
j
by A14, MATRIX_1:def 9;
A20:
i in Seg (len ((MXR2MXF A) * (MXR2MXF (ColVec2Mx x))))
by A9, A11, A12, ZFMISC_1:106;
j in Seg (width ((MXR2MXF A) * (MXR2MXF (ColVec2Mx x))))
by A3, A10, A11, ZFMISC_1:106;
then
[i,j] in [:(Seg (len ((MXR2MXF A) * (MXR2MXF (ColVec2Mx x))))),(Seg (width ((MXR2MXF A) * (MXR2MXF (ColVec2Mx x))))):]
by A20, ZFMISC_1:106;
then
[i,j] in Indices ((MXR2MXF A) * (MXR2MXF (ColVec2Mx x)))
by FINSEQ_1:def 3;
hence
(MXR2MXF (ColVec2Mx (A * x))) * i,
j = (Line (MXR2MXF A),i) "*" (Col (MXR2MXF (ColVec2Mx x)),j)
by A8, A14, A18, A19, MATRIX_3:def 4;
:: thesis: verum
end;
hence
A * (ColVec2Mx x) = ColVec2Mx (A * x)
by A6, A7, A8, MATRIX_3:def 4; :: thesis: verum