
theorem
  for M be non empty MetrSpace st M is sequentially_compact holds
    TopSpaceMetr M is countably_compact
  proof
    let M be non empty MetrSpace;
    assume
    A1: M is sequentially_compact;
    A2: for X be Subset of M st X is infinite
        ex x be Element of M
          st for r be Real st 0 < r
             holds Ball(x,r) meets X \ {x}
    proof
      let X be Subset of M;
      assume
      A3: X is infinite; then
      consider S1 be sequence of X such that
      A4: S1 is one-to-one by DICKSON:3;
      A5: rng S1 c= X;
      rng S1 c= [#]M by XBOOLE_1:1; then
      S1 is Function of dom S1,[#]M by FUNCT_2:2; then
      reconsider S1 as sequence of [#]M by A3,FUNCT_2:def 1;
      rng S1 c= [#]M; then
      consider S2 be sequence of M such that
      A6: (ex N be increasing sequence of NAT st S2 = S1 * N)
         & S2 is convergent & lim S2 in [#]M by A1,Def1;
      set x = lim S2;
      rng S2 c= rng S1 by A6,RELAT_1:26; then
      A7: rng S2 c= X by A5,XBOOLE_1:1;
      take x;
      thus
      for r be Real st 0 < r holds Ball(x,r) meets X \ {x}
      proof
        let r be Real;
        assume 0 < r; then
        consider n be Nat such that
        A8: for m be Nat st m>=n holds dist(S2.m,x)<r by A6,TBSP_1:def 3;
        per cases;
        suppose
          S2.n <> x; then
          A9: not S2.n in {x} by TARSKI:def 1;
          n in NAT by ORDINAL1:def 12; then
          S2.n in rng S2 by FUNCT_2:112; then
          A10: S2.n in X \ {x} by A7,A9,XBOOLE_0:def 5;
          dist(S2.n,x) < r by A8; then
          S2.n in Ball(x,r) by METRIC_1:11;
          hence Ball(x,r) meets X \{x} by A10,XBOOLE_0:def 4;
        end;
        suppose
     A11: S2.n = x;
          consider N be increasing sequence of NAT such that
     A12: S2 = S1 * N by A6;
          for x1,x2 be object st x1 in NAT & x2 in NAT & N.x1 = N.x2
          holds x1 = x2
          proof
            let x1,x2 be object;
            assume
            A13: x1 in NAT & x2 in NAT; then
            reconsider n=x1,m=x2 as Nat;
            assume
            A14: N.x1 = N.x2;
            assume x1 <> x2; then
            A15: n < m or m < n by XXREAL_0:1;
            dom N = NAT by FUNCT_2:def 1;
            hence contradiction by A13,A14,A15,SEQM_3:def 1;
          end; then
          N is one-to-one by FUNCT_2:19; then
          A16: S2 is one-to-one by A4,A12,FUNCT_1:24;
          A17: n < n+1 by NAT_1:16;
          n in NAT & n+1 in NAT by ORDINAL1:def 12; then
          S2.(n+1) <> x by A11,A16,A17,FUNCT_2:19; then
          A18: not S2.(n+1) in {x} by TARSKI:def 1;
          S2.(n+1) in rng S2 by FUNCT_2:112; then
          A19: S2.(n+1) in X \{x} by A7,A18,XBOOLE_0:def 5;
          dist(S2.(n+1),x)<r by A8,A17; then
          S2.(n+1) in Ball(x,r) by METRIC_1:11;
          hence Ball(x,r) meets X \{x} by A19,XBOOLE_0:def 4;
        end;
      end;
    end;
    A20: for A be Subset of TopSpaceMetr M st A is infinite
         holds Der A is non empty
    proof
      let A be Subset of TopSpaceMetr M;
      assume
      A21: A is infinite;
      reconsider X = A as Subset of M;
      consider x be Element of M such that
      A22: for r be Real st 0 < r holds Ball(x,r) meets X \{x} by A2,A21;
      reconsider y = x as Point of TopSpaceMetr M;
      y is_an_accumulation_point_of A by A22,Th7;
      hence Der A is non empty by TOPGEN_1:16;
    end;
    TopSpaceMetr M is T_2 by PCOMPS_1:34;
    hence TopSpaceMetr M is countably_compact by A20,COMPL_SP:28;
  end;
