123456789101112131415161718192021222324252627282930moduletypeLAWS=sigtypetvalmeet_semilattice_1:unit->(t,t->t->t)Law.tvalmeet_semilattice_2:unit->(t,t->t)Law.tvalmeet_semilattice_3:unit->(t,t)Law.tendmoduleFor(L:Preface_specs.MEET_SEMILATTICE):LAWSwithtypet:=L.t=structopenLawletmeet_semilattice_1()=letlhsxyz=L.meetx(L.meetyz)andrhsxyz=L.meet(L.meetxy)zinlaw("meet x (meet y z)"=~lhs)("meet (meet x y) z"=~rhs);;letmeet_semilattice_2()=letlhsxy=L.meetxyandrhsxy=L.meetyxinlaw("meet x y"=~lhs)("meet y x"=~rhs);;letmeet_semilattice_3()=letlhsx=L.meetxxandrhsx=xinlaw("meet x x"=~lhs)("x"=~rhs);;end