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
  i in Seg Sum Len F & m = min(Len F,i) implies Line(block_diagonal(F,d)
,i) = (Sum (Width F| (m-'1)) |->d)^ Line(F.m,i-'Sum (Len F| (m-'1)))^
((Sum Width F-'Sum (Width F|m)) |->d)
proof
  assume that
A1: i in Seg Sum Len F and
A2: m = min(Len F,i);
  set L=Len F;
A3: (L|m).m =L.m by FINSEQ_3:112;
  set BF9m=block_diagonal(F/^m,d);
  set BFm=block_diagonal(F|m,d);
A4: len BFm = Sum Len (F|m) by Def5
    .= Sum (L|m) by Th17;
  F=(F|m)^(F/^m) by RFINSEQ:8;
  then
A5: block_diagonal(F,d) = block_diagonal((F|m)^<*BF9m*>,d) by Th36
    .= block_diagonal(<*BFm,BF9m*>,d) by Th35;
  then Sum Width F = width block_diagonal(<*BFm,BF9m*>,d) by Def5
    .= Sum Width <*BFm,BF9m*> by Def5
    .= width BFm + width BF9m by Th20
    .= Sum (Width F|m)+width BF9m by Def5;
  then
A6: Sum Width F-'Sum (Width F|m) = (Sum (Width F|m)+width BF9m)-Sum (Width
  F|m) by NAT_1:11,XREAL_1:233
    .= width BF9m;
  Sum(L| (m-'1))<i by A1,A2,Th7;
  then
A7: i-Sum(L| (m-'1))=i-'Sum(L| (m-'1)) by XREAL_1:233;
A8: m in dom L by A1,A2,Def1;
  then 1 <= m by FINSEQ_3:25;
  then m-'1=m-1 by XREAL_1:233;
  then
A9: m=m-'1+1;
  then m-'1<=m by NAT_1:11;
  then
A10: Seg (m-'1) c= Seg m by FINSEQ_1:5;
  then
A11: (F|m) | (m-'1)=F| (m-'1) by RELAT_1:74;
  m <= len L by A8,FINSEQ_3:25;
  then len (L|m)=m by FINSEQ_1:59;
  then
A12: L|m=((L|m) | (m-'1))^<*(L|m).m*> by A9,FINSEQ_3:55;
  (L|m) | (m-'1)=L| (m-'1) by A10,RELAT_1:74;
  then Sum (L|m) = Sum (L| (m-'1))+L.m by A12,A3,RVSUM_1:74
    .= Sum (L| (m-'1))+len (F.m) by A8,Def3;
 then len (F.m)+Sum (L| (m-'1))>=i-'Sum(L| (m-'1))+Sum (L| (m-'1)) by A1,A2,A7
,Def1;
  then
A13: len (F.m)>=i-'Sum(L| (m-'1)) by XREAL_1:6;
  i-Sum(L| (m-'1))<>0 by A1,A2,Th7;
  then i-'Sum(L| (m-'1))>=1 by A7,NAT_1:14;
  then
A14: i-'Sum(L| (m-'1)) in dom (F.m) by A13,FINSEQ_3:25;
  set BFm1=block_diagonal(F| (m-'1),d);
A15: (F|m).m =F.m by FINSEQ_3:112;
A16: width BFm1 = Sum Width (F| (m-'1)) by Def5
    .= Sum ((Width F) | (m-'1)) by Th21;
A17: 1<=i by A1,FINSEQ_1:1;
  i <= Sum(L|m) by A1,A2,Def1;
  then i in dom BFm by A17,A4,FINSEQ_3:25;
  then
A18: Line(block_diagonal(F,d),i) = Line(BFm,i)^(width BF9m|->d) by A5,Th23;
  dom L=dom F by Def3;
  then m <= len F by A8,FINSEQ_3:25;
  then len (F|m)=m by FINSEQ_1:59;
  then F|m=((F|m) | (m-'1))^<*(F|m).m*> by A9,FINSEQ_3:55;
  then
A19: BFm=block_diagonal(<*BFm1,F.m*>,d) by A15,A11,Th35;
  len BFm1 = Sum Len (F| (m-'1)) by Def5
    .= Sum (L| (m-'1)) by Th17;
  then (Sum ((Width F) | (m-'1)) |->d)^Line(F.m,i-'Sum(L| (m-'1))) =
  Line(BFm,Sum
  (L| (m-'1))+(i-'Sum(L| (m-'1)))) by A14,A16,A19,Th23
    .= Line(BFm,i) by A7;
  then Line(BFm,i)=(Sum (Width F| (m-'1)) |->d)^ Line(F.m,i-'Sum (L| (m-'1)))
  by Th21;
  hence thesis by A6,A18,Th17;
end;
