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 Th57:
  for M being non empty MetrSpace, p being Point of M,
      x being Point of TopSpaceMetr(M),
      s being Function of [:NAT,NAT:], TopSpaceMetr(M) st x = p holds
  x in lim_filter(s,<. Frechet_Filter(NAT),Frechet_Filter(NAT).)) iff
  for m being non zero Nat ex n being Nat st for n1,n2 being Nat st
  n <= n1 & n <= n2 holds
  s.(n1,n2) in {q where q is Point of M: dist(p,q) < 1/m}
  proof
    let M be non empty MetrSpace, p be Point of M,
        x be Point of TopSpaceMetr(M),
        s be Function of [:NAT,NAT:], TopSpaceMetr(M);
    assume
A1: x = p;
    x in lim_filter(s,<. Frechet_Filter(NAT),Frechet_Filter(NAT).)) iff
    for m be non zero Nat ex n be Nat st for n1,n2 be Nat st n <= n1 &
    n <= n2 holds
    s.(n1,n2) in {q where q is Point of M: dist(p,q) < 1/m}
    proof
      hereby
        assume
A2:     x in lim_filter(s,<. Frechet_Filter(NAT),Frechet_Filter(NAT).));
        hereby
          let m be non zero Nat;
          set B = {q where q is Point of M: dist(p,q) < 1/m};
A3:       B = Ball(p,1/m) by METRIC_1:def 14;
          ex y be Point of M st y = x &
            Balls(x) = {Ball(y,1/m) where m is Nat: m <> 0 }
            by FRECHET:def 1; then
A4:       B in Balls(x) by A3,A1;
          Balls(x) is basis of BOOL2F NeighborhoodSystem x by CARDFIL3:6;
          hence ex n be Nat st for n1,n2 be Nat st n <= n1 & n <= n2 holds
          s.(n1,n2) in {q where q is Point of M: dist(p,q) < 1/m}
            by A2,A4,Th54;
        end;
      end;
      assume
A5:   for m be non zero Nat ex n be Nat st for n1,n2 be Nat st
      n <= n1 & n <= n2 holds
      s.(n1,n2) in {q where q is Point of M: dist(p,q) < 1/m};
A6:   Balls(x) is basis of BOOL2F NeighborhoodSystem x by CARDFIL3:6;
      for B being Element of Balls(x) holds ex n being Nat st
      for n1,n2 being Nat st n <= n1 & n <= n2 holds s.(n1,n2) in B
      proof
        let B be Element of Balls(x);
        consider y be Point of M such that
A7:     y = x and
A8:     Balls(x) = {Ball(y,1/m) where m is Nat: m <> 0 } by FRECHET:def 1;
        B in Balls(x);
        then consider m0 be Nat such that
A9:     B = Ball(y,1/m0) and
A10:    m0 <> 0 by A8;
        consider n0 be Nat such that
A11:    for n1,n2 be Nat st n0 <= n1 & n0 <= n2 holds s.(n1,n2) in
          {q where q is Point of M: dist(p,q) < 1/m0} by A5,A10;
        for n1,n2 be Nat st n0 <= n1 & n0 <= n2 holds s.(n1,n2) in B
        proof
          let n1,n2 be Nat;
          assume n0 <= n1 & n0 <= n2;
          then s.(n1,n2) in {q where q is Point of M: dist(p,q) < 1/m0} by A11;
          hence thesis by A9,A1,A7,METRIC_1:def 14;
        end;
        hence thesis;
      end;
      hence x in lim_filter(s,<. Frechet_Filter(NAT),Frechet_Filter(NAT).))
        by A6,Th54;
    end;
    hence thesis;
  end;
