reserve i,j,m,n,k for Nat,
  x,y for set,
  K for Field,
  a,a1,a2 for Element of K,
  D for non empty set,
  d,d1,d2 for Element of D,
  M,M1,M2 for (Matrix of D),
  A,A1,A2,B1,B2 for (Matrix of K),
  f,g for FinSequence of NAT;
reserve F,F1,F2 for FinSequence_of_Matrix of D,
  G,G9,G1,G2 for FinSequence_of_Matrix of K;

theorem
  i in Seg Sum Width F & m = min(Width F,i) implies Col(block_diagonal(F
,d),i) = (Sum (Len F| (m-'1)) |->d)^ Col(F.m,i-'Sum (Width F| (m-'1)))^
((Sum Len F-'Sum (Len F|m)) |->d)
proof
  assume that
A1: i in Seg Sum Width F and
A2: m = min(Width F,i);
  set W=Width F;
A3: (W|m).m =W.m by FINSEQ_3:112;
  set BF9m=block_diagonal(F/^m,d);
  set BFm=block_diagonal(F|m,d);
  set L=Len F;
A4: width BFm = Sum Width (F|m) by Def5
    .= Sum (W|m) by Th21;
  F=(F|m)^(F/^m) by RFINSEQ:8;
  then
A5: block_diagonal(F,d) = block_diagonal((F|m)^<*BF9m*>,d) by Th36
    .= block_diagonal(<*BFm,BF9m*>,d) by Th35;
  then Sum L = len block_diagonal(<*BFm,BF9m*>,d) by Def5
    .= Sum Len <*BFm,BF9m*> by Def5
    .= len BFm + len BF9m by Th16
    .= Sum (Len F|m)+len BF9m by Def5;
  then
A6: Sum Len F-'Sum (Len F|m) = (Sum (Len F|m)+len BF9m)-Sum (Len F|m) by
NAT_1:11,XREAL_1:233
    .= len BF9m;
  Sum(W| (m-'1))<i by A1,A2,Th7;
  then
A7: i-Sum(W| (m-'1))=i-'Sum(W| (m-'1)) by XREAL_1:233;
A8: m in dom W by A1,A2,Def1;
  then 1 <= m by FINSEQ_3:25;
  then m-'1=m-1 by XREAL_1:233;
  then
A9: m=m-'1+1;
  then m -' 1<=m by NAT_1:11;
  then
A10: Seg (m-'1) c= Seg m by FINSEQ_1:5;
  then
A11: (F|m) | (m-'1)=F| (m-'1) by RELAT_1:74;
  m <= len W by A8,FINSEQ_3:25;
  then len (W|m)=m by FINSEQ_1:59;
  then
A12: W|m=((W|m) | (m-'1))^<*(W|m).m*> by A9,FINSEQ_3:55;
  (W|m) | (m-'1)=W| (m-'1) by A10,RELAT_1:74;
  then Sum (W|m) = Sum (W| (m-'1))+W.m by A12,A3,RVSUM_1:74
    .= Sum (W| (m-'1))+width (F.m) by A8,Def4;
  then
  width (F.m)+Sum (W| (m-'1))>=i-'Sum(W| (m-'1))+Sum (W| (m-'1)) by A1,A2,A7
,Def1;
  then
A13: width (F.m)>=i-'Sum(W| (m-'1)) by XREAL_1:6;
  i-Sum(W| (m-'1))<>0 by A1,A2,Th7;
  then i-'Sum(W| (m-'1))>=1 by A7,NAT_1:14;
  then
A14: i-'Sum(W| (m-'1)) in Seg width (F.m) by A13;
  set BFm1=block_diagonal(F| (m-'1),d);
A15: (F|m).m =F.m by FINSEQ_3:112;
A16: width BFm1 = Sum Width (F| (m-'1)) by Def5
    .= Sum (W| (m-'1)) by Th21;
A17: 1<=i by A1,FINSEQ_1:1;
  i <= Sum(W|m) by A1,A2,Def1;
  then i in Seg width BFm by A17,A4;
  then
A18: Col(block_diagonal(F,d),i) = Col(BFm,i)^(len BF9m|->d) by A5,Th24;
  dom W=dom F by Def4;
  then m <= len F by A8,FINSEQ_3:25;
  then len (F|m)=m by FINSEQ_1:59;
  then F|m=((F|m) | (m-'1))^<*(F|m).m*> by A9,FINSEQ_3:55;
  then
A19: BFm=block_diagonal(<*BFm1,F.m*>,d) by A15,A11,Th35;
  len BFm1 = Sum Len (F| (m-'1)) by Def5
    .= Sum (L| (m-'1)) by Th17;
  then
  (Sum (L| (m-'1)) |->d)^Col(F.m,i-'Sum(W| (m-'1))) = Col(BFm,Sum (W| (m-'1))
  +(i-'Sum(W| (m-'1)))) by A14,A16,A19,Th24
    .= Col(BFm,i) by A7;
  then Col(BFm,i) = (Sum (Len F| (m-'1)) |->d)^Col(F.m,i-'Sum (W| (m-'1)))by
Th17;
  hence thesis by A6,A18,Th21;
end;
