module Data.Set.Empty where open import Prelude open import Data.Set.Eliminators open import Data.Set.Definition open import Data.Bool.Properties null-alg : ψ A Bool null-alg .fst ∅ = true null-alg .fst (_ ∷ _ ⟨ _ ⟩) = false null-alg .snd .c-trunc _ = isSetBool null-alg .snd .c-com _ _ _ _ = refl null-alg .snd .c-dup _ _ _ = refl null : 𝒦 A → Bool null = ⟦ null-alg ⟧ Empty : 𝒦 A → Type Empty = T ∘ null Empty? : (xs : 𝒦 A) → Dec (Empty xs) Empty? = T? ∘ null ∅≢∷ : ∀ {x : A} {xs} → ∅ ≢ x ∷ xs ∅≢∷ = true≢false ∘ cong null