Decidable posets
module order-theory.decidable-posets where
Imports
open import foundation.decidable-propositions 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.decidable-preorders open import order-theory.posets open import order-theory.preorders
Idea
A decidable poset is a poset of which the ordering relation is decidable. It follows that decidable posets have decidable equality.
Definition
module _ {l1 l2 : Level} (X : Poset l1 l2) where is-decidable-leq-Poset-Prop : Prop (l1 ⊔ l2) is-decidable-leq-Poset-Prop = is-decidable-leq-Preorder-Prop (preorder-Poset X) is-decidable-leq-Poset : UU (l1 ⊔ l2) is-decidable-leq-Poset = type-Prop is-decidable-leq-Poset-Prop is-prop-is-decidable-leq-Poset : is-prop is-decidable-leq-Poset is-prop-is-decidable-leq-Poset = is-prop-type-Prop is-decidable-leq-Poset-Prop Decidable-Poset : (l1 l2 : Level) → UU (lsuc l1 ⊔ lsuc l2) Decidable-Poset l1 l2 = Σ (Poset l1 l2) is-decidable-leq-Poset module _ {l1 l2 : Level} (X : Decidable-Poset l1 l2) where poset-Decidable-Poset : Poset l1 l2 poset-Decidable-Poset = pr1 X preorder-Decidable-Poset : Preorder l1 l2 preorder-Decidable-Poset = preorder-Poset poset-Decidable-Poset is-decidable-leq-Decidable-Poset : is-decidable-leq-Poset (poset-Decidable-Poset) is-decidable-leq-Decidable-Poset = pr2 X type-Decidable-Poset : UU l1 type-Decidable-Poset = type-Poset poset-Decidable-Poset leq-Decidable-Poset-Prop : (x y : type-Decidable-Poset) → Prop l2 leq-Decidable-Poset-Prop = leq-Poset-Prop poset-Decidable-Poset leq-Decidable-Poset : (x y : type-Decidable-Poset) → UU l2 leq-Decidable-Poset = leq-Poset poset-Decidable-Poset is-prop-leq-Decidable-Poset : (x y : type-Decidable-Poset) → is-prop (leq-Decidable-Poset x y) is-prop-leq-Decidable-Poset = is-prop-leq-Poset poset-Decidable-Poset decidable-preorder-Decidable-Poset : Decidable-Preorder l1 l2 pr1 decidable-preorder-Decidable-Poset = preorder-Decidable-Poset pr2 decidable-preorder-Decidable-Poset = is-decidable-leq-Decidable-Poset leq-decidable-poset-decidable-Prop : (x y : type-Decidable-Poset) → Decidable-Prop l2 leq-decidable-poset-decidable-Prop = leq-Decidable-Preorder-Decidable-Prop decidable-preorder-Decidable-Poset concatenate-eq-leq-Decidable-Poset : {x y z : type-Decidable-Poset} → x = y → leq-Decidable-Poset y z → leq-Decidable-Poset x z concatenate-eq-leq-Decidable-Poset = concatenate-eq-leq-Poset poset-Decidable-Poset concatenate-leq-eq-Decidable-Poset : {x y z : type-Decidable-Poset} → leq-Decidable-Poset x y → y = z → leq-Decidable-Poset x z concatenate-leq-eq-Decidable-Poset = concatenate-leq-eq-Poset poset-Decidable-Poset refl-leq-Decidable-Poset : (x : type-Decidable-Poset) → leq-Decidable-Poset x x refl-leq-Decidable-Poset = refl-leq-Poset poset-Decidable-Poset transitive-leq-Decidable-Poset : (x y z : type-Decidable-Poset) → leq-Decidable-Poset y z → leq-Decidable-Poset x y → leq-Decidable-Poset x z transitive-leq-Decidable-Poset = transitive-leq-Poset poset-Decidable-Poset antisymmetric-leq-Decidable-Poset : (x y : type-Decidable-Poset) → leq-Decidable-Poset x y → leq-Decidable-Poset y x → Id x y antisymmetric-leq-Decidable-Poset = antisymmetric-leq-Poset poset-Decidable-Poset is-set-type-Decidable-Poset : is-set type-Decidable-Poset is-set-type-Decidable-Poset = is-set-type-Poset poset-Decidable-Poset set-Decidable-Poset : Set l1 set-Decidable-Poset = set-Poset poset-Decidable-Poset