reserve Y for TopStruct;
reserve X for non empty TopSpace;
reserve X for almost_discrete non empty TopSpace;

theorem
  for A being Subset of X holds A is discrete iff for a, b being Point
  of X st a in A & b in A holds a <> b implies Cl {a} misses Cl {b}
proof
  let A be Subset of X;
  thus A is discrete implies for a, b being Point of X st a in A & b in A
  holds a <> b implies Cl {a} misses Cl {b}
  proof
    assume
A1: A is discrete;
    let a, b be Point of X;
    assume that
A2: a in A and
A3: b in A;
A4: A /\ Cl {b} = {b} by A1,A3,Th36;
    assume
A5: a <> b;
    assume Cl {a} /\ Cl {b} <> {};
    then
A6: Cl {a} meets Cl {b};
    A /\ Cl {a} = {a} by A1,A2,Th36;
    then {a} = {b} by A4,A6,Th50;
    hence contradiction by A5,ZFMISC_1:3;
  end;
  assume
A7: for a, b being Point of X st a in A & b in A holds a <> b implies
  Cl {a} misses Cl {b};
  now
    let x be Point of X;
    assume
A8: x in A;
    assume
A9: A /\ Cl {x} <> {x};
A10: {x} c= Cl {x} by PRE_TOPC:18;
    {x} c= A by A8,ZFMISC_1:31;
    then (A /\ Cl {x}) \ {x} <> {} by A10,A9,Lm3,XBOOLE_1:19;
    then consider y being object such that
A11: y in (A /\ Cl {x}) \ {x} by XBOOLE_0:def 1;
    reconsider y as Point of X by A11;
    not y in {x} by A11,XBOOLE_0:def 5;
    then
A12: y <> x by TARSKI:def 1;
A13: y in A /\ Cl {x} by A11,XBOOLE_0:def 5;
    then y in A by XBOOLE_0:def 4;
    then Cl {y} misses Cl {x} by A7,A8,A12;
    then
A14: Cl {y} /\ Cl {x} = {};
    y in Cl {x} by A13,XBOOLE_0:def 4;
    then Cl {y} = Cl {x} by Th49;
    hence contradiction by A14,PRE_TOPC:18,XBOOLE_1:3;
  end;
  hence thesis by Th52;
end;
