reserve x for set,
  D for non empty set,
  k,n,m,i,j,l for Nat,
  K for Field;

theorem Th58:
  for x being FinSequence of REAL,A being Matrix of REAL st width
  A=len x & len x>0 & len A>0 holds A*(ColVec2Mx x)=ColVec2Mx (A*x)
proof
  let x be FinSequence of REAL,A be Matrix of REAL;
  assume that
A1: width A=len x and
A2: len x>0 and
A3: len A>0;
A4: len ColVec2Mx x=len x by A2,MATRIXR1:def 9;
A5: len (MXR2MXF(ColVec2Mx x))=width MXR2MXF A by A1,A2,MATRIXR1:def 9;
  then
A6: width ((MXR2MXF A)*(MXR2MXF (ColVec2Mx x)))=width(ColVec2Mx x) by
MATRIX_3:def 4
    .=1 by A2,MATRIXR1:def 9;
A7: len ((MXR2MXF A)*(MXR2MXF (ColVec2Mx x)))=len A by A5,MATRIX_3:def 4;
A8: len (A*x)=len A by A1,A2,MATRIXR1:61;
  then
A9: width (ColVec2Mx (A*x))=1 by A3,MATRIXR1:def 9;
A10: len (ColVec2Mx (A*x))=len A by A3,A8,MATRIXR1:def 9;
A11: len (ColVec2Mx (A*x))=len (A*x) by A3,A8,MATRIXR1:def 9;
A12: 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;
A13: 1 in Seg 1 & Indices (ColVec2Mx (A*x))=[:Seg (len (ColVec2Mx (A*x))),
    Seg 1:] by A9,FINSEQ_1:def 3;
    assume
A14: [i,j] in Indices MXR2MXF (ColVec2Mx (A*x));
    then
A15: j in Seg width ((MXR2MXF A)*(MXR2MXF (ColVec2Mx x))) by A9,A6,ZFMISC_1:87;
A16: Indices (ColVec2Mx (A*x))=[:Seg len A,Seg 1:] by A8,A11,A9,FINSEQ_1:def 3;
    then
A17: i in Seg (len A) by A14,ZFMISC_1:87;
    then
A18: i in dom (A*x) by A8,FINSEQ_1:def 3;
    i in Seg len ((MXR2MXF A)*(MXR2MXF (ColVec2Mx x))) by A7,A14,A16,
ZFMISC_1:87;
    then
    [i,j] in [:Seg len ((MXR2MXF A)*(MXR2MXF (ColVec2Mx x))), Seg width (
    (MXR2MXF A)*(MXR2MXF (ColVec2Mx x))):] by A15,ZFMISC_1:87;
    then
A19: [i,j] in Indices ((MXR2MXF A)*(MXR2MXF (ColVec2Mx x))) by FINSEQ_1:def 3;
    j in Seg 1 by A9,A14,ZFMISC_1:87;
    then 1<=j & j<=1 by FINSEQ_1:1;
    then
A20: j=1 by XXREAL_0:1;
    i in Seg (len (ColVec2Mx (A*x))) by A10,A14,A16,ZFMISC_1:87;
    then [i,1] in Indices (ColVec2Mx (A*x)) by A13,ZFMISC_1:87;
    then
A21: ex p2 being FinSequence of REAL st p2=(ColVec2Mx (A*x)).i & (ColVec2Mx
    (A*x))*(i,1)=p2.1 by MATRIX_0:def 5;
A22: (Col(A*(ColVec2Mx x),1)).i =(<*(A*x).i*>).1
      .=(ColVec2Mx (A*x))*(i,1) by A3,A8,A18,A21,MATRIXR1:def 9;
    len (A*(ColVec2Mx x))=len A by A1,A4,MATRIX_3:def 4;
    then i in dom (A*(ColVec2Mx x)) by A17,FINSEQ_1:def 3;
    then (Col(A*(ColVec2Mx x),1)).i=(A*(ColVec2Mx x))*(i,j) by A20,
MATRIX_0:def 8;
    hence thesis by A5,A20,A22,A19,MATRIX_3:def 4;
  end;
A23: len (MXR2MXF (ColVec2Mx (A*x))) = len (MXR2MXF A) by A3,A8,MATRIXR1:def 9;
  width (MXR2MXF (ColVec2Mx (A*x))) = 1 by A3,A8,MATRIXR1:def 9
    .= width (MXR2MXF(ColVec2Mx x)) by A2,MATRIXR1:def 9;
  hence thesis by A23,A5,A12,MATRIX_3:def 4;
end;
