reserve i,j,m,n,k for Nat,
  x,y for set,
  K for Field,
  a,L for Element of K;
reserve V1,V2 for finite-dimensional VectSp of K,
  W1,W2 for Subspace of V1,
  U1 ,U2 for Subspace of V2,
  b1 for OrdBasis of V1,
  B1 for FinSequence of V1,
  b2 for OrdBasis of V2,
  B2 for FinSequence of V2,
  bw1 for OrdBasis of W1,
  bw2 for OrdBasis of W2,
  Bu1 for FinSequence of U1,
  Bu2 for FinSequence of U2;

theorem Th19:
  for M be Matrix of len b1,len B2,K, M1 be Matrix of len bw1,len
Bu1,K, M2 be Matrix of len bw2,len Bu2,K st b1 = bw1 ^ bw2 & B2 = Bu1 ^ Bu2 & M
= block_diagonal(<*M1,M2*>,0.K) & width M1 = len Bu1 & width M2 = len Bu2 holds
(i in dom bw1 implies Mx2Tran(M,b1,B2).(b1/.i) = Mx2Tran(M1,bw1,Bu1).(bw1/.i))&
(i in dom bw2 implies Mx2Tran(M,b1,B2).(b1/.(i+len bw1)) = Mx2Tran(M2,bw2,Bu2).
  (bw2/.i))
proof
  let M be Matrix of len b1,len B2,K, M1 be Matrix of len bw1,len Bu1,K, M2 be
  Matrix of len bw2,len Bu2,K such that
A1: b1 = bw1 ^ bw2 and
A2: B2 = Bu1 ^ Bu2 and
A3: M = block_diagonal(<*M1,M2*>,0.K) and
A4: width M1 = len Bu1 and
A5: width M2 = len Bu2;
A6: dom bw1 c= dom b1 by A1,FINSEQ_1:26;
  rng Bu2 c= the carrier of U2 & the carrier of U2 c= the carrier of V2 by
FINSEQ_1:def 4,VECTSP_4:def 2;
  then
A7: rng Bu2 c= the carrier of V2;
  rng Bu1 c= the carrier of U1 & the carrier of U1 c= the carrier of V2 by
FINSEQ_1:def 4,VECTSP_4:def 2;
  then rng Bu1 c= the carrier of V2;
  then reconsider bu1=Bu1,bu2=Bu2 as FinSequence of V2 by A7,FINSEQ_1:def 4;
  set F1=Mx2Tran(M1,bw1,Bu1);
  set F=Mx2Tran(M,b1,B2);
A8: dom b1=Seg len b1 & len 1.(K,len b1)=len b1 by FINSEQ_1:def 3,MATRIX_0:24;
A9: dom 1.(K,len bw1)=Seg len 1.(K,len bw1) by FINSEQ_1:def 3;
A10: dom 1.(K,len b1)=Seg len 1.(K,len b1) by FINSEQ_1:def 3;
  set BI=len bw1+i;
A11: dom bw2=Seg len bw2 & len 1.(K,len bw2)=len bw2 by FINSEQ_1:def 3
,MATRIX_0:24;
  set F2=Mx2Tran(M2,bw2,Bu2);
A12: width 1.(K,len b1)=len b1 by MATRIX_0:24;
A13: len Line(M2,i)=width M2 & len (width M1|->0.K)=width M1 by CARD_1:def 7;
A14: dom bw1=Seg len bw1 & len 1.(K,len bw1)=len bw1 by FINSEQ_1:def 3
,MATRIX_0:24;
A15: len M=len b1 by MATRIX_0:def 2;
A16: len M1=len bw1 by MATRIX_0:def 2;
  then
A17: dom M1=dom bw1 by FINSEQ_3:29;
  thus i in dom bw1 implies F.(b1/.i)= F1.(bw1/.i)
  proof
A18: len Line(M1,i)=width M1 & len (width M2|->0.K)=width M2 by CARD_1:def 7;
    assume
A19: i in dom bw1;
    then
A20: Line(M,i)=Line(M1,i)^(width M2|->0.K) by A3,A17,MATRIXJ1:23;
    thus F.(b1/.i) = Sum lmlt (Line(LineVec2Mx(b1/.i|--b1) * M,1),B2) by
MATRLIN2:def 3
      .= Sum lmlt (Line(LineVec2Mx(Line(1.(K,len b1),i)) * M,1),B2) by A6,A19,
MATRLIN2:19
      .= Sum lmlt (Line(LineVec2Mx(Line(1.(K,len b1)*M,i)),1),B2) by A6,A8,A15
