let M be non empty MetrSpace; :: thesis: for x being Point of (TopSpaceMetr M)
for x' being Point of M st x = x' holds
ex B being Basis of x st
( B = { (Ball x',(1 / n)) where n is Element of NAT : n <> 0 } & B is countable & ex f being Function of NAT ,B st
for n being set st n in NAT holds
ex n' being Element of NAT st
( n = n' & f . n = Ball x',(1 / (n' + 1)) ) )

let x be Point of (TopSpaceMetr M); :: thesis: for x' being Point of M st x = x' holds
ex B being Basis of x st
( B = { (Ball x',(1 / n)) where n is Element of NAT : n <> 0 } & B is countable & ex f being Function of NAT ,B st
for n being set st n in NAT holds
ex n' being Element of NAT st
( n = n' & f . n = Ball x',(1 / (n' + 1)) ) )

let x' be Point of M; :: thesis: ( x = x' implies ex B being Basis of x st
( B = { (Ball x',(1 / n)) where n is Element of NAT : n <> 0 } & B is countable & ex f being Function of NAT ,B st
for n being set st n in NAT holds
ex n' being Element of NAT st
( n = n' & f . n = Ball x',(1 / (n' + 1)) ) ) )

assume A1: x = x' ; :: thesis: ex B being Basis of x st
( B = { (Ball x',(1 / n)) where n is Element of NAT : n <> 0 } & B is countable & ex f being Function of NAT ,B st
for n being set st n in NAT holds
ex n' being Element of NAT st
( n = n' & f . n = Ball x',(1 / (n' + 1)) ) )

set B = { (Ball x',(1 / n)) where n is Element of NAT : n <> 0 } ;
{ (Ball x',(1 / n)) where n is Element of NAT : n <> 0 } c= bool the carrier of (TopSpaceMetr M)
proof
let A be set ; :: according to TARSKI:def 3 :: thesis: ( not A in { (Ball x',(1 / n)) where n is Element of NAT : n <> 0 } or A in bool the carrier of (TopSpaceMetr M) )
assume A in { (Ball x',(1 / n)) where n is Element of NAT : n <> 0 } ; :: thesis: A in bool the carrier of (TopSpaceMetr M)
then consider n being Element of NAT such that
A2: A = Ball x',(1 / n) and
n <> 0 ;
Ball x',(1 / n) c= the carrier of M ;
then Ball x',(1 / n) c= the carrier of (TopSpaceMetr M) by TOPMETR:16;
hence A in bool the carrier of (TopSpaceMetr M) by A2; :: thesis: verum
end;
then reconsider B = { (Ball x',(1 / n)) where n is Element of NAT : n <> 0 } as Subset-Family of (TopSpaceMetr M) ;
A3: B c= the topology of (TopSpaceMetr M)
proof
let A be set ; :: according to TARSKI:def 3 :: thesis: ( not A in B or A in the topology of (TopSpaceMetr M) )
assume A in B ; :: thesis: A in the topology of (TopSpaceMetr M)
then consider n being Element of NAT such that
A4: A = Ball x',(1 / n) and
n <> 0 ;
Ball x',(1 / n) in Family_open_set M by PCOMPS_1:33;
hence A in the topology of (TopSpaceMetr M) by A4, TOPMETR:16; :: thesis: verum
end;
A5: x in Intersect B
proof
A6: Ball x',(1 / 1) in B ;
then A7: Intersect B = meet B by SETFAM_1:def 10;
for O being set st O in B holds
x in O
proof
let O be set ; :: thesis: ( O in B implies x in O )
assume O in B ; :: thesis: x in O
then consider n being Element of NAT such that
A8: O = Ball x',(1 / n) and
A9: n <> 0 ;
thus x in O by A1, A8, A9, GOBOARD6:4; :: thesis: verum
end;
hence x in Intersect B by A6, A7, SETFAM_1:def 1; :: thesis: verum
end;
for O being Subset of (TopSpaceMetr M) st O is open & x in O holds
ex V being Subset of (TopSpaceMetr M) st
( V in B & V c= O )
proof
let O be Subset of (TopSpaceMetr M); :: thesis: ( O is open & x in O implies ex V being Subset of (TopSpaceMetr M) st
( V in B & V c= O ) )

assume ( O is open & x in O ) ; :: thesis: ex V being Subset of (TopSpaceMetr M) st
( V in B & V c= O )

then consider r being real number such that
A10: r > 0 and
A11: Ball x',r c= O by A1, TOPMETR:22;
reconsider r = r as Real by XREAL_0:def 1;
consider n being Element of NAT such that
A12: 1 / n < r and
A13: n > 0 by A10, Lm2;
A14: Ball x',(1 / n) c= Ball x',r by A12, PCOMPS_1:1;
reconsider Ba = Ball x',(1 / n) as Subset of (TopSpaceMetr M) by TOPMETR:16;
reconsider Ba = Ba as Subset of (TopSpaceMetr M) ;
take Ba ; :: thesis: ( Ba in B & Ba c= O )
thus Ba in B by A13; :: thesis: Ba c= O
thus Ba c= O by A11, A14, XBOOLE_1:1; :: thesis: verum
end;
then reconsider B = B as Basis of x by A3, A5, YELLOW_8:def 2;
take B ; :: thesis: ( B = { (Ball x',(1 / n)) where n is Element of NAT : n <> 0 } & B is countable & ex f being Function of NAT ,B st
for n being set st n in NAT holds
ex n' being Element of NAT st
( n = n' & f . n = Ball x',(1 / (n' + 1)) ) )

deffunc H1( Element of NAT ) -> Element of K10(the carrier of M) = Ball x',(1 / $1);
defpred S1[ Element of NAT ] means $1 <> 0 ;
thus B = { (Ball x',(1 / n)) where n is Element of NAT : n <> 0 } ; :: thesis: ( B is countable & ex f being Function of NAT ,B st
for n being set st n in NAT holds
ex n' being Element of NAT st
( n = n' & f . n = Ball x',(1 / (n' + 1)) ) )

{ H1(n) where n is Element of NAT : S1[n] } is countable from CARD_4:sch 1();
hence B is countable ; :: thesis: ex f being Function of NAT ,B st
for n being set st n in NAT holds
ex n' being Element of NAT st
( n = n' & f . n = Ball x',(1 / (n' + 1)) )

defpred S2[ set , set ] means ex n' being Element of NAT st
( $1 = n' & $2 = Ball x',(1 / (n' + 1)) );
A15: for n being set st n in NAT holds
ex O being set st
( O in B & S2[n,O] )
proof
let n be set ; :: thesis: ( n in NAT implies ex O being set st
( O in B & S2[n,O] ) )

assume n in NAT ; :: thesis: ex O being set st
( O in B & S2[n,O] )

then reconsider n' = n as Element of NAT ;
reconsider O = Ball x',(1 / (n' + 1)) as set ;
take O ; :: thesis: ( O in B & S2[n,O] )
thus O in B ; :: thesis: S2[n,O]
take n' ; :: thesis: ( n = n' & O = Ball x',(1 / (n' + 1)) )
thus n = n' ; :: thesis: O = Ball x',(1 / (n' + 1))
thus O = Ball x',(1 / (n' + 1)) ; :: thesis: verum
end;
consider f being Function such that
A16: dom f = NAT and
A17: rng f c= B and
A18: for n being set st n in NAT holds
S2[n,f . n] from WELLORD2:sch 1(A15);
reconsider f = f as Function of NAT ,B by A16, A17, FUNCT_2:4;
take f ; :: thesis: for n being set st n in NAT holds
ex n' being Element of NAT st
( n = n' & f . n = Ball x',(1 / (n' + 1)) )

thus for n being set st n in NAT holds
ex n' being Element of NAT st
( n = n' & f . n = Ball x',(1 / (n' + 1)) ) by A18; :: thesis: verum