:: NAGATA_1 semantic presentation

Lemma1: for b1, b2, b3 being Real st b1 >= 0 & b2 >= 0 & b1 + b2 < b3 holds
( b1 < b3 & b2 < b3 )
proof end;

Lemma2: for b1, b2, b3, b4 being Real holds abs (b1 - b4) <= ((abs (b1 - b2)) + (abs (b2 - b3))) + (abs (b3 - b4))
proof end;

definition
let c1 be TopSpace;
let c2 be Subset-Family of c1;
attr a2 is discrete means :Def1: :: NAGATA_1:def 1
for b1 being Point of a1 ex b2 being open Subset of a1 st
( b1 in b2 & ( for b3, b4 being Subset of a1 st b3 in a2 & b4 in a2 & b2 meets b3 & b2 meets b4 holds
b3 = b4 ) );
end;

:: deftheorem Def1 defines discrete NAGATA_1:def 1 :
for b1 being TopSpace
for b2 being Subset-Family of b1 holds
( b2 is discrete iff for b3 being Point of b1 ex b4 being open Subset of b1 st
( b3 in b4 & ( for b5, b6 being Subset of b1 st b5 in b2 & b6 in b2 & b4 meets b5 & b4 meets b6 holds
b5 = b6 ) ) );

registration
let c1 be non empty TopSpace;
cluster discrete Element of bool (bool the carrier of a1);
existence
ex b1 being Subset-Family of c1 st b1 is discrete
proof end;
end;

registration
let c1 be non empty TopSpace;
cluster empty discrete Element of bool (bool the carrier of a1);
existence
ex b1 being Subset-Family of c1 st
( b1 is empty & b1 is discrete )
proof end;
end;

theorem Th1: :: NAGATA_1:1
for b1 being non empty TopSpace
for b2 being Subset-Family of b1 st ex b3 being Subset of b1 st b2 = {b3} holds
b2 is discrete
proof end;

theorem Th2: :: NAGATA_1:2
for b1 being non empty TopSpace
for b2, b3 being Subset-Family of b1 st b2 c= b3 & b3 is discrete holds
b2 is discrete
proof end;

theorem Th3: :: NAGATA_1:3
for b1 being non empty TopSpace
for b2, b3 being Subset-Family of b1 st b2 is discrete holds
b2 /\ b3 is discrete
proof end;

theorem Th4: :: NAGATA_1:4
for b1 being non empty TopSpace
for b2, b3 being Subset-Family of b1 st b2 is discrete holds
b2 \ b3 is discrete
proof end;

theorem Th5: :: NAGATA_1:5
for b1 being non empty TopSpace
for b2, b3, b4 being Subset-Family of b1 st b2 is discrete & b3 is discrete & INTERSECTION b2,b3 = b4 holds
b4 is discrete
proof end;

theorem Th6: :: NAGATA_1:6
for b1 being non empty TopSpace
for b2 being Subset-Family of b1
for b3, b4 being Subset of b1 st b2 is discrete & b3 in b2 & b4 in b2 & not b3 = b4 holds
b3 misses b4
proof end;

theorem Th7: :: NAGATA_1:7
for b1 being non empty TopSpace
for b2 being Subset-Family of b1 st b2 is discrete holds
for b3 being Point of b1 ex b4 being open Subset of b1 st
( b3 in b4 & (INTERSECTION {b4},b2) \ {{} } is trivial )
proof end;

theorem Th8: :: NAGATA_1:8
for b1 being non empty TopSpace
for b2 being Subset-Family of b1 holds
( b2 is discrete iff ( ( for b3 being Point of b1 ex b4 being open Subset of b1 st
( b3 in b4 & (INTERSECTION {b4},b2) \ {{} } is trivial ) ) & ( for b3, b4 being Subset of b1 st b3 in b2 & b4 in b2 & not b3 = b4 holds
b3 misses b4 ) ) )
proof end;

Lemma8: for b1 being non empty TopSpace
for b2 being open Subset of b1
for b3 being Subset of b1 st b2 meets Cl b3 holds
b2 meets b3
proof end;

