:: Robbins Algebras vs. Boolean Algebras
::
:: Copyright (c) 2001-2021 Association of Mizar Users

definition
attr c1 is strict ;
struct ComplStr -> 1-sorted ;
aggr ComplStr(# carrier, Compl #) -> ComplStr ;
sel Compl c1 -> UnOp of the carrier of c1;
end;

definition end;

definition end;

definition end;

definition
coherence ;
end;

:: deftheorem defines TrivComplLat ROBBINS1:def 1 :

definition
coherence ;
end;

:: deftheorem defines TrivOrtLat ROBBINS1:def 2 :

registration
coherence ;
coherence ;
end;

registration
existence
ex b1 being OrthoLattStr st
( b1 is strict & b1 is 1 -element )
proof end;
existence
ex b1 being ComplLLattStr st
( b1 is strict & b1 is 1 -element )
proof end;
end;

registration
let L be 1 -element ComplLLattStr ;
cluster ComplStr(# the carrier of L, the Compl of L #) -> 1 -element ;
coherence
ComplStr(# the carrier of L, the Compl of L #) is 1 -element
;
end;

registration
existence
ex b1 being ComplStr st
( b1 is strict & b1 is 1 -element )
proof end;
end;

definition
let L be non empty ComplStr ;
let x be Element of L;
func x  -> Element of L equals :: ROBBINS1:def 3
the Compl of L . x;
coherence
the Compl of L . x is Element of L
;
end;

:: deftheorem defines  ROBBINS1:def 3 :
for L being non empty ComplStr
for x being Element of L holds x  = the Compl of L . x;

notation
let L be non empty ComplLLattStr ;
let x, y be Element of L;
synonym x + y for x "\/" y;
end;

definition
let L be non empty ComplLLattStr ;
let x, y be Element of L;
func x *' y -> Element of L equals :: ROBBINS1:def 4
((x ) "\/" (y ))  ;
coherence
((x ) "\/" (y ))  is Element of L
;
end;

:: deftheorem defines *' ROBBINS1:def 4 :
for L being non empty ComplLLattStr
for x, y being Element of L holds x *' y = ((x ) "\/" (y ))  ;

definition
let L be non empty ComplLLattStr ;
attr L is Robbins means :Def5: :: ROBBINS1:def 5
for x, y being Element of L holds (((x + y) ) + ((x + (y )) ))  = x;
attr L is Huntington means :Def6: :: ROBBINS1:def 6
for x, y being Element of L holds (((x ) + (y )) ) + (((x ) + y) ) = x;
end;

:: deftheorem Def5 defines Robbins ROBBINS1:def 5 :
for L being non empty ComplLLattStr holds
( L is Robbins iff for x, y being Element of L holds (((x + y) ) + ((x + (y )) ))  = x );

:: deftheorem Def6 defines Huntington ROBBINS1:def 6 :
for L being non empty ComplLLattStr holds
( L is Huntington iff for x, y being Element of L holds (((x ) + (y )) ) + (((x ) + y) ) = x );

definition
let G be non empty \/-SemiLattStr ;
attr G is join-idempotent means :Def7: :: ROBBINS1:def 7
for x being Element of G holds x "\/" x = x;
end;

:: deftheorem Def7 defines join-idempotent ROBBINS1:def 7 :
for G being non empty \/-SemiLattStr holds
( G is join-idempotent iff for x being Element of G holds x "\/" x = x );

registration
coherence by STRUCT_0:def 10;
coherence by STRUCT_0:def 10;
end;

registration
coherence by STRUCT_0:def 10;
end;

registration
existence
ex b1 being non empty ComplLLattStr st
( b1 is strict & b1 is join-associative & b1 is join-commutative & b1 is Robbins & b1 is join-idempotent & b1 is Huntington )
proof end;
end;

registration
existence
ex b1 being non empty OrthoLattStr st
( b1 is strict & b1 is Lattice-like & b1 is Robbins & b1 is Huntington )
proof end;
end;

definition
let L be non empty join-commutative ComplLLattStr ;
let x, y be Element of L;
:: original: +
redefine func x + y -> M3( the carrier of L);
commutativity
for x, y being Element of L holds x + y = y + x
by LATTICES:def 4;
end;

theorem Th1: :: ROBBINS1:1
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a, b being Element of L holds (a *' b) + (a *' (b )) = a by Def6;

theorem Th2: :: ROBBINS1:2
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a being Element of L holds a + (a ) = (a ) + ((a ) )
proof end;

theorem Th3: :: ROBBINS1:3
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for x being Element of L holds (x )  = x
proof end;

theorem Th4: :: ROBBINS1:4
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a, b being Element of L holds a + (a ) = b + (b )
proof end;

theorem Th5: :: ROBBINS1:5
for L being non empty join-commutative join-associative Huntington join-idempotent ComplLLattStr ex c being Element of L st
for a being Element of L holds
( c + a = c & a + (a ) = c )
proof end;

theorem Th6: :: ROBBINS1:6
for L being non empty join-commutative join-associative Huntington join-idempotent ComplLLattStr holds L is upper-bounded
proof end;

registration
coherence
for b1 being non empty ComplLLattStr st b1 is join-commutative & b1 is join-associative & b1 is join-idempotent & b1 is Huntington holds
b1 is upper-bounded
by Th6;
end;

definition
let L be non empty join-commutative join-associative Huntington join-idempotent ComplLLattStr ;
redefine func Top L means :Def8: :: ROBBINS1:def 8
ex a being Element of L st it = a + (a );
compatibility
for b1 being M3( the carrier of L) holds
( b1 = Top L iff ex a being Element of L st b1 = a + (a ) )
proof end;
end;

:: deftheorem Def8 defines Top ROBBINS1:def 8 :
for L being non empty join-commutative join-associative Huntington join-idempotent ComplLLattStr
for b2 being M3( the carrier of b1) holds
( b2 = Top L iff ex a being Element of L st b2 = a + (a ) );

theorem Th7: :: ROBBINS1:7
for L being non empty join-commutative join-associative Huntington join-idempotent ComplLLattStr ex c being Element of L st
for a being Element of L holds
( c *' a = c & (a + (a ))  = c )
proof end;

definition
let L be non empty join-commutative join-associative ComplLLattStr ;
let x, y be Element of L;
:: original: *'
redefine func x *' y -> Element of L;
commutativity
for x, y being Element of L holds x *' y = y *' x
proof end;
end;

definition
let L be non empty join-commutative join-associative Huntington join-idempotent ComplLLattStr ;
func Bot L -> Element of L means :Def9: :: ROBBINS1:def 9
for a being Element of L holds it *' a = it;
existence
ex b1 being Element of L st
for a being Element of L holds b1 *' a = b1
proof end;
uniqueness
for b1, b2 being Element of L st ( for a being Element of L holds b1 *' a = b1 ) & ( for a being Element of L holds b2 *' a = b2 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def9 defines Bot ROBBINS1:def 9 :
for L being non empty join-commutative join-associative Huntington join-idempotent ComplLLattStr
for b2 being Element of L holds
( b2 = Bot L iff for a being Element of L holds b2 *' a = b2 );

theorem Th8: :: ROBBINS1:8
for L being non empty join-commutative join-associative Huntington join-idempotent ComplLLattStr
for a being Element of L holds Bot L = (a + (a )) 
proof end;

theorem Th9: :: ROBBINS1:9
for L being non empty join-commutative join-associative Huntington join-idempotent ComplLLattStr holds
( (Top L)  = Bot L & Top L = (Bot L)  )
proof end;

theorem Th10: :: ROBBINS1:10
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a, b being Element of L st a  = b  holds
a = b
proof end;

theorem Th11: :: ROBBINS1:11
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a, b being Element of L holds a + ((b + (b )) ) = a
proof end;

theorem Th12: :: ROBBINS1:12
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a being Element of L holds a + a = a
proof end;

registration
coherence
for b1 being non empty ComplLLattStr st b1 is join-commutative & b1 is join-associative & b1 is Huntington holds
b1 is join-idempotent
by Th12;
end;

theorem Th13: :: ROBBINS1:13
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a being Element of L holds a + (Bot L) = a
proof end;

theorem :: ROBBINS1:14
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a being Element of L holds a *' (Top L) = a
proof end;

theorem Th15: :: ROBBINS1:15
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a being Element of L holds a *' (a ) = Bot L
proof end;

theorem Th16: :: ROBBINS1:16
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a, b, c being Element of L holds a *' (b *' c) = (a *' b) *' c
proof end;

theorem Th17: :: ROBBINS1:17
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a, b being Element of L holds a + b = ((a ) *' (b )) 
proof end;

theorem :: ROBBINS1:18
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a being Element of L holds a *' a = a
proof end;

theorem :: ROBBINS1:19
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a being Element of L holds a + (Top L) = Top L
proof end;

theorem Th20: :: ROBBINS1:20
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a, b being Element of L holds a + (a *' b) = a
proof end;

theorem Th21: :: ROBBINS1:21
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a, b being Element of L holds a *' (a + b) = a
proof end;

theorem Th22: :: ROBBINS1:22
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a, b being Element of L st (a ) + b = Top L & (b ) + a = Top L holds
a = b
proof end;

theorem Th23: :: ROBBINS1:23
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a, b being Element of L st a + b = Top L & a *' b = Bot L holds
a  = b
proof end;

theorem Th24: :: ROBBINS1:24
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a, b, c being Element of L holds ((((((((a *' b) *' c) + ((a *' b) *' (c ))) + ((a *' (b )) *' c)) + ((a *' (b )) *' (c ))) + (((a ) *' b) *' c)) + (((a ) *' b) *' (c ))) + (((a ) *' (b )) *' c)) + (((a ) *' (b )) *' (c )) = Top L
proof end;

theorem Th25: :: ROBBINS1:25
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a, b, c being Element of L holds
( (a *' c) *' (b *' (c )) = Bot L & ((a *' b) *' c) *' (((a ) *' b) *' c) = Bot L & ((a *' (b )) *' c) *' (((a ) *' b) *' c) = Bot L & ((a *' b) *' c) *' (((a ) *' (b )) *' c) = Bot L & ((a *' b) *' (c )) *' (((a ) *' (b )) *' (c )) = Bot L )
proof end;

theorem Th26: :: ROBBINS1:26
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a, b, c being Element of L holds (a *' b) + (a *' c) = (((a *' b) *' c) + ((a *' b) *' (c ))) + ((a *' (b )) *' c)
proof end;

theorem Th27: :: ROBBINS1:27
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a, b, c being Element of L holds (a *' (b + c))  = (((((a *' (b )) *' (c )) + (((a ) *' b) *' c)) + (((a ) *' b) *' (c ))) + (((a ) *' (b )) *' c)) + (((a ) *' (b )) *' (c ))
proof end;

theorem Th28: :: ROBBINS1:28
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a, b, c being Element of L holds ((a *' b) + (a *' c)) + ((a *' (b + c)) ) = Top L
proof end;

theorem Th29: :: ROBBINS1:29
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a, b, c being Element of L holds ((a *' b) + (a *' c)) *' ((a *' (b + c)) ) = Bot L
proof end;

theorem Th30: :: ROBBINS1:30
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a, b, c being Element of L holds a *' (b + c) = (a *' b) + (a *' c)
proof end;

theorem :: ROBBINS1:31
for L being non empty join-commutative join-associative Huntington ComplLLattStr
for a, b, c being Element of L holds a + (b *' c) = (a + b) *' (a + c)
proof end;

definition
let L be non empty OrthoLattStr ;
attr L is well-complemented means :Def10: :: ROBBINS1:def 10
for a being Element of L holds a  is_a_complement_of a;
end;

:: deftheorem Def10 defines well-complemented ROBBINS1:def 10 :
for L being non empty OrthoLattStr holds
( L is well-complemented iff for a being Element of L holds a  is_a_complement_of a );

registration
coherence
proof end;
end;

definition end;

registration
existence
ex b1 being preOrthoLattice st
( b1 is strict & b1 is Boolean & b1 is well-complemented )
proof end;
end;

theorem Th32: :: ROBBINS1:32
for L being distributive well-complemented preOrthoLattice
for x being Element of L holds (x )  = x
proof end;

theorem Th33: :: ROBBINS1:33
for L being distributive bounded well-complemented preOrthoLattice
for x, y being Element of L holds x "/\" y = ((x ) "\/" (y ))
proof end;

:: according to the definition given in \cite{LATTICES.ABS}
definition
let L be non empty ComplLLattStr ;
func CLatt L -> strict OrthoLattStr means :Def11: :: ROBBINS1:def 11
( the carrier of it = the carrier of L & the L_join of it = the L_join of L & the Compl of it = the Compl of L & ( for a, b being Element of L holds the L_meet of it . (a,b) = a *' b ) );
existence
ex b1 being strict OrthoLattStr st
( the carrier of b1 = the carrier of L & the L_join of b1 = the L_join of L & the Compl of b1 = the Compl of L & ( for a, b being Element of L holds the L_meet of b1 . (a,b) = a *' b ) )
proof end;
uniqueness
for b1, b2 being strict OrthoLattStr st the carrier of b1 = the carrier of L & the L_join of b1 = the L_join of L & the Compl of b1 = the Compl of L & ( for a, b being Element of L holds the L_meet of b1 . (a,b) = a *' b ) & the carrier of b2 = the carrier of L & the L_join of b2 = the L_join of L & the Compl of b2 = the Compl of L & ( for a, b being Element of L holds the L_meet of b2 . (a,b) = a *' b ) holds
b1 = b2
proof end;
end;

:: deftheorem Def11 defines CLatt ROBBINS1:def 11 :
for L being non empty ComplLLattStr
for b2 being strict OrthoLattStr holds
( b2 = CLatt L iff ( the carrier of b2 = the carrier of L & the L_join of b2 = the L_join of L & the Compl of b2 = the Compl of L & ( for a, b being Element of L holds the L_meet of b2 . (a,b) = a *' b ) ) );

registration
let L be non empty ComplLLattStr ;
cluster CLatt L -> non empty strict ;
coherence
not CLatt L is empty
proof end;
end;

registration
let L be non empty join-commutative ComplLLattStr ;
coherence
proof end;
end;

registration
let L be non empty join-associative ComplLLattStr ;
coherence
proof end;
end;

registration
let L be non empty join-commutative join-associative ComplLLattStr ;
coherence
proof end;
end;

theorem :: ROBBINS1:34
for L being non empty ComplLLattStr
for a, b being Element of L
for a9, b9 being Element of () st a = a9 & b = b9 holds
( a *' b = a9 "/\" b9 & a + b = a9 "\/" b9 & a  = a9  ) by Def11;

registration
let L be non empty join-commutative join-associative Huntington ComplLLattStr ;
coherence
proof end;
end;

registration
let L be non empty Huntington ComplLLattStr ;
coherence
proof end;
end;

registration
let L be non empty join-commutative join-associative Huntington ComplLLattStr ;
coherence
proof end;
end;

theorem Th35: :: ROBBINS1:35
for L being non empty join-commutative join-associative Huntington ComplLLattStr holds Bot L = Bottom ()
proof end;

registration
let L be non empty join-commutative join-associative Huntington ComplLLattStr ;
coherence
( CLatt L is complemented & CLatt L is distributive & CLatt L is bounded )
proof end;
end;

notation
let G be non empty ComplLLattStr ;
let x be Element of G;
synonym - x for x  ;
end;

definition
let G be non empty join-commutative ComplLLattStr ;
redefine attr G is Huntington means :: ROBBINS1:def 12
for x, y being Element of G holds (- ((- x) + (- y))) + (- (x + (- y))) = y;
compatibility
( G is Huntington iff for x, y being Element of G holds (- ((- x) + (- y))) + (- (x + (- y))) = y )
proof end;
end;

:: deftheorem defines Huntington ROBBINS1:def 12 :
for G being non empty join-commutative ComplLLattStr holds
( G is Huntington iff for x, y being Element of G holds (- ((- x) + (- y))) + (- (x + (- y))) = y );

definition
let G be non empty ComplLLattStr ;
attr G is with_idempotent_element means :: ROBBINS1:def 13
ex x being Element of G st x + x = x;
correctness
;
end;

:: deftheorem defines with_idempotent_element ROBBINS1:def 13 :
for G being non empty ComplLLattStr holds
( G is with_idempotent_element iff ex x being Element of G st x + x = x );

definition
let G be non empty ComplLLattStr ;
let x, y be Element of G;
func \delta (x,y) -> Element of G equals :: ROBBINS1:def 14
- ((- x) + y);
coherence
- ((- x) + y) is Element of G
;
end;

:: deftheorem defines \delta ROBBINS1:def 14 :
for G being non empty ComplLLattStr
for x, y being Element of G holds \delta (x,y) = - ((- x) + y);

definition
let G be non empty ComplLLattStr ;
let x, y be Element of G;
func Expand (x,y) -> Element of G equals :: ROBBINS1:def 15
\delta ((x + y),(\delta (x,y)));
coherence
\delta ((x + y),(\delta (x,y))) is Element of G
;
end;

:: deftheorem defines Expand ROBBINS1:def 15 :
for G being non empty ComplLLattStr
for x, y being Element of G holds Expand (x,y) = \delta ((x + y),(\delta (x,y)));

definition
let G be non empty ComplLLattStr ;
let x be Element of G;
func x _0 -> Element of G equals :: ROBBINS1:def 16
- ((- x) + x);
coherence
- ((- x) + x) is Element of G
;
func Double x -> Element of G equals :: ROBBINS1:def 17
x + x;
coherence
x + x is Element of G
;
end;

:: deftheorem defines _0 ROBBINS1:def 16 :
for G being non empty ComplLLattStr
for x being Element of G holds x _0 = - ((- x) + x);

:: deftheorem defines Double ROBBINS1:def 17 :
for G being non empty ComplLLattStr
for x being Element of G holds Double x = x + x;

definition
let G be non empty ComplLLattStr ;
let x be Element of G;
func x _1 -> Element of G equals :: ROBBINS1:def 18
(x _0) + x;
coherence
(x _0) + x is Element of G
;
func x _2 -> Element of G equals :: ROBBINS1:def 19
(x _0) + ();
coherence
(x _0) + () is Element of G
;
func x _3 -> Element of G equals :: ROBBINS1:def 20
(x _0) + (() + x);
coherence
(x _0) + (() + x) is Element of G
;
func x _4 -> Element of G equals :: ROBBINS1:def 21
(x _0) + (() + ());
coherence
(x _0) + (() + ()) is Element of G
;
end;

:: deftheorem defines _1 ROBBINS1:def 18 :
for G being non empty ComplLLattStr
for x being Element of G holds x _1 = (x _0) + x;

:: deftheorem defines _2 ROBBINS1:def 19 :
for G being non empty ComplLLattStr
for x being Element of G holds x _2 = (x _0) + ();

:: deftheorem defines _3 ROBBINS1:def 20 :
for G being non empty ComplLLattStr
for x being Element of G holds x _3 = (x _0) + (() + x);

:: deftheorem defines _4 ROBBINS1:def 21 :
for G being non empty ComplLLattStr
for x being Element of G holds x _4 = (x _0) + (() + ());

theorem Th36: :: ROBBINS1:36
for G being non empty join-commutative join-associative Robbins ComplLLattStr
for x, y being Element of G holds \delta ((x + y),(\delta (x,y))) = y
proof end;

theorem :: ROBBINS1:37
for G being non empty join-commutative join-associative Robbins ComplLLattStr
for x, y being Element of G holds Expand (x,y) = y by Th36;

theorem :: ROBBINS1:38
for G being non empty join-commutative join-associative Robbins ComplLLattStr
for x, y, z being Element of G holds \delta (((- x) + y),z) = - ((\delta (x,y)) + z) ;

theorem :: ROBBINS1:39
for G being non empty join-commutative join-associative Robbins ComplLLattStr
for x being Element of G holds \delta (x,x) = x _0 ;

theorem Th40: :: ROBBINS1:40
for G being non empty join-commutative join-associative Robbins ComplLLattStr
for x being Element of G holds \delta ((),(x _0)) = x
proof end;

theorem Th41: :: ROBBINS1:41
for G being non empty join-commutative join-associative Robbins ComplLLattStr
for x being Element of G holds \delta ((x _2),x) = x _0
proof end;

theorem Th42: :: ROBBINS1:42
for G being non empty join-commutative join-associative Robbins ComplLLattStr
for x being Element of G holds (x _4) + (x _0) = (x _3) + (x _1)
proof end;

theorem Th43: :: ROBBINS1:43
for G being non empty join-commutative join-associative Robbins ComplLLattStr
for x being Element of G holds (x _3) + (x _0) = (x _2) + (x _1)
proof end;

theorem Th44: :: ROBBINS1:44
for G being non empty join-commutative join-associative Robbins ComplLLattStr
for x being Element of G holds (x _3) + x = x _4
proof end;

theorem Th45: :: ROBBINS1:45
for G being non empty join-commutative join-associative Robbins ComplLLattStr
for x being Element of G holds \delta ((x _3),(x _0)) = x
proof end;

theorem :: ROBBINS1:46
for G being non empty join-commutative join-associative Robbins ComplLLattStr
for x, y, z being Element of G st - x = - y holds
\delta (x,z) = \delta (y,z) ;

theorem Th47: :: ROBBINS1:47
for G being non empty join-commutative join-associative Robbins ComplLLattStr
for x, y being Element of G holds \delta (x,(- y)) = \delta (y,(- x))
proof end;

theorem Th48: :: ROBBINS1:48
for G being non empty join-commutative join-associative Robbins ComplLLattStr
for x being Element of G holds \delta ((x _3),x) = x _0
proof end;

theorem Th49: :: ROBBINS1:49
for G being non empty join-commutative join-associative Robbins ComplLLattStr
for x being Element of G holds \delta (((x _1) + (x _3)),x) = x _0
proof end;

theorem Th50: :: ROBBINS1:50
for G being non empty join-commutative join-associative Robbins ComplLLattStr
for x being Element of G holds \delta (((x _1) + (x _2)),x) = x _0
proof end;

theorem Th51: :: ROBBINS1:51
for G being non empty join-commutative join-associative Robbins ComplLLattStr
for x being Element of G holds \delta (((x _1) + (x _3)),(x _0)) = x
proof end;

definition
let G be non empty join-commutative join-associative Robbins ComplLLattStr ;
let x be Element of G;
func \beta x -> Element of G equals :: ROBBINS1:def 22
((- ((x _1) + (x _3))) + x) + (- (x _3));
coherence
((- ((x _1) + (x _3))) + x) + (- (x _3)) is Element of G
;
end;

:: deftheorem defines \beta ROBBINS1:def 22 :
for G being non empty join-commutative join-associative Robbins ComplLLattStr
for x being Element of G holds \beta x = ((- ((x _1) + (x _3))) + x) + (- (x _3));

theorem Th52: :: ROBBINS1:52
for G being non empty join-commutative join-associative Robbins ComplLLattStr
for x being Element of G holds \delta ((),x) = - (x _3)
proof end;

theorem Th53: :: ROBBINS1:53
for G being non empty join-commutative join-associative Robbins ComplLLattStr
for x being Element of G holds \delta ((),x) = - ((x _1) + (x _3))
proof end;

theorem :: ROBBINS1:54
for G being non empty join-commutative join-associative Robbins ComplLLattStr ex y, z being Element of G st - (y + z) = - z
proof end;

theorem :: ROBBINS1:55
for G being non empty join-commutative join-associative Robbins ComplLLattStr st ( for z being Element of G holds - (- z) = z ) holds
G is Huntington
proof end;

theorem Th56: :: ROBBINS1:56
for G being non empty join-commutative join-associative Robbins ComplLLattStr st G is with_idempotent_element holds
G is Huntington
proof end;

registration
coherence
proof end;
end;

registration
coherence
for b1 being non empty join-commutative join-associative Robbins ComplLLattStr st b1 is with_idempotent_element holds
b1 is Huntington
by Th56;
end;

theorem Th57: :: ROBBINS1:57
for G being non empty join-commutative join-associative Robbins ComplLLattStr st ex c, d being Element of G st c + d = c holds
G is Huntington
proof end;

theorem Th58: :: ROBBINS1:58
for G being non empty join-commutative join-associative Robbins ComplLLattStr ex y, z being Element of G st y + z = z
proof end;

registration
coherence
for b1 being non empty join-commutative join-associative ComplLLattStr st b1 is Robbins holds
b1 is Huntington
proof end;
end;

definition
let L be non empty OrthoLattStr ;
attr L is de_Morgan means :Def23: :: ROBBINS1:def 23
for x, y being Element of L holds x "/\" y = ((x ) "\/" (y ))  ;
end;

:: deftheorem Def23 defines de_Morgan ROBBINS1:def 23 :
for L being non empty OrthoLattStr holds
( L is de_Morgan iff for x, y being Element of L holds x "/\" y = ((x ) "\/" (y ))  );

registration
let L be non empty ComplLLattStr ;
coherence
proof end;
end;

theorem Th59: :: ROBBINS1:59
for L being non empty join-commutative meet-commutative well-complemented OrthoLattStr
for x being Element of L holds
( x + (x ) = Top L & x "/\" (x ) = Bottom L )
proof end;

theorem Th60: :: ROBBINS1:60
for L being distributive bounded well-complemented preOrthoLattice holds (Top L)  = Bottom L
proof end;

registration
coherence by STRUCT_0:def 10;
end;

registration
existence
ex b1 being preOrthoLattice st
( b1 is strict & b1 is de_Morgan & b1 is Boolean & b1 is Robbins & b1 is Huntington )
proof end;
end;

registration
coherence
for b1 being non empty OrthoLattStr st b1 is join-associative & b1 is join-commutative & b1 is de_Morgan holds
b1 is meet-commutative
proof end;
end;

theorem Th61: :: ROBBINS1:61
for L being Huntington de_Morgan preOrthoLattice holds Bot L = Bottom L
proof end;

registration
coherence
for b1 being well-complemented preOrthoLattice st b1 is Boolean holds
b1 is Huntington
proof end;
end;

registration
coherence
for b1 being de_Morgan preOrthoLattice st b1 is Huntington holds
b1 is Boolean
proof end;
end;

registration
coherence
for b1 being preOrthoLattice st b1 is Robbins & b1 is de_Morgan holds
b1 is Boolean
;
coherence
for b1 being well-complemented preOrthoLattice st b1 is Boolean holds
b1 is Robbins
proof end;
end;