46ULZLRWCBDYLPE7Z4UU4G6ELIHVUWF7WUJIKBCMS3QVHTGA2L4QC module Algebra.Lattice.JoinSemilatticeimport public Builtinimport public Algebra.Relation.Order%default totalinfixl 5 \/public exportinterface Order t => JoinSemilattice t where(\/) : t -> t -> tproofIdempotence : (x : t) -> x \/ x = xproofCommutative : (x, y : t) -> x \/ y = y \/ xproofAssocitive : (x, y, z : t) -> x \/ (y \/ z) = (x \/ y) \/ zproofUpperBound : (x, y : t) -> (x `LTE` x \/ y, y `LTE` x \/ y)proofLeastUpperBound : (b, x, y : t) -> x `LTE` b -> y `LTE` b -> x \/ y `LTE` b
module Algebra.Lattice.MeetSemilatticeimport public Builtinimport public Algebra.Relation.Order%default totalinfixl 5 /\public exportinterface Order t => MeetSemilattice t where(/\) : t -> t -> tproofIdempotence : (x : t) -> x /\ x = xproofCommutative : (x, y : t) -> x /\ y = y /\ xproofAssocitive : (x, y, z : t) -> x /\ (y /\ z) = (x /\ y) /\ zproofLowerBound : (x, y : t) -> (x /\ y `LTE` x, x /\ y `LTE` y)proofGreatestLowerBound : (b, x, y : t) -> b `LTE` x -> b `LTE` y -> b `LTE` x /\ y