registration
let c1 be non empty TopSpace;
let c2 be discrete Subset-Family of c1;
cluster clf a2 -> discrete ;
coherence
clf c2 is discrete
proof end;
end;

Lemma9: for b1 being non empty TopSpace
for b2 being Subset-Family of b1
for b3 being Subset of b1 st b3 in b2 holds
Cl b3 c= Cl (union b2)
proof end;

theorem Th9: :: NAGATA_1:9
for b1 being non empty TopSpace
for b2 being Subset-Family of b1 st b2 is discrete holds
for b3, b4 being Subset of b1 st b3 in b2 & b4 in b2 holds
Cl (b3 /\ b4) = (Cl b3) /\ (Cl b4)
proof end;

theorem Th10: :: NAGATA_1:10
for b1 being non empty TopSpace
for b2 being Subset-Family of b1 st b2 is discrete holds
Cl (union b2) = union (clf b2)
proof end;

theorem Th11: :: NAGATA_1:11
for b1 being non empty TopSpace
for b2 being Subset-Family of b1 st b2 is discrete holds
b2 is locally_finite
proof end;

definition
let c1 be TopSpace;
mode FamilySequence of a1 is Function of NAT , bool (bool the carrier of a1);
end;

definition
let c1 be non empty TopSpace;
let c2 be FamilySequence of c1;
let c3 be Nat;
redefine func . as c2 . c3 -> Subset-Family of a1;
coherence
c2 . c3 is Subset-Family of c1
proof end;
end;

definition
let c1 be non empty TopSpace;
let c2 be FamilySequence of c1;
redefine func Union as Union c2 -> Subset-Family of a1;
coherence
Union c2 is Subset-Family of c1
proof end;
end;

definition
let c1 be non empty TopSpace;
let c2 be FamilySequence of c1;
attr a2 is sigma_discrete means :Def2: :: NAGATA_1:def 2
for b1 being Nat holds a2 . b1 is discrete;
end;

:: deftheorem Def2 defines sigma_discrete NAGATA_1:def 2 :
for b1 being non empty TopSpace
for b2 being FamilySequence of b1 holds
( b2 is sigma_discrete iff for b3 being Nat holds b2 . b3 is discrete );

Lemma12: for b1 being non empty TopSpace ex b2 being FamilySequence of b1 st b2 is sigma_discrete
proof end;

registration
let c1 be non empty TopSpace;
cluster sigma_discrete Relation of NAT , bool (bool the carrier of a1);
existence
ex b1 being FamilySequence of c1 st b1 is sigma_discrete
by Lemma12;
end;

definition
let c1 be non empty TopSpace;
let c2 be FamilySequence of c1;
attr a2 is sigma_locally_finite means :Def3: :: NAGATA_1:def 3
for b1 being Nat holds a2 . b1 is locally_finite;
end;

:: deftheorem Def3 defines sigma_locally_finite NAGATA_1:def 3 :
for b1 being non empty TopSpace
for b2 being FamilySequence of b1 holds
( b2 is sigma_locally_finite iff for b3 being Nat holds b2 . b3 is locally_finite );

definition
let c1 be non empty TopSpace;
let c2 be Subset-Family of c1;
attr a2 is sigma_discrete means :Def4: :: NAGATA_1:def 4
ex b1 being sigma_discrete FamilySequence of a1 st a2 = Union b1;
end;

:: deftheorem Def4 defines sigma_discrete NAGATA_1:def 4 :
for b1 being non empty TopSpace
for b2 being Subset-Family of b1 holds
( b2 is sigma_discrete iff ex b3 being sigma_discrete FamilySequence of b1 st b2 = Union b3 );

notation
let c1 be set ;
antonym uncountable c1 for countable c1;
end;

registration
cluster uncountable -> non empty set ;
coherence
for b1 being set st b1 is uncountable holds
not b1 is empty
by CARD_4:def 1;
end;

registration
let c1 be non empty TopSpace;
cluster sigma_locally_finite Relation of NAT , bool (bool the carrier of a1);
existence
ex b1 being FamilySequence of c1 st b1 is sigma_locally_finite
proof end;
end;

theorem Th12: :: NAGATA_1:12
for b1 being non empty TopSpace
for b2 being FamilySequence of b1 st b2 is sigma_discrete holds
b2 is sigma_locally_finite
proof end;

