module Order.Semilattice.Join.Reasoning {o β} {P : Poset o β} (slat : is-join-semilattice P) where
Reasoning about join semilatticesπ
This module proves some basic facts about join semilattices, and exposes reasoning combinators for working with them.
open is-join-semilattice slat public open Order.Reasoning P public
The bottom element of a join semilattice is both a left and right identity element with respect to joins.
βͺ-idl : β {x} β bot βͺ x β‘ x βͺ-idl = β€-antisym (βͺ-universal _ Β‘ β€-refl) rβ€βͺ βͺ-idr : β {x} β x βͺ bot β‘ x βͺ-idr = β€-antisym (βͺ-universal _ β€-refl Β‘) lβ€βͺ
Therefore, every join semilattice is a monoid.
βͺ-is-monoid : is-monoid bot _βͺ_ βͺ-is-monoid .has-is-semigroup = βͺ-is-semigroup βͺ-is-monoid .idl = βͺ-idl βͺ-is-monoid .idr = βͺ-idr βͺ-monoid : Monoid-on β P β βͺ-monoid .Monoid-on.identity = bot βͺ-monoid .Monoid-on._β_ = _βͺ_ βͺ-monoid .Monoid-on.has-is-monoid = βͺ-is-monoid module βͺ = Cat.Reasoning (B βͺ-monoid) hiding (Ob)