set B = { x where x is Relation of X,X : x is Equivalence_Relation of X } ;
id X in { x where x is Relation of X,X : x is Equivalence_Relation of X }
;
then reconsider B = { x where x is Relation of X,X : x is Equivalence_Relation of X } as non empty set ;
defpred S1[ Element of B, Element of B, Element of B] means ( $1 \/ $2 c= $3 & ( for x9 being Element of B st $1 \/ $2 c= x9 holds
$3 c= x9 ) );
A1:
for x, y being Element of B ex z being Element of B st S1[x,y,z]
consider B1 being BinOp of B such that
A6:
for x, y being Element of B holds S1[x,y,B1 . x,y]
from BINOP_1:sch 3(A1);
defpred S2[ Element of B, Element of B, Element of B] means $3 = $1 /\ $2;
A7:
for x, y being Element of B ex z being Element of B st S2[x,y,z]
proof
let x,
y be
Element of
B;
ex z being Element of B st S2[x,y,z]
y in B
;
then A8:
ex
y1 being
Relation of
X,
X st
(
y = y1 &
y1 is
Equivalence_Relation of
X )
;
x in B
;
then
ex
x1 being
Relation of
X,
X st
(
x = x1 &
x1 is
Equivalence_Relation of
X )
;
then reconsider x9 =
x,
y9 =
y as
Equivalence_Relation of
X by A8;
set z =
x9 /\ y9;
x9 /\ y9 in B
;
then reconsider z =
x9 /\ y9 as
Element of
B ;
take
z
;
S2[x,y,z]
thus
S2[
x,
y,
z]
;
verum
end;
consider B2 being BinOp of B such that
A9:
for x, y being Element of B holds S2[x,y,B2 . x,y]
from BINOP_1:sch 3(A7);
reconsider L = LattStr(# B,B1,B2 #) as non empty LattStr ;
A15:
now let a,
b,
c be
Element of
B;
B1 . a,(B1 . b,c) = B1 . (B1 . a,b),c
b in B
;
then A16:
ex
x2 being
Relation of
X,
X st
(
b = x2 &
x2 is
Equivalence_Relation of
X )
;
c in B
;
then A17:
ex
x3 being
Relation of
X,
X st
(
c = x3 &
x3 is
Equivalence_Relation of
X )
;
a in B
;
then
ex
x1 being
Relation of
X,
X st
(
a = x1 &
x1 is
Equivalence_Relation of
X )
;
then reconsider U1 =
a,
U2 =
b,
U3 =
c as
Equivalence_Relation of
X by A16, A17;
thus B1 . a,
(B1 . b,c) =
B1 . a,
(U2 "\/" U3)
by A10
.=
U1 "\/" (U2 "\/" U3)
by A10
.=
(U1 "\/" U2) "\/" U3
by EQREL_1:21
.=
B1 . (U1 "\/" U2),
c
by A10
.=
B1 . (B1 . a,b),
c
by A10
;
verum end;
A18:
for a, b, c being Element of L holds a "\/" (b "\/" c) = (a "\/" b) "\/" c
proof
let a,
b,
c be
Element of
L;
a "\/" (b "\/" c) = (a "\/" b) "\/" c
reconsider x =
a,
y =
b,
z =
c as
Element of
B ;
A19:
the
L_join of
L . a,
b = a "\/" b
by LATTICES:def 1;
thus a "\/" (b "\/" c) =
the
L_join of
L . a,
(b "\/" c)
by LATTICES:def 1
.=
B1 . x,
(B1 . y,z)
by LATTICES:def 1
.=
the
L_join of
L . (the L_join of L . a,b),
c
by A15
.=
(a "\/" b) "\/" c
by A19, LATTICES:def 1
;
verum
end;
A22:
for a, b being Element of L holds a "\/" b = b "\/" a
A25:
now let a,
b,
c be
Element of
B;
B2 . a,(B2 . b,c) = B2 . (B2 . a,b),c
b in B
;
then A26:
ex
x2 being
Relation of
X,
X st
(
b = x2 &
x2 is
Equivalence_Relation of
X )
;
c in B
;
then A27:
ex
x3 being
Relation of
X,
X st
(
c = x3 &
x3 is
Equivalence_Relation of
X )
;
a in B
;
then
ex
x1 being
Relation of
X,
X st
(
a = x1 &
x1 is
Equivalence_Relation of
X )
;
then reconsider U1 =
a,
U2 =
b,
U3 =
c as
Equivalence_Relation of
X by A26, A27;
thus B2 . a,
(B2 . b,c) =
B2 . a,
(U2 /\ U3)
by A23
.=
U1 /\ (U2 /\ U3)
by A23
.=
(U1 /\ U2) /\ U3
by XBOOLE_1:16
.=
B2 . (U1 /\ U2),
c
by A23
.=
B2 . (B2 . a,b),
c
by A23
;
verum end;
A28:
for a, b, c being Element of L holds a "/\" (b "/\" c) = (a "/\" b) "/\" c
proof
let a,
b,
c be
Element of
L;
a "/\" (b "/\" c) = (a "/\" b) "/\" c
reconsider x =
a,
y =
b,
z =
c as
Element of
B ;
A29:
the
L_meet of
L . a,
b = a "/\" b
by LATTICES:def 2;
thus a "/\" (b "/\" c) =
the
L_meet of
L . a,
(b "/\" c)
by LATTICES:def 2
.=
B2 . x,
(B2 . y,z)
by LATTICES:def 2
.=
the
L_meet of
L . (the L_meet of L . a,b),
c
by A25
.=
(a "/\" b) "/\" c
by A29, LATTICES:def 2
;
verum
end;
A30:
for a, b being Element of L holds a "/\" (a "\/" b) = a
A35:
for a, b being Element of L holds a "/\" b = b "/\" a
for a, b being Element of L holds (a "/\" b) "\/" b = b
then
( L is join-commutative & L is join-associative & L is meet-absorbing & L is meet-commutative & L is meet-associative & L is join-absorbing )
by A22, A18, A35, A28, A30, LATTICES:def 4, LATTICES:def 5, LATTICES:def 6, LATTICES:def 7, LATTICES:def 8, LATTICES:def 9;
then reconsider L = L as strict Lattice ;
take
L
; ( the carrier of L = { x where x is Relation of X,X : x is Equivalence_Relation of X } & ( for x, y being Equivalence_Relation of X holds
( the L_meet of L . x,y = x /\ y & the L_join of L . x,y = x "\/" y ) ) )
thus
the carrier of L = { x where x is Relation of X,X : x is Equivalence_Relation of X }
; for x, y being Equivalence_Relation of X holds
( the L_meet of L . x,y = x /\ y & the L_join of L . x,y = x "\/" y )
thus
for x, y being Equivalence_Relation of X holds
( the L_meet of L . x,y = x /\ y & the L_join of L . x,y = x "\/" y )
by A10, A23; verum