theorem Th13: :: NAGATA_1:13
for b1 being uncountable set ex b2 being Subset-Family of (1TopSp [:b1,b1:]) st
( b2 is locally_finite & not b2 is sigma_discrete )
proof end;

definition
let c1 be non empty TopSpace;
let c2 be FamilySequence of c1;
attr a2 is Basis_sigma_discrete means :: NAGATA_1:def 5
( a2 is sigma_discrete & Union a2 is Basis of a1 );
end;

:: deftheorem Def5 defines Basis_sigma_discrete NAGATA_1:def 5 :
for b1 being non empty TopSpace
for b2 being FamilySequence of b1 holds
( b2 is Basis_sigma_discrete iff ( b2 is sigma_discrete & Union b2 is Basis of b1 ) );

definition
let c1 be non empty TopSpace;
let c2 be FamilySequence of c1;
attr a2 is Basis_sigma_locally_finite means :Def6: :: NAGATA_1:def 6
( a2 is sigma_locally_finite & Union a2 is Basis of a1 );
end;

:: deftheorem Def6 defines Basis_sigma_locally_finite NAGATA_1:def 6 :
for b1 being non empty TopSpace
for b2 being FamilySequence of b1 holds
( b2 is Basis_sigma_locally_finite iff ( b2 is sigma_locally_finite & Union b2 is Basis of b1 ) );

