reserve X for MetrSpace,
  x,y,z for Element of X,
  A for non empty set,
  G for Function of [:A,A:],REAL,
  f for Function,
  k,n,m,m1,m2 for Nat,
  q,r for Real;

theorem Th3:
  G is_metric_of A iff G is Reflexive discerning symmetric triangle
proof
A1: G is_metric_of A implies G is Reflexive discerning symmetric triangle
  proof
    assume
A2: G is_metric_of A;
    then for a being Element of A holds G.(a,a) = 0 by PCOMPS_1:def 6;
    hence G is Reflexive by METRIC_1:def 2;
    for a,b being Element of A holds G.(a,b) = 0 iff a = b by A2,PCOMPS_1:def 6
;
    hence G is discerning by METRIC_1:def 3;
    for a,b being Element of A holds G.(a,b) = G.(b,a) by A2,PCOMPS_1:def 6;
    hence G is symmetric by METRIC_1:def 4;
    for a,b,c being Element of A holds G.(a,c) <= G.(a,b) + G.(b,c) by A2,
PCOMPS_1:def 6;
    hence thesis by METRIC_1:def 5;
  end;
  G is Reflexive discerning symmetric triangle implies G is_metric_of A
  proof
    assume G is Reflexive discerning & G is symmetric & G is triangle;
    then
    for a,b,c being Element of A holds (G.(a,b) = 0 iff a = b) & G.(a,b) =
    G.(b,a) & G.(a,c) <= G.(a,b) + G.(b,c) by METRIC_1:def 2,def 3,def 4,def 5;
    hence thesis by PCOMPS_1:def 6;
  end;
  hence thesis by A1;
end;
