
theorem Th32:
  for T being non empty TopSpace, N being net of T for x being
  Point of T st x is_a_cluster_point_of N holds ex M being subnet of N st x in
  Lim M
proof
  let T be non empty TopSpace, N be net of T, x be Point of T such that
A1: x is_a_cluster_point_of N;
  set q = the Element of N;
  set S9 = {[s,O] where s is Element of N, O is Element of OpenNeighborhoods x
  : N.s in O};
  reconsider O = [#]T as Element of OpenNeighborhoods x by YELLOW_6:30;
  N.q in [#]T;
  then [q,O] in S9;
  then reconsider S9 as non empty set;
  set n = the mapping of N;
  defpred P[set,set] means ex s1, s2 being Element of N st s1 = $1`1 & s2 = $2
  `1 & s1 <= s2 & $2`2 c= $1`2;
  consider L being non empty strict RelStr such that
A2: the carrier of L = S9 and
A3: for a, b being Element of L holds a <= b iff P[a,b] from YELLOW_0:
  sch 1;
  deffunc F(Element of L) = n.($1`1);
A4: for a being Element of L holds F(a) in the carrier of T
  proof
    let a be Element of L;
    a in S9 by A2;
    then consider
    s being Element of N, O being Element of OpenNeighborhoods x such
    that
A5: a = [s,O] and
    N.s in O;
    n.(a`1) = n.s by A5;
    hence thesis;
  end;
  consider g being Function of the carrier of L, the carrier of T such that
A6: for x being Element of L holds g.x = F(x) from FUNCT_2:sch 8(A4);
  set M = NetStr (#the carrier of L, the InternalRel of L, g#);
  for a, b being Element of M ex z being Element of M st a <= z & b <= z
  proof
    let a, b be Element of M;
    a in S9 by A2;
    then consider
    aa being Element of N, Oa being Element of OpenNeighborhoods x
    such that
A7: a = [aa,Oa] and
    N.aa in Oa;
    b in S9 by A2;
    then consider
    bb being Element of N, Ob being Element of OpenNeighborhoods x
    such that
A8: b = [bb,Ob] and
    N.bb in Ob;
    consider z1 being Element of N such that
A9: aa <= z1 and
A10: bb <= z1 by YELLOW_6:def 3;
    Oa is a_neighborhood of x & Ob is a_neighborhood of x by Th21;
    then Oa /\ Ob is a_neighborhood of x by CONNSP_2:2;
    then N is_often_in Oa /\ Ob by A1;
    then consider d being Element of N such that
A11: z1 <= d and
A12: N.d in Oa /\ Ob;
    Oa /\ Ob is Element of OpenNeighborhoods x by Th22;
    then [d, Oa /\ Ob] in S9 by A12;
    then reconsider z = [d, Oa /\ Ob] as Element of M by A2;
    reconsider A1 = a, C7 = b, z2 = z as Element of L;
A13: C7`1 = bb & C7`2 = Ob by A8;
    take z;
A14: A1`1 = aa & A1`2 = Oa by A7;
A15: z2`1 = d & z2`2 = Oa /\ Ob;
    Oa /\ Ob c= Ob & bb <= d by A10,A11,XBOOLE_1:17,YELLOW_0:def 2;
    then
A16: C7 <= z2 by A3,A13,A15;
    Oa /\ Ob c= Oa & aa <= d by A9,A11,XBOOLE_1:17,YELLOW_0:def 2;
    then A1 <= z2 by A3,A14,A15;
    hence thesis by A16;
  end;
  then reconsider M as prenet of T by YELLOW_6:def 3;
  M is transitive
  proof
    let x, y, z be Element of M such that
A17: x <= y and
A18: y <= z;
    reconsider x1 = x, y1 = y, z1 = z as Element of L;
    x1 <= y1 by A17;
    then consider sx, sy being Element of N such that
A19: sx = x1`1 and
A20: sy = y1`1 & sx <= sy & y1`2 c= x1`2 by A3;
    y1 <= z1 by A18;
    then consider s1, s2 being Element of N such that
A21: s1 = y1`1 and
A22: s2 = z1`1 and
A23: s1 <= s2 & z1`2 c= y1`2 by A3;
    sx <= s2 & z1`2 c= x1`2 by A20,A21,A23,YELLOW_0:def 2;
    then x1 <= z1 by A3,A19,A22;
    hence thesis;
  end;
  then reconsider M as net of T;
  M is subnet of N
  proof
    deffunc F(Element of L) = $1`1;
A24: for a being Element of L holds F(a) in the carrier of N
    proof
      let a be Element of L;
      a in S9 by A2;
      then consider
      s being Element of N, O being Element of OpenNeighborhoods x
      such that
A25:  a = [s,O] and
      N.s in O;
      a`1 = s by A25;
      hence thesis;
    end;
    consider f being Function of the carrier of L, the carrier of N such that
A26: for x being Element of L holds f.x = F(x) from FUNCT_2:sch 8(A24);
    reconsider f as Function of M, N;
    take f;
    for x being object st x in the carrier of M holds g.x = (n*f).x
    proof
      let x be object;
      assume
A27:  x in the carrier of M;
      hence g.x = n.(x`1) by A6
        .= n.(f.x) by A26,A27
        .= (n*f).x by A27,FUNCT_2:15;
    end;
    hence the mapping of M = (the mapping of N)*f by FUNCT_2:12;
    let m be Element of N;
    N.m in [#]T;
    then [m,O] in S9;
    then reconsider n = [m,O] as Element of M by A2;
    take n;
    let p be Element of M such that
A28: n <= p;
    reconsider n1 = n, p1 = p as Element of L;
    n1 <= p1 by A28;
    then
A29: ex s1, s2 being Element of N st s1 = n1`1 & s2 = p1`1 & s1 <= s2 & p1
    `2 c= n1`2 by A3;
    f.p = p`1 by A26;
    hence thesis by A29;
  end;
  then reconsider M as subnet of N;
  take M;
  for V being a_neighborhood of x holds M is_eventually_in V
  proof
    set i = the Element of N;
    let V be a_neighborhood of x;
    x in Int V & Int V is open by CONNSP_2:def 1;
    then
A30: Int V in the carrier of OpenNeighborhoods x by YELLOW_6:30;
    then Int V is a_neighborhood of x by Th21;
    then N is_often_in Int V by A1;
    then consider s being Element of N such that
    i <= s and
A31: N.s in Int V;
A32: M is_eventually_in Int V
    proof
      [s,Int V] in S9 by A30,A31;
      then reconsider j = [s,Int V] as Element of M by A2;
      take j;
      let s9 be Element of M such that
A33:  j <= s9;
      reconsider j1 = j, s1 = s9 as Element of L;
      j1 <= s1 by A33;
      then
A34:  ex s1, s2 being Element of N st s1 = j`1 & s2 = s9`1 & s1 <= s2 & s9
      `2 c= j`2 by A3;
      s9 in S9 by A2;
      then consider
      ss being Element of N, OO being Element of OpenNeighborhoods x
      such that
A35:  s9 = [ss,OO] and
A36:  N.ss in OO;
A37:  j`2 = Int V & s9`2 = OO by A35;
      M.s9 = n.(s9`1) by A6
        .= N.ss by A35;
      hence thesis by A36,A34,A37;
    end;
    Int V c= V by TOPS_1:16;
    hence thesis by A32,WAYBEL_0:8;
  end;
  hence thesis by YELLOW_6:def 15;
end;
