module Never where open import Level using (Level) open import Data.Unit.Polymorphic using (⊤) open import Data.Empty.Polymorphic using (⊥) open import Data.Product using (_,_) open import Relation.Binary open import Relation.Binary.PropositionalEquality as PE using (_≡_) open import Relation.Binary.Construct.Never open import Relation.Nullary module _ {a} (A : Set a) ℓ where impossible : ∀ {x y : A} → ¬ Never {ℓ = ℓ} x y impossible () sym : Symmetric {A = A} {ℓ = ℓ} Never sym () trans : Transitive {A = A} {ℓ = ℓ} Never trans () module _ a ℓ where trichotomous : Trichotomous {A = ⊤ {a}} _≡_ (Never {ℓ = ℓ}) trichotomous _ _ = tri≈ (λ ()) PE.refl (λ ()) isStrictPartialOrder : IsStrictPartialOrder {A = ⊤ {a}} _≡_ (Never {ℓ = ℓ}) isStrictPartialOrder = record { isEquivalence = PE.isEquivalence ; irrefl = λ _ () ; trans = λ () ; <-resp-≈ = (λ _ ()) , λ _ () } isStrictTotalOrder : IsStrictTotalOrder {A = ⊤ {a}} _≡_ (Never {ℓ = ℓ}) isStrictTotalOrder = record { isStrictPartialOrder = isStrictPartialOrder ; compare = trichotomous } strictTotalOrder : StrictTotalOrder _ _ _ strictTotalOrder = record { isStrictTotalOrder = isStrictTotalOrder }