reserve D for non empty set,
  i,j,k,l for Nat,
  n for Nat,
  x for set,
  a,b,c,r,r1,r2 for Real,
  p,q for FinSequence of REAL,
  MR,MR1 for Matrix of REAL;

theorem Th24:
  for MR being Matrix of n,REAL holds MR is diagonal iff for i st
  i in dom MR holds Line(MR,i) has_onlyone_value_in i
proof
  let MR be Matrix of n,REAL;
A1: width MR = n by MATRIX_0:24;
  len MR = n by MATRIX_0:24;
  then
A2: dom MR = Seg width MR by A1,FINSEQ_1:def 3;
  hereby
    assume
A3: MR is diagonal;
    now
      let i such that
A4:   i in dom MR;
A5:   len Line(MR,i) = width MR by MATRIX_0:def 7;
A6:   now
        let j such that
A7:     j in dom Line(MR,i) and
A8:     j<>i;
        j in dom (MR.i) by A4,A7,MATRIX_0:60;
        then
A9:     [i,j] in Indices MR by A4,MATRPROB:13;
        j in Seg width MR by A5,A7,FINSEQ_1:def 3;
        hence Line(MR,i).j = MR*(i,j) by MATRIX_0:def 7
          .= 0 by A3,A8,A9;
      end;
      i in dom Line(MR,i) by A2,A4,A5,FINSEQ_1:def 3;
      hence Line(MR,i) has_onlyone_value_in i by A6;
    end;
    hence for i st i in dom MR holds Line(MR,i) has_onlyone_value_in i;
  end;
  assume
A10: for i st i in dom MR holds Line(MR,i) has_onlyone_value_in i;
  for i,j st [i,j] in Indices MR & MR*(i,j) <> 0 holds i=j
  proof
    let i,j such that
A11: [i,j] in Indices MR and
A12: MR*(i,j) <> 0;
A13: i in dom MR by A11,MATRPROB:13;
    then
A14: Line(MR,i) has_onlyone_value_in i by A10;
    j in dom(MR.i) by A11,MATRPROB:13;
    then
A15: j in dom Line(MR,i) by A13,MATRIX_0:60;
    assume
A16: i<>j;
    len Line(MR,i) = width MR by MATRIX_0:def 7;
    then dom Line(MR,i) = Seg width MR by FINSEQ_1:def 3;
    then MR*(i,j) = Line(MR,i).j by A15,MATRIX_0:def 7
      .= 0 by A16,A15,A14;
    hence thesis by A12;
  end;
  hence thesis;
end;
