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}