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 Th28:
  [i,j] in Indices block_diagonal(F2,d) implies block_diagonal(F2,
  d)*(i,j) = block_diagonal(F1^F2,d)*(i+Sum Len F1,j+Sum Width F1)
proof
  set L1=Len F1;
  set W1=Width F1;
  set L2=Len F2;
  set W2=Width F2;
  set F12=F1^F2;
  set L=Len F12;
  set W=Width F12;
  set B2=block_diagonal(F2,d);
  set B12=block_diagonal(F12,d);
A1: dom B12=Seg len B12 by FINSEQ_1:def 3;
A2: len B12=Sum L by Def5;
A3: L1^L2=L by Th14;
  then
A4: Sum L=Sum L1+Sum L2 by RVSUM_1:75;
  assume
A5: [i,j] in Indices B2;
  then i>0 by Th27;
  then i+Sum L1>0+Sum L1 by XREAL_1:6;
  then
A6: not i+Sum L1 in Seg Sum L1 by FINSEQ_1:1;
A7: [i+Sum L1,j+Sum W1] in Indices B12 by A5,Th27;
  then i+Sum L1 in dom B12 by ZFMISC_1:87;
  then
A8: i+Sum L1 in Seg(Sum L1+Sum L2)\Seg Sum L1 by A4,A1,A2,A6,XBOOLE_0:def 5;
  then
A9: min(L,i+Sum L1)=min(L2,(i+Sum L1)-'Sum L1)+len L1 by A3,Th9;
A10: len B2=Sum L2 by Def5;
A11: len W1=len F1 by CARD_1:def 7;
  i in dom B2 by A5,ZFMISC_1:87;
  then i in Seg len B2 by FINSEQ_1:def 3;
  then
A12: min(L2,i) in dom L2 by A10,Def1;
  then
A13: min(L2,i)<=len L2 by FINSEQ_3:25;
A14: (i+Sum L1)-'Sum L1=i+Sum L1-Sum L1 by A8,Th9;
A15: (j+Sum W1)-'(Sum W1+Sum (W2| (min(L2,i)-'1)))=j-'Sum (W2| (min(L2,i)-'1))
  by PRGCOR_1:1;
A16: len L2=len F2 by CARD_1:def 7;
A17: (i+Sum L1)-'(Sum L1+Sum (L2| (min(L2,i)-'1)))=i-'Sum (L2| (min(L2,i)-'1))
  by PRGCOR_1:1;
A18: len F1=len L1 by CARD_1:def 7;
A19: W1^W2=W by Th18;
  then W1^(W2| (min(L2,i)))=W|min(L,i+Sum L1) by A11,A18,A9,A14,FINSEQ_6:14;
  then
A20: Sum W1+Sum (W2| (min(L2,i))) = Sum (W|min(L,i+Sum L1)) by RVSUM_1:75;
A21: min(L2,i)>=1 by A12,FINSEQ_3:25;
  then
A22: min(L2,i)+len L1-'1= (min(L2,i)-'1)+len L1 by NAT_D:38;
  then L1^(L2| (min(L2,i)-'1))=L| (min(L,i+Sum L1)-'1) by A3,A9,A14,FINSEQ_6:14
;
  then
A23: Sum L1+Sum (L2| (min(L2,i)-'1))=Sum (L| (min(L,i+Sum L1)-'1)) by
RVSUM_1:75;
  W1^(W2| (min(L2,i)-'1))=W| (min(L,i+Sum L1)-'1) by A19,A11,A18,A9,A14,A22,
FINSEQ_6:14;
  then
A24: Sum W1+Sum (W2| (min(L2,i)-'1))=Sum (W| (min(L,i+Sum L1)-'1)) by
RVSUM_1:75;
  per cases;
  suppose
A25: j <= Sum(W2| (min(L2,i)-'1)) or j > Sum (W2|min(L2,i));
    then
    j+Sum W1<= Sum (W| (min(L,i+Sum L1)-'1)) or j+Sum W1 > Sum (W|min(L,i+
    Sum L1)) by A20,A24,XREAL_1:7,8;
    then B12*(i+Sum L1,j+Sum W1)=d by A7,Def5;
    hence thesis by A5,A25,Def5;
  end;
  suppose
A26: j > Sum(W2| (min(L2,i)-'1)) & j <= Sum (W2|min(L2,i));
    then
A27: j+Sum W1 <= Sum (W|min(L,i+Sum L1)) by A20,XREAL_1:7;
A28: B2*(i,j)=F2.min(L2,i)*(i-'Sum(L2| (min(L2,i)-'1)), j-'Sum (W2| (min(L2,
    i) -'1))) by A5,A26,Def5;
    j+Sum W1> Sum (W| (min(L,i+Sum L1)-'1)) by A24,A26,XREAL_1:8;
    then
    B12*(i+Sum L1,j+Sum W1)=F12.min(L,i+Sum L1)* (i-'Sum (L2| (min(L2,i)-'
    1) ), j-'Sum (W2| (min(L2,i)-'1))) by A7,A24,A23,A17,A15,A27,Def5;
    hence thesis by A18,A16,A21,A13,A9,A14,A28,FINSEQ_1:65;
  end;
end;
