:: WAYBEL27 semantic presentation

definition
let c1 be Function;
attr a1 is uncurrying means :Def1: :: WAYBEL27:def 1
( ( for b1 being set st b1 in dom a1 holds
b1 is Function-yielding Function ) & ( for b1 being Function st b1 in dom a1 holds
a1 . b1 = uncurry b1 ) );
attr a1 is currying means :Def2: :: WAYBEL27:def 2
( ( for b1 being set st b1 in dom a1 holds
( b1 is Function & proj1 b1 is Relation ) ) & ( for b1 being Function st b1 in dom a1 holds
a1 . b1 = curry b1 ) );
attr a1 is commuting means :Def3: :: WAYBEL27:def 3
( ( for b1 being set st b1 in dom a1 holds
b1 is Function-yielding Function ) & ( for b1 being Function st b1 in dom a1 holds
a1 . b1 = commute b1 ) );
end;

:: deftheorem Def1 defines uncurrying WAYBEL27:def 1 :
for b1 being Function holds
( b1 is uncurrying iff ( ( for b2 being set st b2 in dom b1 holds
b2 is Function-yielding Function ) & ( for b2 being Function st b2 in dom b1 holds
b1 . b2 = uncurry b2 ) ) );

:: deftheorem Def2 defines currying WAYBEL27:def 2 :
for b1 being Function holds
( b1 is currying iff ( ( for b2 being set st b2 in dom b1 holds
( b2 is Function & proj1 b2 is Relation ) ) & ( for b2 being Function st b2 in dom b1 holds
b1 . b2 = curry b2 ) ) );

:: deftheorem Def3 defines commuting WAYBEL27:def 3 :
for b1 being Function holds
( b1 is commuting iff ( ( for b2 being set st b2 in dom b1 holds
b2 is Function-yielding Function ) & ( for b2 being Function st b2 in dom b1 holds
b1 . b2 = commute b2 ) ) );

registration
cluster empty -> uncurrying currying commuting set ;
coherence
for b1 being Function st b1 is empty holds
( b1 is uncurrying & b1 is currying & b1 is commuting )
proof end;
end;

registration
cluster uncurrying currying commuting set ;
existence
ex b1 being Function st
( b1 is uncurrying & b1 is currying & b1 is commuting )
proof end;
end;

registration
let c1 be uncurrying Function;
let c2 be set ;
cluster a1 | a2 -> uncurrying ;
coherence
c1 | c2 is uncurrying
proof end;
end;

registration
let c1 be currying Function;
let c2 be set ;
cluster a1 | a2 -> currying ;
coherence
c1 | c2 is currying
proof end;
end;

theorem Th1: :: WAYBEL27:1
for b1, b2, b3, b4 being set st b4 c= Funcs b1,(Funcs b2,b3) holds
ex b5 being ManySortedSet of b4 st
( b5 is uncurrying & rng b5 c= Funcs [:b1,b2:],b3 )
proof end;

theorem Th2: :: WAYBEL27:2
for b1, b2, b3, b4 being set st b4 c= Funcs [:b1,b2:],b3 holds
ex b5 being ManySortedSet of b4 st
( b5 is currying & ( ( b2 = {} implies b1 = {} ) implies rng b5 c= Funcs b1,(Funcs b2,b3) ) )
proof end;

registration
let c1, c2, c3 be set ;
cluster uncurrying ManySortedSet of Funcs a1,(Funcs a2,a3);
existence
ex b1 being ManySortedSet of Funcs c1,(Funcs c2,c3) st b1 is uncurrying
proof end;
cluster currying ManySortedSet of Funcs [:a1,a2:],a3;
existence
ex b1 being ManySortedSet of Funcs [:c1,c2:],c3 st b1 is currying
proof end;
end;

theorem Th3: :: WAYBEL27:3
for b1, b2 being non empty set
for b3 being set
for b4, b5 being commuting Function st dom b4 c= Funcs b1,(Funcs b2,b3) & rng b4 c= dom b5 holds
b5 * b4 = id (dom b4)
proof end;

theorem Th4: :: WAYBEL27:4
for b1 being non empty set
for b2, b3 being set
for b4 being uncurrying Function
for b5 being currying Function st dom b4 c= Funcs b2,(Funcs b1,b3) & rng b4 c= dom b5 holds
b5 * b4 = id (dom b4)
proof end;

theorem Th5: :: WAYBEL27:5
for b1, b2, b3 being set
for b4 being currying Function
for b5 being uncurrying Function st dom b4 c= Funcs [:b1,b2:],b3 & rng b4 c= dom b5 holds
b5 * b4 = id (dom b4)
proof end;

