reserve            x for object,
               X,Y,Z for set,
         i,j,k,l,m,n for Nat,
                 r,s for Real,
                  no for Element of OrderedNAT,
                   A for Subset of [:NAT,NAT:];
reserve X,Y,X1,X2 for non empty set,
          cA1,cB1 for filter_base of X1,
          cA2,cB2 for filter_base of X2,
              cF1 for Filter of X1,
              cF2 for Filter of X2,
             cBa1 for basis of cF1,
             cBa2 for basis of cF2;
reserve T for non empty TopSpace,
        s for Function of [:NAT,NAT:], the carrier of T,
        M for Subset of the carrier of T;
reserve cF3,cF4 for Filter of the carrier of T;

theorem Th51:
  for x being Point of T, cB being basis of BOOL2F NeighborhoodSystem x holds
   x in lim_filter(s,Frechet_Filter([:NAT,NAT:])) iff
  for B being Element of cB holds ex A being finite Subset of [:NAT,NAT:] st
    s.:([:NAT,NAT:] \ A) c= B
  proof
    let x be Point of T,cB be basis of BOOL2F NeighborhoodSystem x;
    hereby
      assume
A1:   x in lim_filter(s,Frechet_Filter([:NAT,NAT:]));
      hereby
        let B be Element of cB;
        consider A be finite Subset of [:NAT,NAT:] such that
A2:     s"(B) = [:NAT,NAT:] \ A by A1,Th49;
        take A;
        thus s.:([:NAT,NAT:] \ A) c= B by A2,FUNCT_1:75;
      end;
    end;
    assume
A3: for B being Element of cB holds ex A be finite Subset of [:NAT,NAT:] st
    s.:([:NAT,NAT:]\A) c= B;
    for A being a_neighborhood of x holds [:NAT,NAT:] \ s"(A) is finite
    proof
      let A be a_neighborhood of x;
A4:   A is Element of BOOL2F NeighborhoodSystem x by YELLOW19:2;
      cB is filter_basis;
      then consider B be Element of cB such that
A5:   B c= A by A4;
      consider C be finite Subset of [:NAT,NAT:] such that
A6:   s.:([:NAT,NAT:] \ C) c= B by A3;
      s.:([:NAT,NAT:]\ C ) c= A by A6,A5; then
A7:   s"(s.:([:NAT,NAT:] \ C)) c= s"A by RELAT_1:143;
      dom s = [:NAT,NAT:] by FUNCT_2:def 1;
      then [:NAT,NAT:] \ C c= s"(s.:([:NAT,NAT:] \ C)) by FUNCT_1:76;
      then [:NAT,NAT:] \ C c= s"A by A7; then
      [:NAT,NAT:] \ s"A c= ([:NAT,NAT:] \ ([:NAT,NAT:] \C)) by XBOOLE_1:34;
      then [:NAT,NAT:] \ s"A c= [:NAT,NAT:] /\ C by XBOOLE_1:48;
      hence thesis;
    end;
    hence x in lim_filter(s,Frechet_Filter([:NAT,NAT:])) by Th46;
  end;
