:: NAGATA_1 semantic presentation

Lemma1: for b1, b2, b3 being Real holds
( b1 >= 0 & b2 >= 0 & b1 + b2 < b3 implies ( 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 holds
ex b2 being open Subset of a1 st
( b1 in b2 & ( for b3, b4 being Subset of a1 holds
( b3 in a2 & b4 in a2 & b2 meets b3 & b2 meets b4 implies 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 holds
ex b4 being open Subset of b1 st
( b3 in b4 & ( for b5, b6 being Subset of b1 holds
( b5 in b2 & b6 in b2 & b4 meets b5 & b4 meets b6 implies 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 holds
( ex b3 being Subset of b1 st b2 = {b3} implies b2 is discrete )
proof end;

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

theorem Th3: :: NAGATA_1:3
for b1 being non empty TopSpace
for b2, b3 being Subset-Family of b1 holds
( b2 is discrete implies 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 holds
( b2 is discrete implies 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 holds
( b2 is discrete & b3 is discrete & INTERSECTION b2,b3 = b4 implies 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 holds
not ( b2 is discrete & b3 in b2 & b4 in b2 & not b3 = b4 & not b3 misses b4 )
proof end;

theorem Th7: :: NAGATA_1:7
for b1 being non empty TopSpace
for b2 being Subset-Family of b1 holds
( b2 is discrete implies for b3 being Point of b1 holds
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 holds
ex b4 being open Subset of b1 st
( b3 in b4 & (INTERSECTION {b4},b2) \ {{} .} is trivial ) ) & ( for b3, b4 being Subset of b1 holds
not ( b3 in b2 & b4 in b2 & not b3 = b4 & not 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 holds
not ( b2 meets Cl b3 & not 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 holds
( b3 in b2 implies 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 holds
( b2 is discrete implies for b3, b4 being Subset of b1 holds
( b3 in b2 & b4 in b2 implies 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 holds
( b2 is discrete implies 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 holds
( b2 is discrete implies b2 is locally_finite )
proof end;

definition
let c1 be TopSpace;
mode FamilySequence 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 holds
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 holds
not ( b1 is uncountable & 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 holds
( b2 is sigma_discrete implies b2 is sigma_locally_finite )
proof end;

theorem Th13: :: NAGATA_1:13
for b1 being uncountable set holds
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 holds
( b1 is non empty MetrSpace implies 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 holds
( b1 is metrizable implies ( b1 is_T3 & b1 is_T1 ) )
proof end;

theorem Th16: :: NAGATA_1:16
for b1 being non empty TopSpace holds
not ( b1 is metrizable & ( for b2 being FamilySequence of b1 holds
not 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 holds
( b3 is closed & b2 is open implies 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 holds
( ( for b3 being Nat holds b2 . b3 is open ) implies Union b2 is open )
proof end;

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

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

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

Lemma21: for b1 being Real
for b2 being Point of RealSpace holds
( b1 > 0 implies 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 holds
( ( 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) ) implies 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 holds
( b2 is continuous implies for b3 being RealMap of [:b1,b1:] holds
( ( for b4, b5 being Element of b1 holds b3 . b4,b5 = abs ((b2 . b4) - (b2 . b5)) ) implies b3 is continuous ) )
proof end;

theorem Th22: :: NAGATA_1:22
for b1 being non empty TopSpace
for b2, b3 being RealMap of b1 holds
( b2 is continuous & b3 is continuous implies 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 holds
( ( for b3, b4 being RealMap of b1 holds b2 . b3,b4 = b3 + b4 ) implies ( 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 holds
( ( for b3, b4 being RealMap of b1 holds b2 . b3,b4 = b3 + b4 ) implies for b3 being Element of Funcs the carrier of b1,REAL holds
( b3 is_a_unity_wrt b2 implies b3 is continuous ) )
proof end;

definition
let c1, c2 be non empty set ;
let c3 be Function of c1, Funcs c1,c2;
func c3 Toler -> Function of a1,a2 means :Def8: :: NAGATA_1:def 8
for b1 being Element of a1 holds a4 . b1 = (a3 . b1) . b1;
existence
ex b1 being Function of c1,c2 st
for b2 being Element of c1 holds b1 . b2 = (c3 . b2) . b2
proof end;
uniqueness
for b1, b2 being Function of c1,c2 holds
( ( for b3 being Element of c1 holds b1 . b3 = (c3 . b3) . b3 ) & ( for b3 being Element of c1 holds b2 . b3 = (c3 . b3) . b3 ) implies b1 = b2 )
proof end;
end;

:: deftheorem Def8 defines Toler NAGATA_1:def 8 :
for b1, b2 being non empty set
for b3 being Function of b1, Funcs b1,b2
for b4 being Function of b1,b2 holds
( b4 = b3 Toler iff for b5 being Element of b1 holds b4 . b5 = (b3 . b5) . b5 );

theorem Th25: :: NAGATA_1:25
for b1 being non empty TopSpace
for b2 being BinOp of Funcs the carrier of b1,REAL holds
( ( for b3, b4 being RealMap of b1 holds b2 . b3,b4 = b3 + b4 ) implies for b3 being FinSequence of Funcs the carrier of b1,REAL holds
( ( for b4 being Nat holds
( 0 <> b4 & b4 <= len b3 implies b3 . b4 is continuous RealMap of b1 ) ) implies 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 holds
( ( for b4 being Point of b1 holds
b3 . b4 is continuous Function of b1,b2 ) implies for b4 being Function of the carrier of b1, bool the carrier of b1 holds
( ( for b5 being Point of b1 holds
( b5 in b4 . b5 & b4 . b5 is open & ( for b6, b7 being Point of b1 holds
( b6 in b4 . b7 implies (b3 . b6) . b6 = (b3 . b7) . b6 ) ) ) ) implies b3 Toler 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 holds
( b1 in a1 implies a4 . b1 = min a2,(a3 . b1) );
existence
ex b1 being Function of c1, REAL st
for b2 being set holds
( b2 in c1 implies b1 . b2 = min c2,(c3 . b2) )
proof end;
uniqueness
for b1, b2 being Function of c1, REAL holds
( ( for b3 being set holds
( b3 in c1 implies b1 . b3 = min c2,(c3 . b3) ) ) & ( for b3 being set holds
( b3 in c1 implies b2 . b3 = min c2,(c3 . b3) ) ) implies 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 holds
( b5 in b1 implies 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 holds
( b3 is continuous implies 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 holds
( b2 is_a_pseudometric_of b1 implies 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 holds
( b2 > 0 & b3 is_a_pseudometric_of the carrier of b1 implies 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 holds
( b2 > 0 & b3 is_metric_of the carrier of b1 implies min b2,b3 is_metric_of the carrier of b1 )
proof end;