theorem Th14: :: NAGATA_1:14
for b1 being non empty MetrStruct
for b2 being real number st b1 is non empty MetrSpace holds
for b3 being Element of b1 holds ([#] b1) \ (cl_Ball b3,b2) in Family_open_set b1
proof end;

theorem Th15: :: NAGATA_1:15
for b1 being non empty TopSpace st b1 is metrizable holds
( b1 is_T3 & b1 is_T1 )
proof end;

theorem Th16: :: NAGATA_1:16
for b1 being non empty TopSpace st b1 is metrizable holds
ex b2 being FamilySequence of b1 st b2 is Basis_sigma_locally_finite
proof end;

Lemma17: for b1 being non empty TopSpace
for b2 being open Subset of b1
for b3 being Subset of b1 st b3 is closed & b2 is open holds
b2 \ b3 is open
proof end;

theorem Th17: :: NAGATA_1:17
for b1 being non empty TopSpace
for b2 being Function of NAT , bool the carrier of b1 st ( for b3 being Nat holds b2 . b3 is open ) holds
Union b2 is open
proof end;

theorem Th18: :: NAGATA_1:18
for b1 being non empty TopSpace st ( for b2 being Subset of b1
for b3 being open Subset of b1 st b2 is closed & b3 is open & b2 c= b3 holds
ex b4 being Function of NAT , bool the carrier of b1 st
( b2 c= Union b4 & Union b4 c= b3 & ( for b5 being Nat holds
( Cl (b4 . b5) c= b3 & b4 . b5 is open ) ) ) ) holds
b1 is_T4
proof end;

theorem Th19: :: NAGATA_1:19
for b1 being non empty TopSpace st b1 is_T3 holds
for b2 being FamilySequence of b1 st Union b2 is Basis of b1 holds
for b3 being Subset of b1
for b4 being Point of b1 st b3 is open & b4 in b3 holds
ex b5 being Subset of b1 st
( b4 in b5 & Cl b5 c= b3 & b5 in Union b2 )
proof end;

theorem Th20: :: NAGATA_1:20
for b1 being non empty TopSpace st b1 is_T3 & b1 is_T1 & ex b2 being FamilySequence of b1 st b2 is Basis_sigma_locally_finite holds
b1 is_T4
proof end;

Lemma21: for b1 being Real
for b2 being Point of RealSpace st b1 > 0 holds
b2 in Ball b2,b1
proof end;

definition
let c1 be non empty TopSpace;
let c2, c3 be RealMap of c1;
deffunc H1( Element of c1) -> Element of REAL = (c2 . a1) + (c3 . a1);
func c2 + c3 -> RealMap of a1 means :Def7: :: NAGATA_1:def 7
for b1 being Element of a1 holds a4 . b1 = (a2 . b1) + (a3 . b1);
existence
ex b1 being RealMap of c1 st
for b2 being Element of c1 holds b1 . b2 = (c2 . b2) + (c3 . b2)
proof end;
uniqueness
for b1, b2 being RealMap of c1 st ( for b3 being Element of c1 holds b1 . b3 = (c2 . b3) + (c3 . b3) ) & ( for b3 being Element of c1 holds b2 . b3 = (c2 . b3) + (c3 . b3) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def7 defines + NAGATA_1:def 7 :
for b1 being non empty TopSpace
for b2, b3, b4 being RealMap of b1 holds
( b4 = b2 + b3 iff for b5 being Element of b1 holds b4 . b5 = (b2 . b5) + (b3 . b5) );

theorem Th21: :: NAGATA_1:21
for b1 being non empty TopSpace
for b2 being RealMap of b1 st b2 is continuous holds
for b3 being RealMap of [:b1,b1:] st ( for b4, b5 being Element of b1 holds b3 . [b4,b5] = abs ((b2 . b4) - (b2 . b5)) ) holds
b3 is continuous
proof end;

theorem Th22: :: NAGATA_1:22
for b1 being non empty TopSpace
for b2, b3 being RealMap of b1 st b2 is continuous & b3 is continuous holds
b2 + b3 is continuous
proof end;

theorem Th23: :: NAGATA_1:23
for b1 being non empty TopSpace
for b2 being BinOp of Funcs the carrier of b1,REAL st ( for b3, b4 being RealMap of b1 holds b2 . b3,b4 = b3 + b4 ) holds
( b2 has_a_unity & b2 is commutative & b2 is associative )
proof end;

theorem Th24: :: NAGATA_1:24
for b1 being non empty TopSpace
for b2 being BinOp of Funcs the carrier of b1,REAL st ( for b3, b4 being RealMap of b1 holds b2 . b3,b4 = b3 + b4 ) holds
for b3 being Element of Funcs the carrier of b1,REAL st b3 is_a_unity_wrt b2 holds
b3 is continuous
proof end;

definition
let c1, c2 be non empty TopSpace;
let c3 be Function of the carrier of c1, bool the carrier of c1;
let c4 be Function of the carrier of c1, Funcs the carrier of c1,the carrier of c2;
func c4 Toler c3 -> Function of a1,a2 means :Def8: :: NAGATA_1:def 8
for b1 being Point of a1 holds a5 . b1 = (a4 . b1) . b1;
existence
ex b1 being Function of c1,c2 st
for b2 being Point of c1 holds b1 . b2 = (c4 . b2) . b2
proof end;
uniqueness
for b1, b2 being Function of c1,c2 st ( for b3 being Point of c1 holds b1 . b3 = (c4 . b3) . b3 ) & ( for b3 being Point of c1 holds b2 . b3 = (c4 . b3) . b3 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def8 defines Toler NAGATA_1:def 8 :
for b1, b2 being non empty TopSpace
for b3 being Function of the carrier of b1, bool the carrier of b1
for b4 being Function of the carrier of b1, Funcs the carrier of b1,the carrier of b2
for b5 being Function of b1,b2 holds
( b5 = b4 Toler b3 iff for b6 being Point of b1 holds b5 . b6 = (b4 . b6) . b6 );

theorem Th25: :: NAGATA_1:25
for b1 being non empty TopSpace
for b2 being BinOp of Funcs the carrier of b1,REAL st ( for b3, b4 being RealMap of b1 holds b2 . b3,b4 = b3 + b4 ) holds
for b3 being FinSequence of Funcs the carrier of b1,REAL st ( for b4 being Nat st 0 <> b4 & b4 <= len b3 holds
b3 . b4 is continuous RealMap of b1 ) holds
b2 "**" b3 is continuous RealMap of b1
proof end;

theorem Th26: :: NAGATA_1:26
for b1, b2 being non empty TopSpace
for b3 being Function of the carrier of b1, Funcs the carrier of b1,the carrier of b2 st ( for b4 being Point of b1 holds b3 . b4 is continuous Function of b1,b2 ) holds
for b4 being Function of the carrier of b1, bool the carrier of b1 st ( for b5 being Point of b1 holds
( b5 in b4 . b5 & b4 . b5 is open & ( for b6, b7 being Point of b1 st b6 in b4 . b7 holds
(b3 . b6) . b6 = (b3 . b7) . b6 ) ) ) holds
b3 Toler b4 is continuous
proof end;

definition
let c1 be set ;
let c2 be Real;
let c3 be Function of c1, REAL ;
deffunc H1( Element of c1) -> set = min c2,(c3 . a1);
func min c2,c3 -> Function of a1, REAL means :Def9: :: NAGATA_1:def 9
for b1 being set st b1 in a1 holds
a4 . b1 = min a2,(a3 . b1);
existence
ex b1 being Function of c1, REAL st
for b2 being set st b2 in c1 holds
b1 . b2 = min c2,(c3 . b2)
proof end;
uniqueness
for b1, b2 being Function of c1, REAL st ( for b3 being set st b3 in c1 holds
b1 . b3 = min c2,(c3 . b3) ) & ( for b3 being set st b3 in c1 holds
b2 . b3 = min c2,(c3 . b3) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def9 defines min NAGATA_1:def 9 :
for b1 being set
for b2 being Real
for b3, b4 being Function of b1, REAL holds
( b4 = min b2,b3 iff for b5 being set st b5 in b1 holds
b4 . b5 = min b2,(b3 . b5) );

theorem Th27: :: NAGATA_1:27
for b1 being non empty TopSpace
for b2 being Real
for b3 being RealMap of b1 st b3 is continuous holds
min b2,b3 is continuous
proof end;

definition
let c1 be set ;
let c2 be Function of [:c1,c1:], REAL ;
pred c2 is_a_pseudometric_of c1 means :Def10: :: NAGATA_1:def 10
( a2 is Reflexive & a2 is symmetric & a2 is triangle );
end;

:: deftheorem Def10 defines is_a_pseudometric_of NAGATA_1:def 10 :
for b1 being set
for b2 being Function of [:b1,b1:], REAL holds
( b2 is_a_pseudometric_of b1 iff ( b2 is Reflexive & b2 is symmetric & b2 is triangle ) );

Lemma29: for b1 being set
for b2 being Function of [:b1,b1:], REAL holds
( b2 is_a_pseudometric_of b1 iff for b3, b4, b5 being Element of b1 holds
( b2 . b3,b3 = 0 & b2 . b3,b4 = b2 . b4,b3 & b2 . b3,b5 <= (b2 . b3,b4) + (b2 . b4,b5) ) )
proof end;

theorem Th28: :: NAGATA_1:28
for b1 being set
for b2 being Function of [:b1,b1:], REAL holds
( b2 is_a_pseudometric_of b1 iff for b3, b4, b5 being Element of b1 holds
( b2 . b3,b3 = 0 & b2 . b3,b5 <= (b2 . b3,b4) + (b2 . b5,b4) ) )
proof end;

Lemma31: for b1 being Real
for b2 being non empty set
for b3 being Function of [:b2,b2:], REAL
for b4, b5 being Element of b2 holds (min b1,b3) . b4,b5 = min b1,(b3 . b4,b5)
proof end;

theorem Th29: :: NAGATA_1:29
for b1 being set
for b2 being Function of [:b1,b1:], REAL st b2 is_a_pseudometric_of b1 holds
for b3, b4 being Element of b1 holds b2 . b3,b4 >= 0
proof end;

theorem Th30: :: NAGATA_1:30
for b1 being non empty TopSpace
for b2 being Real
for b3 being Function of [:the carrier of b1,the carrier of b1:], REAL st b2 > 0 & b3 is_a_pseudometric_of the carrier of b1 holds
min b2,b3 is_a_pseudometric_of the carrier of b1
proof end;

theorem Th31: :: NAGATA_1:31
for b1 being non empty TopSpace
for b2 being Real
for b3 being Function of [:the carrier of b1,the carrier of b1:], REAL st b2 > 0 & b3 is_metric_of the carrier of b1 holds
min b2,b3 is_metric_of the carrier of b1
proof end;