theorem Th6: :: WAYBEL27:6
for b1 being Function-yielding Function
for b2, b3 being set st b2 in dom (commute b1) holds
((commute b1) . b2) .: b3 c= pi (b1 .: b3),b2
proof end;

theorem Th7: :: WAYBEL27:7
for b1 being Function-yielding Function
for b2, b3 being set st ( for b4 being Function st b4 in b1 .: b3 holds
b2 in dom b4 ) holds
pi (b1 .: b3),b2 c= ((commute b1) . b2) .: b3
proof end;

theorem Th8: :: WAYBEL27:8
for b1, b2 being set
for b3 being Function st rng b3 c= Funcs b1,b2 holds
for b4, b5 being set st b4 in b1 holds
((commute b3) . b4) .: b5 = pi (b3 .: b5),b4
proof end;

theorem Th9: :: WAYBEL27:9
for b1 being Function
for b2, b3 being set st [:b3,{b2}:] c= dom b1 holds
pi ((curry b1) .: b3),b2 = b1 .: [:b3,{b2}:]
proof end;

registration
let c1 be set ;
let c2 be non empty functional set ;
cluster -> Function-yielding M5(a1,a2);
coherence
for b1 being Function of c1,c2 holds b1 is Function-yielding
proof end;
end;

registration
let c1 be constituted-Functions 1-sorted ;
cluster the carrier of a1 -> functional ;
coherence
the carrier of c1 is functional
proof end;
end;

registration
let c1 be set ;
let c2 be non empty RelStr ;
cluster a2 |^ a1 -> constituted-Functions ;
coherence
c2 |^ c1 is constituted-Functions
;
end;

registration
cluster strict complete constituted-Functions RelStr ;
existence
ex b1 being LATTICE st
( b1 is constituted-Functions & b1 is complete & b1 is strict )
proof end;
cluster non empty constituted-Functions 1-sorted ;
existence
ex b1 being 1-sorted st
( b1 is constituted-Functions & not b1 is empty )
proof end;
end;

registration
let c1 be non empty constituted-Functions RelStr ;
cluster non empty -> non empty constituted-Functions SubRelStr of a1;
coherence
for b1 being non empty SubRelStr of c1 holds b1 is constituted-Functions
proof end;
end;

theorem Th10: :: WAYBEL27:10
for b1, b2 being complete LATTICE
for b3 being idempotent Function of b2,b2
for b4 being Function of b1,(Image b3) holds b3 * b4 = b4
proof end;

theorem Th11: :: WAYBEL27:11
for b1, b2, b3 being non empty RelStr st b2 is SubRelStr of b3 holds
for b4 being Function of b1,b2
for b5 being Function of b1,b3 st b4 is monotone & b4 = b5 holds
b5 is monotone
proof end;

theorem Th12: :: WAYBEL27:12
for b1, b2, b3 being non empty RelStr st b2 is full SubRelStr of b3 holds
for b4 being Function of b1,b2
for b5 being Function of b1,b3 st b5 is monotone & b4 = b5 holds
b4 is monotone
proof end;

theorem Th13: :: WAYBEL27:13
for b1 being set
for b2 being Subset of b1 holds
( (chi b2,b1) " {1} = b2 & (chi b2,b1) " {0} = b1 \ b2 )
proof end;

definition
let c1 be non empty set ;
let c2 be non empty RelStr ;
let c3 be Element of (c2 |^ c1);
let c4 be Element of c1;
redefine func . as c3 . c4 -> Element of a2;
coherence
c3 . c4 is Element of c2
proof end;
end;

theorem Th14: :: WAYBEL27:14
for b1 being non empty set
for b2 being non empty RelStr
for b3, b4 being Element of (b2 |^ b1) holds
( b3 <= b4 iff for b5 being Element of b1 holds b3 . b5 <= b4 . b5 )
proof end;

