PomocU21:
for a, b being Element of ExNearLattice st a = 2 & b = 1 holds
a "\/" b = 2
PomocU12:
for a, b being Element of ExNearLattice st a = 1 & b = 2 holds
a "\/" b = 2
PomocU01:
for a, b being Element of ExNearLattice st a = 0 & b = 1 holds
a "\/" b = 1
PomocU20:
for a, b being Element of ExNearLattice st a = 2 & b = 0 holds
a "\/" b = 0
PomocU10:
for a, b being Element of ExNearLattice st a = 1 & b = 0 holds
a "\/" b = 1
PomocU02:
for a, b being Element of ExNearLattice st a = 0 & b = 2 holds
a "\/" b = 0
PomocL21:
for a, b being Element of ExNearLattice st a = 2 & b = 1 holds
a "/\" b = 1
PomocL01:
for a, b being Element of ExNearLattice st a = 0 & b = 1 holds
a "/\" b = 0
PomocL20:
for a, b being Element of ExNearLattice st a = 2 & b = 0 holds
a "/\" b = 2
PomocL02:
for a, b being Element of ExNearLattice st a = 0 & b = 2 holds
a "/\" b = 2
by PomocL20;
PomocL12:
for a, b being Element of ExNearLattice st a = 1 & b = 2 holds
a "/\" b = 1
PomocL10:
for a, b being Element of ExNearLattice st a = 1 & b = 0 holds
a "/\" b = 0
ExW31:
ExNearLattice is satisfying_W3
ExW32:
ExNearLattice is satisfying_W3'
deffunc H1( LattStr ) -> set = the carrier of $1;
deffunc H2( LattStr ) -> Element of bool [:[: the carrier of $1, the carrier of $1:], the carrier of $1:] = the L_join of $1;
deffunc H3( LattStr ) -> Element of bool [:[: the carrier of $1, the carrier of $1:], the carrier of $1:] = the L_meet of $1;
LmA:
( 1 in {0,1,2,3,4} & ( for x, y being Element of {0,1,2,3,4} holds min (x,y) in {0,1,2,3,4} ) )
LmB:
( 3 in {0,1,2,3,4} & ( for x, y being Element of {0,1,2,3,4} holds max (x,y) in {0,1,2,3,4} ) )
definition
let x,
y be
Element of
{0,1,2,3,4};
coherence
( ( ( ( x = 1 & y = 3 ) or ( x = 3 & y = 1 ) ) implies 1 is Element of {0,1,2,3,4} ) & ( ( x = 1 & y = 3 ) or ( x = 3 & y = 1 ) or max (x,y) is Element of {0,1,2,3,4} ) )
by LmB;
consistency
for b1 being Element of {0,1,2,3,4} holds
( ( not ( x = 1 & y = 3 ) & not ( x = 3 & y = 1 ) ) or ( x = 1 & y = 3 ) or ( x = 3 & y = 1 ) or ( b1 = 1 iff b1 = max (x,y) ) )
;
func x ex1234"/\" y -> Element of
{0,1,2,3,4} equals :
ExMeetDef:
3
if ( (
x = 1 &
y = 3 ) or (
x = 3 &
y = 1 ) )
min (
x,
y)
if ( not (
x = 1 &
y = 3 ) & not (
x = 3 &
y = 1 ) )
;
correctness
coherence
( ( ( ( x = 1 & y = 3 ) or ( x = 3 & y = 1 ) ) implies 3 is Element of {0,1,2,3,4} ) & ( ( x = 1 & y = 3 ) or ( x = 3 & y = 1 ) or min (x,y) is Element of {0,1,2,3,4} ) );
consistency
for b1 being Element of {0,1,2,3,4} holds
( ( not ( x = 1 & y = 3 ) & not ( x = 3 & y = 1 ) ) or ( x = 1 & y = 3 ) or ( x = 3 & y = 1 ) or ( b1 = 3 iff b1 = min (x,y) ) );
by LmA;
end;
definition
func ex1234\/ -> BinOp of
{0,1,2,3,4} means :
EXUDef:
for
x,
y being
Element of
{0,1,2,3,4} holds
it . (
x,
y)
= x ex1234"\/" y;
existence
ex b1 being BinOp of {0,1,2,3,4} st
for x, y being Element of {0,1,2,3,4} holds b1 . (x,y) = x ex1234"\/" y
uniqueness
for b1, b2 being BinOp of {0,1,2,3,4} st ( for x, y being Element of {0,1,2,3,4} holds b1 . (x,y) = x ex1234"\/" y ) & ( for x, y being Element of {0,1,2,3,4} holds b2 . (x,y) = x ex1234"\/" y ) holds
b1 = b2
func ex1234/\ -> BinOp of
{0,1,2,3,4} means :
EXNDef:
for
x,
y being
Element of
{0,1,2,3,4} holds
it . (
x,
y)
= x ex1234"/\" y;
existence
ex b1 being BinOp of {0,1,2,3,4} st
for x, y being Element of {0,1,2,3,4} holds b1 . (x,y) = x ex1234"/\" y
uniqueness
for b1, b2 being BinOp of {0,1,2,3,4} st ( for x, y being Element of {0,1,2,3,4} holds b1 . (x,y) = x ex1234"/\" y ) & ( for x, y being Element of {0,1,2,3,4} holds b2 . (x,y) = x ex1234"/\" y ) holds
b1 = b2
end;
::
deftheorem EXUDef defines
ex1234\/ LATWAL_2:def 14 :
for b1 being BinOp of {0,1,2,3,4} holds
( b1 = ex1234\/ iff for x, y being Element of {0,1,2,3,4} holds b1 . (x,y) = x ex1234"\/" y );
::
deftheorem EXNDef defines
ex1234/\ LATWAL_2:def 15 :
for b1 being BinOp of {0,1,2,3,4} holds
( b1 = ex1234/\ iff for x, y being Element of {0,1,2,3,4} holds b1 . (x,y) = x ex1234"/\" y );
ExJoinAbs:
ExWALattice is join-absorbing
ExMeetAbs:
ExWALattice is meet-absorbing
Lemacik1:
for x, y being Element of ExWALattice holds ex1234/\ . (x,y) = ex1234/\ . (y,x)
Lemacik1A:
for x, y being Element of ExWALattice holds ex1234\/ . (x,y) = ex1234\/ . (y,x)
Cosik1:
not ExWALattice is join-associative
Cosik2:
not ExWALattice is meet-associative
ExJoinComm:
ExWALattice is join-commutative
ExMeetComm:
ExWALattice is meet-commutative
HelpL0:
for a, b being Element of ExWALattice st b = 0 holds
a "/\" b = 0
HelpU0:
for a, b being Element of ExWALattice st b = 0 holds
a "\/" b = a
HelpU12:
for a, b being Element of ExWALattice st a = 1 & b = 2 holds
a "\/" b = 2
HelpU13:
for a, b being Element of ExWALattice st a = 1 & b = 3 holds
a "\/" b = 1
HelpU23:
for a, b being Element of ExWALattice st a = 2 & b = 3 holds
a "\/" b = 3
HelpU4:
for a, b being Element of ExWALattice st b = 4 holds
a "\/" b = 4
HelpL12:
for a, b being Element of ExWALattice st a = 1 & b = 2 holds
a "/\" b = 1
HelpL13:
for a, b being Element of ExWALattice st a = 1 & b = 3 holds
a "/\" b = 3
HelpL23:
for a, b being Element of ExWALattice st a = 2 & b = 3 holds
a "/\" b = 2
HelpL4:
for a, b being Element of ExWALattice st b = 4 holds
a "/\" b = a
ExW31:
ExWALattice is satisfying_W3
ExW32:
ExWALattice is satisfying_W3'