reserve i, j, m, n, k for Nat,
  x, y for set,
  K for Field,
  a,a1 for Element of K;
reserve V1,V2,V3 for finite-dimensional VectSp of K,
  f for Function of V1,V2,

  b1,b19 for OrdBasis of V1,
  B1 for FinSequence of V1,
  b2 for OrdBasis of V2,
  B2 for FinSequence of V2,

  B3 for FinSequence of V3,
  v1,w1 for Element of V1,
  R,R1,R2 for FinSequence of V1,
  p,p1,p2 for FinSequence of K;

theorem
  for A be Matrix of len b1,len b2,K for B be Matrix of len b2,len B3,K
  st width A = len B for AB be Matrix of len b1,len B3,K st AB = A*B holds
  Mx2Tran(AB,b1,B3) = Mx2Tran(B,b2,B3) * Mx2Tran(A,b1,b2)
proof
  let A be Matrix of len b1,len b2,K;
  let B be Matrix of len b2,len B3,K such that
A1: width A = len B;
  set MB=Mx2Tran(B,b2,B3);
  set MA=Mx2Tran(A,b1,b2);
  let AB be Matrix of len b1,len B3,K such that
A2: AB = A*B;
  set MAB=Mx2Tran(AB,b1,B3);
  now
    let x be object;
    assume x in the carrier of V1;
    then reconsider v=x as Element of V1;
    set L=LineVec2Mx(v|--b1);
A3: len A=len b1 by MATRIX_0:def 2;
A4: width L=len (v|--b1) & len (v|--b1)=len b1 by MATRIX_0:23,MATRLIN:def 7;
    then len L=1 & len (L*A)=len L by A3,MATRIX_0:23,MATRIX_3:def 4;
    then
A5: dom (L*A)=Seg 1 by FINSEQ_1:def 3;
A6: width (L*A)=width A by A4,A3,MATRIX_3:def 4;
    then
A7: len B=len b2 & len Line(L * A,1)=width A by CARD_1:def 7,MATRIX_0:def 2;
A8: 1 in Seg 1;
    dom (MB*MA) = the carrier of V1 by FUNCT_2:def 1;
    hence (MB*MA).x = MB.(MA.v) by FUNCT_1:12
      .= MB.Sum lmlt (Line(L * A,1),b2) by Def3
      .= Sum lmlt (Line(LineVec2Mx(Sum lmlt(Line(L*A,1),b2) |--b2)*B,1),B3)
    by Def3
      .= Sum lmlt (Line(LineVec2Mx(Line(L*A,1))*B,1),B3) by A1,A7,MATRLIN:36
      .= Sum lmlt (Line(LineVec2Mx(Line(L*A*B,1)),1),B3) by A1,A6,A5,A8,Th35
      .= Sum lmlt (Line(LineVec2Mx(Line(L*AB,1)),1),B3) by A1,A2,A4,A3,
MATRIX_3:33
      .= Sum lmlt (Line(L*AB,1),B3) by MATRIX15:25
      .= MAB.x by Def3;
  end;
  hence thesis by FUNCT_2:12;
end;