theorem Th15: :: WAYBEL27:15
for b1 being set
for b2, b3 being non empty RelStr st RelStr(# the carrier of b2,the InternalRel of b2 #) = RelStr(# the carrier of b3,the InternalRel of b3 #) holds
b2 |^ b1 = b3 |^ b1
proof end;

theorem Th16: :: WAYBEL27:16
for b1, b2, b3, b4 being non empty TopSpace st TopStruct(# the carrier of b1,the topology of b1 #) = TopStruct(# the carrier of b2,the topology of b2 #) & TopStruct(# the carrier of b3,the topology of b3 #) = TopStruct(# the carrier of b4,the topology of b4 #) holds
oContMaps b1,b3 = oContMaps b2,b4
proof end;

theorem Th17: :: WAYBEL27:17
for b1 being set ex b2 being Function of (BoolePoset b1),((BoolePoset 1) |^ b1) st
( b2 is isomorphic & ( for b3 being Subset of b1 holds b2 . b3 = chi b3,b1 ) )
proof end;

theorem Th18: :: WAYBEL27:18
for b1 being set holds BoolePoset b1,(BoolePoset 1) |^ b1 are_isomorphic
proof end;

theorem Th19: :: WAYBEL27:19
for b1, b2 being non empty set
for b3 being non empty Poset
for b4 being non empty full SubRelStr of (b3 |^ b1) |^ b2
for b5 being non empty full SubRelStr of (b3 |^ b2) |^ b1
for b6 being Function of b4,b5 st b6 is commuting holds
b6 is monotone
proof end;

theorem Th20: :: WAYBEL27:20
for b1, b2 being non empty set
for b3 being non empty Poset
for b4 being non empty full SubRelStr of (b3 |^ b2) |^ b1
for b5 being non empty full SubRelStr of b3 |^ [:b1,b2:]
for b6 being Function of b4,b5 st b6 is uncurrying holds
b6 is monotone
proof end;

theorem Th21: :: WAYBEL27:21
for b1, b2 being non empty set
for b3 being non empty Poset
for b4 being non empty full SubRelStr of (b3 |^ b2) |^ b1
for b5 being non empty full SubRelStr of b3 |^ [:b1,b2:]
for b6 being Function of b5,b4 st b6 is currying holds
b6 is monotone
proof end;

definition
let c1 be non empty RelStr ;
let c2 be non empty reflexive antisymmetric RelStr ;
func UPS c1,c2 -> strict RelStr means :Def4: :: WAYBEL27:def 4
( a3 is full SubRelStr of a2 |^ the carrier of a1 & ( for b1 being set holds
( b1 in the carrier of a3 iff b1 is directed-sups-preserving Function of a1,a2 ) ) );
existence
ex b1 being strict RelStr st
( b1 is full SubRelStr of c2 |^ the carrier of c1 & ( for b2 being set holds
( b2 in the carrier of b1 iff b2 is directed-sups-preserving Function of c1,c2 ) ) )
proof end;
uniqueness
for b1, b2 being strict RelStr st b1 is full SubRelStr of c2 |^ the carrier of c1 & ( for b3 being set holds
( b3 in the carrier of b1 iff b3 is directed-sups-preserving Function of c1,c2 ) ) & b2 is full SubRelStr of c2 |^ the carrier of c1 & ( for b3 being set holds
( b3 in the carrier of b2 iff b3 is directed-sups-preserving Function of c1,c2 ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def4 defines UPS WAYBEL27:def 4 :
for b1 being non empty RelStr
for b2 being non empty reflexive antisymmetric RelStr
for b3 being strict RelStr holds
( b3 = UPS b1,b2 iff ( b3 is full SubRelStr of b2 |^ the carrier of b1 & ( for b4 being set holds
( b4 in the carrier of b3 iff b4 is directed-sups-preserving Function of b1,b2 ) ) ) );

registration
let c1 be non empty RelStr ;
let c2 be non empty reflexive antisymmetric RelStr ;
cluster UPS a1,a2 -> non empty strict reflexive antisymmetric constituted-Functions ;
coherence
( not UPS c1,c2 is empty & UPS c1,c2 is reflexive & UPS c1,c2 is antisymmetric & UPS c1,c2 is constituted-Functions )
proof end;
end;

registration
let c1 be non empty RelStr ;
let c2 be non empty Poset;
cluster UPS a1,a2 -> non empty strict reflexive transitive antisymmetric constituted-Functions ;
coherence
UPS c1,c2 is transitive
proof end;
end;

theorem Th22: :: WAYBEL27:22
for b1 being non empty RelStr
for b2 being non empty reflexive antisymmetric RelStr holds the carrier of (UPS b1,b2) c= Funcs the carrier of b1,the carrier of b2
proof end;

definition
let c1 be non empty RelStr ;
let c2 be non empty reflexive antisymmetric RelStr ;
let c3 be Element of (UPS c1,c2);
let c4 be Element of c1;
redefine func . as c3 . c4 -> Element of a2;
coherence
c3 . c4 is Element of c2
proof end;
end;

theorem Th23: :: WAYBEL27:23
for b1 being non empty RelStr
for b2 being non empty reflexive antisymmetric RelStr
for b3, b4 being Element of (UPS b1,b2) holds
( b3 <= b4 iff for b5 being Element of b1 holds b3 . b5 <= b4 . b5 )
proof end;

theorem Th24: :: WAYBEL27:24
for b1, b2 being Scott complete TopLattice holds UPS b1,b2 = SCMaps b1,b2
proof end;

theorem Th25: :: WAYBEL27:25
for b1, b2 being non empty RelStr
for b3, b4 being non empty reflexive antisymmetric RelStr st RelStr(# the carrier of b1,the InternalRel of b1 #) = RelStr(# the carrier of b2,the InternalRel of b2 #) & RelStr(# the carrier of b3,the InternalRel of b3 #) = RelStr(# the carrier of b4,the InternalRel of b4 #) holds
UPS b1,b3 = UPS b2,b4
proof end;

registration
let c1, c2 be complete LATTICE;
cluster UPS a1,a2 -> non empty strict reflexive transitive antisymmetric complete constituted-Functions ;
coherence
UPS c1,c2 is complete
proof end;
end;

theorem Th26: :: WAYBEL27:26
for b1, b2 being complete LATTICE holds UPS b1,b2 is sups-inheriting SubRelStr of b2 |^ the carrier of b1
proof end;

theorem Th27: :: WAYBEL27:27
for b1, b2 being complete LATTICE
for b3 being Subset of (UPS b1,b2) holds sup b3 = "\/" b3,(b2 |^ the carrier of b1)
proof end;

definition
let c1, c2, c3, c4 be non empty reflexive antisymmetric RelStr ;
let c5 be Function of c1,c2;
assume E30: c5 is directed-sups-preserving ;
let c6 be Function of c3,c4;
assume E31: c6 is directed-sups-preserving ;
func UPS c5,c6 -> Function of (UPS a2,a3),(UPS a1,a4) means :Def5: :: WAYBEL27:def 5
for b1 being directed-sups-preserving Function of a2,a3 holds a7 . b1 = (a6 * b1) * a5;
existence
ex b1 being Function of (UPS c2,c3),(UPS c1,c4) st
for b2 being directed-sups-preserving Function of c2,c3 holds b1 . b2 = (c6 * b2) * c5
proof end;
uniqueness
for b1, b2 being Function of (UPS c2,c3),(UPS c1,c4) st ( for b3 being directed-sups-preserving Function of c2,c3 holds b1 . b3 = (c6 * b3) * c5 ) & ( for b3 being directed-sups-preserving Function of c2,c3 holds b2 . b3 = (c6 * b3) * c5 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def5 defines UPS WAYBEL27:def 5 :
for b1, b2, b3, b4 being non empty reflexive antisymmetric RelStr
for b5 being Function of b1,b2 st b5 is directed-sups-preserving holds
for b6 being Function of b3,b4 st b6 is directed-sups-preserving holds
for b7 being Function of (UPS b2,b3),(UPS b1,b4) holds
( b7 = UPS b5,b6 iff for b8 being directed-sups-preserving Function of b2,b3 holds b7 . b8 = (b6 * b8) * b5 );

theorem Th28: :: WAYBEL27:28
for b1, b2, b3, b4, b5, b6 being non empty Poset
for b7 being directed-sups-preserving Function of b2,b3
for b8 being directed-sups-preserving Function of b1,b2
for b9 being directed-sups-preserving Function of b4,b5
for b10 being directed-sups-preserving Function of b5,b6 holds (UPS b8,b10) * (UPS b7,b9) = UPS (b7 * b8),(b10 * b9)
proof end;

theorem Th29: :: WAYBEL27:29
for b1, b2 being non empty reflexive antisymmetric RelStr holds UPS (id b1),(id b2) = id (UPS b1,b2)
proof end;

theorem Th30: :: WAYBEL27:30
for b1, b2, b3, b4 being complete LATTICE
for b5 being directed-sups-preserving Function of b1,b2
for b6 being directed-sups-preserving Function of b3,b4 holds UPS b5,b6 is directed-sups-preserving
proof end;

theorem Th31: :: WAYBEL27:31
Omega Sierpinski_Space is Scott
proof end;

theorem Th32: :: WAYBEL27:32
for b1 being Scott complete TopLattice holds oContMaps b1,Sierpinski_Space = UPS b1,(BoolePoset 1)
proof end;

theorem Th33: :: WAYBEL27:33
for b1 being complete LATTICE ex b2 being Function of (UPS b1,(BoolePoset 1)),(InclPoset (sigma b1)) st
( b2 is isomorphic & ( for b3 being directed-sups-preserving Function of b1,(BoolePoset 1) holds b2 . b3 = b3 " {1} ) )
proof end;

theorem Th34: :: WAYBEL27:34
for b1 being complete LATTICE holds UPS b1,(BoolePoset 1), InclPoset (sigma b1) are_isomorphic
proof end;

theorem Th35: :: WAYBEL27:35
for b1, b2, b3, b4 being complete LATTICE
for b5 being Function of b1,b2
for b6 being Function of b3,b4 st b5 is isomorphic & b6 is isomorphic holds
UPS b5,b6 is isomorphic
proof end;

theorem Th36: :: WAYBEL27:36
for b1, b2, b3, b4 being complete LATTICE st b1,b2 are_isomorphic & b3,b4 are_isomorphic holds
UPS b2,b3, UPS b1,b4 are_isomorphic
proof end;

theorem Th37: :: WAYBEL27:37
for b1, b2 being complete LATTICE
for b3 being directed-sups-preserving projection Function of b2,b2 holds Image (UPS (id b1),b3) = UPS b1,(Image b3)
proof end;

E40: now
let c1 be non empty set ;
let c2, c3 be non empty Poset;
let c4 be directed-sups-preserving Function of c2,(c3 |^ c1);
the carrier of (c3 |^ c1) = Funcs c1,the carrier of c3 by YELLOW_1:28;
then ( dom c4 = the carrier of c2 & rng c4 c= Funcs c1,the carrier of c3 ) by FUNCT_2:def 1;
hence c4 in Funcs the carrier of c2,(Funcs c1,the carrier of c3) by FUNCT_2:def 2;
then commute c4 in Funcs c1,(Funcs the carrier of c2,the carrier of c3) by FUNCT_6:85;
then ex b1 being Function st
( commute c4 = b1 & dom b1 = c1 & rng b1 c= Funcs the carrier of c2,the carrier of c3 ) by FUNCT_2:def 2;
hence ( rng (commute c4) c= Funcs the carrier of c2,the carrier of c3 & dom (commute c4) = c1 ) ;
end;

theorem Th38: :: WAYBEL27:38
for b1 being non empty set
for b2, b3 being non empty Poset
for b4 being directed-sups-preserving Function of b2,(b3 |^ b1)
for b5 being Element of b1 holds (commute b4) . b5 is directed-sups-preserving Function of b2,b3
proof end;

theorem Th39: :: WAYBEL27:39
for b1 being non empty set
for b2, b3 being non empty Poset
for b4 being directed-sups-preserving Function of b2,(b3 |^ b1) holds commute b4 is Function of b1,the carrier of (UPS b2,b3)
proof end;

theorem Th40: :: WAYBEL27:40
for b1 being non empty set
for b2, b3 being non empty Poset
for b4 being Function of b1,the carrier of (UPS b2,b3) holds commute b4 is directed-sups-preserving Function of b2,(b3 |^ b1)
proof end;

theorem Th41: :: WAYBEL27:41
for b1 being non empty set
for b2, b3 being non empty Poset ex b4 being Function of (UPS b2,(b3 |^ b1)),((UPS b2,b3) |^ b1) st
( b4 is commuting & b4 is isomorphic )
proof end;

theorem Th42: :: WAYBEL27:42
for b1 being non empty set
for b2, b3 being non empty Poset holds UPS b2,(b3 |^ b1),(UPS b2,b3) |^ b1 are_isomorphic
proof end;

theorem Th43: :: WAYBEL27:43
for b1, b2 being complete continuous LATTICE holds UPS b1,b2 is continuous
proof end;

theorem Th44: :: WAYBEL27:44
for b1, b2 being algebraic complete LATTICE holds UPS b1,b2 is algebraic
proof end;

theorem Th45: :: WAYBEL27:45
for b1, b2, b3 being complete LATTICE
for b4 being directed-sups-preserving Function of b1,(UPS b2,b3) holds uncurry b4 is directed-sups-preserving Function of [:b1,b2:],b3
proof end;

theorem Th46: :: WAYBEL27:46
for b1, b2, b3 being complete LATTICE
for b4 being directed-sups-preserving Function of [:b1,b2:],b3 holds curry b4 is directed-sups-preserving Function of b1,(UPS b2,b3)
proof end;

theorem Th47: :: WAYBEL27:47
for b1, b2, b3 being complete LATTICE ex b4 being Function of (UPS b1,(UPS b2,b3)),(UPS [:b1,b2:],b3) st
( b4 is uncurrying & b4 is isomorphic )
proof end;