,A10,A19,MATRIX_0:24,MATRLIN2:35
      .= Sum lmlt (Line(LineVec2Mx(Line(M,i)),1),B2) by A15,MATRIXR2:68
      .= Sum lmlt(Line(M,i),B2) by MATRIX15:25
      .= Sum (lmlt(Line(M1,i),bu1)^lmlt(width M2|->0.K,bu2)) by A2,A4,A5,A20
,A18,MATRLIN2:9
      .= Sum lmlt(Line(M1,i),bu1) + Sum lmlt(width M2|->0.K,bu2) by RLVECT_1:41
      .= Sum lmlt(Line(M1,i),bu1) + 0.K*Sum bu2 by A5,MATRLIN2:11
      .= Sum lmlt(Line(M1,i),bu1) + 0.V2 by VECTSP_1:14
      .= Sum lmlt(Line(M1,i),bu1) by RLVECT_1:def 4
      .= Sum lmlt(Line(M1,i),Bu1) by MATRLIN2:14,15
      .= Sum lmlt (Line(LineVec2Mx(Line(M1,i)),1),Bu1) by MATRIX15:25
      .= Sum lmlt (Line(LineVec2Mx(Line(1.(K,len bw1)*M1,i)),1),Bu1) by A16,
MATRIXR2:68
      .= Sum lmlt (Line(LineVec2Mx(Line(1.(K,len bw1),i)) * M1,1),Bu1) by A14
,A9,A16,A19,MATRIX_0:24,MATRLIN2:35
      .= Sum lmlt (Line(LineVec2Mx(bw1/.i|--bw1) * M1,1),Bu1) by A19,
MATRLIN2:19
      .= F1.(bw1/.i) by MATRLIN2:def 3;
  end;
A21: dom 1.(K,len bw2)=Seg len 1.(K,len bw2) by FINSEQ_1:def 3;
  assume
A22: i in dom bw2;
  then
A23: BI in dom b1 by A1,FINSEQ_1:28;
A24: len M2=len bw2 by MATRIX_0:def 2;
  then dom M2=dom bw2 by FINSEQ_3:29;
  then
A25: Line(M,BI)=(width M1|->0.K)^Line(M2,i) by A3,A16,A22,MATRIXJ1:23;
  thus F.(b1/.(i+len bw1)) = Sum lmlt (Line(LineVec2Mx(b1/.BI|--b1) * M,1),B2)
  by MATRLIN2:def 3
    .= Sum lmlt (Line(LineVec2Mx(Line(1.(K,len b1),BI)) * M,1),B2) by A23,
MATRLIN2:19
    .= Sum lmlt (Line(LineVec2Mx(Line(1.(K,len b1)*M,BI)),1),B2) by A1,A12,A8
,A15,A10,A22,FINSEQ_1:28,MATRLIN2:35
    .= Sum lmlt (Line(LineVec2Mx(Line(M,BI)),1),B2) by A15,MATRIXR2:68
    .= Sum lmlt(Line(M,BI),B2) by MATRIX15:25
    .= Sum (lmlt(width M1|->0.K,bu1)^lmlt(Line(M2,i),bu2)) by A2,A4,A5,A25,A13,
MATRLIN2:9
    .= Sum lmlt(width M1|->0.K,bu1) + Sum lmlt(Line(M2,i),bu2) by RLVECT_1:41
    .= 0.K*Sum bu1 + Sum lmlt(Line(M2,i),bu2) by A4,MATRLIN2:11
    .= 0.V2 + Sum lmlt(Line(M2,i),bu2) by VECTSP_1:14
    .= Sum lmlt(Line(M2,i),bu2) by RLVECT_1:def 4
    .= Sum lmlt(Line(M2,i),Bu2) by MATRLIN2:14,15
    .= Sum lmlt (Line(LineVec2Mx(Line(M2,i)),1),Bu2) by MATRIX15:25
    .= Sum lmlt (Line(LineVec2Mx(Line(1.(K,len bw2)*M2,i)),1),Bu2) by A24,
MATRIXR2:68
    .= Sum lmlt (Line(LineVec2Mx(Line(1.(K,len bw2),i)) * M2,1),Bu2) by A11,A21
,A24,A22,MATRIX_0:24,MATRLIN2:35
    .= Sum lmlt (Line(LineVec2Mx(bw2/.i|--bw2) * M2,1),Bu2) by A22,MATRLIN2:19
    .= F2.(bw2/.i) by MATRLIN2:def 3;
end;
