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 Th20:
  for M be Matrix of len b1,len B2,K, F be FinSequence_of_Matrix
  of K st M = block_diagonal(F,0.K) for i,m st i in dom b1 & m = min(Len F,i)
holds Mx2Tran(M,b1,B2).(b1/.i) = Sum lmlt(Line(F.m,i-'Sum (Len F| (m-'1))),
(B2|Sum(Width F|m))/^Sum (Width F| (m-'1))) & len ((B2|Sum(Width F|m))/^
Sum (Width F| (m-'1))) = width (F.m)
proof
  set ONE=1.(K,len b1);
  let M be Matrix of len b1,len B2,K, F be FinSequence_of_Matrix of K such
  that
A1: M = block_diagonal(F,0.K);
A2: width M=Sum Width F by A1,MATRIXJ1:def 5;
  len ONE=len b1 by MATRIX_0:def 2;
  then
A3: dom ONE=dom b1 by FINSEQ_3:29;
  set L=Len F;
  set W=Width F;
  let i,m such that
A4: i in dom b1 and
A5: m = min(Len F,i);
A6: 1<=i & i<=len b1 by A4,FINSEQ_3:25;
  then
A7: len M=len b1 by MATRIX_0:23;
  set Fm=F.m;
  set Wm1=Sum (W| (m-'1));
A8: len (Sum (W| (m-'1)) |->0.K)=Sum (W| (m-'1)) & len Line(Fm,i-'Sum (Len F| (
  m-'1) )) =width Fm by CARD_1:def 7;
  set Wm=Sum (W|m);
  W = (W|m)^(W/^m) by RFINSEQ:8;
  then
A9: Sum W=Wm+Sum (W/^m) by RVSUM_1:75;
  then
A10: Sum W-'Wm = Sum W-Wm by NAT_1:11,XREAL_1:233
    .= Sum (W/^m) by A9;
  then
A11: len ((Sum W-'Sum (W|m)) |->0.K)=Sum (W/^m) by CARD_1:def 7;
A12: dom b1=Seg len b1 & len M=Sum Len F by A1,FINSEQ_1:def 3,MATRIXJ1:def 5;
  then
A13: m in dom Len F by A4,A5,A7,MATRIXJ1:def 1;
  then
A14: 1<=m by FINSEQ_3:25;
  reconsider wF= width Fm as Element of NAT by ORDINAL1:def 12;
  dom L=dom F & dom W=dom F by MATRIXJ1:def 3,def 4;
  then m<=len W & W.m=width Fm by A13,FINSEQ_3:25,MATRIXJ1:def 4;
  then W = (W| (m-'1))^<*width Fm*>^(W/^m) by A5,A14,POLYNOM4:1;
  then
A15: Sum W = Sum ((W| (m-'1))^<*wF*>)+Sum (W/^m) by RVSUM_1:75
    .= Wm1 + width Fm+Sum (W/^m) by RVSUM_1:74;
  then
A16: len ((Sum (W| (m-'1)) |->0.K)^Line(Fm,i-'Sum (Len F| (m-'1))))=Wm by A9,
CARD_1:def 7;
  set B2W=B2|Wm;
A17: B2W/^Wm1 = (B2|Sum(Width F|m))/^Wm1 by MATRIXJ1:21
    .= (B2|Sum(Width F|m))/^Sum (Width F| (m-'1)) by MATRIXJ1:21;
A18: width M=len B2 by A6,MATRIX_0:23;
  then
A19: len B2W =Wm by A2,A9,FINSEQ_1:59,NAT_1:11;
  Sum W=Wm1+(width Fm+Sum (W/^m)) by A15;
  then
A20: len (B2|Wm1) =Wm1 by A2,A18,FINSEQ_1:59,NAT_1:11;
  Wm>=Wm1 by A9,A15,NAT_1:11;
  then Seg Wm1 c= Seg Wm by FINSEQ_1:5;
  then B2W|Wm1=B2|Wm1 by RELAT_1:74;
  then
A21: B2W=(B2|Wm1)^(B2W/^Wm1) by RFINSEQ:8;
  then
A22: len B2W=len (B2|Wm1)+len (B2W/^Wm1) by FINSEQ_1:22;
A23: B2=B2W^(B2/^Wm) by RFINSEQ:8;
  then
A24: len B2=len B2W+ len (B2/^Wm) by FINSEQ_1:22;
  Mx2Tran(M,b1,B2).(b1/.i) = Sum lmlt (Line(LineVec2Mx(b1/.i|--b1) * M,1)
  ,B2) by MATRLIN2:def 3
    .= Sum lmlt (Line(LineVec2Mx(Line(ONE,i)) * M,1),B2) by A4,MATRLIN2:19
    .= Sum lmlt (Line(LineVec2Mx(Line(ONE*M,i)),1),B2) by A4,A6,A3,A7,
MATRIX_0:23,MATRLIN2:35
    .= Sum lmlt (Line(LineVec2Mx(Line(M,i)),1),B2) by A7,MATRIXR2:68
    .= Sum lmlt (Line(M,i),B2) by MATRIX15:25
    .= Sum lmlt((Sum (Width F| (m-'1)) |->0.K)^Line(Fm,i-'Sum (Len F| (m-'1)))^
  ((Sum W-'Sum (Width F|m)) |->0.K),B2) by A1,A4,A5,A7,A12,MATRIXJ1:37
    .= Sum lmlt((Sum (W| (m-'1)) |->0.K) ^ Line(Fm,i-'Sum (Len F| (m-'1)))^ ((
  Sum W-'Sum (Width F|m)) |->0.K),B2) by MATRIXJ1:21
    .= Sum lmlt((Sum (W| (m-'1)) |->0.K) ^ Line(Fm,i-'Sum (Len F| (m-'1)))^ ((
  Sum W-'Sum (W|m)) |->0.K),B2) by MATRIXJ1:21
    .= Sum (lmlt((Sum (W| (m-'1)) |->0.K) ^ Line(Fm,i-'Sum (Len F| (m-'1))),B2W
 )^ lmlt(((Sum W-'Sum (W|m)) |->0.K),B2/^Wm)) by A2,A18,A9,A23,A24,A19,A11,A16,
MATRLIN2:9
    .= Sum lmlt((Sum (W| (m-'1)) |->0.K)^Line(Fm,i-'Sum (Len F| (m-'1))),B2W)+
  Sum lmlt(((Sum W-'Sum (W|m)) |->0.K),B2/^Wm) by RLVECT_1:41
    .= Sum lmlt((Sum (W| (m-'1)) |->0.K) ^ Line(Fm,i-'Sum (Len F| (m-'1))),B2W)
  + 0.K* Sum (B2/^Wm) by A2,A18,A9,A10,A24,A19,MATRLIN2:11
    .= Sum lmlt((Sum (W| (m-'1)) |->0.K)^ Line(Fm,i-'Sum (Len F| (m-'1))),B2W)+
  0.V2 by VECTSP_1:14
    .= Sum lmlt((Sum (W| (m-'1)) |->0.K) ^ Line(Fm,i-'Sum (Len F| (m-'1))),B2W)
  by RLVECT_1:def 4
    .= Sum (lmlt(Sum (W| (m-'1)) |->0.K,B2|Wm1) ^ lmlt(Line(Fm,i-'Sum (Len F| (
  m-'1))),B2W/^Wm1)) by A9,A15,A19,A21,A22,A20,A8,MATRLIN2:9
    .= Sum lmlt(Sum (W| (m-'1)) |->0.K,B2|Wm1) + Sum lmlt(Line(Fm,i-'Sum (Len
  F| (m-'1))),B2W/^Wm1) by RLVECT_1:41
    .= 0.K*Sum (B2|Wm1) + Sum lmlt(Line(Fm,i-'Sum (Len F| (m-'1))),B2W/^Wm1)
  by A20,MATRLIN2:11
    .= 0.V2+Sum lmlt(Line(Fm,i-'Sum (Len F| (m-'1))),B2W/^Wm1) by VECTSP_1:14
    .= Sum lmlt(Line(Fm,i-'Sum (Len F| (m-'1))),B2W/^Wm1) by RLVECT_1:def 4;
  hence thesis by A9,A15,A19,A22,A20,A17;
end;
