reserve x,y for object,X,Y for set,
  D for non empty set,
  i,j,k,l,m,n,m9,n9 for Nat,
  i0,j0,n0,m0 for non zero Nat,
  K for Field,
  a,b for Element of K,
  p for FinSequence of K,
  M for Matrix of n,K;

theorem
  for M be Matrix of n,K for M1,M2 be lower_triangular Matrix of n,K st
  M = M1*M2 holds M is lower_triangular Matrix of n,K & diagonal_of_Matrix M =
  mlt(diagonal_of_Matrix M1,diagonal_of_Matrix M2)
proof
  let M be Matrix of n,K;
  reconsider N=n as Element of NAT by ORDINAL1:def 12;
  let M1,M2 be lower_triangular Matrix of n,K such that
A1: M = M1*M2;
A2: width M2=n by MATRIX_0:24;
A3: len M2=n by MATRIX_0:24;
A4: width M1=n by MATRIX_0:24;
A5: now
    per cases;
    suppose
A6:   n=0;
      then len (M2@*M1@) =0 by MATRIX_0:24;
      then
A7:   M2@*M1@={};
      len (M@)=0 by A6,MATRIX_0:24;
      hence M@ = M2@*M1@ by A7;
    end;
    suppose
      n>0;
      hence M@ = (M2@)*(M1@) by A1,A4,A2,A3,MATRIX_3:22;
    end;
  end;
  set D29=diagonal_of_Matrix M2@;
  set D2=diagonal_of_Matrix M2;
  set D19=diagonal_of_Matrix M1@;
  set D1=diagonal_of_Matrix M1;
A8: len D2=n by MATRIX_3:def 10;
  len D1=n by MATRIX_3:def 10;
  then reconsider d1=D1,d2=D2 as Element of N-tuples_on the carrier of K by A8,
FINSEQ_2:92;
A9: M2@ is upper_triangular Matrix of n,K by Th2;
A10: M1@ is upper_triangular Matrix of n,K by Th2;
  then diagonal_of_Matrix M@ = mlt(D29,D19) by A5,A9,Th15;
  then
A11: diagonal_of_Matrix M = mlt(D29,D19) by Th3
    .= mlt(D2,D19) by Th3
    .= mlt(d2,d1) by Th3
    .= mlt(D1,D2) by FVSUM_1:63;
  M@ is upper_triangular Matrix of n,K by A5,A10,A9,Th15;
  hence thesis by A11,Th2;
end;
