:: WAYBEL18 semantic presentation

theorem Th1: :: WAYBEL18:1
for b1, b2, b3, b4 being set holds
( b4 c= {b1,b2,b3} iff ( b4 = {} or b4 = {b1} or b4 = {b2} or b4 = {b3} or b4 = {b1,b2} or b4 = {b2,b3} or b4 = {b1,b3} or b4 = {b1,b2,b3} ) )
proof end;

Lemma2: for b1 being set
for b2, b3 being Function holds b2 " (b3 " b1) = (b3 * b2) " b1
proof end;

theorem Th2: :: WAYBEL18:2
for b1 being set
for b2, b3 being Subset-Family of b1 st ( b3 = b2 \ {{} } or b2 = b3 \/ {{} } ) holds
UniCl b2 = UniCl b3
proof end;

theorem Th3: :: WAYBEL18:3
for b1 being TopSpace
for b2 being Subset-Family of b1 holds
( b2 is Basis of b1 iff b2 \ {{} } is Basis of b1 )
proof end;

definition
let c1 be Relation;
attr a1 is TopSpace-yielding means :Def1: :: WAYBEL18:def 1
for b1 being set st b1 in rng a1 holds
b1 is TopStruct ;
end;

:: deftheorem Def1 defines TopSpace-yielding WAYBEL18:def 1 :
for b1 being Relation holds
( b1 is TopSpace-yielding iff for b2 being set st b2 in rng b1 holds
b2 is TopStruct );

registration
cluster TopSpace-yielding -> 1-sorted-yielding set ;
coherence
for b1 being Function st b1 is TopSpace-yielding holds
b1 is 1-sorted-yielding
proof end;
end;

registration
let c1 be set ;
cluster 1-sorted-yielding TopSpace-yielding ManySortedSet of a1;
existence
ex b1 being ManySortedSet of c1 st b1 is TopSpace-yielding
proof end;
end;

registration
let c1 be set ;
cluster non-Empty 1-sorted-yielding TopSpace-yielding ManySortedSet of a1;
existence
ex b1 being ManySortedSet of c1 st
( b1 is TopSpace-yielding & b1 is non-Empty )
proof end;
end;

definition
let c1 be non empty set ;
let c2 be TopSpace-yielding ManySortedSet of c1;
let c3 be Element of c1;
redefine func . as c2 . c3 -> TopStruct ;
coherence
c2 . c3 is TopStruct
proof end;
end;

