:: LATTICE6 semantic presentation

registration
cluster finite LattStr ;
existence
ex b1 being Lattice st b1 is finite
proof end;
end;

Lemma1: for b1 being finite Lattice
for b2 being Subset of b1 holds
( b2 is empty or ex b3 being Element of (LattPOSet b1) st
( b3 in b2 & ( for b4 being Element of (LattPOSet b1) st b4 in b2 & b4 <> b3 holds
not b4 <= b3 ) ) )
proof end;

Lemma2: for b1 being finite Lattice
for b2 being Subset of b1 holds
( b2 is empty or ex b3 being Element of (LattPOSet b1) st
( b3 in b2 & ( for b4 being Element of (LattPOSet b1) st b4 in b2 & b4 <> b3 holds
not b3 <= b4 ) ) )
proof end;

Lemma3: for b1 being finite Lattice
for b2 being Subset of b1 holds
( b2 is empty or ex b3 being Element of (LattPOSet b1) st
for b4 being Element of (LattPOSet b1) st b4 in b2 holds
b4 <= b3 )
proof end;

Lemma4: for b1 being finite Lattice ex b2 being Element of (LattPOSet b1) st
for b3 being Element of (LattPOSet b1) holds b3 <= b2
proof end;

Lemma5: for b1 being finite Lattice holds b1 is complete
proof end;

registration
cluster finite -> complete LattStr ;
coherence
for b1 being Lattice st b1 is finite holds
b1 is complete
by Lemma5;
end;

definition
let c1 be Lattice;
let c2 be Subset of c1;
func c2 % -> Subset of (LattPOSet a1) equals :: LATTICE6:def 1
{ (b1 % ) where B is Element of a1 : b1 in a2 } ;
coherence
{ (b1 % ) where B is Element of c1 : b1 in c2 } is Subset of (LattPOSet c1)
proof end;
end;

:: deftheorem Def1 defines % LATTICE6:def 1 :
for b1 being Lattice
for b2 being Subset of b1 holds b2 % = { (b3 % ) where B is Element of b1 : b3 in b2 } ;

definition
let c1 be Lattice;
let c2 be Subset of (LattPOSet c1);
func % c2 -> Subset of a1 equals :: LATTICE6:def 2
{ (% b1) where B is Element of (LattPOSet a1) : b1 in a2 } ;
coherence
{ (% b1) where B is Element of (LattPOSet c1) : b1 in c2 } is Subset of c1
proof end;
end;

:: deftheorem Def2 defines % LATTICE6:def 2 :
for b1 being Lattice
for b2 being Subset of (LattPOSet b1) holds % b2 = { (% b3) where B is Element of (LattPOSet b1) : b3 in b2 } ;

registration
let c1 be finite Lattice;
cluster LattPOSet a1 -> well_founded ;
coherence
LattPOSet c1 is well_founded
proof end;
end;

Lemma6: for b1 being finite Lattice holds (LattPOSet b1) ~ is well_founded
proof end;

definition
let c1 be Lattice;
attr a1 is noetherian means :Def3: :: LATTICE6:def 3
LattPOSet a1 is well_founded;
attr a1 is co-noetherian means :Def4: :: LATTICE6:def 4
(LattPOSet a1) ~ is well_founded;
end;

:: deftheorem Def3 defines noetherian LATTICE6:def 3 :
for b1 being Lattice holds
( b1 is noetherian iff LattPOSet b1 is well_founded );

:: deftheorem Def4 defines co-noetherian LATTICE6:def 4 :
for b1 being Lattice holds
( b1 is co-noetherian iff (LattPOSet b1) ~ is well_founded );

registration
cluster lower-bounded upper-bounded complete noetherian LattStr ;
existence
ex b1 being Lattice st
( b1 is noetherian & b1 is upper-bounded & b1 is lower-bounded & b1 is complete )
proof end;
end;

registration
cluster lower-bounded upper-bounded complete co-noetherian LattStr ;
existence
ex b1 being Lattice st
( b1 is co-noetherian & b1 is upper-bounded & b1 is lower-bounded & b1 is complete )
proof end;
end;

theorem Th1: :: LATTICE6:1
for b1 being Lattice holds
( b1 is noetherian iff b1 .: is co-noetherian )
proof end;

Lemma9: for b1 being finite Lattice holds
( b1 is noetherian & b1 is co-noetherian )
proof end;

registration
cluster finite -> noetherian LattStr ;
coherence
for b1 being Lattice st b1 is finite holds
b1 is noetherian
by Lemma9;
cluster finite -> co-noetherian LattStr ;
coherence
for b1 being Lattice st b1 is finite holds
b1 is co-noetherian
by Lemma9;
end;

