{-# OPTIONS --safe #-}
module Multiset.Omniscience where
open import Multiset.Prelude
open import Cubical.Foundations.HLevels
open import Cubical.Data.Unit.Base as Unit
open import Cubical.Data.Nat.Base as Nat
open import Cubical.Data.Bool.Base as Bool
open import Cubical.Data.Sum.Base as Sum
open import Cubical.HITs.PropositionalTruncation as PT
using
( ∣_∣₁
; ∥_∥₁
)
open import Cubical.Relation.Nullary using (Dec ; yes ; no)
LLPO : Type
LLPO = (a : ℕ → Bool)
→ isProp (Σ[ n ∈ ℕ ] a n ≡ true)
→ ∥ (∀ n → isEvenT n → a n ≡ false) ⊎ (∀ n → isOddT n → a n ≡ false) ∥₁
isPropLLPO : isProp LLPO
isPropLLPO = isPropΠ2 (λ _ _ → PT.isPropPropTrunc)