Martin Escardo 2011. \begin{code} {-# OPTIONS --without-K --exact-split --safe --auto-inline #-} module NotionsOfDecidability.Complemented where open import MLTT.Spartan open import MLTT.Plus-Properties open import NotionsOfDecidability.Decidable \end{code} We again have a particular case of interest. Complemented subsets, defined below, are often known as decidable subsets. Agda doesn't allow overloading of terminology, and hence we gladly accept the slighly non-universal terminology. \begin{code} complemented : {X : 𝓤 ̇ } (A : X → 𝓥 ̇ ) → 𝓤 ⊔ 𝓥 ̇ complemented A = ∀ x → decidable(A x) characteristic-function : {X : 𝓤 ̇ } {A : X → 𝓥 ̇ } → complemented A → Σ p ꞉ (X → 𝟚) , ((x : X) → (p x = ₀ → A x) × (p x = ₁ → ¬ (A x))) characteristic-function = indicator co-characteristic-function : {X : 𝓤 ̇ } {A : X → 𝓥 ̇ } → complemented A → Σ p ꞉ (X → 𝟚) , ((x : X) → (p x = ₀ → ¬ (A x)) × (p x = ₁ → A x)) co-characteristic-function d = indicator(λ x → +-commutative(d x)) \end{code}