Martin Escardo 2012. The Weak Limited Principle of Omniscience (only somebody called Bishop could have called it that), or WLPO for short, says that every infinity binary sequence is either constantly 1 or it isn't. This is equivalent to saying that every decreasing infinity binary sequence os either constantly one or not. The type ββ of decreasing binary sequences is defined in the module GenericConvergentSequence. The constantly 1 sequence is called β. WLPO is independent of type theory: it holds in the model of classical sets, and it fails in recursive models, because it amounts to a solution of the Halting Problem. But we want to keep it undecided, for the sake of being compatible with classical mathematics, following the wishes of Bishop, and perhaps upsetting those of Brouwer who was happy to accept continuity principles that falsify WLPO. In the words of Aczel, WLPO is a taboo. More generally, anything that implies a taboo is a taboo, and any taboo is undecided. Taboos are boundary propositions: they are classically true, recursively false, and constructively, well, taboos! \begin{code} {-# OPTIONS --safe --without-K #-} module Taboos.WLPO where open import MLTT.Spartan open import CoNaturals.Type open import UF.DiscreteAndSeparated open import UF.FunExt open import NotionsOfDecidability.Decidable WLPO : π€β Μ WLPO = (u : ββ) β (u οΌ β) + (u β β) \end{code} If ββ is discrete, i.e. has decidable equality, then WLPO follows: \begin{code} ββ-discrete-gives-WLPO : is-discrete ββ β WLPO ββ-discrete-gives-WLPO d u = d u β \end{code} Added 12 September 2018. Conversely, assuming function extensionality, WLPO implies that ββ is discrete. The proof uses a codistance (or closeness) function c : ββ β ββ β ββ such that c u v οΌ β β u οΌ v. \begin{code} WLPO-gives-ββ-discrete : FunExt β WLPO β is-discrete ββ WLPO-gives-ββ-discrete fe wlpo u v = Cases (wlpo (ββ-closeness u v)) (Ξ» (p : ββ-closeness u v οΌ β) β inl (ββ-infinitely-close-are-equal u v p)) (Ξ» (n : ββ-closeness u v β β) β inr (contrapositive (Ξ» (q : u οΌ v) β ββ-equal-are-infinitely-close u v q) n)) where open import TWA.Closeness fe \end{code} More discussion about WLPO is included in the modules TheTopologyOfTheUniverse and FailureOfTotalSeparatedness, among others. Notice that weak excluded middle implies WLPO. \begin{code} open import UF.ClassicalLogic WEM-gives-WLPO : funextβ β WEM π€β β WLPO WEM-gives-WLPO fe wem u = Cases (wem (u οΌ β)) (Ξ» (p : (u β β)) β inr p) (Ξ» (Ξ½ : Β¬ (u β β)) β inl (ββ-is-¬¬-separated fe u β Ξ½)) \end{code} Added 15th November 2023. \begin{code} open import UF.Base WLPO-traditional : π€β Μ WLPO-traditional = (Ξ± : β β π) β is-decidable ((n : β) β Ξ± n οΌ β) open import MLTT.Two-Properties WLPO-gives-WLPO-traditional : funext π€β π€β β WLPO β WLPO-traditional WLPO-gives-WLPO-traditional fe wlpo Ξ± = IV where I : (ββπ-to-ββ Ξ± οΌ β) + (ββπ-to-ββ Ξ± β β) I = wlpo (ββπ-to-ββ Ξ±) II : ββπ-to-ββ Ξ± οΌ β β (n : β) β Ξ± n οΌ β II p n = IIβ where IIβ : ββ-to-ββπ (ββπ-to-ββ Ξ±) οΌ ββ-to-ββπ β IIβ = ap ββ-to-ββπ p IIβ : force-decreasing Ξ± n οΌ β IIβ = ap (Ξ» - β - n) IIβ IIβ : Ξ± n οΌ β IIβ = β€β-criterion-converse (force-decreasing-is-smaller Ξ± n) IIβ III : ((n : β) β Ξ± n οΌ β) β ββπ-to-ββ Ξ± οΌ β III Ο = ββ-to-ββπ-lc fe (dfunext fe IIIβ) where IIIβ : (n : β) β force-decreasing Ξ± n οΌ Ξ± n IIIβ = force-decreasing-unchanged Ξ± (Ξ» i β transportβ _β€β_ ((Ο (succ i))β»ΒΉ) ((Ο i)β»ΒΉ) (β€β-refl {β})) IIIβ : ββ-to-ββπ (ββπ-to-ββ Ξ±) βΌ ββ-to-ββπ β IIIβ n = ββ-to-ββπ (ββπ-to-ββ Ξ±) n οΌβ¨ refl β© force-decreasing Ξ± n οΌβ¨ IIIβ n β© Ξ± n οΌβ¨ Ο n β© β οΌβ¨ refl β© ββ-to-ββπ β n β IV : is-decidable ((n : β) β Ξ± n οΌ β) IV = map-decidable II III I WLPO-traditional-gives-WLPO : funextβ β WLPO-traditional β WLPO WLPO-traditional-gives-WLPO fe wlpot u = IV where I : is-decidable ((n : β) β ββ-to-ββπ u n οΌ β) I = wlpot (ββ-to-ββπ u) II : ((n : β) β ββ-to-ββπ u n οΌ β) β u οΌ β II Ο = ββ-to-ββπ-lc fe (dfunext fe Ο) III : u οΌ β β (n : β) β ββ-to-ββπ u n οΌ β III e n = ap (Ξ» - β ββ-to-ββπ - n) e IV : (u οΌ β) + (u β β) IV = map-decidable II III I \end{code} Added 9th September 2024. WLPO amounts to saying that the constancy of a binary sequence is decidable. \begin{code} WLPO-variation : π€β Μ WLPO-variation = (Ξ± : β β π) β is-decidable ((n : β) β Ξ± n οΌ Ξ± 0) WLPO-variation-gives-WLPO-traditional : WLPO-variation β WLPO-traditional WLPO-variation-gives-WLPO-traditional wlpov Ξ± = π-equality-cases I II where I : Ξ± 0 οΌ β β ((n : β) β Ξ± n οΌ β) + Β¬ ((n : β) β Ξ± n οΌ β) I p = inr (Ξ» (Ο : (n : β) β Ξ± n οΌ β) β zero-is-not-one (β οΌβ¨ p β»ΒΉ β© Ξ± 0 οΌβ¨ Ο 0 β© β β)) II : Ξ± 0 οΌ β β ((n : β) β Ξ± n οΌ β) + Β¬ ((n : β) β Ξ± n οΌ β) II p = map-decidable (Ξ» (Ο : (n : β) β Ξ± n οΌ Ξ± 0) (n : β) β Ξ± n οΌβ¨ Ο n β© Ξ± 0 οΌβ¨ p β© β β) (Ξ» (Ξ³ : (n : β) β Ξ± n οΌ β) (n : β) β Ξ± n οΌβ¨ Ξ³ n β© β οΌβ¨ p β»ΒΉ β© Ξ± 0 β) (wlpov Ξ±) \end{code} TODO. The converse.