let i, j be Nat; :: thesis: for D being non empty set
for d being Element of D
for F1, F2 being FinSequence_of_Matrix of D st [i,j] in Indices (block_diagonal (F1 ^ F2),d) & ( ( i <= Sum (Len F1) & j > Sum (Width F1) ) or ( i > Sum (Len F1) & j <= Sum (Width F1) ) ) holds
(block_diagonal (F1 ^ F2),d) * i,j = d

let D be non empty set ; :: thesis: for d being Element of D
for F1, F2 being FinSequence_of_Matrix of D st [i,j] in Indices (block_diagonal (F1 ^ F2),d) & ( ( i <= Sum (Len F1) & j > Sum (Width F1) ) or ( i > Sum (Len F1) & j <= Sum (Width F1) ) ) holds
(block_diagonal (F1 ^ F2),d) * i,j = d

let d be Element of D; :: thesis: for F1, F2 being FinSequence_of_Matrix of D st [i,j] in Indices (block_diagonal (F1 ^ F2),d) & ( ( i <= Sum (Len F1) & j > Sum (Width F1) ) or ( i > Sum (Len F1) & j <= Sum (Width F1) ) ) holds
(block_diagonal (F1 ^ F2),d) * i,j = d

let F1, F2 be FinSequence_of_Matrix of D; :: thesis: ( [i,j] in Indices (block_diagonal (F1 ^ F2),d) & ( ( i <= Sum (Len F1) & j > Sum (Width F1) ) or ( i > Sum (Len F1) & j <= Sum (Width F1) ) ) implies (block_diagonal (F1 ^ F2),d) * i,j = d )
set L1 = Len F1;
set W1 = Width F1;
set L2 = Len F2;
set W2 = Width F2;
set F12 = F1 ^ F2;
set L = Len (F1 ^ F2);
set W = Width (F1 ^ F2);
set B2 = block_diagonal F2,d;
set B12 = block_diagonal (F1 ^ F2),d;
A1: dom (block_diagonal (F1 ^ F2),d) = Seg (len (block_diagonal (F1 ^ F2),d)) by FINSEQ_1:def 3;
A2: len (Width F1) = len F1 by FINSEQ_1:def 18;
A3: len (block_diagonal (F1 ^ F2),d) = Sum (Len (F1 ^ F2)) by Def5;
A4: len F1 = len (Len F1) by FINSEQ_1:def 18;
assume that
A5: [i,j] in Indices (block_diagonal (F1 ^ F2),d) and
A6: ( ( i <= Sum (Len F1) & j > Sum (Width F1) ) or ( i > Sum (Len F1) & j <= Sum (Width F1) ) ) ; :: thesis: (block_diagonal (F1 ^ F2),d) * i,j = d
i in dom (block_diagonal (F1 ^ F2),d) by A5, ZFMISC_1:106;
then A7: 1 <= i by FINSEQ_3:27;
A8: (Width F1) ^ (Width F2) = Width (F1 ^ F2) by Th18;
A9: (Len F1) ^ (Len F2) = Len (F1 ^ F2) by Th14;
then A10: Sum (Len (F1 ^ F2)) = (Sum (Len F1)) + (Sum (Len F2)) by RVSUM_1:105;
per cases ( ( i <= Sum (Len F1) & j > Sum (Width F1) ) or ( i > Sum (Len F1) & j <= Sum (Width F1) ) ) by A6;
suppose A11: ( i <= Sum (Len F1) & j > Sum (Width F1) ) ; :: thesis: (block_diagonal (F1 ^ F2),d) * i,j = d
then A12: i in Seg (Sum (Len F1)) by A7, FINSEQ_1:3;
then min (Len F1),i in dom (Len F1) by Def1;
then min (Len F1),i <= len (Len F1) by FINSEQ_3:27;
then A13: Sum ((Width (F1 ^ F2)) | (min (Len F1),i)) <= Sum ((Width (F1 ^ F2)) | (len (Len F1))) by POLYNOM3:18;
A14: (Width (F1 ^ F2)) | (len (Len F1)) = Width F1 by A8, A2, A4, FINSEQ_5:26;
min (Len (F1 ^ F2)),i = min (Len F1),i by A9, A12, Th8;
then Sum ((Width (F1 ^ F2)) | (min (Len (F1 ^ F2)),i)) < j by A11, A14, A13, XXREAL_0:2;
hence (block_diagonal (F1 ^ F2),d) * i,j = d by A5, Def5; :: thesis: verum
end;
suppose A15: ( i > Sum (Len F1) & j <= Sum (Width F1) ) ; :: thesis: (block_diagonal (F1 ^ F2),d) * i,j = d
A16: i in Seg (Sum (Len (F1 ^ F2))) by A1, A3, A5, ZFMISC_1:106;
not i in Seg (Sum (Len F1)) by A15, FINSEQ_1:3;
then A17: i in (Seg ((Sum (Len F1)) + (Sum (Len F2)))) \ (Seg (Sum (Len F1))) by A10, A16, XBOOLE_0:def 5;
then A18: i -' (Sum (Len F1)) = i - (Sum (Len F1)) by Th9;
then A19: i = (i -' (Sum (Len F1))) + (Sum (Len F1)) ;
i -' (Sum (Len F1)) <> 0 by A15, A18;
then i -' (Sum (Len F1)) in Seg (Sum (Len F2)) by A10, A16, A19, FINSEQ_1:82;
then min (Len F2),(i -' (Sum (Len F1))) in dom (Len F2) by Def1;
then A20: min (Len F2),(i -' (Sum (Len F1))) >= 1 by FINSEQ_3:27;
min (Len (F1 ^ F2)),i = (min (Len F2),(i -' (Sum (Len F1)))) + (len (Len F1)) by A9, A17, Th9;
then (min (Len (F1 ^ F2)),i) -' 1 = ((min (Len F2),(i -' (Sum (Len F1)))) -' 1) + (len (Len F1)) by A20, NAT_D:38;
then (min (Len (F1 ^ F2)),i) -' 1 >= (len (Len F1)) + 0 by XREAL_1:9;
then A21: Sum ((Width (F1 ^ F2)) | ((min (Len (F1 ^ F2)),i) -' 1)) >= Sum (((Width F1) ^ (Width F2)) | (len (Width F1))) by A8, A2, A4, POLYNOM3:18;
((Width F1) ^ (Width F2)) | (len (Width F1)) = Width F1 by FINSEQ_5:26;
then Sum ((Width (F1 ^ F2)) | ((min (Len (F1 ^ F2)),i) -' 1)) >= j by A15, A21, XXREAL_0:2;
hence (block_diagonal (F1 ^ F2),d) * i,j = d by A5, Def5; :: thesis: verum
end;
end;