definition
let c1 be set ;
let c2 be TopSpace-yielding ManySortedSet of c1;
func product_prebasis c2 -> Subset-Family of (product (Carrier a2)) means :Def2: :: WAYBEL18:def 2
for b1 being Subset of (product (Carrier a2)) holds
( b1 in a3 iff ex b2 being set ex b3 being TopStruct ex b4 being Subset of b3 st
( b2 in a1 & b4 is open & b3 = a2 . b2 & b1 = product ((Carrier a2) +* b2,b4) ) );
existence
ex b1 being Subset-Family of (product (Carrier c2)) st
for b2 being Subset of (product (Carrier c2)) holds
( b2 in b1 iff ex b3 being set ex b4 being TopStruct ex b5 being Subset of b4 st
( b3 in c1 & b5 is open & b4 = c2 . b3 & b2 = product ((Carrier c2) +* b3,b5) ) )
proof end;
uniqueness
for b1, b2 being Subset-Family of (product (Carrier c2)) st ( for b3 being Subset of (product (Carrier c2)) holds
( b3 in b1 iff ex b4 being set ex b5 being TopStruct ex b6 being Subset of b5 st
( b4 in c1 & b6 is open & b5 = c2 . b4 & b3 = product ((Carrier c2) +* b4,b6) ) ) ) & ( for b3 being Subset of (product (Carrier c2)) holds
( b3 in b2 iff ex b4 being set ex b5 being TopStruct ex b6 being Subset of b5 st
( b4 in c1 & b6 is open & b5 = c2 . b4 & b3 = product ((Carrier c2) +* b4,b6) ) ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def2 defines product_prebasis WAYBEL18:def 2 :
for b1 being set
for b2 being TopSpace-yielding ManySortedSet of b1
for b3 being Subset-Family of (product (Carrier b2)) holds
( b3 = product_prebasis b2 iff for b4 being Subset of (product (Carrier b2)) holds
( b4 in b3 iff ex b5 being set ex b6 being TopStruct ex b7 being Subset of b6 st
( b5 in b1 & b7 is open & b6 = b2 . b5 & b4 = product ((Carrier b2) +* b5,b7) ) ) );

theorem Th4: :: WAYBEL18:4
for b1 being set
for b2 being Subset-Family of b1 holds TopStruct(# b1,(UniCl (FinMeetCl b2)) #) is TopSpace-like
proof end;

definition
let c1 be set ;
let c2 be non-Empty TopSpace-yielding ManySortedSet of c1;
func product c2 -> strict TopSpace means :Def3: :: WAYBEL18:def 3
( the carrier of a3 = product (Carrier a2) & product_prebasis a2 is prebasis of a3 );
existence
ex b1 being strict TopSpace st
( the carrier of b1 = product (Carrier c2) & product_prebasis c2 is prebasis of b1 )
proof end;
uniqueness
for b1, b2 being strict TopSpace st the carrier of b1 = product (Carrier c2) & product_prebasis c2 is prebasis of b1 & the carrier of b2 = product (Carrier c2) & product_prebasis c2 is prebasis of b2 holds
b1 = b2
proof end;
end;

:: deftheorem Def3 defines product WAYBEL18:def 3 :
for b1 being set
for b2 being non-Empty TopSpace-yielding ManySortedSet of b1
for b3 being strict TopSpace holds
( b3 = product b2 iff ( the carrier of b3 = product (Carrier b2) & product_prebasis b2 is prebasis of b3 ) );

registration
let c1 be set ;
let c2 be non-Empty TopSpace-yielding ManySortedSet of c1;
cluster product a2 -> non empty strict ;
coherence
not product c2 is empty
proof end;
end;

definition
let c1 be non empty set ;
let c2 be non-Empty TopSpace-yielding ManySortedSet of c1;
let c3 be Element of c1;
redefine func . as c2 . c3 -> non empty TopStruct ;
coherence
c2 . c3 is non empty TopStruct
proof end;
end;

registration
let c1 be set ;
let c2 be non-Empty TopSpace-yielding ManySortedSet of c1;
cluster product a2 -> non empty strict constituted-Functions ;
coherence
product c2 is constituted-Functions
proof end;
end;

definition
let c1 be non empty set ;
let c2 be non-Empty TopSpace-yielding ManySortedSet of c1;
let c3 be Element of (product c2);
let c4 be Element of c1;
redefine func . as c3 . c4 -> Element of (a2 . a4);
coherence
c3 . c4 is Element of (c2 . c4)
proof end;
end;

definition
let c1 be non empty set ;
let c2 be non-Empty TopSpace-yielding ManySortedSet of c1;
let c3 be Element of c1;
func proj c2,c3 -> Function of (product a2),(a2 . a3) equals :: WAYBEL18:def 4
proj (Carrier a2),a3;
coherence
proj (Carrier c2),c3 is Function of (product c2),(c2 . c3)
proof end;
end;

:: deftheorem Def4 defines proj WAYBEL18:def 4 :
for b1 being non empty set
for b2 being non-Empty TopSpace-yielding ManySortedSet of b1
for b3 being Element of b1 holds proj b2,b3 = proj (Carrier b2),b3;

theorem Th5: :: WAYBEL18:5
for b1 being non empty set
for b2 being non-Empty TopSpace-yielding ManySortedSet of b1
for b3 being Element of b1
for b4 being Subset of (b2 . b3) holds (proj b2,b3) " b4 = product ((Carrier b2) +* b3,b4)
proof end;

theorem Th6: :: WAYBEL18:6
for b1 being non empty set
for b2 being non-Empty TopSpace-yielding ManySortedSet of b1
for b3 being Element of b1 holds proj b2,b3 is continuous
proof end;

theorem Th7: :: WAYBEL18:7
for b1 being non empty TopSpace
for b2 being non empty set
for b3 being non-Empty TopSpace-yielding ManySortedSet of b2
for b4 being Function of b1,(product b3) holds
( b4 is continuous iff for b5 being Element of b2 holds (proj b3,b5) * b4 is continuous )
proof end;

definition
let c1 be TopStruct ;
attr a1 is injective means :Def5: :: WAYBEL18:def 5
for b1 being non empty TopSpace
for b2 being Function of b1,a1 st b2 is continuous holds
for b3 being non empty TopSpace st b1 is SubSpace of b3 holds
ex b4 being Function of b3,a1 st
( b4 is continuous & b4 | the carrier of b1 = b2 );
end;

:: deftheorem Def5 defines injective WAYBEL18:def 5 :
for b1 being TopStruct holds
( b1 is injective iff for b2 being non empty TopSpace
for b3 being Function of b2,b1 st b3 is continuous holds
for b4 being non empty TopSpace st b2 is SubSpace of b4 holds
ex b5 being Function of b4,b1 st
( b5 is continuous & b5 | the carrier of b2 = b3 ) );

theorem Th8: :: WAYBEL18:8
for b1 being non empty set
for b2 being non-Empty TopSpace-yielding ManySortedSet of b1 st ( for b3 being Element of b1 holds b2 . b3 is injective ) holds
product b2 is injective
proof end;

theorem Th9: :: WAYBEL18:9
for b1 being non empty TopSpace st b1 is injective holds
for b2 being non empty SubSpace of b1 st b2 is_a_retract_of b1 holds
b2 is injective
proof end;

definition
let c1 be 1-sorted ;
let c2 be TopStruct ;
let c3 be Function of c1,c2;
func Image c3 -> SubSpace of a2 equals :: WAYBEL18:def 6
a2 | (rng a3);
coherence
c2 | (rng c3) is SubSpace of c2
;
end;

:: deftheorem Def6 defines Image WAYBEL18:def 6 :
for b1 being 1-sorted
for b2 being TopStruct
for b3 being Function of b1,b2 holds Image b3 = b2 | (rng b3);

registration
let c1 be non empty 1-sorted ;
let c2 be non empty TopStruct ;
let c3 be Function of c1,c2;
cluster Image a3 -> non empty ;
coherence
not Image c3 is empty
proof end;
end;

theorem Th10: :: WAYBEL18:10
for b1 being 1-sorted
for b2 being TopStruct
for b3 being Function of b1,b2 holds the carrier of (Image b3) = rng b3
proof end;

definition
let c1 be 1-sorted ;
let c2 be non empty TopStruct ;
let c3 be Function of c1,c2;
func corestr c3 -> Function of a1,(Image a3) equals :: WAYBEL18:def 7
a3;
coherence
c3 is Function of c1,(Image c3)
proof end;
end;

:: deftheorem Def7 defines corestr WAYBEL18:def 7 :
for b1 being 1-sorted
for b2 being non empty TopStruct
for b3 being Function of b1,b2 holds corestr b3 = b3;

theorem Th11: :: WAYBEL18:11
for b1, b2 being non empty TopSpace
for b3 being Function of b1,b2 st b3 is continuous holds
corestr b3 is continuous
proof end;

registration
let c1 be 1-sorted ;
let c2 be non empty TopStruct ;
let c3 be Function of c1,c2;
cluster corestr a3 -> onto ;
coherence
corestr c3 is onto
proof end;
end;

definition
let c1, c2 be TopStruct ;
pred c1 is_Retract_of c2 means :: WAYBEL18:def 8
ex b1 being Function of a2,a2 st
( b1 is continuous & b1 * b1 = b1 & Image b1,a1 are_homeomorphic );
end;

:: deftheorem Def8 defines is_Retract_of WAYBEL18:def 8 :
for b1, b2 being TopStruct holds
( b1 is_Retract_of b2 iff ex b3 being Function of b2,b2 st
( b3 is continuous & b3 * b3 = b3 & Image b3,b1 are_homeomorphic ) );

theorem Th12: :: WAYBEL18:12
for b1, b2 being non empty TopSpace st b1 is injective holds
for b3 being Function of b1,b2 st corestr b3 is_homeomorphism holds
b1 is_Retract_of b2
proof end;

definition
func Sierpinski_Space -> strict TopStruct means :Def9: :: WAYBEL18:def 9
( the carrier of a1 = {0,1} & the topology of a1 = {{} ,{1},{0,1}} );
existence
ex b1 being strict TopStruct st
( the carrier of b1 = {0,1} & the topology of b1 = {{} ,{1},{0,1}} )
proof end;
uniqueness
for b1, b2 being strict TopStruct st the carrier of b1 = {0,1} & the topology of b1 = {{} ,{1},{0,1}} & the carrier of b2 = {0,1} & the topology of b2 = {{} ,{1},{0,1}} holds
b1 = b2
;
end;

:: deftheorem Def9 defines Sierpinski_Space WAYBEL18:def 9 :
for b1 being strict TopStruct holds
( b1 = Sierpinski_Space iff ( the carrier of b1 = {0,1} & the topology of b1 = {{} ,{1},{0,1}} ) );

registration
cluster Sierpinski_Space -> non empty strict TopSpace-like ;
coherence
( not Sierpinski_Space is empty & Sierpinski_Space is TopSpace-like )
proof end;
end;

Lemma18: Sierpinski_Space is discerning
proof end;

registration
cluster Sierpinski_Space -> non empty strict TopSpace-like discerning ;
coherence
Sierpinski_Space is discerning
by Lemma18;
end;

registration
cluster Sierpinski_Space -> non empty strict TopSpace-like discerning injective ;
coherence
Sierpinski_Space is injective
proof end;
end;

registration
let c1 be set ;
let c2 be non empty 1-sorted ;
cluster a1 --> a2 -> non-Empty ;
coherence
c1 --> c2 is non-Empty
proof end;
end;

registration
let c1 be set ;
let c2 be TopStruct ;
cluster a1 --> a2 -> 1-sorted-yielding TopSpace-yielding ;
coherence
c1 --> c2 is TopSpace-yielding
proof end;
end;

registration
let c1 be set ;
let c2 be reflexive RelStr ;
cluster a1 --> a2 -> reflexive-yielding ;
coherence
c1 --> c2 is reflexive-yielding
proof end;
end;

registration
let c1 be non empty set ;
let c2 be non empty antisymmetric RelStr ;
cluster product (a1 --> a2) -> antisymmetric ;
coherence
product (c1 --> c2) is antisymmetric
proof end;
end;

registration
let c1 be non empty set ;
let c2 be non empty transitive RelStr ;
cluster product (a1 --> a2) -> transitive ;
coherence
product (c1 --> c2) is transitive
proof end;
end;

theorem Th13: :: WAYBEL18:13
for b1 being Scott TopAugmentation of BoolePoset 1 holds the topology of b1 = the topology of Sierpinski_Space
proof end;

theorem Th14: :: WAYBEL18:14
for b1 being non empty set holds { (product ((Carrier (b1 --> Sierpinski_Space )) +* b2,{1})) where B is Element of b1 : verum } is prebasis of product (b1 --> Sierpinski_Space )
proof end;

registration
let c1 be non empty set ;
let c2 be complete LATTICE;
cluster product (a1 --> a2) -> transitive antisymmetric with_suprema complete ;
coherence
( product (c1 --> c2) is with_suprema & product (c1 --> c2) is complete )
proof end;
end;

registration
let c1 be non empty set ;
let c2 be lower-bounded algebraic LATTICE;
cluster product (a1 --> a2) -> transitive antisymmetric algebraic with_suprema complete ;
coherence
product (c1 --> c2) is algebraic
proof end;
end;

theorem Th15: :: WAYBEL18:15
for b1 being non empty set ex b2 being Function of (BoolePoset b1),(product (b1 --> (BoolePoset 1))) st
( b2 is isomorphic & ( for b3 being Subset of b1 holds b2 . b3 = chi b3,b1 ) )
proof end;

theorem Th16: :: WAYBEL18:16
for b1 being non empty set
for b2 being Scott TopAugmentation of product (b1 --> (BoolePoset 1)) holds the topology of b2 = the topology of (product (b1 --> Sierpinski_Space ))
proof end;

theorem Th17: :: WAYBEL18:17
for b1, b2 being non empty TopSpace st the carrier of b1 = the carrier of b2 & the topology of b1 = the topology of b2 & b1 is injective holds
b2 is injective
proof end;

theorem Th18: :: WAYBEL18:18
for b1 being non empty set
for b2 being Scott TopAugmentation of product (b1 --> (BoolePoset 1)) holds b2 is injective
proof end;

theorem Th19: :: WAYBEL18:19
for b1 being T_0-TopSpace ex b2 being non empty set ex b3 being Function of b1,(product (b2 --> Sierpinski_Space )) st corestr b3 is_homeomorphism
proof end;

theorem Th20: :: WAYBEL18:20
for b1 being T_0-TopSpace st b1 is injective holds
ex b2 being non empty set st b1 is_Retract_of product (b2 --> Sierpinski_Space )
proof end;