Source code on Github{-# OPTIONS --cubical-compatible #-}
module Class.HasMembership.Core where
open import Relation.Nullary.Decidable using (¬?)
open import Class.Prelude
open import Class.Decidable.Core
open import Class.Decidable.Instances
record HasMembership (F : Type ℓ → Type ℓ) : Type (lsuc $ lsuc ℓ) where
infix 4 _∈_ _∉_
field _∈_ : A → F A → Type ℓ
_∉_ : A → F A → Type ℓ
_∉_ = ¬_ ∘₂ _∈_
module _ ⦃ _ : _∈_ {A = A} ⁇² ⦄ where
infix 4 _∈?_ _∉?_ _∈ᵇ_ _∉ᵇ_
_∈?_ : Decidable² {A = A} _∈_
_∈?_ = dec²
_∉?_ : Decidable² {A = A} _∉_
_∉?_ = dec²
_∈ᵇ_ _∉ᵇ_ : A → F A → Bool
_∈ᵇ_ = isYes ∘₂ _∈?_
_∉ᵇ_ = isYes ∘₂ _∉?_
open HasMembership ⦃...⦄ public