:: TDLAT_1 semantic presentation

theorem Th1: :: TDLAT_1:1
for b1 being TopSpace
for b2, b3 being Subset of b1 holds
( b2 \/ b3 = [#] b1 iff b2 ` c= b3 )
proof end;

theorem Th2: :: TDLAT_1:2
for b1 being TopSpace
for b2, b3 being Subset of b1 holds
( b2 misses b3 iff b3 c= b2 ` )
proof end;

theorem Th3: :: TDLAT_1:3
for b1 being TopSpace
for b2 being Subset of b1 holds Cl (Int (Cl b2)) c= Cl b2
proof end;

theorem Th4: :: TDLAT_1:4
for b1 being TopSpace
for b2 being Subset of b1 holds Int b2 c= Int (Cl (Int b2))
proof end;

theorem Th5: :: TDLAT_1:5
for b1 being TopSpace
for b2 being Subset of b1 holds Int (Cl b2) = Int (Cl (Int (Cl b2)))
proof end;

theorem Th6: :: TDLAT_1:6
for b1 being TopSpace
for b2, b3 being Subset of b1 st ( b2 is closed or b3 is closed ) holds
(Cl (Int b2)) \/ (Cl (Int b3)) = Cl (Int (b2 \/ b3))
proof end;

theorem Th7: :: TDLAT_1:7
for b1 being TopSpace
for b2, b3 being Subset of b1 st ( b2 is open or b3 is open ) holds
(Int (Cl b2)) /\ (Int (Cl b3)) = Int (Cl (b2 /\ b3))
proof end;

theorem Th8: :: TDLAT_1:8
for b1 being TopSpace
for b2 being Subset of b1 holds Int (b2 /\ (Cl (b2 ` ))) = {} b1
proof end;

