:: WAYBEL_2 semantic presentation

registration
let c1, c2 be non empty set ;
let c3 be Function of c1,c2;
let c4 be non empty Subset of c1;
cluster a3 .: a4 -> non empty ;
coherence
not c3 .: c4 is empty
proof end;
end;

registration
cluster non empty reflexive connected -> non empty with_suprema with_infima RelStr ;
coherence
for b1 being non empty RelStr st b1 is reflexive & b1 is connected holds
( b1 is with_infima & b1 is with_suprema )
proof end;
end;

registration
let c1 be Chain;
cluster [#] a1 -> directed ;
coherence
[#] c1 is directed
;
end;

theorem Th1: :: WAYBEL_2:1
for b1 being up-complete Semilattice
for b2 being non empty directed Subset of b1
for b3 being Element of b1 holds ex_sup_of {b3} "/\" b2,b1
proof end;

theorem Th2: :: WAYBEL_2:2
for b1 being up-complete sup-Semilattice
for b2 being non empty directed Subset of b1
for b3 being Element of b1 holds ex_sup_of {b3} "\/" b2,b1
proof end;

theorem Th3: :: WAYBEL_2:3
for b1 being up-complete sup-Semilattice
for b2, b3 being non empty directed Subset of b1 holds b2 is_<=_than sup (b2 "\/" b3)
proof end;

theorem Th4: :: WAYBEL_2:4
for b1 being up-complete sup-Semilattice
for b2, b3 being non empty directed Subset of b1 holds sup (b2 "\/" b3) = (sup b2) "\/" (sup b3)
proof end;

theorem Th5: :: WAYBEL_2:5
for b1 being up-complete Semilattice
for b2 being non empty directed Subset of [:b1,b1:] holds { (sup ({b3} "/\" (proj2 b2))) where B is Element of b1 : b3 in proj1 b2 } = { (sup b3) where B is non empty directed Subset of b1 : ex b1 being Element of b1 st
( b3 = {b4} "/\" (proj2 b2) & b4 in proj1 b2 )
}
proof end;

theorem Th6: :: WAYBEL_2:6
for b1 being Semilattice
for b2 being non empty directed Subset of [:b1,b1:] holds union { b3 where B is non empty directed Subset of b1 : ex b1 being Element of b1 st
( b3 = {b4} "/\" (proj2 b2) & b4 in proj1 b2 )
}
= (proj1 b2) "/\" (proj2 b2)
proof end;

theorem Th7: :: WAYBEL_2:7
for b1 being up-complete Semilattice
for b2 being non empty directed Subset of [:b1,b1:] holds ex_sup_of union { b3 where B is non empty directed Subset of b1 : ex b1 being Element of b1 st
( b3 = {b4} "/\" (proj2 b2) & b4 in proj1 b2 )
}
,b1
proof end;

theorem Th8: :: WAYBEL_2:8
for b1 being up-complete Semilattice
for b2 being non empty directed Subset of [:b1,b1:] holds ex_sup_of { (sup b3) where B is non empty directed Subset of b1 : ex b1 being Element of b1 st
( b3 = {b4} "/\" (proj2 b2) & b4 in proj1 b2 )
}
,b1
proof end;

theorem Th9: :: WAYBEL_2:9
for b1 being up-complete Semilattice
for b2 being non empty directed Subset of [:b1,b1:] holds "\/" { (sup b3) where B is non empty directed Subset of b1 : ex b1 being Element of b1 st
( b3 = {b4} "/\" (proj2 b2) & b4 in proj1 b2 )
}
,b1 <= "\/" (union { b3 where B is non empty directed Subset of b1 : ex b1 being Element of b1 st
( b3 = {b4} "/\" (proj2 b2) & b4 in proj1 b2 )
}
)
,b1
proof end;

theorem Th10: :: WAYBEL_2:10
for b1 being up-complete Semilattice
for b2 being non empty directed Subset of [:b1,b1:] holds "\/" { (sup b3) where B is non empty directed Subset of b1 : ex b1 being Element of b1 st
( b3 = {b4} "/\" (proj2 b2) & b4 in proj1 b2 )
}
,b1 = "\/" (union { b3 where B is non empty directed Subset of b1 : ex b1 being Element of b1 st
( b3 = {b4} "/\" (proj2 b2) & b4 in proj1 b2 )
}
)
,b1
proof end;

registration
let c1, c2 be non empty reflexive up-complete RelStr ;
cluster [:a1,a2:] -> up-complete ;
coherence
[:c1,c2:] is up-complete
proof end;
end;

theorem Th11: :: WAYBEL_2:11
for b1, b2 being non empty reflexive antisymmetric RelStr st [:b1,b2:] is up-complete holds
( b1 is up-complete & b2 is up-complete )
proof end;

theorem Th12: :: WAYBEL_2:12
for b1 being non empty reflexive antisymmetric up-complete RelStr
for b2 being non empty directed Subset of [:b1,b1:] holds sup b2 = [(sup (proj1 b2)),(sup (proj2 b2))]
proof end;

theorem Th13: :: WAYBEL_2:13
for b1, b2 being RelStr
for b3 being Subset of b1
for b4 being Function of b1,b2 st b4 is monotone holds
b4 .: (downarrow b3) c= downarrow (b4 .: b3)
proof end;

theorem Th14: :: WAYBEL_2:14
for b1, b2 being RelStr
for b3 being Subset of b1
for b4 being Function of b1,b2 st b4 is monotone holds
b4 .: (uparrow b3) c= uparrow (b4 .: b3)
proof end;

registration
cluster non empty reflexive trivial -> non empty reflexive distributive complemented RelStr ;
coherence
for b1 being non empty reflexive RelStr st b1 is trivial holds
( b1 is distributive & b1 is complemented )
proof end;
end;

registration
cluster non empty strict distributive complemented trivial RelStr ;
existence
ex b1 being LATTICE st
( b1 is strict & not b1 is empty & b1 is trivial )
proof end;
end;

theorem Th15: :: WAYBEL_2:15
for b1 being complete distributive LATTICE
for b2 being Element of b1
for b3 being finite Subset of b1 holds sup ({b2} "/\" b3) = b2 "/\" (sup b3)
proof end;

theorem Th16: :: WAYBEL_2:16
for b1 being complete distributive LATTICE
for b2 being Element of b1
for b3 being finite Subset of b1 holds inf ({b2} "\/" b3) = b2 "\/" (inf b3)
proof end;

theorem Th17: :: WAYBEL_2:17
for b1 being complete distributive LATTICE
for b2 being Element of b1
for b3 being finite Subset of b1 holds b2 "/\" preserves_sup_of b3
proof end;

scheme :: WAYBEL_2:sch 1
s1{ F1() -> non empty RelStr , F2() -> prenet of F1(), F3( set ) -> Element of F1() } :
ex b1 being prenet of F1() st
( RelStr(# the carrier of b1,the InternalRel of b1 #) = RelStr(# the carrier of F2(),the InternalRel of F2() #) & ( for b2 being Element of b1 holds the mapping of b1 . b2 = F3((the mapping of F2() . b2)) ) )
proof end;

theorem Th18: :: WAYBEL_2:18
for b1 being non empty RelStr
for b2 being prenet of b1 st b2 is eventually-directed holds
rng (netmap b2,b1) is directed
proof end;

theorem Th19: :: WAYBEL_2:19
for b1 being non empty reflexive RelStr
for b2 being non empty directed Subset of b1
for b3 being Function of b2,the carrier of b1 holds NetStr(# b2,(the InternalRel of b1 |_2 b2),b3 #) is prenet of b1
proof end;

theorem Th20: :: WAYBEL_2:20
for b1 being non empty reflexive RelStr
for b2 being non empty directed Subset of b1
for b3 being Function of b2,the carrier of b1
for b4 being prenet of b1 st b3 = id b2 & b4 = NetStr(# b2,(the InternalRel of b1 |_2 b2),b3 #) holds
b4 is eventually-directed
proof end;

definition
let c1 be non empty RelStr ;
let c2 be NetStr of c1;
func sup c2 -> Element of a1 equals :: WAYBEL_2:def 1
Sup ;
coherence
Sup is Element of c1
;
end;

:: deftheorem Def1 defines sup WAYBEL_2:def 1 :
for b1 being non empty RelStr
for b2 being NetStr of b1 holds sup b2 = Sup ;

definition
let c1 be non empty RelStr ;
let c2 be set ;
let c3 be Function of c2,the carrier of c1;
func FinSups c3 -> prenet of a1 means :Def2: :: WAYBEL_2:def 2
ex b1 being Function of Fin a2,the carrier of a1 st
for b2 being Element of Fin a2 holds
( b1 . b2 = sup (a3 .: b2) & a4 = NetStr(# (Fin a2),(RelIncl (Fin a2)),b1 #) );
existence
ex b1 being prenet of c1ex b2 being Function of Fin c2,the carrier of c1 st
for b3 being Element of Fin c2 holds
( b2 . b3 = sup (c3 .: b3) & b1 = NetStr(# (Fin c2),(RelIncl (Fin c2)),b2 #) )
proof end;
uniqueness
for b1, b2 being prenet of c1 st ex b3 being Function of Fin c2,the carrier of c1 st
for b4 being Element of Fin c2 holds
( b3 . b4 = sup (c3 .: b4) & b1 = NetStr(# (Fin c2),(RelIncl (Fin c2)),b3 #) ) & ex b3 being Function of Fin c2,the carrier of c1 st
for b4 being Element of Fin c2 holds
( b3 . b4 = sup (c3 .: b4) & b2 = NetStr(# (Fin c2),(RelIncl (Fin c2)),b3 #) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def2 defines FinSups WAYBEL_2:def 2 :
for b1 being non empty RelStr
for b2 being set
for b3 being Function of b2,the carrier of b1
for b4 being prenet of b1 holds
( b4 = FinSups b3 iff ex b5 being Function of Fin b2,the carrier of b1 st
for b6 being Element of Fin b2 holds
( b5 . b6 = sup (b3 .: b6) & b4 = NetStr(# (Fin b2),(RelIncl (Fin b2)),b5 #) ) );

theorem Th21: :: WAYBEL_2:21
for b1 being non empty RelStr
for b2, b3 being set
for b4 being Function of b2,the carrier of b1 holds
( b3 is Element of (FinSups b4) iff b3 is Element of Fin b2 )
proof end;

registration
let c1 be non empty reflexive antisymmetric complete RelStr ;
let c2 be set ;
let c3 be Function of c2,the carrier of c1;
cluster FinSups a3 -> monotone ;
coherence
FinSups c3 is monotone
proof end;
end;

definition
let c1 be non empty RelStr ;
let c2 be Element of c1;
let c3 be non empty NetStr of c1;
func c2 "/\" c3 -> strict NetStr of a1 means :Def3: :: WAYBEL_2:def 3
( RelStr(# the carrier of a4,the InternalRel of a4 #) = RelStr(# the carrier of a3,the InternalRel of a3 #) & ( for b1 being Element of a4 ex b2 being Element of a1 st
( b2 = the mapping of a3 . b1 & the mapping of a4 . b1 = a2 "/\" b2 ) ) );
existence
ex b1 being strict NetStr of c1 st
( RelStr(# the carrier of b1,the InternalRel of b1 #) = RelStr(# the carrier of c3,the InternalRel of c3 #) & ( for b2 being Element of b1 ex b3 being Element of c1 st
( b3 = the mapping of c3 . b2 & the mapping of b1 . b2 = c2 "/\" b3 ) ) )
proof end;
uniqueness
for b1, b2 being strict NetStr of c1 st RelStr(# the carrier of b1,the InternalRel of b1 #) = RelStr(# the carrier of c3,the InternalRel of c3 #) & ( for b3 being Element of b1 ex b4 being Element of c1 st
( b4 = the mapping of c3 . b3 & the mapping of b1 . b3 = c2 "/\" b4 ) ) & RelStr(# the carrier of b2,the InternalRel of b2 #) = RelStr(# the carrier of c3,the InternalRel of c3 #) & ( for b3 being Element of b2 ex b4 being Element of c1 st
( b4 = the mapping of c3 . b3 & the mapping of b2 . b3 = c2 "/\" b4 ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def3 defines "/\" WAYBEL_2:def 3 :
for b1 being non empty RelStr
for b2 being Element of b1
for b3 being non empty NetStr of b1
for b4 being strict NetStr of b1 holds
( b4 = b2 "/\" b3 iff ( RelStr(# the carrier of b4,the InternalRel of b4 #) = RelStr(# the carrier of b3,the InternalRel of b3 #) & ( for b5 being Element of b4 ex b6 being Element of b1 st
( b6 = the mapping of b3 . b5 & the mapping of b4 . b5 = b2 "/\" b6 ) ) ) );

theorem Th22: :: WAYBEL_2:22
for b1 being non empty RelStr
for b2 being non empty NetStr of b1
for b3 being Element of b1
for b4 being set holds
( b4 is Element of b2 iff b4 is Element of (b3 "/\" b2) )
proof end;

registration
let c1 be non empty RelStr ;
let c2 be Element of c1;
let c3 be non empty NetStr of c1;
cluster a2 "/\" a3 -> non empty strict ;
coherence
not c2 "/\" c3 is empty
proof end;
end;

registration
let c1 be non empty RelStr ;
let c2 be Element of c1;
let c3 be prenet of c1;
cluster a2 "/\" a3 -> non empty strict directed ;
coherence
c2 "/\" c3 is directed
proof end;
end;

theorem Th23: :: WAYBEL_2:23
for b1 being non empty RelStr
for b2 being Element of b1
for b3 being non empty NetStr of b1 holds rng the mapping of (b2 "/\" b3) = {b2} "/\" (rng the mapping of b3)
proof end;

theorem Th24: :: WAYBEL_2:24
for b1 being non empty RelStr
for b2 being set
for b3 being Function of b2,the carrier of b1 st ( for b4 being set holds ex_sup_of b3 .: b4,b1 ) holds
rng (netmap (FinSups b3),b1) c= finsups (rng b3)
proof end;

theorem Th25: :: WAYBEL_2:25
for b1 being non empty reflexive antisymmetric RelStr
for b2 being set
for b3 being Function of b2,the carrier of b1 holds rng b3 c= rng (netmap (FinSups b3),b1)
proof end;

theorem Th26: :: WAYBEL_2:26
for b1 being non empty reflexive antisymmetric RelStr
for b2 being set
for b3 being Function of b2,the carrier of b1 st ex_sup_of rng b3,b1 & ex_sup_of rng (netmap (FinSups b3),b1),b1 & ( for b4 being Element of Fin b2 holds ex_sup_of b3 .: b4,b1 ) holds
Sup = sup (FinSups b3)
proof end;

theorem Th27: :: WAYBEL_2:27
for b1 being transitive antisymmetric with_infima RelStr
for b2 being prenet of b1
for b3 being Element of b1 st b2 is eventually-directed holds
b3 "/\" b2 is eventually-directed
proof end;

theorem Th28: :: WAYBEL_2:28
for b1 being up-complete Semilattice st ( for b2 being Element of b1
for b3 being non empty directed Subset of b1 st b2 <= sup b3 holds
b2 <= sup ({b2} "/\" b3) ) holds
for b2 being non empty directed Subset of b1
for b3 being Element of b1 holds b3 "/\" (sup b2) = sup ({b3} "/\" b2)
proof end;

theorem Th29: :: WAYBEL_2:29
for b1 being with_suprema Poset st ( for b2 being directed Subset of b1
for b3 being Element of b1 holds b3 "/\" (sup b2) = sup ({b3} "/\" b2) ) holds
for b2 being Subset of b1
for b3 being Element of b1 st ex_sup_of b2,b1 holds
b3 "/\" (sup b2) = sup ({b3} "/\" (finsups b2))
proof end;

theorem Th30: :: WAYBEL_2:30
for b1 being up-complete LATTICE st ( for b2 being Subset of b1
for b3 being Element of b1 holds b3 "/\" (sup b2) = sup ({b3} "/\" (finsups b2)) ) holds
for b2 being non empty directed Subset of b1
for b3 being Element of b1 holds b3 "/\" (sup b2) = sup ({b3} "/\" b2)
proof end;

definition
let c1 be non empty RelStr ;
func inf_op c1 -> Function of [:a1,a1:],a1 means :Def4: :: WAYBEL_2:def 4
for b1, b2 being Element of a1 holds a2 . [b1,b2] = b1 "/\" b2;
existence
ex b1 being Function of [:c1,c1:],c1 st
for b2, b3 being Element of c1 holds b1 . [b2,b3] = b2 "/\" b3
proof end;
uniqueness
for b1, b2 being Function of [:c1,c1:],c1 st ( for b3, b4 being Element of c1 holds b1 . [b3,b4] = b3 "/\" b4 ) & ( for b3, b4 being Element of c1 holds b2 . [b3,b4] = b3 "/\" b4 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def4 defines inf_op WAYBEL_2:def 4 :
for b1 being non empty RelStr
for b2 being Function of [:b1,b1:],b1 holds
( b2 = inf_op b1 iff for b3, b4 being Element of b1 holds b2 . [b3,b4] = b3 "/\" b4 );

theorem Th31: :: WAYBEL_2:31
for b1 being non empty RelStr
for b2 being Element of [:b1,b1:] holds (inf_op b1) . b2 = (b2 `1 ) "/\" (b2 `2 )
proof end;

registration
let c1 be transitive antisymmetric with_infima RelStr ;
cluster inf_op a1 -> monotone ;
coherence
inf_op c1 is monotone
proof end;
end;

theorem Th32: :: WAYBEL_2:32
for b1 being non empty RelStr
for b2, b3 being Subset of b1 holds (inf_op b1) .: [:b2,b3:] = b2 "/\" b3
proof end;

theorem Th33: :: WAYBEL_2:33
for b1 being up-complete Semilattice
for b2 being non empty directed Subset of [:b1,b1:] holds sup ((inf_op b1) .: b2) = sup ((proj1 b2) "/\" (proj2 b2))
proof end;

definition
let c1 be non empty RelStr ;
func sup_op c1 -> Function of [:a1,a1:],a1 means :Def5: :: WAYBEL_2:def 5
for b1, b2 being Element of a1 holds a2 . [b1,b2] = b1 "\/" b2;
existence
ex b1 being Function of [:c1,c1:],c1 st
for b2, b3 being Element of c1 holds b1 . [b2,b3] = b2 "\/" b3
proof end;
uniqueness
for b1, b2 being Function of [:c1,c1:],c1 st ( for b3, b4 being Element of c1 holds b1 . [b3,b4] = b3 "\/" b4 ) & ( for b3, b4 being Element of c1 holds b2 . [b3,b4] = b3 "\/" b4 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def5 defines sup_op WAYBEL_2:def 5 :
for b1 being non empty RelStr
for b2 being Function of [:b1,b1:],b1 holds
( b2 = sup_op b1 iff for b3, b4 being Element of b1 holds b2 . [b3,b4] = b3 "\/" b4 );

theorem Th34: :: WAYBEL_2:34
for b1 being non empty RelStr
for b2 being Element of [:b1,b1:] holds (sup_op b1) . b2 = (b2 `1 ) "\/" (b2 `2 )
proof end;

registration
let c1 be transitive antisymmetric with_suprema RelStr ;
cluster sup_op a1 -> monotone ;
coherence
sup_op c1 is monotone
proof end;
end;

theorem Th35: :: WAYBEL_2:35
for b1 being non empty RelStr
for b2, b3 being Subset of b1 holds (sup_op b1) .: [:b2,b3:] = b2 "\/" b3
proof end;

theorem Th36: :: WAYBEL_2:36
for b1 being non empty complete Poset
for b2 being non empty filtered Subset of [:b1,b1:] holds inf ((sup_op b1) .: b2) = inf ((proj1 b2) "\/" (proj2 b2))
proof end;

definition
let c1 be non empty reflexive RelStr ;
attr a1 is satisfying_MC means :Def6: :: WAYBEL_2:def 6
for b1 being Element of a1
for b2 being non empty directed Subset of a1 holds b1 "/\" (sup b2) = sup ({b1} "/\" b2);
end;

:: deftheorem Def6 defines satisfying_MC WAYBEL_2:def 6 :
for b1 being non empty reflexive RelStr holds
( b1 is satisfying_MC iff for b2 being Element of b1
for b3 being non empty directed Subset of b1 holds b2 "/\" (sup b3) = sup ({b2} "/\" b3) );

definition
let c1 be non empty reflexive RelStr ;
attr a1 is meet-continuous means :Def7: :: WAYBEL_2:def 7
( a1 is up-complete & a1 is satisfying_MC );
end;

:: deftheorem Def7 defines meet-continuous WAYBEL_2:def 7 :
for b1 being non empty reflexive RelStr holds
( b1 is meet-continuous iff ( b1 is up-complete & b1 is satisfying_MC ) );

registration
cluster non empty reflexive trivial -> non empty reflexive satisfying_MC RelStr ;
coherence
for b1 being non empty reflexive RelStr st b1 is trivial holds
b1 is satisfying_MC
proof end;
end;

registration
cluster non empty reflexive meet-continuous -> non empty reflexive up-complete satisfying_MC RelStr ;
coherence
for b1 being non empty reflexive RelStr st b1 is meet-continuous holds
( b1 is up-complete & b1 is satisfying_MC )
by Def7;
cluster non empty reflexive up-complete satisfying_MC -> non empty reflexive meet-continuous RelStr ;
coherence
for b1 being non empty reflexive RelStr st b1 is up-complete & b1 is satisfying_MC holds
b1 is meet-continuous
by Def7;
end;

registration
cluster non empty strict distributive complemented trivial satisfying_MC meet-continuous RelStr ;
existence
ex b1 being LATTICE st
( b1 is strict & not b1 is empty & b1 is trivial )
proof end;
end;

theorem Th37: :: WAYBEL_2:37
for b1 being non empty reflexive RelStr st ( for b2 being Subset of b1
for b3 being Element of b1 holds b3 "/\" (sup b2) = "\/" { (b3 "/\" b4) where B is Element of b1 : b4 in b2 } ,b1 ) holds
b1 is satisfying_MC
proof end;

theorem Th38: :: WAYBEL_2:38
for b1 being up-complete Semilattice st SupMap b1 is meet-preserving holds
for b2, b3 being Ideal of b1 holds (sup b2) "/\" (sup b3) = sup (b2 "/\" b3)
proof end;

registration
let c1 be up-complete sup-Semilattice;
cluster SupMap a1 -> join-preserving ;
coherence
SupMap c1 is join-preserving
proof end;
end;

theorem Th39: :: WAYBEL_2:39
for b1 being up-complete Semilattice st ( for b2, b3 being Ideal of b1 holds (sup b2) "/\" (sup b3) = sup (b2 "/\" b3) ) holds
SupMap b1 is meet-preserving
proof end;

theorem Th40: :: WAYBEL_2:40
for b1 being up-complete Semilattice st ( for b2, b3 being Ideal of b1 holds (sup b2) "/\" (sup b3) = sup (b2 "/\" b3) ) holds
for b2, b3 being non empty directed Subset of b1 holds (sup b2) "/\" (sup b3) = sup (b2 "/\" b3)
proof end;

theorem Th41: :: WAYBEL_2:41
for b1 being non empty reflexive RelStr st b1 is satisfying_MC holds
for b2 being Element of b1
for b3 being non empty prenet of b1 st b3 is eventually-directed holds
b2 "/\" (sup b3) = sup ({b2} "/\" (rng (netmap b3,b1)))
proof end;

theorem Th42: :: WAYBEL_2:42
for b1 being non empty reflexive RelStr st ( for b2 being Element of b1
for b3 being prenet of b1 st b3 is eventually-directed holds
b2 "/\" (sup b3) = sup ({b2} "/\" (rng (netmap b3,b1))) ) holds
b1 is satisfying_MC
proof end;

theorem Th43: :: WAYBEL_2:43
for b1 being non empty reflexive antisymmetric up-complete RelStr st inf_op b1 is directed-sups-preserving holds
for b2, b3 being non empty directed Subset of b1 holds (sup b2) "/\" (sup b3) = sup (b2 "/\" b3)
proof end;

theorem Th44: :: WAYBEL_2:44
for b1 being non empty reflexive antisymmetric RelStr st ( for b2, b3 being non empty directed Subset of b1 holds (sup b2) "/\" (sup b3) = sup (b2 "/\" b3) ) holds
b1 is satisfying_MC
proof end;

theorem Th45: :: WAYBEL_2:45
for b1 being non empty reflexive antisymmetric with_infima satisfying_MC RelStr
for b2 being Element of b1
for b3 being non empty directed Subset of b1 st b2 <= sup b3 holds
b2 = sup ({b2} "/\" b3)
proof end;

theorem Th46: :: WAYBEL_2:46
for b1 being up-complete Semilattice st ( for b2 being Element of b1
for b3 being non empty directed Subset of b1 st b2 <= sup b3 holds
b2 <= sup ({b2} "/\" b3) ) holds
inf_op b1 is directed-sups-preserving
proof end;

theorem Th47: :: WAYBEL_2:47
for b1 being non empty reflexive antisymmetric complete RelStr st ( for b2 being Element of b1
for b3 being prenet of b1 st b3 is eventually-directed holds
b2 "/\" (sup b3) = sup ({b2} "/\" (rng (netmap b3,b1))) ) holds
for b2 being Element of b1
for b3 being set
for b4 being Function of b3,the carrier of b1 holds b2 "/\" (Sup ) = sup (b2 "/\" (FinSups b4))
proof end;

theorem Th48: :: WAYBEL_2:48
for b1 being complete Semilattice st ( for b2 being Element of b1
for b3 being set
for b4 being Function of b3,the carrier of b1 holds b2 "/\" (Sup ) = sup (b2 "/\" (FinSups b4)) ) holds
for b2 being Element of b1
for b3 being prenet of b1 st b3 is eventually-directed holds
b2 "/\" (sup b3) = sup ({b2} "/\" (rng (netmap b3,b1)))
proof end;

theorem Th49: :: WAYBEL_2:49
for b1 being up-complete LATTICE holds
( b1 is meet-continuous iff ( SupMap b1 is meet-preserving & SupMap b1 is join-preserving ) )
proof end;

registration
let c1 be meet-continuous LATTICE;
cluster SupMap a1 -> meet-preserving join-preserving ;
coherence
( SupMap c1 is meet-preserving & SupMap c1 is join-preserving )
by Th49;
end;

theorem Th50: :: WAYBEL_2:50
for b1 being up-complete LATTICE holds
( b1 is meet-continuous iff for b2, b3 being Ideal of b1 holds (sup b2) "/\" (sup b3) = sup (b2 "/\" b3) )
proof end;

theorem Th51: :: WAYBEL_2:51
for b1 being up-complete LATTICE holds
( b1 is meet-continuous iff for b2, b3 being non empty directed Subset of b1 holds (sup b2) "/\" (sup b3) = sup (b2 "/\" b3) )
proof end;

theorem Th52: :: WAYBEL_2:52
for b1 being up-complete LATTICE holds
( b1 is meet-continuous iff for b2 being Element of b1
for b3 being non empty directed Subset of b1 st b2 <= sup b3 holds
b2 = sup ({b2} "/\" b3) )
proof end;

theorem Th53: :: WAYBEL_2:53
for b1 being up-complete Semilattice holds
( b1 is meet-continuous iff inf_op b1 is directed-sups-preserving )
proof end;

registration
let c1 be meet-continuous Semilattice;
cluster inf_op a1 -> monotone directed-sups-preserving ;
coherence
inf_op c1 is directed-sups-preserving
by Th53;
end;

theorem Th54: :: WAYBEL_2:54
for b1 being up-complete Semilattice holds
( b1 is meet-continuous iff for b2 being Element of b1
for b3 being non empty prenet of b1 st b3 is eventually-directed holds
b2 "/\" (sup b3) = sup ({b2} "/\" (rng (netmap b3,b1))) )
proof end;

theorem Th55: :: WAYBEL_2:55
for b1 being complete Semilattice holds
( b1 is meet-continuous iff for b2 being Element of b1
for b3 being set
for b4 being Function of b3,the carrier of b1 holds b2 "/\" (Sup ) = sup (b2 "/\" (FinSups b4)) )
proof end;

Lemma53: for b1 being meet-continuous Semilattice
for b2 being Element of b1 holds b2 "/\" is directed-sups-preserving
proof end;

registration
let c1 be meet-continuous Semilattice;
let c2 be Element of c1;
cluster a2 "/\" -> directed-sups-preserving ;
coherence
c2 "/\" is directed-sups-preserving
by Lemma53;
end;

theorem Th56: :: WAYBEL_2:56
for b1 being non empty complete Poset holds
( b1 is Heyting iff ( b1 is meet-continuous & b1 is distributive ) )
proof end;

registration
cluster non empty complete Heyting -> non empty up-complete distributive satisfying_MC meet-continuous RelStr ;
coherence
for b1 being non empty Poset st b1 is complete & b1 is Heyting holds
( b1 is meet-continuous & b1 is distributive )
by Th56;
cluster non empty complete distributive meet-continuous -> non empty Heyting RelStr ;
coherence
for b1 being non empty Poset st b1 is complete & b1 is meet-continuous & b1 is distributive holds
b1 is Heyting
by Th56;
end;