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 Th32:
  M = Segm(block_diagonal(<*M*>^F,d),Seg len M,Seg width M)
proof
  set MF=<*M*>^F;
  set L=Len MF;
  set W=Width MF;
A1: Seg Sum (L|0)={} by RVSUM_1:72;
A2: Seg Sum (W|0)={} by RVSUM_1:72;
A3: Len<*M*>=<*len M*> by Th15;
A4: len <*len M*>=1 by FINSEQ_1:39;
  L=Len<*M*>^Len F by Th14;
  then L|1=<*len M*> by A3,A4,FINSEQ_5:23;
  then
A5: Sum (L|1)=len M by RVSUM_1:73;
A6: len <*width M*>=1 by FINSEQ_1:39;
A7: Width <*M*>=<*width M*> by Th19;
A8: MF.1=M by FINSEQ_1:41;
  1 in Seg 1;
  then
A9: 1 in dom <*M*> by FINSEQ_1:38;
A10: dom <*M*> c= dom MF by FINSEQ_1:26;
  W=Width <*M*>^Width F by Th18;
  then
A11: W|1=<*width M*> by A7,A6,FINSEQ_5:23;
  1-'1=0 by XREAL_1:232;
  hence M = Segm(block_diagonal(MF,d),(Seg Sum (L|1))\{}, (Seg Sum (W|1))\{})
  by A1,A2,A9,A10,A8,Th31
    .= Segm(block_diagonal(MF,d),Seg len M,Seg width M) by A11,A5,RVSUM_1:73;
end;
