:: PRE_TOPC semantic presentation

definition
attr a1 is strict;
struct TopStruct -> 1-sorted ;
aggr TopStruct(# carrier, topology #) -> TopStruct ;
sel topology c1 -> Subset-Family of the carrier of a1;
end;

definition
let c1 be TopStruct ;
attr a1 is TopSpace-like means :Def1: :: PRE_TOPC:def 1
( the carrier of a1 in the topology of a1 & ( for b1 being Subset-Family of a1 st b1 c= the topology of a1 holds
union b1 in the topology of a1 ) & ( for b1, b2 being Subset of a1 st b1 in the topology of a1 & b2 in the topology of a1 holds
b1 /\ b2 in the topology of a1 ) );
end;

:: deftheorem Def1 defines TopSpace-like PRE_TOPC:def 1 :
for b1 being TopStruct holds
( b1 is TopSpace-like iff ( the carrier of b1 in the topology of b1 & ( for b2 being Subset-Family of b1 st b2 c= the topology of b1 holds
union b2 in the topology of b1 ) & ( for b2, b3 being Subset of b1 st b2 in the topology of b1 & b3 in the topology of b1 holds
b2 /\ b3 in the topology of b1 ) ) );

registration
cluster non empty strict TopSpace-like TopStruct ;
existence
ex b1 being TopStruct st
( not b1 is empty & b1 is strict & b1 is TopSpace-like )
proof end;
end;

definition
mode TopSpace is TopSpace-like TopStruct ;
end;

definition
let c1 be 1-sorted ;
mode Point of a1 is Element of a1;
end;

theorem Th1: :: PRE_TOPC:1
canceled;

theorem Th2: :: PRE_TOPC:2
canceled;

theorem Th3: :: PRE_TOPC:3
canceled;

theorem Th4: :: PRE_TOPC:4
canceled;

theorem Th5: :: PRE_TOPC:5
for b1 being TopSpace holds {} in the topology of b1
proof end;

definition
let c1 be 1-sorted ;
func {} c1 -> Subset of a1 equals :: PRE_TOPC:def 2
{} ;
coherence
{} is Subset of c1
proof end;
func [#] c1 -> Subset of a1 equals :: PRE_TOPC:def 3
the carrier of a1;
coherence
the carrier of c1 is Subset of c1
proof end;
end;

:: deftheorem Def2 defines {} PRE_TOPC:def 2 :
for b1 being 1-sorted holds {} b1 = {} ;

:: deftheorem Def3 defines [#] PRE_TOPC:def 3 :
for b1 being 1-sorted holds [#] b1 = the carrier of b1;

registration
let c1 be 1-sorted ;
cluster {} a1 -> empty ;
coherence
{} c1 is empty
;
end;

theorem Th6: :: PRE_TOPC:6
canceled;

theorem Th7: :: PRE_TOPC:7
canceled;

theorem Th8: :: PRE_TOPC:8
canceled;

theorem Th9: :: PRE_TOPC:9
canceled;

theorem Th10: :: PRE_TOPC:10
canceled;

theorem Th11: :: PRE_TOPC:11
canceled;

theorem Th12: :: PRE_TOPC:12
for b1 being 1-sorted holds [#] b1 = the carrier of b1 ;

registration
let c1 be non empty 1-sorted ;
cluster [#] a1 -> non empty ;
coherence
not [#] c1 is empty
;
end;

theorem Th13: :: PRE_TOPC:13
for b1 being non empty 1-sorted
for b2 being Point of b1 holds b2 in [#] b1 ;

theorem Th14: :: PRE_TOPC:14
for b1 being 1-sorted
for b2 being Subset of b1 holds b2 c= [#] b1 ;

theorem Th15: :: PRE_TOPC:15
for b1 being 1-sorted
for b2 being Subset of b1 holds b2 /\ ([#] b1) = b2 by XBOOLE_1:28;

theorem Th16: :: PRE_TOPC:16
for b1 being 1-sorted
for b2 being set st b2 c= [#] b1 holds
b2 is Subset of b1 ;

theorem Th17: :: PRE_TOPC:17
for b1 being 1-sorted
for b2 being Subset of b1 holds b2 ` = ([#] b1) \ b2 by SUBSET_1:def 5;

theorem Th18: :: PRE_TOPC:18
for b1 being 1-sorted
for b2 being Subset of b1 holds b2 \/ (b2 ` ) = [#] b1
proof end;

theorem Th19: :: PRE_TOPC:19
canceled;

theorem Th20: :: PRE_TOPC:20
canceled;

theorem Th21: :: PRE_TOPC:21
canceled;

theorem Th22: :: PRE_TOPC:22
for b1 being 1-sorted
for b2 being Subset of b1 holds ([#] b1) \ (([#] b1) \ b2) = b2
proof end;

theorem Th23: :: PRE_TOPC:23
for b1 being 1-sorted
for b2 being Subset of b1 holds
( b2 <> [#] b1 iff ([#] b1) \ b2 <> {} )
proof end;

theorem Th24: :: PRE_TOPC:24
for b1 being 1-sorted
for b2, b3 being Subset of b1 st ([#] b1) \ b2 = b3 holds
[#] b1 = b2 \/ b3 by XBOOLE_1:45;

theorem Th25: :: PRE_TOPC:25
for b1 being 1-sorted
for b2, b3 being Subset of b1 st [#] b1 = b2 \/ b3 & b2 misses b3 holds
b3 = ([#] b1) \ b2
proof end;

theorem Th26: :: PRE_TOPC:26
canceled;

theorem Th27: :: PRE_TOPC:27
for b1 being 1-sorted holds [#] b1 = ({} b1) `
proof end;

definition
let c1 be TopStruct ;
let c2 be Subset of c1;
canceled;
attr a2 is open means :Def5: :: PRE_TOPC:def 5
a2 in the topology of a1;
end;

:: deftheorem Def4 PRE_TOPC:def 4 :
canceled;

:: deftheorem Def5 defines open PRE_TOPC:def 5 :
for b1 being TopStruct
for b2 being Subset of b1 holds
( b2 is open iff b2 in the topology of b1 );

definition
let c1 be TopStruct ;
let c2 be Subset of c1;
attr a2 is closed means :Def6: :: PRE_TOPC:def 6
([#] a1) \ a2 is open;
end;

:: deftheorem Def6 defines closed PRE_TOPC:def 6 :
for b1 being TopStruct
for b2 being Subset of b1 holds
( b2 is closed iff ([#] b1) \ b2 is open );

definition
let c1 be 1-sorted ;
let c2 be Subset-Family of c1;
canceled;
pred c2 is_a_cover_of c1 means :: PRE_TOPC:def 8
[#] a1 = union a2;
end;

:: deftheorem Def7 PRE_TOPC:def 7 :
canceled;

:: deftheorem Def8 defines is_a_cover_of PRE_TOPC:def 8 :
for b1 being 1-sorted
for b2 being Subset-Family of b1 holds
( b2 is_a_cover_of b1 iff [#] b1 = union b2 );

definition
let c1 be TopStruct ;
mode SubSpace of c1 -> TopStruct means :Def9: :: PRE_TOPC:def 9
( [#] a2 c= [#] a1 & ( for b1 being Subset of a2 holds
( b1 in the topology of a2 iff ex b2 being Subset of a1 st
( b2 in the topology of a1 & b1 = b2 /\ ([#] a2) ) ) ) );
existence
ex b1 being TopStruct st
( [#] b1 c= [#] c1 & ( for b2 being Subset of b1 holds
( b2 in the topology of b1 iff ex b3 being Subset of c1 st
( b3 in the topology of c1 & b2 = b3 /\ ([#] b1) ) ) ) )
proof end;
end;

:: deftheorem Def9 defines SubSpace PRE_TOPC:def 9 :
for b1, b2 being TopStruct holds
( b2 is SubSpace of b1 iff ( [#] b2 c= [#] b1 & ( for b3 being Subset of b2 holds
( b3 in the topology of b2 iff ex b4 being Subset of b1 st
( b4 in the topology of b1 & b3 = b4 /\ ([#] b2) ) ) ) ) );

Lemma10: for b1 being TopStruct holds TopStruct(# the carrier of b1,the topology of b1 #) is SubSpace of b1
proof end;

registration
let c1 be TopStruct ;
cluster strict SubSpace of a1;
existence
ex b1 being SubSpace of c1 st b1 is strict
proof end;
end;

registration
let c1 be non empty TopStruct ;
cluster non empty strict SubSpace of a1;
existence
ex b1 being SubSpace of c1 st
( b1 is strict & not b1 is empty )
proof end;
end;

registration
let c1 be TopSpace;
cluster -> TopSpace-like SubSpace of a1;
coherence
for b1 being SubSpace of c1 holds b1 is TopSpace-like
proof end;
end;

definition
let c1 be TopStruct ;
let c2 be Subset of c1;
func c1 | c2 -> strict SubSpace of a1 means :Def10: :: PRE_TOPC:def 10
[#] a3 = a2;
existence
ex b1 being strict SubSpace of c1 st [#] b1 = c2
proof end;
uniqueness
for b1, b2 being strict SubSpace of c1 st [#] b1 = c2 & [#] b2 = c2 holds
b1 = b2
proof end;
end;

:: deftheorem Def10 defines | PRE_TOPC:def 10 :
for b1 being TopStruct
for b2 being Subset of b1
for b3 being strict SubSpace of b1 holds
( b3 = b1 | b2 iff [#] b3 = b2 );

registration
let c1 be non empty TopStruct ;
let c2 be non empty Subset of c1;
cluster a1 | a2 -> non empty strict ;
coherence
not c1 | c2 is empty
proof end;
end;

registration
let c1 be TopSpace;
cluster strict TopSpace-like SubSpace of a1;
existence
ex b1 being SubSpace of c1 st
( b1 is TopSpace-like & b1 is strict )
proof end;
end;

registration
let c1 be TopSpace;
let c2 be Subset of c1;
cluster a1 | a2 -> strict TopSpace-like ;
coherence
c1 | c2 is TopSpace-like
;
end;

definition
let c1, c2 be 1-sorted ;
let c3 be Function of the carrier of c1,the carrier of c2;
let c4 be set ;
redefine func .: as c3 .: c4 -> Subset of a2;
coherence
c3 .: c4 is Subset of c2
proof end;
end;

definition
let c1, c2 be 1-sorted ;
let c3 be Function of the carrier of c1,the carrier of c2;
let c4 be set ;
redefine func " as c3 " c4 -> Subset of a1;
coherence
c3 " c4 is Subset of c1
proof end;
end;

definition
let c1, c2 be TopStruct ;
let c3 be Function of c1,c2;
canceled;
attr a3 is continuous means :: PRE_TOPC:def 12
for b1 being Subset of a2 st b1 is closed holds
a3 " b1 is closed;
end;

:: deftheorem Def11 PRE_TOPC:def 11 :
canceled;

:: deftheorem Def12 defines continuous PRE_TOPC:def 12 :
for b1, b2 being TopStruct
for b3 being Function of b1,b2 holds
( b3 is continuous iff for b4 being Subset of b2 st b4 is closed holds
b3 " b4 is closed );

theorem Th28: :: PRE_TOPC:28
canceled;

theorem Th29: :: PRE_TOPC:29
canceled;

theorem Th30: :: PRE_TOPC:30
canceled;

theorem Th31: :: PRE_TOPC:31
canceled;

theorem Th32: :: PRE_TOPC:32
canceled;

theorem Th33: :: PRE_TOPC:33
canceled;

theorem Th34: :: PRE_TOPC:34
canceled;

theorem Th35: :: PRE_TOPC:35
canceled;

theorem Th36: :: PRE_TOPC:36
canceled;

theorem Th37: :: PRE_TOPC:37
canceled;

theorem Th38: :: PRE_TOPC:38
canceled;

theorem Th39: :: PRE_TOPC:39
for b1 being TopStruct
for b2 being SubSpace of b1
for b3 being Subset of b2 holds b3 is Subset of b1
proof end;

theorem Th40: :: PRE_TOPC:40
canceled;

theorem Th41: :: PRE_TOPC:41
for b1 being TopStruct
for b2 being Subset of b1 st b2 <> {} b1 holds
ex b3 being Point of b1 st b3 in b2
proof end;

theorem Th42: :: PRE_TOPC:42
for b1 being TopSpace holds [#] b1 is closed
proof end;

registration
let c1 be TopSpace;
cluster [#] a1 -> closed ;
coherence
[#] c1 is closed
by Th42;
end;

registration
let c1 be TopSpace;
cluster closed Element of bool the carrier of a1;
existence
ex b1 being Subset of c1 st b1 is closed
proof end;
end;

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

theorem Th43: :: PRE_TOPC:43
for b1 being TopStruct
for b2 being SubSpace of b1
for b3 being Subset of b2 holds
( b3 is closed iff ex b4 being Subset of b1 st
( b4 is closed & b4 /\ ([#] b2) = b3 ) )
proof end;

theorem Th44: :: PRE_TOPC:44
for b1 being TopSpace
for b2 being Subset-Family of b1 st ( for b3 being Subset of b1 st b3 in b2 holds
b3 is closed ) holds
meet b2 is closed
proof end;

definition
let c1 be TopStruct ;
let c2 be Subset of c1;
func Cl c2 -> Subset of a1 means :Def13: :: PRE_TOPC:def 13
for b1 being set st b1 in the carrier of a1 holds
( b1 in a3 iff for b2 being Subset of a1 st b2 is open & b1 in b2 holds
a2 meets b2 );
existence
ex b1 being Subset of c1 st
for b2 being set st b2 in the carrier of c1 holds
( b2 in b1 iff for b3 being Subset of c1 st b3 is open & b2 in b3 holds
c2 meets b3 )
proof end;
uniqueness
for b1, b2 being Subset of c1 st ( for b3 being set st b3 in the carrier of c1 holds
( b3 in b1 iff for b4 being Subset of c1 st b4 is open & b3 in b4 holds
c2 meets b4 ) ) & ( for b3 being set st b3 in the carrier of c1 holds
( b3 in b2 iff for b4 being Subset of c1 st b4 is open & b3 in b4 holds
c2 meets b4 ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def13 defines Cl PRE_TOPC:def 13 :
for b1 being TopStruct
for b2, b3 being Subset of b1 holds
( b3 = Cl b2 iff for b4 being set st b4 in the carrier of b1 holds
( b4 in b3 iff for b5 being Subset of b1 st b5 is open & b4 in b5 holds
b2 meets b5 ) );

theorem Th45: :: PRE_TOPC:45
for b1 being TopStruct
for b2 being Subset of b1
for b3 being set st b3 in the carrier of b1 holds
( b3 in Cl b2 iff for b4 being Subset of b1 st b4 is closed & b2 c= b4 holds
b3 in b4 )
proof end;

theorem Th46: :: PRE_TOPC:46
for b1 being TopSpace
for b2 being Subset of b1 ex b3 being Subset-Family of b1 st
( ( for b4 being Subset of b1 holds
( b4 in b3 iff ( b4 is closed & b2 c= b4 ) ) ) & Cl b2 = meet b3 )
proof end;

theorem Th47: :: PRE_TOPC:47
for b1 being TopStruct
for b2 being SubSpace of b1
for b3 being Subset of b1
for b4 being Subset of b2 st b3 = b4 holds
Cl b4 = (Cl b3) /\ ([#] b2)
proof end;

theorem Th48: :: PRE_TOPC:48
for b1 being TopStruct
for b2 being Subset of b1 holds b2 c= Cl b2
proof end;

theorem Th49: :: PRE_TOPC:49
for b1 being TopStruct
for b2, b3 being Subset of b1 st b2 c= b3 holds
Cl b2 c= Cl b3
proof end;

theorem Th50: :: PRE_TOPC:50
for b1 being TopSpace
for b2, b3 being Subset of b1 holds Cl (b2 \/ b3) = (Cl b2) \/ (Cl b3)
proof end;

theorem Th51: :: PRE_TOPC:51
for b1 being TopStruct
for b2, b3 being Subset of b1 holds Cl (b2 /\ b3) c= (Cl b2) /\ (Cl b3)
proof end;

theorem Th52: :: PRE_TOPC:52
for b1 being TopStruct
for b2 being Subset of b1 holds
( ( b2 is closed implies Cl b2 = b2 ) & ( b1 is TopSpace-like & Cl b2 = b2 implies b2 is closed ) )
proof end;

theorem Th53: :: PRE_TOPC:53
for b1 being TopStruct
for b2 being Subset of b1 holds
( ( b2 is open implies Cl (([#] b1) \ b2) = ([#] b1) \ b2 ) & ( b1 is TopSpace-like & Cl (([#] b1) \ b2) = ([#] b1) \ b2 implies b2 is open ) )
proof end;

theorem Th54: :: PRE_TOPC:54
for b1 being TopStruct
for b2 being Subset of b1
for b3 being Point of b1 holds
( b3 in Cl b2 iff ( not b1 is empty & ( for b4 being Subset of b1 st b4 is open & b3 in b4 holds
b2 meets b4 ) ) )
proof end;