let i, m be Nat; :: thesis: for D being non empty set
for d being Element of D
for F being FinSequence_of_Matrix of D st i in Seg (Sum (Width F)) & m = min (Width F),i holds
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)

let D be non empty set ; :: thesis: for d being Element of D
for F being FinSequence_of_Matrix of D st i in Seg (Sum (Width F)) & m = min (Width F),i holds
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)

let d be Element of D; :: thesis: for F being FinSequence_of_Matrix of D st i in Seg (Sum (Width F)) & m = min (Width F),i holds
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)

let F be FinSequence_of_Matrix of D; :: thesis: ( 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) )
assume A1: ( i in Seg (Sum (Width F)) & m = min (Width F),i ) ; :: thesis: 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)
set L = Len F;
set W = Width F;
A2: ( 1 <= i & i <= Sum ((Width F) | m) & Sum ((Width F) | (m -' 1)) < i ) by A1, Def1, Th7, FINSEQ_1:3;
then A3: ( i - (Sum ((Width F) | (m -' 1))) = i -' (Sum ((Width F) | (m -' 1))) & i - (Sum ((Width F) | (m -' 1))) <> 0 ) by XREAL_1:235;
then A4: i -' (Sum ((Width F) | (m -' 1))) >= 1 by NAT_1:14;
A5: ( m in dom (Width F) & dom (Width F) = dom F ) by A1, Def1, Def4;
then ( 1 <= m & m <= len (Width F) & m <= len F ) by FINSEQ_3:27;
then A6: ( m -' 1 = m - 1 & len ((Width F) | m) = m & len (F | m) = m ) by FINSEQ_1:80, XREAL_1:235;
then A7: m = (m -' 1) + 1 ;
then A8: ( F | m = ((F | m) | (m -' 1)) ^ <*((F | m) . m)*> & (F | m) . m = F . m & F = (F | m) ^ (F /^ m) & (Width F) | m = (((Width F) | m) | (m -' 1)) ^ <*(((Width F) | m) . m)*> & ((Width F) | m) . m = (Width F) . m ) by A6, FINSEQ_3:61, FINSEQ_3:121, RFINSEQ:21;
m -' 1 <= m by A7, NAT_1:11;
then Seg (m -' 1) c= Seg m by FINSEQ_1:7;
then A9: ( (F | m) | (m -' 1) = F | (m -' 1) & ((Width F) | m) | (m -' 1) = (Width F) | (m -' 1) ) by RELAT_1:103;
set BFm = block_diagonal (F | m),d;
set BFm1 = block_diagonal (F | (m -' 1)),d;
Sum ((Width F) | m) = (Sum ((Width F) | (m -' 1))) + ((Width F) . m) by A8, A9, RVSUM_1:104
.= (Sum ((Width F) | (m -' 1))) + (width (F . m)) by A5, Def4 ;
then (width (F . m)) + (Sum ((Width F) | (m -' 1))) >= (i -' (Sum ((Width F) | (m -' 1)))) + (Sum ((Width F) | (m -' 1))) by A3, A1, Def1;
then width (F . m) >= i -' (Sum ((Width F) | (m -' 1))) by XREAL_1:8;
then A10: i -' (Sum ((Width F) | (m -' 1))) in Seg (width (F . m)) by A4;
A11: len (block_diagonal (F | (m -' 1)),d) = Sum (Len (F | (m -' 1))) by Def5
.= Sum ((Len F) | (m -' 1)) by Th17 ;
A12: width (block_diagonal (F | (m -' 1)),d) = Sum (Width (F | (m -' 1))) by Def5
.= Sum ((Width F) | (m -' 1)) by Th21 ;
block_diagonal (F | m),d = block_diagonal <*(block_diagonal (F | (m -' 1)),d),(F . m)*>,d by A9, A8, Th35;
then ((Sum ((Len F) | (m -' 1))) |-> d) ^ (Col (F . m),(i -' (Sum ((Width F) | (m -' 1))))) = Col (block_diagonal (F | m),d),((Sum ((Width F) | (m -' 1))) + (i -' (Sum ((Width F) | (m -' 1))))) by A10, A11, A12, Th24
.= Col (block_diagonal (F | m),d),i by A3 ;
then A13: Col (block_diagonal (F | m),d),i = ((Sum (Len (F | (m -' 1)))) |-> d) ^ (Col (F . m),(i -' (Sum ((Width F) | (m -' 1))))) by Th17;
set BF'm = block_diagonal (F /^ m),d;
A14: block_diagonal F,d = block_diagonal ((F | m) ^ <*(block_diagonal (F /^ m),d)*>),d by A8, Th36
.= block_diagonal <*(block_diagonal (F | m),d),(block_diagonal (F /^ m),d)*>,d by Th35 ;
Sum (Len F) = len (block_diagonal <*(block_diagonal (F | m),d),(block_diagonal (F /^ m),d)*>,d) by A14, Def5
.= Sum (Len <*(block_diagonal (F | m),d),(block_diagonal (F /^ m),d)*>) by Def5
.= (len (block_diagonal (F | m),d)) + (len (block_diagonal (F /^ m),d)) by Th16
.= (Sum (Len (F | m))) + (len (block_diagonal (F /^ m),d)) by Def5 ;
then A15: (Sum (Len F)) -' (Sum (Len (F | m))) = ((Sum (Len (F | m))) + (len (block_diagonal (F /^ m),d))) - (Sum (Len (F | m))) by NAT_1:11, XREAL_1:235
.= len (block_diagonal (F /^ m),d) ;
width (block_diagonal (F | m),d) = Sum (Width (F | m)) by Def5
.= Sum ((Width F) | m) by Th21 ;
then i in Seg (width (block_diagonal (F | m),d)) by A2, FINSEQ_1:3;
then Col (block_diagonal F,d),i = (Col (block_diagonal (F | m),d),i) ^ ((len (block_diagonal (F /^ m),d)) |-> d) by A14, Th24;
hence 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) by A15, A13, Th21; :: thesis: verum