
theorem
  for T being non empty TopStruct st T is Frechet for S being sequence
  of T, x being Point of T st x is_a_cluster_point_of S holds ex S1 being
  subsequence of S st S1 is_convergent_to x
proof
  let T be non empty TopStruct;
  assume
A1: T is Frechet;
  let S be sequence of T, x be Point of T;
  assume
A2: x is_a_cluster_point_of S;
  defpred P[Point of T] means x in Cl{$1};
  reconsider Y={y where y is Point of T : P[y]} as Subset of T from DOMAIN_1:
  sch 7;
  per cases;
  suppose
A3: for n being Element of NAT ex m being Element of NAT st m >= n & S .m in Y;
    defpred P[set] means $1 in Y;
A4: for n being Element of NAT ex m being Element of NAT st n <= m & P[S.m
    ] by A3;
    consider S1 being subsequence of S such that
A5: for n being Element of NAT holds P[S1.n] from VALUED_1:sch 1(A4);
    take S1;
    rng S1 c= Y
    proof
      let y be object;
      assume y in rng S1;
      then consider n being object such that
A6:   n in dom S1 and
A7:   y = S1.n by FUNCT_1:def 3;
      reconsider n as Element of NAT by A6;
      S1.n in Y by A5;
      hence thesis by A7;
    end;
    hence thesis by Th33;
  end;
  suppose
    ex n being Element of NAT st for m being Element of NAT st m >= n
    holds not S.m in Y;
    then consider n0 being Element of NAT such that
A8: for m being Element of NAT st m >= n0 holds not S.m in Y;
    set S9 = S^\n0;
    x in Cl(rng S9) by A2,Th39,Th40;
    then consider S2 being sequence of T such that
A9: rng S2 c= rng S9 and
A10: x in Lim S2 by A1;
A11: S2 is_convergent_to x by A10,FRECHET:def 5;
A12: for n being Element of NAT holds not S9.n in Y
    proof
      let n be Element of NAT;
      not S.(n+n0) in Y by A8,NAT_1:11;
      hence thesis by NAT_1:def 3;
    end;
    rng S9 /\ Y = {}
    proof
      set y = the Element of rng S9 /\ Y;
      assume
A13:  rng S9 /\ Y <> {};
      then y in rng S9 by XBOOLE_0:def 4;
      then consider n being object such that
A14:  n in dom S9 and
A15:  y = S9.n by FUNCT_1:def 3;
      reconsider n as Element of NAT by A14;
      not S9.n in Y by A12;
      hence contradiction by A13,A15,XBOOLE_0:def 4;
    end;
    then rng S9 misses Y;
    then consider S29 being subsequence of S2 such that
A16: S29 is one-to-one by A9,A11,Th35,XBOOLE_1:63;
    rng S29 c= rng S2 by VALUED_0:21;
    then consider P being Permutation of NAT such that
A17: S29*P is subsequence of S9 by A9,A16,Th36,XBOOLE_1:1;
    reconsider S1=S29*P as subsequence of S9 by A17;
    reconsider S1 as subsequence of S by VALUED_0:20;
    take S1;
    S29 is_convergent_to x by A11,Th15;
    hence thesis by Th37;
  end;
end;
