Meet-suplattices
module order-theory.meet-suplattices where
Imports
open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.propositions open import foundation.sets open import foundation.universe-levels open import order-theory.meet-semilattices open import order-theory.posets open import order-theory.suplattices
Idea
An l
-meet-suplattice is a meet-semilattice L
which has least upper
bounds for all families of elements x : I → L
indexed by a type I : UU l
.
Note that meet-suplattices are not required to satisfy a distributive law. Such meet-suplattices are called frames.
Definitions
The predicate on meet-semilattices of being a meet-suplattice
module _ {l1 : Level} (l2 : Level) (X : Meet-Semilattice l1) where is-meet-suplattice-Meet-Semilattice-Prop : Prop (l1 ⊔ lsuc l2) is-meet-suplattice-Meet-Semilattice-Prop = is-suplattice-Poset-Prop l2 (poset-Meet-Semilattice X) is-meet-suplattice-Meet-Semilattice : UU (l1 ⊔ lsuc l2) is-meet-suplattice-Meet-Semilattice = type-Prop is-meet-suplattice-Meet-Semilattice-Prop is-prop-is-meet-suplattice-Meet-Semilattice : is-prop is-meet-suplattice-Meet-Semilattice is-prop-is-meet-suplattice-Meet-Semilattice = is-prop-type-Prop is-meet-suplattice-Meet-Semilattice-Prop
Meet-suplattices
Meet-Suplattice : (l1 l2 : Level) → UU (lsuc l1 ⊔ lsuc l2) Meet-Suplattice l1 l2 = Σ (Meet-Semilattice l1) (is-meet-suplattice-Meet-Semilattice l2) module _ {l1 l2 : Level} (A : Meet-Suplattice l1 l2) where meet-semilattice-Meet-Suplattice : Meet-Semilattice l1 meet-semilattice-Meet-Suplattice = pr1 A poset-Meet-Suplattice : Poset l1 l1 poset-Meet-Suplattice = poset-Meet-Semilattice meet-semilattice-Meet-Suplattice type-Meet-Suplattice : UU l1 type-Meet-Suplattice = type-Poset poset-Meet-Suplattice leq-meet-suplattice-Prop : (x y : type-Meet-Suplattice) → Prop l1 leq-meet-suplattice-Prop = leq-Poset-Prop poset-Meet-Suplattice leq-Meet-Suplattice : (x y : type-Meet-Suplattice) → UU l1 leq-Meet-Suplattice = leq-Poset poset-Meet-Suplattice is-prop-leq-Meet-Suplattice : (x y : type-Meet-Suplattice) → is-prop (leq-Meet-Suplattice x y) is-prop-leq-Meet-Suplattice = is-prop-leq-Poset poset-Meet-Suplattice refl-leq-Meet-Suplattice : (x : type-Meet-Suplattice) → leq-Meet-Suplattice x x refl-leq-Meet-Suplattice = refl-leq-Poset poset-Meet-Suplattice antisymmetric-leq-Meet-Suplattice : (x y : type-Meet-Suplattice) → leq-Meet-Suplattice x y → leq-Meet-Suplattice y x → x = y antisymmetric-leq-Meet-Suplattice = antisymmetric-leq-Poset poset-Meet-Suplattice transitive-leq-Meet-Suplattice : (x y z : type-Meet-Suplattice) → leq-Meet-Suplattice y z → leq-Meet-Suplattice x y → leq-Meet-Suplattice x z transitive-leq-Meet-Suplattice = transitive-leq-Poset poset-Meet-Suplattice is-set-type-Meet-Suplattice : is-set type-Meet-Suplattice is-set-type-Meet-Suplattice = is-set-type-Poset poset-Meet-Suplattice set-Meet-Suplattice : Set l1 set-Meet-Suplattice = set-Poset poset-Meet-Suplattice is-suplattice-Meet-Suplattice : is-suplattice-Poset l2 poset-Meet-Suplattice is-suplattice-Meet-Suplattice = pr2 A suplattice-Meet-Suplattice : Suplattice l1 l1 l2 suplattice-Meet-Suplattice = ( poset-Meet-Suplattice , is-suplattice-Meet-Suplattice) meet-Meet-Suplattice : (x y : type-Meet-Suplattice) → type-Meet-Suplattice meet-Meet-Suplattice = meet-Meet-Semilattice meet-semilattice-Meet-Suplattice sup-Meet-Suplattice : {I : UU l2} → (I → type-Meet-Suplattice) → type-Meet-Suplattice sup-Meet-Suplattice {I} f = pr1 (is-suplattice-Meet-Suplattice I f)