module Order.Diagram.Meet whereMeetsš
As mentioned before, in the binary case, we refer to glbs as meets: The meet of and is, if it exists, the greatest element satisfying and
record is-meet (P : Poset o ā) (a b glb : ā P ā) : Type (o ā ā) where
no-eta-equality
open Poset P
field
meetā¤l : glb ⤠a
meetā¤r : glb ⤠b
greatest : (lb' : Ob) ā lb' ⤠a ā lb' ⤠b ā lb' ⤠glb
record Meet (P : Poset o ā) (a b : ā P ā) : Type (o ā ā) where
no-eta-equality
field
glb : ā P ā
has-meet : is-meet P a b glb
open is-meet has-meet public
open is-meet
Has-meets : Poset o ā ā Type (o ā ā)
Has-meets P = ā x y ā Meet P x yA shuffling of terms shows that being a meet is precisely being the greatest lower bound of a family of two elements.
is-meetāis-glb : ā {a b glb} ā is-meet P a b glb ā is-glb P (if_then a else b) glb
is-meetāis-glb meet .glbā¤fam true = meet .meetā¤l
is-meetāis-glb meet .glbā¤fam false = meet .meetā¤r
is-meetāis-glb meet .greatest glb' x = meet .greatest glb' (x true) (x false)
is-glbāis-meet : ā {F : Bool ā Ob} {glb} ā is-glb P F glb ā is-meet P (F true) (F false) glb
is-glbāis-meet glb .meetā¤l = glb .glbā¤fam true
is-glbāis-meet glb .meetā¤r = glb .glbā¤fam false
is-glbāis-meet glb .greatest lb' lb'<a lb'<b = glb .greatest lb' Ī» where
true ā lb'<a
false ā lb'<bAn important lemma about meets is that, if then the greatest lower bound of and is just
leāis-meet : ā {a b} ā a ⤠b ā is-meet P a b a
leāis-meet aā¤b .meetā¤l = ā¤-refl
leāis-meet aā¤b .meetā¤r = aā¤b
leāis-meet aā¤b .greatest lb' lb'ā¤a _ = lb'ā¤a
le-meet : ā {a b l} ā a ⤠b ā is-meet P a b l ā a ā” l
le-meet aā¤b l = meet-unique (leāis-meet aā¤b) lAs productsš
When passing from posets to categories, meets become products: coming from the other direction, if a category has each a proposition, then products in are simply meets.
open is-product
open Product
is-meetāproduct : ā {a b glb : Ob} ā is-meet P a b glb ā Product (posetācategory P) a b
is-meetāproduct glb .apex = _
is-meetāproduct glb .Ļā = glb .is-meet.meetā¤l
is-meetāproduct glb .Ļā = glb .is-meet.meetā¤r
is-meetāproduct glb .has-is-product .āØ_,_ā© q<a q<b =
glb .is-meet.greatest _ q<a q<b
is-meetāproduct glb .has-is-product .ĻāāāØā© = prop!
is-meetāproduct glb .has-is-product .ĻāāāØā© = prop!
is-meetāproduct glb .has-is-product .unique _ _ = prop!