deffunc H1( Element of I) -> set = bool [:(M . $1),(M . $1):];
consider M2 being ManySortedSet of such that
A1:
for i being Element of I holds M2 . i = H1(i)
from PBOOLE:sch 5();
defpred S1[ set ] means $1 is Equivalence_Relation of M;
consider B being set such that
A2:
for x being set holds
( x in B iff ( x in product M2 & S1[x] ) )
from XBOOLE_0:sch 1();
A3:
for EqR being Equivalence_Relation of M holds EqR in product M2
consider f being Equivalence_Relation of M;
f in product M2
by A3;
then reconsider B = B as non empty set by A2;
defpred S2[ Element of B, Element of B, Element of B] means for x1, y1 being Equivalence_Relation of M st x1 = $1 & y1 = $2 holds
ex EqR3 being ManySortedRelation of M st
( EqR3 = x1 \/ y1 & $3 = EqCl EqR3 );
A6:
for x, y being Element of B ex z being Element of B st S2[x,y,z]
consider B1 being BinOp of B such that
A7:
for x, y being Element of B holds S2[x,y,B1 . x,y]
from BINOP_1:sch 3(A6);
defpred S3[ Element of B, Element of B, Element of B] means for x1, y1 being Equivalence_Relation of M st x1 = $1 & y1 = $2 holds
$3 = x1 /\ y1;
A10:
for x, y being Element of B ex z being Element of B st S3[x,y,z]
consider B2 being BinOp of B such that
A12:
for x, y being Element of B holds S3[x,y,B2 . x,y]
from BINOP_1:sch 3(A10);
reconsider L = LattStr(# B,B1,B2 #) as non empty LattStr ;
A14:
B1 is commutative
A15:
B1 is associative
proof
now let a,
b,
c be
Element of
B;
:: thesis: B1 . a,(B1 . b,c) = B1 . (B1 . a,b),creconsider U1 =
a,
U2 =
b,
U3 =
c as
Equivalence_Relation of
M by A2;
thus B1 . a,
(B1 . b,c) =
B1 . a,
(U2 "\/" U3)
by A8
.=
U1 "\/" (U2 "\/" U3)
by A8
.=
(U1 "\/" U2) "\/" U3
by Th10
.=
B1 . (U1 "\/" U2),
c
by A8
.=
B1 . (B1 . a,b),
c
by A8
;
:: thesis: verum end;
hence
B1 is
associative
by BINOP_1:def 3;
:: thesis: verum
end;
A16:
B2 is commutative
A17:
B2 is associative
proof
now let a,
b,
c be
Element of
B;
:: thesis: B2 . a,(B2 . b,c) = B2 . (B2 . a,b),creconsider U1 =
a,
U2 =
b,
U3 =
c as
Equivalence_Relation of
M by A2;
reconsider EQR1 =
U2 /\ U3 as
Equivalence_Relation of
M by Th13;
reconsider EQR2 =
U1 /\ U2 as
Equivalence_Relation of
M by Th13;
thus B2 . a,
(B2 . b,c) =
B2 . a,
EQR1
by A13
.=
U1 /\ (U2 /\ U3)
by A13
.=
(U1 /\ U2) /\ U3
by PBOOLE:35
.=
B2 . EQR2,
c
by A13
.=
B2 . (B2 . a,b),
c
by A13
;
:: thesis: verum end;
hence
B2 is
associative
by BINOP_1:def 3;
:: thesis: verum
end;
A18:
for a, b being Element of L holds a "\/" b = b "\/" a
A19:
for a, b, c being Element of L holds a "\/" (b "\/" c) = (a "\/" b) "\/" c
proof
let a,
b,
c be
Element of
L;
:: thesis: a "\/" (b "\/" c) = (a "\/" b) "\/" c
reconsider x =
a,
y =
b,
z =
c as
Element of
B ;
A20:
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, BINOP_1:def 3
.=
(a "\/" b) "\/" c
by A20, LATTICES:def 1
;
:: thesis: verum
end;
A21:
for a, b being Element of L holds (a "/\" b) "\/" b = b
A23:
for a, b being Element of L holds a "/\" b = b "/\" a
A24:
for a, b, c being Element of L holds a "/\" (b "/\" c) = (a "/\" b) "/\" c
proof
let a,
b,
c be
Element of
L;
:: thesis: a "/\" (b "/\" c) = (a "/\" b) "/\" c
reconsider x =
a,
y =
b,
z =
c as
Element of
B ;
A25:
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 A17, BINOP_1:def 3
.=
(a "/\" b) "/\" c
by A25, LATTICES:def 2
;
:: thesis: verum
end;
for a, b being Element of L holds a "/\" (a "\/" b) = a
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 A18, A19, A21, A23, A24, 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
; :: thesis: ( ( for x being set holds
( x in the carrier of L iff x is Equivalence_Relation of M ) ) & ( for x, y being Equivalence_Relation of M holds
( the L_meet of L . x,y = x /\ y & the L_join of L . x,y = x "\/" y ) ) )
thus
for x being set holds
( x in the carrier of L iff x is Equivalence_Relation of M )
:: thesis: for x, y being Equivalence_Relation of M 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 M holds
( the L_meet of L . x,y = x /\ y & the L_join of L . x,y = x "\/" y )
by A8, A13; :: thesis: verum