theorem Th9: :: TDLAT_1:9
for b1 being TopSpace
for b2 being Subset of b1 holds Cl (b2 \/ (Int (b2 ` ))) = [#] b1
proof end;

theorem Th10: :: TDLAT_1:10
for b1 being TopSpace
for b2, b3 being Subset of b1 holds (Int (Cl (b2 \/ ((Int (Cl b3)) \/ b3)))) \/ (b2 \/ ((Int (Cl b3)) \/ b3)) = (Int (Cl (b2 \/ b3))) \/ (b2 \/ b3)
proof end;

theorem Th11: :: TDLAT_1:11
for b1 being TopSpace
for b2, b3 being Subset of b1 holds (Int (Cl (((Int (Cl b2)) \/ b2) \/ b3))) \/ (((Int (Cl b2)) \/ b2) \/ b3) = (Int (Cl (b2 \/ b3))) \/ (b2 \/ b3) by Th10;

theorem Th12: :: TDLAT_1:12
for b1 being TopSpace
for b2, b3 being Subset of b1 holds (Cl (Int (b2 /\ ((Cl (Int b3)) /\ b3)))) /\ (b2 /\ ((Cl (Int b3)) /\ b3)) = (Cl (Int (b2 /\ b3))) /\ (b2 /\ b3)
proof end;

theorem Th13: :: TDLAT_1:13
for b1 being TopSpace
for b2, b3 being Subset of b1 holds (Cl (Int (((Cl (Int b2)) /\ b2) /\ b3))) /\ (((Cl (Int b2)) /\ b2) /\ b3) = (Cl (Int (b2 /\ b3))) /\ (b2 /\ b3) by Th12;

theorem Th14: :: TDLAT_1:14
for b1 being TopSpace holds {} b1 is condensed
proof end;

theorem Th15: :: TDLAT_1:15
for b1 being TopSpace holds [#] b1 is condensed
proof end;

theorem Th16: :: TDLAT_1:16
for b1 being TopSpace
for b2 being Subset of b1 st b2 is condensed holds
b2 ` is condensed
proof end;

theorem Th17: :: TDLAT_1:17
for b1 being TopSpace
for b2, b3 being Subset of b1 st b2 is condensed & b3 is condensed holds
( (Int (Cl (b2 \/ b3))) \/ (b2 \/ b3) is condensed & (Cl (Int (b2 /\ b3))) /\ (b2 /\ b3) is condensed )
proof end;

theorem Th18: :: TDLAT_1:18
for b1 being TopSpace holds {} b1 is closed_condensed
proof end;

theorem Th19: :: TDLAT_1:19
for b1 being TopSpace holds [#] b1 is closed_condensed
proof end;

theorem Th20: :: TDLAT_1:20
for b1 being TopSpace holds {} b1 is open_condensed
proof end;

theorem Th21: :: TDLAT_1:21
for b1 being TopSpace holds [#] b1 is open_condensed
proof end;

theorem Th22: :: TDLAT_1:22
for b1 being TopSpace
for b2 being Subset of b1 holds Cl (Int b2) is closed_condensed
proof end;

theorem Th23: :: TDLAT_1:23
for b1 being TopSpace
for b2 being Subset of b1 holds Int (Cl b2) is open_condensed
proof end;

theorem Th24: :: TDLAT_1:24
for b1 being TopSpace
for b2 being Subset of b1 st b2 is condensed holds
Cl b2 is closed_condensed
proof end;

theorem Th25: :: TDLAT_1:25
for b1 being TopSpace
for b2 being Subset of b1 st b2 is condensed holds
Int b2 is open_condensed
proof end;

theorem Th26: :: TDLAT_1:26
for b1 being TopSpace
for b2 being Subset of b1 st b2 is condensed holds
Cl (b2 ` ) is closed_condensed
proof end;

theorem Th27: :: TDLAT_1:27
for b1 being TopSpace
for b2 being Subset of b1 st b2 is condensed holds
Int (b2 ` ) is open_condensed
proof end;

theorem Th28: :: TDLAT_1:28
for b1 being TopSpace
for b2, b3, b4 being Subset of b1 st b2 is closed_condensed & b3 is closed_condensed & b4 is closed_condensed holds
Cl (Int (b2 /\ (Cl (Int (b3 /\ b4))))) = Cl (Int ((Cl (Int (b2 /\ b3))) /\ b4))
proof end;

theorem Th29: :: TDLAT_1:29
for b1 being TopSpace
for b2, b3, b4 being Subset of b1 st b2 is open_condensed & b3 is open_condensed & b4 is open_condensed holds
Int (Cl (b2 \/ (Int (Cl (b3 \/ b4))))) = Int (Cl ((Int (Cl (b2 \/ b3))) \/ b4))
proof end;

definition
let c1 be TopStruct ;
func Domains_of c1 -> Subset-Family of a1 equals :: TDLAT_1:def 1
{ b1 where B is Subset of a1 : b1 is condensed } ;
coherence
{ b1 where B is Subset of c1 : b1 is condensed } is Subset-Family of c1
proof end;
end;

:: deftheorem Def1 defines Domains_of TDLAT_1:def 1 :
for b1 being TopStruct holds Domains_of b1 = { b2 where B is Subset of b1 : b2 is condensed } ;

registration
let c1 be TopSpace;
cluster Domains_of a1 -> non empty ;
coherence
not Domains_of c1 is empty
proof end;
end;

definition
let c1 be TopSpace;
func Domains_Union c1 -> BinOp of Domains_of a1 means :Def2: :: TDLAT_1:def 2
for b1, b2 being Element of Domains_of a1 holds a2 . b1,b2 = (Int (Cl (b1 \/ b2))) \/ (b1 \/ b2);
existence
ex b1 being BinOp of Domains_of c1 st
for b2, b3 being Element of Domains_of c1 holds b1 . b2,b3 = (Int (Cl (b2 \/ b3))) \/ (b2 \/ b3)
proof end;
uniqueness
for b1, b2 being BinOp of Domains_of c1 st ( for b3, b4 being Element of Domains_of c1 holds b1 . b3,b4 = (Int (Cl (b3 \/ b4))) \/ (b3 \/ b4) ) & ( for b3, b4 being Element of Domains_of c1 holds b2 . b3,b4 = (Int (Cl (b3 \/ b4))) \/ (b3 \/ b4) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def2 defines Domains_Union TDLAT_1:def 2 :
for b1 being TopSpace
for b2 being BinOp of Domains_of b1 holds
( b2 = Domains_Union b1 iff for b3, b4 being Element of Domains_of b1 holds b2 . b3,b4 = (Int (Cl (b3 \/ b4))) \/ (b3 \/ b4) );

notation
let c1 be TopSpace;
synonym D-Union c1 for Domains_Union c1;
end;

definition
let c1 be TopSpace;
func Domains_Meet c1 -> BinOp of Domains_of a1 means :Def3: :: TDLAT_1:def 3
for b1, b2 being Element of Domains_of a1 holds a2 . b1,b2 = (Cl (Int (b1 /\ b2))) /\ (b1 /\ b2);
existence
ex b1 being BinOp of Domains_of c1 st
for b2, b3 being Element of Domains_of c1 holds b1 . b2,b3 = (Cl (Int (b2 /\ b3))) /\ (b2 /\ b3)
proof end;
uniqueness
for b1, b2 being BinOp of Domains_of c1 st ( for b3, b4 being Element of Domains_of c1 holds b1 . b3,b4 = (Cl (Int (b3 /\ b4))) /\ (b3 /\ b4) ) & ( for b3, b4 being Element of Domains_of c1 holds b2 . b3,b4 = (Cl (Int (b3 /\ b4))) /\ (b3 /\ b4) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def3 defines Domains_Meet TDLAT_1:def 3 :
for b1 being TopSpace
for b2 being BinOp of Domains_of b1 holds
( b2 = Domains_Meet b1 iff for b3, b4 being Element of Domains_of b1 holds b2 . b3,b4 = (Cl (Int (b3 /\ b4))) /\ (b3 /\ b4) );

notation
let c1 be TopSpace;
synonym D-Meet c1 for Domains_Meet c1;
end;

theorem Th30: :: TDLAT_1:30
for b1 being TopSpace holds LattStr(# (Domains_of b1),(D-Union b1),(D-Meet b1) #) is C_Lattice
proof end;

definition
let c1 be TopSpace;
func Domains_Lattice c1 -> C_Lattice equals :: TDLAT_1:def 4
LattStr(# (Domains_of a1),(Domains_Union a1),(Domains_Meet a1) #);
coherence
LattStr(# (Domains_of c1),(Domains_Union c1),(Domains_Meet c1) #) is C_Lattice
by Th30;
end;

:: deftheorem Def4 defines Domains_Lattice TDLAT_1:def 4 :
for b1 being TopSpace holds Domains_Lattice b1 = LattStr(# (Domains_of b1),(Domains_Union b1),(Domains_Meet b1) #);

definition
let c1 be TopStruct ;
func Closed_Domains_of c1 -> Subset-Family of a1 equals :: TDLAT_1:def 5
{ b1 where B is Subset of a1 : b1 is closed_condensed } ;
coherence
{ b1 where B is Subset of c1 : b1 is closed_condensed } is Subset-Family of c1
proof end;
end;

:: deftheorem Def5 defines Closed_Domains_of TDLAT_1:def 5 :
for b1 being TopStruct holds Closed_Domains_of b1 = { b2 where B is Subset of b1 : b2 is closed_condensed } ;

registration
let c1 be TopSpace;
cluster Closed_Domains_of a1 -> non empty ;
coherence
not Closed_Domains_of c1 is empty
proof end;
end;

theorem Th31: :: TDLAT_1:31
for b1 being TopSpace holds Closed_Domains_of b1 c= Domains_of b1 ;

definition
let c1 be TopSpace;
func Closed_Domains_Union c1 -> BinOp of Closed_Domains_of a1 means :Def6: :: TDLAT_1:def 6
for b1, b2 being Element of Closed_Domains_of a1 holds a2 . b1,b2 = b1 \/ b2;
existence
ex b1 being BinOp of Closed_Domains_of c1 st
for b2, b3 being Element of Closed_Domains_of c1 holds b1 . b2,b3 = b2 \/ b3
proof end;
uniqueness
for b1, b2 being BinOp of Closed_Domains_of c1 st ( for b3, b4 being Element of Closed_Domains_of c1 holds b1 . b3,b4 = b3 \/ b4 ) & ( for b3, b4 being Element of Closed_Domains_of c1 holds b2 . b3,b4 = b3 \/ b4 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def6 defines Closed_Domains_Union TDLAT_1:def 6 :
for b1 being TopSpace
for b2 being BinOp of Closed_Domains_of b1 holds
( b2 = Closed_Domains_Union b1 iff for b3, b4 being Element of Closed_Domains_of b1 holds b2 . b3,b4 = b3 \/ b4 );

notation
let c1 be TopSpace;
synonym CLD-Union c1 for Closed_Domains_Union c1;
end;

theorem Th32: :: TDLAT_1:32
for b1 being TopSpace
for b2, b3 being Element of Closed_Domains_of b1 holds (CLD-Union b1) . b2,b3 = (D-Union b1) . b2,b3
proof end;

definition
let c1 be TopSpace;
func Closed_Domains_Meet c1 -> BinOp of Closed_Domains_of a1 means :Def7: :: TDLAT_1:def 7
for b1, b2 being Element of Closed_Domains_of a1 holds a2 . b1,b2 = Cl (Int (b1 /\ b2));
existence
ex b1 being BinOp of Closed_Domains_of c1 st
for b2, b3 being Element of Closed_Domains_of c1 holds b1 . b2,b3 = Cl (Int (b2 /\ b3))
proof end;
uniqueness
for b1, b2 being BinOp of Closed_Domains_of c1 st ( for b3, b4 being Element of Closed_Domains_of c1 holds b1 . b3,b4 = Cl (Int (b3 /\ b4)) ) & ( for b3, b4 being Element of Closed_Domains_of c1 holds b2 . b3,b4 = Cl (Int (b3 /\ b4)) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def7 defines Closed_Domains_Meet TDLAT_1:def 7 :
for b1 being TopSpace
for b2 being BinOp of Closed_Domains_of b1 holds
( b2 = Closed_Domains_Meet b1 iff for b3, b4 being Element of Closed_Domains_of b1 holds b2 . b3,b4 = Cl (Int (b3 /\ b4)) );

notation
let c1 be TopSpace;
synonym CLD-Meet c1 for Closed_Domains_Meet c1;
end;

theorem Th33: :: TDLAT_1:33
for b1 being TopSpace
for b2, b3 being Element of Closed_Domains_of b1 holds (CLD-Meet b1) . b2,b3 = (D-Meet b1) . b2,b3
proof end;

theorem Th34: :: TDLAT_1:34
for b1 being TopSpace holds LattStr(# (Closed_Domains_of b1),(CLD-Union b1),(CLD-Meet b1) #) is B_Lattice
proof end;

definition
let c1 be TopSpace;
func Closed_Domains_Lattice c1 -> B_Lattice equals :: TDLAT_1:def 8
LattStr(# (Closed_Domains_of a1),(Closed_Domains_Union a1),(Closed_Domains_Meet a1) #);
coherence
LattStr(# (Closed_Domains_of c1),(Closed_Domains_Union c1),(Closed_Domains_Meet c1) #) is B_Lattice
by Th34;
end;

:: deftheorem Def8 defines Closed_Domains_Lattice TDLAT_1:def 8 :
for b1 being TopSpace holds Closed_Domains_Lattice b1 = LattStr(# (Closed_Domains_of b1),(Closed_Domains_Union b1),(Closed_Domains_Meet b1) #);

definition
let c1 be TopStruct ;
func Open_Domains_of c1 -> Subset-Family of a1 equals :: TDLAT_1:def 9
{ b1 where B is Subset of a1 : b1 is open_condensed } ;
coherence
{ b1 where B is Subset of c1 : b1 is open_condensed } is Subset-Family of c1
proof end;
end;

:: deftheorem Def9 defines Open_Domains_of TDLAT_1:def 9 :
for b1 being TopStruct holds Open_Domains_of b1 = { b2 where B is Subset of b1 : b2 is open_condensed } ;

registration
let c1 be TopSpace;
cluster Open_Domains_of a1 -> non empty ;
coherence
not Open_Domains_of c1 is empty
proof end;
end;

theorem Th35: :: TDLAT_1:35
for b1 being TopSpace holds Open_Domains_of b1 c= Domains_of b1 ;

definition
let c1 be TopSpace;
func Open_Domains_Union c1 -> BinOp of Open_Domains_of a1 means :Def10: :: TDLAT_1:def 10
for b1, b2 being Element of Open_Domains_of a1 holds a2 . b1,b2 = Int (Cl (b1 \/ b2));
existence
ex b1 being BinOp of Open_Domains_of c1 st
for b2, b3 being Element of Open_Domains_of c1 holds b1 . b2,b3 = Int (Cl (b2 \/ b3))
proof end;
uniqueness
for b1, b2 being BinOp of Open_Domains_of c1 st ( for b3, b4 being Element of Open_Domains_of c1 holds b1 . b3,b4 = Int (Cl (b3 \/ b4)) ) & ( for b3, b4 being Element of Open_Domains_of c1 holds b2 . b3,b4 = Int (Cl (b3 \/ b4)) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def10 defines Open_Domains_Union TDLAT_1:def 10 :
for b1 being TopSpace
for b2 being BinOp of Open_Domains_of b1 holds
( b2 = Open_Domains_Union b1 iff for b3, b4 being Element of Open_Domains_of b1 holds b2 . b3,b4 = Int (Cl (b3 \/ b4)) );

notation
let c1 be TopSpace;
synonym OPD-Union c1 for Open_Domains_Union c1;
end;

theorem Th36: :: TDLAT_1:36
for b1 being TopSpace
for b2, b3 being Element of Open_Domains_of b1 holds (OPD-Union b1) . b2,b3 = (D-Union b1) . b2,b3
proof end;

definition
let c1 be TopSpace;
func Open_Domains_Meet c1 -> BinOp of Open_Domains_of a1 means :Def11: :: TDLAT_1:def 11
for b1, b2 being Element of Open_Domains_of a1 holds a2 . b1,b2 = b1 /\ b2;
existence
ex b1 being BinOp of Open_Domains_of c1 st
for b2, b3 being Element of Open_Domains_of c1 holds b1 . b2,b3 = b2 /\ b3
proof end;
uniqueness
for b1, b2 being BinOp of Open_Domains_of c1 st ( for b3, b4 being Element of Open_Domains_of c1 holds b1 . b3,b4 = b3 /\ b4 ) & ( for b3, b4 being Element of Open_Domains_of c1 holds b2 . b3,b4 = b3 /\ b4 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def11 defines Open_Domains_Meet TDLAT_1:def 11 :
for b1 being TopSpace
for b2 being BinOp of Open_Domains_of b1 holds
( b2 = Open_Domains_Meet b1 iff for b3, b4 being Element of Open_Domains_of b1 holds b2 . b3,b4 = b3 /\ b4 );

notation
let c1 be TopSpace;
synonym OPD-Meet c1 for Open_Domains_Meet c1;
end;

theorem Th37: :: TDLAT_1:37
for b1 being TopSpace
for b2, b3 being Element of Open_Domains_of b1 holds (OPD-Meet b1) . b2,b3 = (D-Meet b1) . b2,b3
proof end;

theorem Th38: :: TDLAT_1:38
for b1 being TopSpace holds LattStr(# (Open_Domains_of b1),(OPD-Union b1),(OPD-Meet b1) #) is B_Lattice
proof end;

definition
let c1 be TopSpace;
func Open_Domains_Lattice c1 -> B_Lattice equals :: TDLAT_1:def 12
LattStr(# (Open_Domains_of a1),(Open_Domains_Union a1),(Open_Domains_Meet a1) #);
coherence
LattStr(# (Open_Domains_of c1),(Open_Domains_Union c1),(Open_Domains_Meet c1) #) is B_Lattice
by Th38;
end;

:: deftheorem Def12 defines Open_Domains_Lattice TDLAT_1:def 12 :
for b1 being TopSpace holds Open_Domains_Lattice b1 = LattStr(# (Open_Domains_of b1),(Open_Domains_Union b1),(Open_Domains_Meet b1) #);

theorem Th39: :: TDLAT_1:39
for b1 being TopSpace holds CLD-Union b1 = (D-Union b1) || (Closed_Domains_of b1)
proof end;

theorem Th40: :: TDLAT_1:40
for b1 being TopSpace holds CLD-Meet b1 = (D-Meet b1) || (Closed_Domains_of b1)
proof end;

theorem Th41: :: TDLAT_1:41
for b1 being TopSpace holds Closed_Domains_Lattice b1 is SubLattice of Domains_Lattice b1
proof end;

theorem Th42: :: TDLAT_1:42
for b1 being TopSpace holds OPD-Union b1 = (D-Union b1) || (Open_Domains_of b1)
proof end;

theorem Th43: :: TDLAT_1:43
for b1 being TopSpace holds OPD-Meet b1 = (D-Meet b1) || (Open_Domains_of b1)
proof end;

theorem Th44: :: TDLAT_1:44
for b1 being TopSpace holds Open_Domains_Lattice b1 is SubLattice of Domains_Lattice b1
proof end;