let i, j be Nat; :: thesis: for D being non empty set
for d1, d2 being Element of D
for F2, F1 being FinSequence_of_Matrix of D holds
( [i,j] in Indices (block_diagonal F2,d1) iff ( i > 0 & j > 0 & [(i + (Sum (Len F1))),(j + (Sum (Width F1)))] in Indices (block_diagonal (F1 ^ F2),d2) ) )
let D be non empty set ; :: thesis: for d1, d2 being Element of D
for F2, F1 being FinSequence_of_Matrix of D holds
( [i,j] in Indices (block_diagonal F2,d1) iff ( i > 0 & j > 0 & [(i + (Sum (Len F1))),(j + (Sum (Width F1)))] in Indices (block_diagonal (F1 ^ F2),d2) ) )
let d1, d2 be Element of D; :: thesis: for F2, F1 being FinSequence_of_Matrix of D holds
( [i,j] in Indices (block_diagonal F2,d1) iff ( i > 0 & j > 0 & [(i + (Sum (Len F1))),(j + (Sum (Width F1)))] in Indices (block_diagonal (F1 ^ F2),d2) ) )
let F2, F1 be FinSequence_of_Matrix of D; :: thesis: ( [i,j] in Indices (block_diagonal F2,d1) iff ( i > 0 & j > 0 & [(i + (Sum (Len F1))),(j + (Sum (Width F1)))] in Indices (block_diagonal (F1 ^ F2),d2) ) )
set B2 = block_diagonal F2,d1;
set B12 = block_diagonal (F1 ^ F2),d2;
A1:
( dom (block_diagonal F2,d1) = Seg (len (block_diagonal F2,d1)) & dom (block_diagonal (F1 ^ F2),d2) = Seg (len (block_diagonal (F1 ^ F2),d2)) )
by FINSEQ_1:def 3;
A2:
( len (block_diagonal (F1 ^ F2),d2) = Sum (Len (F1 ^ F2)) & len (block_diagonal F2,d1) = Sum (Len F2) & width (block_diagonal (F1 ^ F2),d2) = Sum (Width (F1 ^ F2)) & width (block_diagonal F2,d1) = Sum (Width F2) )
by Def5;
( (Len F1) ^ (Len F2) = Len (F1 ^ F2) & (Width F1) ^ (Width F2) = Width (F1 ^ F2) )
by Th14, Th18;
then A3:
( (Sum (Len F1)) + (Sum (Len F2)) = Sum (Len (F1 ^ F2)) & (Sum (Width F1)) + (Sum (Width F2)) = Sum (Width (F1 ^ F2)) )
by RVSUM_1:105;
hereby :: thesis: ( i > 0 & j > 0 & [(i + (Sum (Len F1))),(j + (Sum (Width F1)))] in Indices (block_diagonal (F1 ^ F2),d2) implies [i,j] in Indices (block_diagonal F2,d1) )
assume
[i,j] in Indices (block_diagonal F2,d1)
;
:: thesis: ( i > 0 & j > 0 & [(i + (Sum (Len F1))),(j + (Sum (Width F1)))] in Indices (block_diagonal (F1 ^ F2),d2) )then
(
i in Seg (len (block_diagonal F2,d1)) &
j in Seg (width (block_diagonal F2,d1)) )
by A1, ZFMISC_1:106;
then
(
i > 0 &
j > 0 &
i + (Sum (Len F1)) in Seg (len (block_diagonal (F1 ^ F2),d2)) &
j + (Sum (Width F1)) in Seg (width (block_diagonal (F1 ^ F2),d2)) )
by A2, A3, FINSEQ_1:3, FINSEQ_1:81;
hence
(
i > 0 &
j > 0 &
[(i + (Sum (Len F1))),(j + (Sum (Width F1)))] in Indices (block_diagonal (F1 ^ F2),d2) )
by A1, ZFMISC_1:106;
:: thesis: verum
end;
assume that
A4:
( i > 0 & j > 0 )
and
A5:
[(i + (Sum (Len F1))),(j + (Sum (Width F1)))] in Indices (block_diagonal (F1 ^ F2),d2)
; :: thesis: [i,j] in Indices (block_diagonal F2,d1)
( i + (Sum (Len F1)) in Seg (len (block_diagonal (F1 ^ F2),d2)) & j + (Sum (Width F1)) in Seg (width (block_diagonal (F1 ^ F2),d2)) )
by A1, A5, ZFMISC_1:106;
then
( i in Seg (len (block_diagonal F2,d1)) & j in Seg (width (block_diagonal F2,d1)) & dom (block_diagonal F2,d1) = Seg (len (block_diagonal F2,d1)) )
by A2, A3, A4, FINSEQ_1:82, FINSEQ_1:def 3;
hence
[i,j] in Indices (block_diagonal F2,d1)
by ZFMISC_1:106; :: thesis: verum