set L = LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #);
A1: for a, b being Element of LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #) holds a "\/" b = b "\/" a
proof
let a, b be Element of LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #); :: thesis: a "\/" b = b "\/" a
MSAlg_join U0 is commutative by Th30;
hence a "\/" b = b "\/" a by BINOP_1:def 2; :: thesis: verum
end;
A2: for a, b, c being Element of LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #) holds a "\/" (b "\/" c) = (a "\/" b) "\/" c
proof
let a, b, c be Element of LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #); :: thesis: a "\/" (b "\/" c) = (a "\/" b) "\/" c
MSAlg_join U0 is associative by Th31;
hence a "\/" (b "\/" c) = (a "\/" b) "\/" c by BINOP_1:def 3; :: thesis: verum
end;
A3: for a, b being Element of LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #) holds (a "/\" b) "\/" b = b
proof
let a, b be Element of LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #); :: thesis: (a "/\" b) "\/" b = b
reconsider x = a, y = b as Element of MSSub U0 ;
(MSAlg_join U0) . ((MSAlg_meet U0) . x,y),y = y
proof
reconsider U1 = x, U2 = y as strict MSSubAlgebra of U0 by Def20;
(MSAlg_meet U0) . x,y = U1 /\ U2 by Def22;
hence (MSAlg_join U0) . ((MSAlg_meet U0) . x,y),y = (U1 /\ U2) "\/" U2 by Def21
.= y by Th29 ;
:: thesis: verum
end;
hence (a "/\" b) "\/" b = b ; :: thesis: verum
end;
A4: for a, b being Element of LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #) holds a "/\" b = b "/\" a
proof
let a, b be Element of LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #); :: thesis: a "/\" b = b "/\" a
MSAlg_meet U0 is commutative by Th32;
hence a "/\" b = b "/\" a by BINOP_1:def 2; :: thesis: verum
end;
A5: for a, b, c being Element of LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #) holds a "/\" (b "/\" c) = (a "/\" b) "/\" c
proof
let a, b, c be Element of LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #); :: thesis: a "/\" (b "/\" c) = (a "/\" b) "/\" c
MSAlg_meet U0 is associative by Th33;
hence a "/\" (b "/\" c) = (a "/\" b) "/\" c by BINOP_1:def 3; :: thesis: verum
end;
for a, b being Element of LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #) holds a "/\" (a "\/" b) = a
proof
let a, b be Element of LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #); :: thesis: a "/\" (a "\/" b) = a
reconsider x = a, y = b as Element of MSSub U0 ;
(MSAlg_meet U0) . x,((MSAlg_join U0) . x,y) = x
proof
reconsider U1 = x, U2 = y as strict MSSubAlgebra of U0 by Def20;
(MSAlg_join U0) . x,y = U1 "\/" U2 by Def21;
hence (MSAlg_meet U0) . x,((MSAlg_join U0) . x,y) = U1 /\ (U1 "\/" U2) by Def22
.= x by Th28 ;
:: thesis: verum
end;
hence a "/\" (a "\/" b) = a ; :: thesis: verum
end;
then ( LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #) is strict & LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #) is join-commutative & LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #) is join-associative & LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #) is meet-absorbing & LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #) is meet-commutative & LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #) is meet-associative & LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #) is join-absorbing ) by A1, A2, A3, A4, A5, LATTICES:def 4, LATTICES:def 5, LATTICES:def 6, LATTICES:def 7, LATTICES:def 8, LATTICES:def 9;
hence LattStr(# (MSSub U0),(MSAlg_join U0),(MSAlg_meet U0) #) is strict Lattice ; :: thesis: verum