Taboos involving ordinal exponentiation. \begin{code} {-# OPTIONS --safe --without-K --exact-split --lossy-unification #-} open import UF.Univalence open import UF.PropTrunc open import UF.Size module Ordinals.Exponentiation.Taboos (ua : Univalence) (pt : propositional-truncations-exist) (sr : Set-Replacement pt) where open import UF.FunExt open import UF.UA-FunExt open import UF.Subsingletons private fe : FunExt fe = Univalence-gives-FunExt ua fe' : Fun-Ext fe' {π€} {π₯} = fe π€ π₯ pe : Prop-Ext pe = Univalence-gives-Prop-Ext ua open import MLTT.Spartan open import MLTT.Plus-Properties open import Ordinals.AdditionProperties ua open import Ordinals.Arithmetic fe open import Ordinals.Equivalence open import Ordinals.Maps open import Ordinals.Notions open import Ordinals.MultiplicationProperties ua open import Ordinals.OrdinalOfOrdinals ua open import Ordinals.OrdinalOfOrdinalsSuprema ua open import Ordinals.Propositions ua open import Ordinals.Type open import Ordinals.Underlying open import Ordinals.Exponentiation.DecreasingList ua open import Ordinals.Exponentiation.PropertiesViaTransport ua pt sr open import Ordinals.Exponentiation.Specification ua pt sr open import Ordinals.Exponentiation.Supremum ua pt sr open import Ordinals.Exponentiation.TrichotomousLeastElement ua open import UF.Base open import UF.ClassicalLogic open import UF.Equiv open import UF.SubtypeClassifier open PropositionalTruncation pt open suprema pt sr \end{code} We will show that, constructively, exponentiation is not in general monotone in the base. More precisely, the statement Ξ± β΄ Ξ² β Ξ± ^β Ξ³ β΄ Ξ± ^β Ξ³ (for all ordinals Ξ±, Ξ² and Ξ³) implies excluded middle. Moreover, we can even strengthen the hypothesis to have a strict inequality, i.e. the weaker statement Ξ± β² Ξ² β Ξ± ^β Ξ³ β΄ Ξ± ^β Ξ³ (for all ordinals Ξ±, Ξ² and Ξ³) already implies excluded middle. Since our concrete exponentiation is only well defined for bases Ξ± with a trichotomous least element, we further add this assumption to the statement (and still derive excluded middle from it). Furthermore, we can actually fix Ξ³ := πβ in the statement. Since Ξ± ^β πβ οΌ Ξ± Γβ Ξ± for any (reasonable) notion of ordinal exponentiation, we see that the taboo applies to any such notion and we formalize this as exponentiation-weakly-monotone-in-base-implies-EM below. In particular we can reduce the derivation of excluded middle from a statement about multiplication: \begin{code} Γβ-weakly-monotone-in-both-arguments-implies-EM : ((Ξ± Ξ² : Ordinal π€) β has-trichotomous-least-element Ξ± β has-trichotomous-least-element Ξ² β Ξ± β² Ξ² β Ξ± Γβ Ξ± β΄ Ξ² Γβ Ξ²) β EM π€ Γβ-weakly-monotone-in-both-arguments-implies-EM {π€} assumption P P-is-prop = IV (f x) refl where Ξ± Ξ² Pβ : Ordinal π€ Ξ± = [ 2 ]β Pβ = prop-ordinal P P-is-prop Ξ² = [ 3 ]β +β Pβ pattern β₯Ξ² = inl (inl (inl β)) I : Ξ± β² Ξ² I = inl (inr β) , ((successor-lemma-right Ξ±) β»ΒΉ β +β-β-left (inr β)) Ξ±-has-trichotomous-least-element : has-trichotomous-least-element Ξ± Ξ±-has-trichotomous-least-element = inl β , h where h : (x : β¨ Ξ± β©) β (inl β οΌ x) + (inl β βΊβ¨ Ξ± β© x) h (inl β) = inl refl h (inr β) = inr β Ξ²-has-trichotomous-least-element : has-trichotomous-least-element Ξ² Ξ²-has-trichotomous-least-element = β₯Ξ² , h where h : (y : β¨ Ξ² β©) β (β₯Ξ² οΌ y) + (β₯Ξ² βΊβ¨ Ξ² β© y) h β₯Ξ² = inl refl h (inl (inl (inr β))) = inr β h (inl (inr β)) = inr β h (inr p) = inr β II : Ξ± Γβ Ξ± β΄ Ξ² Γβ Ξ² II = assumption Ξ± Ξ² Ξ±-has-trichotomous-least-element Ξ²-has-trichotomous-least-element I x : β¨ Ξ± Γβ Ξ± β© x = (inr β , inr β) f : β¨ Ξ± Γβ Ξ± β© β β¨ Ξ² Γβ Ξ² β© f = [ Ξ± Γβ Ξ± , Ξ² Γβ Ξ² ]β¨ II β© pattern βΞ± = (inl β , inl β) pattern βΞ± = (inr β , inl β) pattern βΞ± = (inl β , inr β) pattern βΞ± = (inr β , inr β) f' : P β β¨ Ξ± Γβ Ξ± β© β β¨ Ξ² Γβ Ξ² β© f' p βΞ± = (β₯Ξ² , β₯Ξ²) f' p βΞ± = (inl (inl (inr β)) , β₯Ξ²) f' p βΞ± = (inl (inr β) , β₯Ξ²) f' p βΞ± = (inr p , β₯Ξ²) f'-simulation : (p : P) β is-simulation (Ξ± Γβ Ξ±) (Ξ² Γβ Ξ²) (f' p) f'-simulation p = f'-initial-seg , f'-order-pres where f'-initial-seg : is-initial-segment (Ξ± Γβ Ξ±) (Ξ² Γβ Ξ²) (f' p) f'-initial-seg βΞ± (y , inl (inl (inl β))) (inl l) = π-elim l f'-initial-seg βΞ± (y , inl (inl (inr β))) (inl l) = π-elim l f'-initial-seg βΞ± (inl (inl (inl β)) , _) (inr (refl , l)) = π-elim l f'-initial-seg βΞ± (inl (inl (inr β)) , _) (inr (refl , l)) = π-elim l f'-initial-seg βΞ± (y , inl (inl (inl β))) (inl l) = π-elim l f'-initial-seg βΞ± (y , inl (inl (inr β))) (inl l) = π-elim l f'-initial-seg βΞ± (inl (inl (inl β)) , z) (inr (refl , l)) = βΞ± , inr (refl , β) , refl f'-initial-seg βΞ± (y , inl (inl (inl β))) (inl l) = π-elim l f'-initial-seg βΞ± (y , inl (inl (inr β))) (inl l) = π-elim l f'-initial-seg βΞ± (inl (inl (inl β)) , z) (inr (refl , l)) = βΞ± , inl β , refl f'-initial-seg βΞ± (inl (inl (inr β)) , z) (inr (refl , l)) = βΞ± , inl β , refl f'-initial-seg βΞ± (y , inl (inl (inl β))) (inl l) = π-elim l f'-initial-seg βΞ± (y , inl (inl (inr β))) (inl l) = π-elim l f'-initial-seg βΞ± (inl (inl (inl β)) , z) (inr (refl , l)) = βΞ± , inl β , refl f'-initial-seg βΞ± (inl (inl (inr β)) , z) (inr (refl , l)) = βΞ± , inl β , refl f'-initial-seg βΞ± (inl (inr β) , z) (inr (refl , l)) = βΞ± , inr (refl , β) , refl f'-order-pres : is-order-preserving (Ξ± Γβ Ξ±) (Ξ² Γβ Ξ²) (f' p) f'-order-pres βΞ± βΞ± l = π-elim (cases id prβ l) f'-order-pres βΞ± βΞ± l = inr (refl , β) f'-order-pres βΞ± βΞ± l = inr (refl , β) f'-order-pres βΞ± βΞ± l = inr (refl , β) f'-order-pres βΞ± βΞ± l = π-elim (cases id prβ l) f'-order-pres βΞ± βΞ± l = π-elim (cases id prβ l) f'-order-pres βΞ± βΞ± l = inr (refl , β) f'-order-pres βΞ± βΞ± l = inr (refl , β) f'-order-pres βΞ± βΞ± l = π-elim (cases id prβ l) f'-order-pres βΞ± βΞ± (inl l) = π-elim l f'-order-pres βΞ± βΞ± (inr (e , l)) = π-elim (+disjoint (e β»ΒΉ)) f'-order-pres βΞ± βΞ± l = π-elim (cases id prβ l) f'-order-pres βΞ± βΞ± l = inr (refl , β) f'-order-pres βΞ± βΞ± l = π-elim (cases id prβ l) f'-order-pres βΞ± βΞ± l = π-elim (cases id prβ l) f'-order-pres βΞ± βΞ± l = π-elim (cases id prβ l) f'-order-pres βΞ± βΞ± l = π-elim (cases id prβ l) III : (p : P) β f βΌ f' p III p = at-most-one-simulation (Ξ± Γβ Ξ±) (Ξ² Γβ Ξ²) f (f' p) [ Ξ± Γβ Ξ± , Ξ² Γβ Ξ² ]β¨ II β©-is-simulation (f'-simulation p) IV : (y : β¨ Ξ² Γβ Ξ² β©) β f x οΌ y β P + Β¬ P IV (inr p , y') r = inl p IV (inl y , y') r = inr (Ξ» p β +disjoint (ap prβ (V p))) where V : (p : P) β (inl y , y') οΌ (inr p , β₯Ξ²) V p = (inl y , y') οΌβ¨ r β»ΒΉ β© f x οΌβ¨ III p x β© (inr p , β₯Ξ²) β \end{code} As announced, we get excluded middle from (weak) monotonicity of exponentiation in the base. \begin{code} exponentiation-weakly-monotone-in-base-implies-EM : (exp : Ordinal π€ β Ordinal π€ β Ordinal π€) β ((Ξ± : Ordinal π€) β has-trichotomous-least-element Ξ± β exp-specification-zero Ξ± (exp Ξ±)) β ((Ξ± : Ordinal π€) β has-trichotomous-least-element Ξ± β exp-specification-succ Ξ± (exp Ξ±)) β ((Ξ± Ξ² Ξ³ : Ordinal π€) β has-trichotomous-least-element Ξ± β has-trichotomous-least-element Ξ² β Ξ± β² Ξ² β (exp Ξ± Ξ³ β΄ exp Ξ² Ξ³)) β EM π€ exponentiation-weakly-monotone-in-base-implies-EM {π€} exp exp-zero exp-succ H = Γβ-weakly-monotone-in-both-arguments-implies-EM I where I : (Ξ± Ξ² : Ordinal π€) β has-trichotomous-least-element Ξ± β has-trichotomous-least-element Ξ² β Ξ± β² Ξ² β Ξ± Γβ Ξ± β΄ Ξ² Γβ Ξ² I Ξ± Ξ² h h' s = transportβ _β΄_ II III (H Ξ± Ξ² πβ h h' s) where II : exp Ξ± πβ οΌ Ξ± Γβ Ξ± II = exp-πβ-is-Γβ Ξ± (exp Ξ±) (exp-zero Ξ± h) (exp-succ Ξ± h) III : exp Ξ² πβ οΌ Ξ² Γβ Ξ² III = exp-πβ-is-Γβ Ξ² (exp Ξ²) (exp-zero Ξ² h') (exp-succ Ξ² h') ^β-weakly-monotone-in-base-implies-EM : ((Ξ± Ξ² Ξ³ : Ordinal π€) β has-trichotomous-least-element Ξ± β has-trichotomous-least-element Ξ² β Ξ± β² Ξ² β Ξ± ^β Ξ³ β΄ Ξ² ^β Ξ³) β EM π€ ^β-weakly-monotone-in-base-implies-EM {π€} = exponentiation-weakly-monotone-in-base-implies-EM _^β_ (Ξ» Ξ± h β ^β-satisfies-zero-specification Ξ±) (Ξ» Ξ± h β ^β-satisfies-succ-specification Ξ± (trichotomous-least-element-gives-πβ-β΄ Ξ± h)) ^β-monotone-in-base-implies-EM : ((Ξ± Ξ² Ξ³ : Ordinal π€) β has-trichotomous-least-element Ξ± β has-trichotomous-least-element Ξ² β Ξ± β΄ Ξ² β Ξ± ^β Ξ³ β΄ Ξ² ^β Ξ³) β EM π€ ^β-monotone-in-base-implies-EM m = ^β-weakly-monotone-in-base-implies-EM (Ξ» Ξ± Ξ² Ξ³ h h' i β m Ξ± Ξ² Ξ³ h h' (β²-gives-β΄ Ξ± Ξ² i)) \end{code} Classically, exponentiation is of course monotone in the base. \begin{code} EM-implies-exp-monotone-in-base : EM π€ β (Ξ± Ξ² Ξ³ : Ordinal π€) β Ξ± β΄ Ξ² β Ξ± ^β Ξ³ β΄ Ξ² ^β Ξ³ EM-implies-exp-monotone-in-base {π€} em Ξ± Ξ² Ξ³ l = transfinite-induction-on-OO _ I Ξ³ where I : (Ξ³ : Ordinal π€) β ((c : β¨ Ξ³ β©) β (Ξ± ^β (Ξ³ β c) β΄ Ξ² ^β (Ξ³ β c))) β (Ξ± ^β Ξ³ β΄ Ξ² ^β Ξ³) I Ξ³ IH = transportββ»ΒΉ _β΄_ (^β-behaviour Ξ± Ξ³) (^β-behaviour Ξ² Ξ³) (sup-monotone (cases (Ξ» _ β πβ) (Ξ» c β Ξ± ^β (Ξ³ β c) Γβ Ξ±)) (cases (Ξ» _ β πβ) (Ξ» c β Ξ² ^β (Ξ³ β c) Γβ Ξ²)) ΞΊ) where ΞΊ : (i : π + β¨ Ξ³ β©) β cases (Ξ» _ β πβ) (Ξ» c β Ξ± ^β (Ξ³ β c) Γβ Ξ±) i β΄ cases (Ξ» _ β πβ) (Ξ» c β Ξ² ^β (Ξ³ β c) Γβ Ξ²) i ΞΊ (inl β) = β΄-refl πβ ΞΊ (inr c) = EM-implies-induced-β΄-on-Γβ em (Ξ± ^β (Ξ³ β c)) Ξ± (Ξ² ^β (Ξ³ β c)) Ξ² (IH c) l \end{code} The below shows that constructively we cannot expect to have an operation exp : Ordinal π€ β Ordinal π€ β Ordinal π€ that behaves like exponentiation for *all* bases Ξ± and exponents Ξ². In Ordinals.Exponentiation.Suprema we construct an operation _^β_ that is well behaved for all bases Ξ± β΅ πβ and all exponents Ξ². \begin{code} module _ (exp : Ordinal π€ β Ordinal π€ β Ordinal π€) where exponentiation-defined-everywhere-implies-EM' : ((Ξ± : Ordinal π€) β exp-specification-zero Ξ± (exp Ξ±)) β ((Ξ± : Ordinal π€) β exp-specification-succ Ξ± (exp Ξ±)) β ((Ξ± : Ordinal π€) β Ξ± β πβ β is-monotone (OO π€) (OO π€) (exp Ξ±)) β EM π€ exponentiation-defined-everywhere-implies-EM' exp-zero exp-succ exp-mon P P-is-prop = III (f β , refl) where Ξ± : Ordinal π€ Ξ± = prop-ordinal P P-is-prop +β πβ Ξ±-not-zero : Β¬ (Ξ± οΌ πβ) Ξ±-not-zero e = π-elim (Idtofun (ap β¨_β© e) (inr β)) eqβ : exp Ξ± πβ οΌ πβ eqβ = exp-zero Ξ± eqβ : exp Ξ± πβ οΌ Ξ± eqβ = πβ-neutral-exp Ξ± (exp Ξ±) (exp-zero Ξ±) (exp-succ Ξ±) I : exp Ξ± πβ β΄ exp Ξ± πβ I = βΌ-gives-β΄ (exp Ξ± πβ) (exp Ξ± πβ) (exp-mon Ξ± Ξ±-not-zero πβ πβ (πβ-least πβ)) II : πβ β΄ Ξ± II = transportβ _β΄_ eqβ eqβ I f = [ πβ , Ξ± ]β¨ II β© III : Ξ£ a κ β¨ Ξ± β© , (f β οΌ a) β P + Β¬ P III (inl p , _) = inl p III (inr β , r) = inr (Ξ» p β π-elim (prβ (prβ (h p)))) where h : (p : P) β Ξ£ u κ π , u βΊβ¨ πβ β© β Γ (f u οΌ inl p) h p = simulations-are-initial-segments πβ Ξ± f [ πβ , Ξ± ]β¨ II β©-is-simulation β (inl p) (transportβ»ΒΉ (Ξ» - β inl p βΊβ¨ Ξ± β© -) r β) exponentiation-defined-everywhere-implies-EM : ((Ξ± : Ordinal π€) β exp-specification-zero Ξ± (exp Ξ±)) β ((Ξ± : Ordinal π€) β exp-specification-succ Ξ± (exp Ξ±)) β ((Ξ± : Ordinal π€) β exp-specification-sup Ξ± (exp Ξ±)) β EM π€ exponentiation-defined-everywhere-implies-EM exp-zero exp-succ exp-sup = exponentiation-defined-everywhere-implies-EM' exp-zero exp-succ (Ξ» Ξ± Ξ½ β is-monotone-if-continuous (exp Ξ±) (exp-sup Ξ± Ξ½)) \end{code} And conversely, as is well known, excluded middle gives an exponentiation function that is defined everywhere. Below, we use excluded middle to decide if an ordinal Ξ± is zero or not, and if not, to construct Ξ±' such that Ξ± = πβ +β Ξ±'. From there, we can use our concrete construction from Ordinals.Exponentiation.DecreasingList, but other choices are also possible, including, for example, using the abstract construction from Ordinals.Exponentiation.Supremum. \begin{code} π^_ : Ordinal π€ β Ordinal π€ π^_ {π€} Ξ² = prop-ordinal (Ξ² ββ πβ{π€}) (ββ-is-prop-valued fe' Ξ² πβ) π^-zero-spec : π^ πβ {π€} οΌ πβ π^-zero-spec {π€} = prop-ordinal-οΌ (ββ-is-prop-valued fe' πβ πβ) π-is-prop (Ξ» _ β β) (Ξ» _ β (ββ-refl πβ)) π^-succ-spec : (Ξ² : Ordinal π€) β π^ (Ξ² +β πβ) οΌ (π^ Ξ²) Γβ πβ {π€} π^-succ-spec {π€} Ξ² = eq β Γβ-πβ-right (π^ Ξ²) β»ΒΉ where f : (Ξ² +β πβ) ββ πβ β π f e = ββ-to-fun (Ξ² +β πβ) πβ e (inr β) eq : π^ (Ξ² +β πβ) οΌ πβ eq = prop-ordinal-οΌ (ββ-is-prop-valued fe' (Ξ² +β πβ) πβ) π-is-prop f π-elim π^-sup-spec : (Ξ² : Ordinal π€) β Β¬ (Ξ² οΌ πβ) β (π^ Ξ²) οΌ πβ π^-sup-spec Ξ² Ξ²-ne = prop-ordinal-οΌ (ββ-is-prop-valued fe' Ξ² πβ) π-is-prop (Ξ» e β π-elim (Ξ²-ne (eqtoidβ (ua _) fe' _ _ e))) π-elim private has-trichotomous-least-element-or-is-zero : Ordinal π€ β π€ βΊ Μ has-trichotomous-least-element-or-is-zero Ξ± = has-trichotomous-least-element Ξ± + (Ξ± οΌ πβ) Has-trichotomous-least-element-or-is-zero : π€ βΊ Μ Has-trichotomous-least-element-or-is-zero {π€} = (Ξ± : Ordinal π€) β has-trichotomous-least-element-or-is-zero Ξ± EM-gives-Has-trichotomous-least-element-or-is-zero : EM π€ β Has-trichotomous-least-element-or-is-zero {π€} EM-gives-Has-trichotomous-least-element-or-is-zero em Ξ± = II (em β₯ β¨ Ξ± β© β₯ β₯β₯-is-prop) where open import Ordinals.WellOrderingTaboo fe' pe open ClassicalWellOrder pt has-minimal = Ξ£ xβ κ β¨ Ξ± β© , ((x : β¨ Ξ± β©) β Β¬ (x βΊβ¨ Ξ± β© xβ)) I : β₯ β¨ Ξ± β© β₯ β has-minimal I i = prβ I' , (Ξ» x β prβ (prβ I') x β) where I' : Ξ£ xβ κ β¨ Ξ± β© , π Γ ((x : β¨ Ξ± β©) β π β Β¬ (x βΊβ¨ Ξ± β© xβ)) I' = well-order-gives-minimal (underlying-order Ξ±) em (is-well-ordered Ξ±) (Ξ» _ β π) (Ξ» _ β π-is-prop) (β₯β₯-functor (Ξ» x β x , β) i) II : is-decidable β₯ β¨ Ξ± β© β₯ β has-trichotomous-least-element-or-is-zero Ξ± II (inl i) = inl (xβ , Ο (classical-well-orders-are-uniquely-trichotomous (underlying-order Ξ±) (inductive-well-order-is-classical (underlying-order Ξ±) em (is-well-ordered Ξ±)))) where xβ = prβ (I i) xβ-is-minimal = prβ (I i) Ο : ((x y : β¨ Ξ± β©) β is-singleton ((x βΊβ¨ Ξ± β© y) + (x οΌ y) + (y βΊβ¨ Ξ± β© x))) β is-trichotomous-least Ξ± xβ Ο Ο x = ΞΊ (center (Ο xβ x)) where ΞΊ : (xβ βΊβ¨ Ξ± β© x) + (xβ οΌ x) + (x βΊβ¨ Ξ± β© xβ) β (xβ οΌ x) + (xβ βΊβ¨ Ξ± β© x) ΞΊ (inl u) = inr u ΞΊ (inr (inl e)) = inl e ΞΊ (inr (inr v)) = π-elim (xβ-is-minimal x v) II (inr ni) = inr (β΄-antisym Ξ± πβ (to-β΄ Ξ± πβ Ξ» x β π-elim (ni β£ x β£)) (βΌ-gives-β΄ πβ Ξ± (πβ-least Ξ±))) \end{code} We now explicitly include a zero case in the supremum specification: \begin{code} exp-specification-sup-revised : Ordinal π€ β (Ordinal π€ β Ordinal π€) β π€ βΊ Μ exp-specification-sup-revised {π€} Ξ± exp = exp-specification-sup Ξ± exp Γ (Ξ± οΌ πβ β (Ξ² : Ordinal π€) β Ξ² β πβ β exp Ξ² οΌ πβ) exp-full-specification : (Ordinal π€ β Ordinal π€ β Ordinal π€) β π€ βΊ Μ exp-full-specification {π€} exp = ((Ξ± : Ordinal π€) β exp-specification-zero Ξ± (exp Ξ±)) Γ ((Ξ± : Ordinal π€) β exp-specification-succ Ξ± (exp Ξ±)) Γ ((Ξ± : Ordinal π€) β exp-specification-sup-revised Ξ± (exp Ξ±)) Has-trichotomous-least-element-or-is-zero-gives-full-exponentiation : Has-trichotomous-least-element-or-is-zero β Ξ£ exp κ (Ordinal π€ β Ordinal π€ β Ordinal π€) , exp-full-specification exp Has-trichotomous-least-element-or-is-zero-gives-full-exponentiation {π€} ΞΊ = exp , exp-spec where exp-aux : (Ξ± : Ordinal π€) β has-trichotomous-least-element-or-is-zero Ξ± β Ordinal π€ β Ordinal π€ exp-aux Ξ± (inl h) Ξ² = exponentiationα΄Έ Ξ± h Ξ² exp-aux Ξ± (inr _) Ξ² = π^ Ξ² exp : Ordinal π€ β Ordinal π€ β Ordinal π€ exp Ξ± = exp-aux Ξ± (ΞΊ Ξ±) specβ : (Ξ± : Ordinal π€) (ΞΊ : has-trichotomous-least-element-or-is-zero Ξ±) β exp-specification-zero Ξ± (exp-aux Ξ± ΞΊ) specβ Ξ± (inl h) = exponentiationα΄Έ-satisfies-zero-specification Ξ± h specβ Ξ± (inr refl) = π^-zero-spec specβ : (Ξ± : Ordinal π€) (ΞΊ : has-trichotomous-least-element-or-is-zero Ξ±) β exp-specification-succ Ξ± (exp-aux Ξ± ΞΊ) specβ Ξ± (inl h) = exponentiationα΄Έ-satisfies-succ-specification Ξ± h specβ Ξ± (inr refl) = π^-succ-spec specβ : (Ξ± : Ordinal π€) (ΞΊ : has-trichotomous-least-element-or-is-zero Ξ±) β exp-specification-sup-revised Ξ± (exp-aux Ξ± ΞΊ) specβ Ξ± (inl h@(xβ , _)) = exponentiationα΄Έ-satisfies-sup-specification Ξ± h , (Ξ» Ξ±-is-zero β π-elim (Idtofunβ Ξ±-is-zero xβ)) specβ Ξ± (inr r) = (Ξ» Ξ±-is-nonzero β π-elim (Ξ±-is-nonzero r)) , (Ξ» _ β π^-sup-spec) exp-spec : exp-full-specification exp exp-spec = (Ξ» Ξ± β specβ Ξ± (ΞΊ Ξ±)) , (Ξ» Ξ± β specβ Ξ± (ΞΊ Ξ±)) , (Ξ» Ξ± β specβ Ξ± (ΞΊ Ξ±)) EM-gives-full-exponentiation : EM π€ β Ξ£ exp κ (Ordinal π€ β Ordinal π€ β Ordinal π€) , exp-full-specification exp EM-gives-full-exponentiation em = Has-trichotomous-least-element-or-is-zero-gives-full-exponentiation (EM-gives-Has-trichotomous-least-element-or-is-zero em) \end{code} Our development of a concrete representation of exponentials only works for base Ξ± which has a trichotomous least element, in which case the subtype of positive elements again is an ordinal. Here we show that one cannot avoid the restriction to a *trichotomous* least element constructively: if the subtype of positive elements of Ξ± were an ordinal for every (very large) ordinal Ξ±, then excluded middle would hold. To derive the taboo, we consider the very large ordinal of large ordinals OO (π€ βΊ), which has a least element πβ. The two (large) ordinals Ξ©β and πβ are positive in OO (π€ βΊ), and have the same positive predecessors. Hence if the subtype of positive elements would have an extensional order relation, we would have Ξ©β οΌ πβ, which is equivalent to excluded middle. \begin{code} subtype-of-positive-elements-an-ordinal-implies-EM : ((Ξ± : Ordinal (π€ βΊβΊ)) (x : β¨ Ξ± β©) β is-least Ξ± x β is-well-order (subtype-order Ξ± (Ξ» - β x βΊβ¨ Ξ± β© -))) β EM π€ subtype-of-positive-elements-an-ordinal-implies-EM {π€} hyp = III where open import Ordinals.OrdinalOfTruthValues fe π€ pe open import UF.DiscreteAndSeparated _<_ = (subtype-order (OO (π€ βΊ)) (Ξ» - β πβ βΊβ¨ OO (π€ βΊ) β© -)) hyp' : is-extensional' _<_ hyp' = extensional-gives-extensional' _<_ (extensionality _<_ (hyp (OO (π€ βΊ)) πβ πβ-least)) Positive-Ord = Ξ£ Ξ± κ Ordinal (π€ βΊ) , πβ β² Ξ± Ξ©β : Positive-Ord Ξ©β = Ξ©β , β₯ , eqtoidβ (ua (π€ βΊ)) fe' πβ (Ξ©β β β₯) (ββ-trans πβ πβ (Ξ©β β β₯) II I) where I : πβ ββ Ξ©β β β₯ I = ββ-sym (Ξ©β β β₯) πβ (Ξ©ββ-is-id ua β₯) II : πβ {π€ βΊ} ββ πβ {π€} II = only-one-πβ πβ : Positive-Ord πβ = πβ , inl β , (prop-ordinal-β π-is-prop β β»ΒΉ β +β-β-left β) I : (Ξ³ : Positive-Ord) β (Ξ³ < Ξ©β β Ξ³ < πβ) I (Ξ³ , u@(c , _)) = Iβ , Iβ where Iβ : ((Ξ³ , u) < Ξ©β) β ((Ξ³ , u) < πβ) Iβ (P , refl) = inr β , eqtoidβ (ua (π€ βΊ)) fe' _ _ (ββ-trans (Ξ©β β P) Pβ (πβ β inr β) eβ eβ) where Pβ = prop-ordinal (P holds) (holds-is-prop P) eβ : (Ξ©β β P) ββ Pβ eβ = Ξ©ββ-is-id ua P eβ : Pβ ββ πβ β inr β eβ = transportβ»ΒΉ (Pβ ββ_) (successor-lemma-right πβ) (prop-ordinal-ββ (holds-is-prop P) π-is-prop (Ξ» _ β β) (Ξ» _ β ββ-to-fun (Ξ©β β P) Pβ eβ c)) Iβ : ((Ξ³ , u) < πβ) β ((Ξ³ , u) < Ξ©β) Iβ l = β²-β΄-gives-β² Ξ³ πβ Ξ©β l (πβ-leq-Ξ©β ua) II : Ξ© π€ οΌ β¨ πβ β© II = ap (β¨_β© β prβ) (hyp' Ξ©β πβ I) III : EM π€ III = Ξ©-discrete-gives-EM fe' pe (equiv-to-discrete (idtoeq (π + π) (Ξ© π€) (II β»ΒΉ)) (+-is-discrete π-is-discrete π-is-discrete)) \end{code} The converse holds too of course. \begin{code} EM-implies-subtype-of-positive-elements-an-ordinal : EM π€ β ((Ξ± : Ordinal π€) (x : β¨ Ξ± β©) β is-least Ξ± x β is-well-order (subtype-order Ξ± (Ξ» - β x βΊβ¨ Ξ± β© -))) EM-implies-subtype-of-positive-elements-an-ordinal {π€} em Ξ± x x-least = subtype-order-is-prop-valued Ξ± P , subtype-order-is-well-founded Ξ± P , EM-implies-subtype-order-is-extensional Ξ± P em (Prop-valuedness Ξ± x) , subtype-order-is-transitive Ξ± P where P : β¨ Ξ± β© β π€ Μ P y = x βΊβ¨ Ξ± β© y \end{code} The following is an example of an equation that does not follow from the specification of exponentiation, since we cannot determine if a given proposition is zero, a successor, or a supremum. Nevertheless, it is true, and it can be used to derive a taboo below. \begin{code} ^β-πβ-by-prop : (P : π€ Μ ) (i : is-prop P) β πβ {π€} ^β (prop-ordinal P i) οΌ πβ +β prop-ordinal P i ^β-πβ-by-prop {π€} P i = I β β΄-antisym (sup F) (πβ +β Pβ) III V where F : π {π€} + P β Ordinal π€ F (inl _) = πβ F (inr _) = πβ Pβ = prop-ordinal P i I : πβ ^β Pβ οΌ sup F I = transportβ»ΒΉ (_οΌ sup F) (^β-behaviour πβ Pβ) (ap sup (dfunext fe' e)) where e : ^β-family πβ Pβ βΌ F e (inl β) = refl e (inr p) = πβ ^β (Pβ β p) Γβ πβ οΌβ¨ eβ β© πβ ^β πβ Γβ πβ οΌβ¨ eβ β© πβ Γβ πβ οΌβ¨ πβ-left-neutral-Γβ πβ β© πβ β where eβ = ap (Ξ» - β πβ ^β - Γβ πβ) (prop-ordinal-β i p) eβ = ap (_Γβ πβ) (^β-satisfies-zero-specification πβ) II : (p : P) β πβ +β Pβ οΌ πβ II p = ap (πβ +β_) (holds-gives-equal-πβ i p) III : sup F β΄ πβ +β Pβ III = sup-is-lower-bound-of-upper-bounds F (πβ +β Pβ) III' where III' : (x : π + P) β F x β΄ πβ +β Pβ III' (inl _) = +β-left-β΄ πβ Pβ III' (inr p) = οΌ-to-β΄ πβ (πβ +β Pβ) (II p β»ΒΉ) IV : (x : π + P ) β πβ +β Pβ β x β² sup F IV (inl β) = ([ πβ , sup F ]β¨ fβ β© β) , (πβ +β Pβ β inl β οΌβ¨ (+β-β-left β) β»ΒΉ β© πβ β β οΌβ¨ simulations-preserve-β πβ _ fβ β β© sup F β [ πβ , sup F ]β¨ fβ β© β β) where fβ : πβ β΄ sup F fβ = sup-is-upper-bound F (inl β) IV (inr p) = ([ πβ , sup F ]β¨ fβ β© (inr β)) , (πβ +β Pβ β inr p οΌβ¨ (+β-β-right p) β»ΒΉ β© πβ +β (Pβ β p) οΌβ¨ ap (πβ +β_) (prop-ordinal-β i p) β© πβ +β πβ οΌβ¨ ap (πβ +β_) (πβ-β β»ΒΉ) β© πβ +β (πβ β β) οΌβ¨ +β-β-right β β© πβ β inr β οΌβ¨ simulations-preserve-β πβ (sup F) fβ (inr β) β© sup F β [ πβ , sup F ]β¨ fβ β© (inr β) β) where fβ : πβ β΄ sup F fβ = sup-is-upper-bound F (inr p) V : πβ +β Pβ β΄ sup F V = to-β΄ (πβ +β Pβ) (sup F) IV \end{code} Added 8 January 2025. Classically, whenever the base Ξ± is greater than πβ, Ξ± ^β Ξ² is at least as large as the exponent Ξ². However, this is a constructive taboo. \begin{code} ^β-as-large-as-exponent-implies-EM : ((Ξ± Ξ² : Ordinal π€) β πβ{π€} β² Ξ± β Ξ² β΄ Ξ± ^β Ξ²) β EM π€ ^β-as-large-as-exponent-implies-EM hyp P P-is-prop = V (f (inr β)) refl where Ξ± = πβ Pβ = prop-ordinal P P-is-prop Ξ² = Pβ +β πβ Ξ³ = (πβ +β Pβ) Γβ πβ I : πβ β² Ξ± I = (inr β , (successor-lemma-right πβ β»ΒΉ)) II : Ξ± ^β Ξ² οΌ Ξ³ II = πβ ^β (Pβ +β πβ) οΌβ¨ IIβ β© πβ ^β Pβ Γβ πβ οΌβ¨ ap (_Γβ πβ) (^β-πβ-by-prop P P-is-prop) β© (πβ +β Pβ) Γβ πβ β where IIβ = ^β-satisfies-succ-specification πβ (β²-gives-β΄ πβ πβ I) Pβ III : Ξ² β΄ Ξ³ III = transport (Ξ² β΄_) II (hyp Ξ± Ξ² I) f : β¨ Ξ² β© β β¨ Ξ³ β© f = [ Ξ² , Ξ³ ]β¨ III β© f-sim : is-simulation Ξ² Ξ³ f f-sim = [ Ξ² , Ξ³ ]β¨ III β©-is-simulation V : (x : β¨ Ξ³ β©) β f (inr β) οΌ x β P + Β¬ P V (inr p , _) r = inl p V (inl β , inl β) r = inr VI where VI : Β¬ P VI p = +disjoint (simulations-are-lc Ξ² Ξ³ f f-sim VIβ) where VIβ = f (inl p) οΌβ¨ VIβ β© (inl β , inl β) οΌβ¨ r β»ΒΉ β© f (inr β) β where VIβ = simulations-preserve-least Ξ² Ξ³ (inl p) (inl β , inl β) f f-sim (left-preserves-least Pβ πβ p (prop-ordinal-least P-is-prop p)) (Γβ-least (πβ +β Pβ) πβ (inl β) (inl β) (left-preserves-least πβ Pβ β β-least) (left-preserves-least πβ πβ β β-least)) where β-least : is-least πβ β β-least = prop-ordinal-least π-is-prop β V (inl β , inr β) r = inl (VI VIII) where VI : Ξ£ y κ β¨ Ξ² β© , (y βΊβ¨ Ξ² β© inr β) Γ (f y οΌ (inl β , inl β)) β P VI (inl p , _ , _) = p VII : (inl β , inl β) βΊβ¨ Ξ³ β© f (inr β) VII = transportβ»ΒΉ (underlying-order Ξ³ (inl β , inl β)) r (inl β) VIII : Ξ£ y κ β¨ Ξ² β© , (y βΊβ¨ Ξ² β© inr β) Γ (f y οΌ (inl β , inl β)) VIII = simulations-are-initial-segments Ξ² Ξ³ f f-sim (inr β) (inl β , inl β) VII \end{code} We record that, in fact, Ξ² β΄ Ξ± ^β Ξ² iff exluded middle holds. \begin{code} EM-implies-^β-as-large-as-exponent : EM π€ β (Ξ± Ξ² : Ordinal π€) β πβ{π€} β² Ξ± β Ξ² β΄ Ξ± ^β Ξ² EM-implies-^β-as-large-as-exponent em Ξ± Ξ² (aβ , p) = βΌ-gives-β΄ Ξ² (Ξ± ^β Ξ²) (EM-implies-order-preserving-gives-βΌ em Ξ² (Ξ± ^β Ξ²) (f , I)) where f : β¨ Ξ² β© β β¨ Ξ± ^β Ξ² β© f b = Γβ-to-^β Ξ± Ξ² {b} (^β-β₯ Ξ± (Ξ² β b) , aβ) I : is-order-preserving Ξ² (Ξ± ^β Ξ²) f I b b' l = β-reflects-order (Ξ± ^β Ξ²) (f b) (f b') III' where II : (b : β¨ Ξ² β©) β Ξ± ^β Ξ² β f b οΌ Ξ± ^β (Ξ² β b) II b = Ξ± ^β Ξ² β f b οΌβ¨ IIβ β© Ξ± ^β (Ξ² β b) Γβ (Ξ± β aβ) +β (Ξ± ^β (Ξ² β b) β ^β-β₯ Ξ± (Ξ² β b)) οΌβ¨ IIβ β© Ξ± ^β (Ξ² β b) Γβ πβ +β πβ οΌβ¨ IIβ β© Ξ± ^β (Ξ² β b) Γβ πβ οΌβ¨ IIβ β© Ξ± ^β (Ξ² β b) β where IIβ = ^β-β-Γβ-to-^β Ξ± Ξ² {b} {^β-β₯ Ξ± (Ξ² β b)} {aβ} IIβ = apβ (Ξ» -β -β β Ξ± ^β (Ξ² β b) Γβ -β +β -β) (p β»ΒΉ) (^β-β-β₯ Ξ± (Ξ² β b)) IIβ = πβ-right-neutral (Ξ± ^β (Ξ² β b) Γβ πβ) IIβ = πβ-right-neutral-Γβ (Ξ± ^β (Ξ² β b)) III : Ξ± ^β (Ξ² β b) β² Ξ± ^β (Ξ² β b') III = ^β-order-preserving-in-exponent Ξ± (Ξ² β b) (Ξ² β b') (aβ , p) (β-preserves-order Ξ² b b' l) III' : Ξ± ^β Ξ² β f b β² Ξ± ^β Ξ² β f b' III' = transportββ»ΒΉ _β²_ (II b) (II b') III \end{code}