definition
let c1 be Lattice;
let c2, c3 be Element of c1;
pred c2 is-upper-neighbour-of c3 means :Def5: :: LATTICE6:def 5
( a2 <> a3 & a3 [= a2 & ( for b1 being Element of a1 st a3 [= b1 & b1 [= a2 & not b1 = a2 holds
b1 = a3 ) );
end;

:: deftheorem Def5 defines is-upper-neighbour-of LATTICE6:def 5 :
for b1 being Lattice
for b2, b3 being Element of b1 holds
( b2 is-upper-neighbour-of b3 iff ( b2 <> b3 & b3 [= b2 & ( for b4 being Element of b1 st b3 [= b4 & b4 [= b2 & not b4 = b2 holds
b4 = b3 ) ) );

notation
let c1 be Lattice;
let c2, c3 be Element of c1;
synonym c3 is-lower-neighbour-of c2 for c2 is-upper-neighbour-of c3;
end;

theorem Th2: :: LATTICE6:2
for b1 being Lattice
for b2, b3, b4 being Element of b1 st b3 <> b4 holds
( ( b3 is-upper-neighbour-of b2 & b4 is-upper-neighbour-of b2 implies b2 = b4 "/\" b3 ) & ( b3 is-lower-neighbour-of b2 & b4 is-lower-neighbour-of b2 implies b2 = b4 "\/" b3 ) )
proof end;

theorem Th3: :: LATTICE6:3
for b1 being noetherian Lattice
for b2, b3 being Element of b1 st b2 [= b3 & b2 <> b3 holds
ex b4 being Element of b1 st
( b4 [= b3 & b4 is-upper-neighbour-of b2 )
proof end;

theorem Th4: :: LATTICE6:4
for b1 being co-noetherian Lattice
for b2, b3 being Element of b1 st b3 [= b2 & b2 <> b3 holds
ex b4 being Element of b1 st
( b3 [= b4 & b4 is-lower-neighbour-of b2 )
proof end;

theorem Th5: :: LATTICE6:5
for b1 being upper-bounded Lattice
for b2 being Element of b1 holds not b2 is-upper-neighbour-of Top b1
proof end;

theorem Th6: :: LATTICE6:6
for b1 being upper-bounded noetherian Lattice
for b2 being Element of b1 holds
( b2 = Top b1 iff for b3 being Element of b1 holds not b3 is-upper-neighbour-of b2 )
proof end;

theorem Th7: :: LATTICE6:7
for b1 being lower-bounded Lattice
for b2 being Element of b1 holds not b2 is-lower-neighbour-of Bottom b1
proof end;

theorem Th8: :: LATTICE6:8
for b1 being lower-bounded co-noetherian Lattice
for b2 being Element of b1 holds
( b2 = Bottom b1 iff for b3 being Element of b1 holds not b3 is-lower-neighbour-of b2 )
proof end;

definition
let c1 be complete Lattice;
let c2 be Element of c1;
func c2 *' -> Element of a1 equals :: LATTICE6:def 6
"/\" { b1 where B is Element of a1 : ( a2 [= b1 & b1 <> a2 ) } ,a1;
correctness
coherence
"/\" { b1 where B is Element of c1 : ( c2 [= b1 & b1 <> c2 ) } ,c1 is Element of c1
;
;
func *' c2 -> Element of a1 equals :: LATTICE6:def 7
"\/" { b1 where B is Element of a1 : ( b1 [= a2 & b1 <> a2 ) } ,a1;
correctness
coherence
"\/" { b1 where B is Element of c1 : ( b1 [= c2 & b1 <> c2 ) } ,c1 is Element of c1
;
;
end;

:: deftheorem Def6 defines *' LATTICE6:def 6 :
for b1 being complete Lattice
for b2 being Element of b1 holds b2 *' = "/\" { b3 where B is Element of b1 : ( b2 [= b3 & b3 <> b2 ) } ,b1;

:: deftheorem Def7 defines *' LATTICE6:def 7 :
for b1 being complete Lattice
for b2 being Element of b1 holds *' b2 = "\/" { b3 where B is Element of b1 : ( b3 [= b2 & b3 <> b2 ) } ,b1;

definition
let c1 be complete Lattice;
let c2 be Element of c1;
attr a2 is completely-meet-irreducible means :Def8: :: LATTICE6:def 8
a2 *' <> a2;
attr a2 is completely-join-irreducible means :Def9: :: LATTICE6:def 9
*' a2 <> a2;
end;

:: deftheorem Def8 defines completely-meet-irreducible LATTICE6:def 8 :
for b1 being complete Lattice
for b2 being Element of b1 holds
( b2 is completely-meet-irreducible iff b2 *' <> b2 );

:: deftheorem Def9 defines completely-join-irreducible LATTICE6:def 9 :
for b1 being complete Lattice
for b2 being Element of b1 holds
( b2 is completely-join-irreducible iff *' b2 <> b2 );

theorem Th9: :: LATTICE6:9
for b1 being complete Lattice
for b2 being Element of b1 holds
( b2 [= b2 *' & *' b2 [= b2 )
proof end;

theorem Th10: :: LATTICE6:10
for b1 being complete Lattice holds
( (Top b1) *' = Top b1 & (Top b1) % is meet-irreducible )
proof end;

theorem Th11: :: LATTICE6:11
for b1 being complete Lattice holds
( *' (Bottom b1) = Bottom b1 & (Bottom b1) % is join-irreducible )
proof end;

theorem Th12: :: LATTICE6:12
for b1 being complete Lattice
for b2 being Element of b1 st b2 is completely-meet-irreducible holds
( b2 *' is-upper-neighbour-of b2 & ( for b3 being Element of b1 st b3 is-upper-neighbour-of b2 holds
b3 = b2 *' ) )
proof end;

theorem Th13: :: LATTICE6:13
for b1 being complete Lattice
for b2 being Element of b1 st b2 is completely-join-irreducible holds
( *' b2 is-lower-neighbour-of b2 & ( for b3 being Element of b1 st b3 is-lower-neighbour-of b2 holds
b3 = *' b2 ) )
proof end;

theorem Th14: :: LATTICE6:14
for b1 being complete noetherian Lattice
for b2 being Element of b1 holds
( b2 is completely-meet-irreducible iff ex b3 being Element of b1 st
( b3 is-upper-neighbour-of b2 & ( for b4 being Element of b1 st b4 is-upper-neighbour-of b2 holds
b4 = b3 ) ) )
proof end;

theorem Th15: :: LATTICE6:15
for b1 being complete co-noetherian Lattice
for b2 being Element of b1 holds
( b2 is completely-join-irreducible iff ex b3 being Element of b1 st
( b3 is-lower-neighbour-of b2 & ( for b4 being Element of b1 st b4 is-lower-neighbour-of b2 holds
b4 = b3 ) ) )
proof end;

theorem Th16: :: LATTICE6:16
for b1 being complete Lattice
for b2 being Element of b1 st b2 is completely-meet-irreducible holds
b2 % is meet-irreducible
proof end;

Lemma26: for b1 being Lattice
for b2, b3 being Element of b1 holds
( b2 "/\" b3 = (b2 % ) "/\" (b3 % ) & b2 "\/" b3 = (b2 % ) "\/" (b3 % ) )
proof end;

theorem Th17: :: LATTICE6:17
for b1 being complete noetherian Lattice
for b2 being Element of b1 st b2 <> Top b1 holds
( b2 is completely-meet-irreducible iff b2 % is meet-irreducible )
proof end;

theorem Th18: :: LATTICE6:18
for b1 being complete Lattice
for b2 being Element of b1 st b2 is completely-join-irreducible holds
b2 % is join-irreducible
proof end;

theorem Th19: :: LATTICE6:19
for b1 being complete co-noetherian Lattice
for b2 being Element of b1 st b2 <> Bottom b1 holds
( b2 is completely-join-irreducible iff b2 % is join-irreducible )
proof end;

theorem Th20: :: LATTICE6:20
for b1 being finite Lattice
for b2 being Element of b1 st b2 <> Bottom b1 & b2 <> Top b1 holds
( ( b2 is completely-meet-irreducible implies b2 % is meet-irreducible ) & ( b2 % is meet-irreducible implies b2 is completely-meet-irreducible ) & ( b2 is completely-join-irreducible implies b2 % is join-irreducible ) & ( b2 % is join-irreducible implies b2 is completely-join-irreducible ) ) by Th17, Th19;

definition
let c1 be Lattice;
let c2 be Element of c1;
attr a2 is atomic means :Def10: :: LATTICE6:def 10
a2 is-upper-neighbour-of Bottom a1;
attr a2 is co-atomic means :Def11: :: LATTICE6:def 11
a2 is-lower-neighbour-of Top a1;
end;

:: deftheorem Def10 defines atomic LATTICE6:def 10 :
for b1 being Lattice
for b2 being Element of b1 holds
( b2 is atomic iff b2 is-upper-neighbour-of Bottom b1 );

:: deftheorem Def11 defines co-atomic LATTICE6:def 11 :
for b1 being Lattice
for b2 being Element of b1 holds
( b2 is co-atomic iff b2 is-lower-neighbour-of Top b1 );

theorem Th21: :: LATTICE6:21
for b1 being complete Lattice
for b2 being Element of b1 st b2 is atomic holds
b2 is completely-join-irreducible
proof end;

theorem Th22: :: LATTICE6:22
for b1 being complete Lattice
for b2 being Element of b1 st b2 is co-atomic holds
b2 is completely-meet-irreducible
proof end;

definition
let c1 be Lattice;
attr a1 is atomic means :Def12: :: LATTICE6:def 12
for b1 being Element of a1 ex b2 being Subset of a1 st
( ( for b3 being Element of a1 st b3 in b2 holds
b3 is atomic ) & b1 = "\/" b2,a1 );
end;

:: deftheorem Def12 defines atomic LATTICE6:def 12 :
for b1 being Lattice holds
( b1 is atomic iff for b2 being Element of b1 ex b3 being Subset of b1 st
( ( for b4 being Element of b1 st b4 in b3 holds
b4 is atomic ) & b2 = "\/" b3,b1 ) );

registration
cluster strict trivial LattStr ;
existence
ex b1 being Lattice st
( b1 is strict & not b1 is empty & b1 is trivial )
proof end;
end;

Lemma33: ex b1 being Lattice st
( b1 is atomic & b1 is complete )
proof end;

registration
cluster complete atomic LattStr ;
existence
ex b1 being Lattice st
( b1 is atomic & b1 is complete )
by Lemma33;
end;

definition
let c1 be complete Lattice;
let c2 be Subset of c1;
attr a2 is supremum-dense means :Def13: :: LATTICE6:def 13
for b1 being Element of a1 ex b2 being Subset of a2 st b1 = "\/" b2,a1;
attr a2 is infimum-dense means :Def14: :: LATTICE6:def 14
for b1 being Element of a1 ex b2 being Subset of a2 st b1 = "/\" b2,a1;
end;

:: deftheorem Def13 defines supremum-dense LATTICE6:def 13 :
for b1 being complete Lattice
for b2 being Subset of b1 holds
( b2 is supremum-dense iff for b3 being Element of b1 ex b4 being Subset of b2 st b3 = "\/" b4,b1 );

:: deftheorem Def14 defines infimum-dense LATTICE6:def 14 :
for b1 being complete Lattice
for b2 being Subset of b1 holds
( b2 is infimum-dense iff for b3 being Element of b1 ex b4 being Subset of b2 st b3 = "/\" b4,b1 );

theorem Th23: :: LATTICE6:23
for b1 being complete Lattice
for b2 being Subset of b1 holds
( b2 is supremum-dense iff for b3 being Element of b1 holds b3 = "\/" { b4 where B is Element of b1 : ( b4 in b2 & b4 [= b3 ) } ,b1 )
proof end;

theorem Th24: :: LATTICE6:24
for b1 being complete Lattice
for b2 being Subset of b1 holds
( b2 is infimum-dense iff for b3 being Element of b1 holds b3 = "/\" { b4 where B is Element of b1 : ( b4 in b2 & b3 [= b4 ) } ,b1 )
proof end;

theorem Th25: :: LATTICE6:25
for b1 being complete Lattice
for b2 being Subset of b1 holds
( b2 is infimum-dense iff b2 % is order-generating )
proof end;

definition
let c1 be complete Lattice;
func MIRRS c1 -> Subset of a1 equals :: LATTICE6:def 15
{ b1 where B is Element of a1 : b1 is completely-meet-irreducible } ;
correctness
coherence
{ b1 where B is Element of c1 : b1 is completely-meet-irreducible } is Subset of c1
;
proof end;
func JIRRS c1 -> Subset of a1 equals :: LATTICE6:def 16
{ b1 where B is Element of a1 : b1 is completely-join-irreducible } ;
correctness
coherence
{ b1 where B is Element of c1 : b1 is completely-join-irreducible } is Subset of c1
;
proof end;
end;

:: deftheorem Def15 defines MIRRS LATTICE6:def 15 :
for b1 being complete Lattice holds MIRRS b1 = { b2 where B is Element of b1 : b2 is completely-meet-irreducible } ;

:: deftheorem Def16 defines JIRRS LATTICE6:def 16 :
for b1 being complete Lattice holds JIRRS b1 = { b2 where B is Element of b1 : b2 is completely-join-irreducible } ;

theorem Th26: :: LATTICE6:26
for b1 being complete Lattice
for b2 being Subset of b1 st b2 is supremum-dense holds
JIRRS b1 c= b2
proof end;

theorem Th27: :: LATTICE6:27
for b1 being complete Lattice
for b2 being Subset of b1 st b2 is infimum-dense holds
MIRRS b1 c= b2
proof end;

Lemma38: for b1 being complete co-noetherian Lattice holds MIRRS b1 is infimum-dense
proof end;

registration
let c1 be complete co-noetherian Lattice;
cluster MIRRS a1 -> infimum-dense ;
coherence
MIRRS c1 is infimum-dense
by Lemma38;
end;

Lemma39: for b1 being complete noetherian Lattice holds JIRRS b1 is supremum-dense
proof end;

registration
let c1 be complete noetherian Lattice;
cluster JIRRS a1 -> supremum-dense ;
coherence
JIRRS c1 is supremum-dense
by Lemma39;
end;