reserve PM for MetrStruct;
reserve x,y for Element of PM;
reserve r,p,q,s,t for Real;
reserve T for TopSpace;
reserve A for Subset of T;
reserve T for non empty TopSpace;
reserve x for Point of T;
reserve Z,X,V,W,Y,Q for Subset of T;
reserve FX for Subset-Family of T;
reserve a for set;
reserve x,y for Point of T;
reserve A,B for Subset of T;
reserve FX,GX for Subset-Family of T;
reserve x,y,z for Element of PM;
reserve V,W,Y for Subset of PM;

theorem Th34:
  for PM being non empty MetrSpace holds TopSpaceMetr PM is T_2
proof
  let PM be non empty MetrSpace;
  set TPS = TopSpaceMetr PM;
  for x,y being Element of TPS st not x = y ex W,V being Subset of TPS st
  W is open & V is open & x in W & y in V & W misses V
  proof
    let x,y be Element of TPS;
    assume
A1: not x = y;
    reconsider x,y as Element of PM;
    set r = dist(x,y)/2;
    dist(x,y) <> 0 by A1,METRIC_1:2;
    then dist(x,y) > 0 by METRIC_1:5;
    then
A2: r > 0 by XREAL_1:139;
    ex W,V being Subset of TPS st W is open & V is open & x in W & y in V
    & W misses V
    proof
      set V = Ball(y,r);
      set W = Ball(x,r);
A3:   W in Family_open_set(PM) & V in Family_open_set(PM) by Th29;
      reconsider W,V as Subset of TPS;
A4:   for z being object holds not z in W /\ V
      proof
        let z be object;
        assume
A5:     z in W /\ V;
        then reconsider z as Element of PM;
        z in V by A5,XBOOLE_0:def 4;
        then
A6:     dist(y,z) < r by METRIC_1:11;
        z in W by A5,XBOOLE_0:def 4;
        then dist(x,z) < r by METRIC_1:11;
        then dist(x,z) + dist(y,z) < r + r by A6,XREAL_1:8;
        hence thesis by METRIC_1:4;
      end;
      take W, V;
      dist(x,x) = 0 & dist(y,y) = 0 by METRIC_1:1;
      hence thesis by A2,A3,A4,METRIC_1:11,PRE_TOPC:def 2,XBOOLE_0:4;
    end;
    hence thesis;
  end;
  hence thesis by PRE_TOPC:def 10;
end;
