Fredrik Nordvall Forsberg, 13 November 2023.
In collaboration with Tom de Jong, Nicolai Kraus and Chuangjie Xu.
Minor updates 9 and 11 September, 1 November 2024 and 15 July 2025.
We prove several properties of ordinal multiplication, including that it
preserves suprema of ordinals and that it enjoys a left-cancellation property.
\begin{code}
{-# OPTIONS --safe --without-K --lossy-unification #-}
open import UF.Univalence
module Ordinals.MultiplicationProperties
(ua : Univalence)
where
open import UF.Base
open import UF.Equiv
open import UF.FunExt
open import UF.Subsingletons
open import UF.Subsingletons-FunExt
open import UF.UA-FunExt
open import UF.ClassicalLogic
private
fe : FunExt
fe = Univalence-gives-FunExt ua
fe' : Fun-Ext
fe' {π€} {π₯} = fe π€ π₯
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.Exponentiation.TrichotomousLeastElement ua
open import Ordinals.Maps
open import Ordinals.OrdinalOfOrdinals ua
open import Ordinals.Propositions ua
open import Ordinals.Type
open import Ordinals.Underlying
Γβ-πβ-right : (Ξ± : Ordinal π€) β Ξ± Γβ πβ {π₯} οΌ πβ
Γβ-πβ-right Ξ± = β΄-antisym _ _
(to-β΄ (Ξ± Γβ πβ) πβ (Ξ» (a , b) β π-elim b))
(πβ-least-β΄ (Ξ± Γβ πβ))
Γβ-πβ-left : (Ξ± : Ordinal π€) β πβ {π₯} Γβ Ξ± οΌ πβ
Γβ-πβ-left Ξ± = β΄-antisym _ _
(to-β΄ (πβ Γβ Ξ±) πβ (Ξ» (b , a) β π-elim b))
(πβ-least-β΄ (πβ Γβ Ξ±))
πβ-left-neutral-Γβ : (Ξ± : Ordinal π€) β πβ {π€} Γβ Ξ± οΌ Ξ±
πβ-left-neutral-Γβ {π€} Ξ± = eqtoidβ (ua _) fe' _ _
(f , f-order-preserving ,
f-is-equiv , g-order-preserving)
where
f : π Γ β¨ Ξ± β© β β¨ Ξ± β©
f = prβ
g : β¨ Ξ± β© β π Γ β¨ Ξ± β©
g = ( β ,_)
f-order-preserving : is-order-preserving (πβ {π€} Γβ Ξ±) Ξ± f
f-order-preserving x y (inl p) = p
f-order-preserving x y (inr (e , q)) = π-elim q
f-is-equiv : is-equiv f
f-is-equiv = qinvs-are-equivs f (g , (Ξ» _ β refl) , (Ξ» _ β refl))
g-order-preserving : is-order-preserving Ξ± (πβ {π€} Γβ Ξ±) g
g-order-preserving x y p = inl p
πβ-right-neutral-Γβ : (Ξ± : Ordinal π€) β Ξ± Γβ πβ {π€} οΌ Ξ±
πβ-right-neutral-Γβ {π€} Ξ± = eqtoidβ (ua _) fe' _ _
(f , f-order-preserving ,
f-is-equiv , g-order-preserving)
where
f : β¨ Ξ± β© Γ π β β¨ Ξ± β©
f = prβ
g : β¨ Ξ± β© β β¨ Ξ± β© Γ π
g = (_, β )
f-order-preserving : is-order-preserving (Ξ± Γβ πβ {π€}) Ξ± f
f-order-preserving x y (inl p) = π-elim p
f-order-preserving x y (inr (refl , p)) = p
f-is-equiv : is-equiv f
f-is-equiv = qinvs-are-equivs f (g , (Ξ» _ β refl) , (Ξ» _ β refl))
g-order-preserving : is-order-preserving Ξ± (Ξ± Γβ πβ {π€}) g
g-order-preserving x y p = inr (refl , p)
\end{code}
Because we use --lossy-unification to speed up typechecking we have to
explicitly mention the universes in the lemma below; using them as variables (as
usual) results in a unification error.
\begin{code}
Γβ-assoc : {π€ π₯ π¦ : Universe}
(Ξ± : Ordinal π€) (Ξ² : Ordinal π₯) (Ξ³ : Ordinal π¦)
β (Ξ± Γβ Ξ²) Γβ Ξ³ οΌ Ξ± Γβ (Ξ² Γβ Ξ³)
Γβ-assoc Ξ± Ξ² Ξ³ =
eqtoidβ (ua _) fe' ((Ξ± Γβ Ξ²) Γβ Ξ³) (Ξ± Γβ (Ξ² Γβ Ξ³))
(f , order-preserving-reflecting-equivs-are-order-equivs
((Ξ± Γβ Ξ²) Γβ Ξ³) (Ξ± Γβ (Ξ² Γβ Ξ³))
f f-equiv f-preserves-order f-reflects-order)
where
f : β¨ (Ξ± Γβ Ξ²) Γβ Ξ³ β© β β¨ Ξ± Γβ (Ξ² Γβ Ξ³) β©
f ((a , b) , c) = (a , (b , c))
g : β¨ Ξ± Γβ (Ξ² Γβ Ξ³) β© β β¨ (Ξ± Γβ Ξ²) Γβ Ξ³ β©
g (a , (b , c)) = ((a , b) , c)
f-equiv : is-equiv f
f-equiv = qinvs-are-equivs f (g , (Ξ» x β refl) , (Ξ» x β refl))
f-preserves-order : is-order-preserving ((Ξ± Γβ Ξ²) Γβ Ξ³) (Ξ± Γβ (Ξ² Γβ Ξ³)) f
f-preserves-order _ _ (inl p) = inl (inl p)
f-preserves-order _ _ (inr (r , inl p)) = inl (inr (r , p))
f-preserves-order _ _ (inr (r , inr (u , q))) = inr (to-Γ-οΌ u r , q)
f-reflects-order : is-order-reflecting ((Ξ± Γβ Ξ²) Γβ Ξ³) (Ξ± Γβ (Ξ² Γβ Ξ³)) f
f-reflects-order _ _ (inl (inl p)) = inl p
f-reflects-order _ _ (inl (inr (r , q))) = inr (r , (inl q))
f-reflects-order _ _ (inr (refl , q)) = inr (refl , (inr (refl , q)))
\end{code}
The lemma below is as general as possible in terms of universe parameters
because addition requires its arguments to come from the same universe, at least
at present.
\begin{code}
Γβ-distributes-+β-right : (Ξ± : Ordinal π€) (Ξ² Ξ³ : Ordinal π₯)
β Ξ± Γβ (Ξ² +β Ξ³) οΌ (Ξ± Γβ Ξ²) +β (Ξ± Γβ Ξ³)
Γβ-distributes-+β-right Ξ± Ξ² Ξ³ = eqtoidβ (ua _) fe' _ _
(f , f-order-preserving ,
f-is-equiv , g-order-preserving)
where
f : β¨ Ξ± Γβ (Ξ² +β Ξ³) β© β β¨ (Ξ± Γβ Ξ²) +β (Ξ± Γβ Ξ³) β©
f (a , inl b) = inl (a , b)
f (a , inr c) = inr (a , c)
g : β¨ (Ξ± Γβ Ξ²) +β (Ξ± Γβ Ξ³) β© β β¨ Ξ± Γβ (Ξ² +β Ξ³) β©
g (inl (a , b)) = a , inl b
g (inr (a , c)) = a , inr c
f-order-preserving : is-order-preserving _ _ f
f-order-preserving (a , inl b) (a' , inl b') (inl p) = inl p
f-order-preserving (a , inl b) (a' , inr c') (inl p) = β
f-order-preserving (a , inr c) (a' , inr c') (inl p) = inl p
f-order-preserving (a , inl b) (a' , inl .b) (inr (refl , q)) = inr (refl , q)
f-order-preserving (a , inr c) (a' , inr .c) (inr (refl , q)) = inr (refl , q)
f-order-preserving (a , inl b) (a' , inr c') (inr (e , q)) =
π-elim (+disjoint e)
f-order-preserving (a , inr c) (a' , inl b') (inl p) = π-elim p
f-order-preserving (a , inr c) (a' , inl b') (inr (e , q)) =
π-elim (+disjoint' e)
f-is-equiv : is-equiv f
f-is-equiv = qinvs-are-equivs f (g , Ξ· , Ξ΅)
where
Ξ· : g β f βΌ id
Ξ· (a , inl b) = refl
Ξ· (a , inr c) = refl
Ξ΅ : f β g βΌ id
Ξ΅ (inl (a , b)) = refl
Ξ΅ (inr (a , c)) = refl
g-order-preserving : is-order-preserving _ _ g
g-order-preserving (inl (a , b)) (inl (a' , b')) (inl p) = inl p
g-order-preserving (inl (a , b)) (inl (a' , .b)) (inr (refl , q)) =
inr (refl , q)
g-order-preserving (inl (a , b)) (inr (a' , c')) p = inl β
g-order-preserving (inr (a , c)) (inl b') p = π-elim p
g-order-preserving (inr (a , c)) (inr (a' , c')) (inl p) = inl p
g-order-preserving (inr (a , c)) (inr (a' , c')) (inr (refl , q)) =
inr (refl , q)
\end{code}
The following characterizes the initial segments of a product and is rather
useful when working with simulations between products.
\begin{code}
Γβ-β : (Ξ± Ξ² : Ordinal π€)
β {a : β¨ Ξ± β©} {b : β¨ Ξ² β©}
β (Ξ± Γβ Ξ²) β (a , b) οΌ (Ξ± Γβ (Ξ² β b)) +β (Ξ± β a)
Γβ-β Ξ± Ξ² {a} {b} = eqtoidβ (ua _) fe' _ _ (f , f-order-preserving ,
f-is-equiv , g-order-preserving)
where
f : β¨ (Ξ± Γβ Ξ²) β (a , b) β© β β¨ (Ξ± Γβ (Ξ² β b)) +β (Ξ± β a) β©
f ((x , y) , inl p) = inl (x , (y , p))
f ((x , y) , inr (r , q)) = inr (x , q)
g : β¨ (Ξ± Γβ (Ξ² β b)) +β (Ξ± β a) β© β β¨ (Ξ± Γβ Ξ²) β (a , b) β©
g (inl (x , y , p)) = (x , y) , inl p
g (inr (x , q)) = (x , b) , inr (refl , q)
f-order-preserving : is-order-preserving _ _ f
f-order-preserving ((x , y) , inl p) ((x' , y') , inl p') (inl l) = inl l
f-order-preserving ((x , y) , inl p) ((x' , _) , inl p') (inr (refl , l)) =
inr ((ap (y ,_) (Prop-valuedness Ξ² _ _ p p')) , l)
f-order-preserving ((x , y) , inl p) ((x' , y') , inr (r' , q')) l = β
f-order-preserving ((x , y) , inr (refl , q)) ((x' , y') , inl p') (inl l) =
π-elim (irrefl Ξ² y (Transitivity Ξ² _ _ _ l p'))
f-order-preserving ((x , y) , inr (refl , q))
((x' , _) , inl p') (inr (refl , l)) = π-elim
(irrefl Ξ² y p')
f-order-preserving ((x , y) , inr (refl , q))
((x' , _) , inr (refl , q')) (inl l) = π-elim
(irrefl Ξ² y l)
f-order-preserving ((x , y) , inr (refl , q))
((x' , _) , inr (refl , q')) (inr (_ , l)) = l
f-is-equiv : is-equiv f
f-is-equiv = qinvs-are-equivs f (g , Ξ· , Ξ΅)
where
Ξ· : g β f βΌ id
Ξ· ((x , y) , inl p) = refl
Ξ· ((x , y) , inr (refl , q)) = refl
Ξ΅ : f β g βΌ id
Ξ΅ (inl (x , y)) = refl
Ξ΅ (inr x) = refl
g-order-preserving : is-order-preserving _ _ g
g-order-preserving (inl (x , y , p)) (inl (x' , y' , p')) (inl l) = inl l
g-order-preserving (inl (x , y , p)) (inl (x' , y' , p')) (inr (refl , l)) =
inr (refl , l)
g-order-preserving (inl (x , y , p)) (inr (x' , q')) _ = inl p
g-order-preserving (inr (x , q)) (inl y') l = π-elim l
g-order-preserving (inr (x , q)) (inr (x' , q')) l = inr (refl , l)
\end{code}
We now prove several useful facts about (bounded) simulations between products.
\begin{code}
Γβ-increasing-on-right : (Ξ± Ξ² Ξ³ : Ordinal π€)
β πβ β² Ξ±
β Ξ² β² Ξ³
β (Ξ± Γβ Ξ²) β² (Ξ± Γβ Ξ³)
Γβ-increasing-on-right Ξ± Ξ² Ξ³ (a , p) (c , q) = (a , c) , I
where
I = Ξ± Γβ Ξ² οΌβ¨ πβ-right-neutral (Ξ± Γβ Ξ²) β»ΒΉ β©
(Ξ± Γβ Ξ²) +β πβ οΌβ¨ apβ (Ξ» -β -β β (Ξ± Γβ -β) +β -β) q p β©
(Ξ± Γβ (Ξ³ β c)) +β (Ξ± β a) οΌβ¨ Γβ-β Ξ± Ξ³ β»ΒΉ β©
(Ξ± Γβ Ξ³) β (a , c) β
Γβ-right-monotone-β΄ : (Ξ± : Ordinal π€) (Ξ² : Ordinal π₯) (Ξ³ : Ordinal π¦)
β Ξ² β΄ Ξ³
β (Ξ± Γβ Ξ²) β΄ (Ξ± Γβ Ξ³)
Γβ-right-monotone-β΄ Ξ± Ξ² Ξ³ (g , sim-g) = f , f-initial-segment ,
f-order-preserving
where
f : β¨ Ξ± Γβ Ξ² β© β β¨ Ξ± Γβ Ξ³ β©
f (a , b) = a , g b
f-initial-segment : is-initial-segment (Ξ± Γβ Ξ²) (Ξ± Γβ Ξ³) f
f-initial-segment (a , b) (a' , c') (inl l) = (a' , b') , inl k , ap (a' ,_) q
where
I : Ξ£ b' κ β¨ Ξ² β© , b' βΊβ¨ Ξ² β© b Γ (g b' οΌ c')
I = simulations-are-initial-segments Ξ² Ξ³ g sim-g b c' l
b' = prβ I
k = prβ (prβ I)
q = prβ (prβ I)
f-initial-segment (a , b) (a' , c') (inr (refl , q)) =
(a' , b) , inr (refl , q) , refl
f-order-preserving : is-order-preserving (Ξ± Γβ Ξ²) (Ξ± Γβ Ξ³) f
f-order-preserving (a , b) (a' , b') (inl p) =
inl (simulations-are-order-preserving Ξ² Ξ³ g sim-g b b' p)
f-order-preserving (a , b) (a' , b') (inr (refl , q)) = inr (refl , q)
Γβ-βΌ-left : (Ξ± : Ordinal π€) (Ξ² : Ordinal π₯)
{a a' : β¨ Ξ± β©} {b : β¨ Ξ² β©}
β a βΌβ¨ Ξ± β© a'
β (a , b) βΌβ¨ Ξ± Γβ Ξ² β© (a' , b)
Γβ-βΌ-left Ξ± Ξ² p (aβ , bβ) (inl r) = inl r
Γβ-βΌ-left Ξ± Ξ² p (aβ , bβ) (inr (eq , r)) = inr (eq , p aβ r)
\end{code}
Multiplication satisfies the expected recursive equations (which
classically define ordinal multiplication): zero is fixed by multiplication
(this is Γβ-πβ-right above), multiplication for successors is repeated addition
and multiplication preserves suprema (i.e. it is continuous).
\begin{code}
Γβ-successor : (Ξ± Ξ² : Ordinal π€) β Ξ± Γβ (Ξ² +β πβ) οΌ (Ξ± Γβ Ξ²) +β Ξ±
Γβ-successor Ξ± Ξ² =
Ξ± Γβ (Ξ² +β πβ) οΌβ¨ Γβ-distributes-+β-right Ξ± Ξ² πβ β©
((Ξ± Γβ Ξ²) +β (Ξ± Γβ πβ)) οΌβ¨ ap ((Ξ± Γβ Ξ²) +β_) (πβ-right-neutral-Γβ Ξ±) β©
(Ξ± Γβ Ξ²) +β Ξ± β
open import UF.PropTrunc
open import UF.Size
module _ (pt : propositional-truncations-exist)
(sr : Set-Replacement pt)
where
open import Ordinals.OrdinalOfOrdinalsSuprema ua
open import Ordinals.SupremaPreservation ua pt sr
open suprema pt sr
open PropositionalTruncation pt
Γβ-is-continuous : (Ξ± : Ordinal π€) β is-continuous (Ξ± Γβ_)
Γβ-is-continuous {π€} Ξ± {I} Ξ² =
β΄-antisym (Ξ± Γβ sup Ξ²) (sup (Ξ» i β Ξ± Γβ Ξ² i)) β¦
1β¦ β¦
2β¦
where
β¦
2β¦ : sup (Ξ» i β Ξ± Γβ Ξ² i) β΄ (Ξ± Γβ sup Ξ²)
β¦
2β¦ = sup-is-lower-bound-of-upper-bounds (Ξ» i β Ξ± Γβ Ξ² i) (Ξ± Γβ sup Ξ²)
(Ξ» i β Γβ-right-monotone-β΄ Ξ± (Ξ² i) (sup Ξ²) (sup-is-upper-bound Ξ² i))
β¦
1β¦ : (Ξ± Γβ sup Ξ²) β΄ sup (Ξ» i β Ξ± Γβ Ξ² i)
β¦
1β¦ = βΌ-gives-β΄ (Ξ± Γβ sup Ξ²) (sup (Ξ» i β Ξ± Γβ Ξ² i)) β¦
1β¦-I
where
β¦
1β¦-I : (Ξ³ : Ordinal π€) β Ξ³ β² (Ξ± Γβ sup Ξ²) β Ξ³ β² sup (Ξ» i β Ξ± Γβ Ξ² i)
β¦
1β¦-I _ ((a , y) , refl) = β¦
1β¦-III
where
β¦
1β¦-II : (Ξ£ i κ I , Ξ£ b κ β¨ Ξ² i β© , sup Ξ² β y οΌ (Ξ² i) β b)
β ((Ξ± Γβ sup Ξ²) β (a , y)) β² sup (Ξ» j β Ξ± Γβ Ξ² j)
β¦
1β¦-II (i , b , e) = Ο (a , b) , eq
where
Ο : β¨ Ξ± Γβ Ξ² i β© β β¨ sup (Ξ» j β Ξ± Γβ Ξ² j) β©
Ο = [ Ξ± Γβ Ξ² i , sup (Ξ» j β Ξ± Γβ Ξ² j) ]β¨ sup-is-upper-bound _ i β©
eq = (Ξ± Γβ sup Ξ²) β (a , y) οΌβ¨ Γβ-β Ξ± (sup Ξ²) β©
(Ξ± Γβ (sup Ξ² β y)) +β (Ξ± β a) οΌβ¨ eqβ β©
(Ξ± Γβ (Ξ² i β b)) +β (Ξ± β a) οΌβ¨ Γβ-β Ξ± (Ξ² i) β»ΒΉ β©
(Ξ± Γβ Ξ² i) β (a , b) οΌβ¨ eqβ β©
sup (Ξ» j β Ξ± Γβ Ξ² j) β Ο (a , b) β
where
eqβ = ap (Ξ» - β ((Ξ± Γβ -) +β (Ξ± β a))) e
eqβ = (initial-segment-of-sup-at-component
(Ξ» j β Ξ± Γβ Ξ² j) i (a , b)) β»ΒΉ
β¦
1β¦-III : ((Ξ± Γβ sup Ξ²) β (a , y)) β² sup (Ξ» i β Ξ± Γβ Ξ² i)
β¦
1β¦-III = β₯β₯-rec (β²-is-prop-valued _ _) β¦
1β¦-II
(initial-segment-of-sup-is-initial-segment-of-some-component
Ξ² y)
\end{code}
In OperationsByCases, it is shown that the equations for successor and suprema
uniquely specify the multiplication operation and lead to a definition by
transfinite recursion.
Added 17 September 2024 by Fredrik Nordvall Forsberg:
Multiplication being monotone in the left argument is a constructive taboo.
Addition 22 November 2024: monotonicity in the left argument is
equivalent to Excluded Middle.
\begin{code}
Γβ-minimal : (Ξ± : Ordinal π€) (Ξ² : Ordinal π₯) (aβ : β¨ Ξ± β©) (bβ : β¨ Ξ² β©)
β is-least Ξ± aβ β is-least Ξ² bβ β is-minimal (Ξ± Γβ Ξ²) (aβ , bβ)
Γβ-minimal Ξ± Ξ² aβ bβ aβ-least bβ-least (a , b) (inl l)
= irrefl Ξ² b (bβ-least b b l)
Γβ-minimal Ξ± Ξ² aβ bβ aβ-least bβ-least (a , b) (inr (refl , l))
= irrefl Ξ± a (aβ-least a a l)
Γβ-least : (Ξ± : Ordinal π€) (Ξ² : Ordinal π₯) (aβ : β¨ Ξ± β©) (bβ : β¨ Ξ² β©)
β is-least Ξ± aβ β is-least Ξ² bβ β is-least (Ξ± Γβ Ξ²) (aβ , bβ)
Γβ-least Ξ± Ξ² aβ bβ aβ-least bβ-least =
minimal-is-least (Ξ± Γβ Ξ²) (aβ , bβ) (Γβ-minimal Ξ± Ξ² aβ bβ aβ-least bβ-least)
Γβ-left-monotonicity-implies-EM
: ((Ξ± Ξ² : Ordinal π€) (Ξ³ : Ordinal π₯) β Ξ± β΄ Ξ² β Ξ± Γβ Ξ³ β΄ Ξ² Γβ Ξ³)
β EM π€
Γβ-left-monotonicity-implies-EM hyp P isprop-P = III (f (β , inr β)) refl
where
Ξ± = πβ
Pβ = prop-ordinal P isprop-P
Ξ² = πβ +β Pβ
Ξ³ = πβ
I : Ξ± β΄ Ξ²
I = βΌ-gives-β΄ Ξ± Ξ²
(transport
(_βΌ Ξ²)
(πβ-right-neutral πβ)
(+β-right-monotone πβ πβ Pβ
(πβ-least Pβ)))
II : (Ξ± Γβ Ξ³) β΄ (Ξ² Γβ Ξ³)
II = hyp Ξ± Ξ² Ξ³ I
f = prβ II
f-sim = prβ II
f-preserves-least : f (β , inl β) οΌ (inl β , inl β)
f-preserves-least = simulations-preserve-least (Ξ± Γβ Ξ³) (Ξ² Γβ Ξ³)
(β , inl β)
(inl β , inl β)
f f-sim
(Γβ-least Ξ± Ξ³ β (inl β)
β-least
(left-preserves-least πβ πβ β β-least))
(Γβ-least Ξ² Ξ³ (inl β) (inl β)
(left-preserves-least πβ Pβ β β-least)
(left-preserves-least πβ πβ β β-least))
where
β-least : is-least (πβ {π€}) β
β-least β β = π-elim
III : (x : β¨ Ξ² Γβ Ξ³ β©) β f (β , inr β) οΌ x β P + Β¬ P
III (inl β , inl β) r = π-elim (+disjoint' IIIβ)
where
IIIβ = f (β , inr β) οΌβ¨ r β©
(inl β , inl β) οΌβ¨ f-preserves-least β»ΒΉ β©
f (β , inl β) β
IIIβ : inr β οΌ inl β
IIIβ = ap prβ (simulations-are-lc _ _ f f-sim IIIβ)
III (inl β , inr β) r = inr (Ξ» p β π-elim (+disjoint (IIIβ p)))
where
IIIβ : (p : P)
β Ξ£ x κ β¨ πβ Γβ πβ β© ,
(x βΊβ¨ πβ Γβ πβ β© (β , inr β)) Γ (f x οΌ (inr p , inl β))
IIIβ p = simulations-are-initial-segments (Ξ± Γβ Ξ³) (Ξ² Γβ Ξ³) f f-sim
(β , inr β) (inr p , inl β)
(transportβ»ΒΉ (Ξ» - β (inr p , inl β) βΊβ¨ Ξ² Γβ Ξ³ β© - ) r (inl β))
IIIβ : (p : P)
β Ξ£ x κ β¨ πβ Γβ πβ β© ,
(x βΊβ¨ πβ Γβ πβ β© (β , inr β)) Γ (f x οΌ (inr p , inl β))
β f (β , inl β) οΌ (inr p , inl β)
IIIβ p ((β , inl β) , l , q) = q
IIIβ p ((β , inr β) , l , q) = π-elim (irrefl (πβ Γβ πβ) (β , inr β) l)
IIIβ
: (p : P) β (inl β , inl β) οΌ (inr p , inl β)
IIIβ
p = (inl β , inl β) οΌβ¨ f-preserves-least β»ΒΉ β©
f (β , inl β) οΌβ¨ IIIβ p (IIIβ p) β©
(inr p , inl β) β
IIIβ : (p : P) β inl β οΌ inr p
IIIβ p = ap prβ (IIIβ
p)
III (inr p , c) r = inl p
EM-implies-Γβ-left-monotonicity
: EM (π€ β π₯)
β (Ξ± Ξ² : Ordinal π€) (Ξ³ : Ordinal π₯) β Ξ± β΄ Ξ² β (Ξ± Γβ Ξ³) β΄ (Ξ² Γβ Ξ³)
EM-implies-Γβ-left-monotonicity em Ξ± Ξ² Ξ³ (g , g-sim)
= βΌ-gives-β΄ (Ξ± Γβ Ξ³) (Ξ² Γβ Ξ³)
(EM-implies-order-preserving-gives-βΌ em (Ξ± Γβ Ξ³)
(Ξ² Γβ Ξ³)
(f , f-order-preserving))
where
f : β¨ Ξ± Γβ Ξ³ β© β β¨ Ξ² Γβ Ξ³ β©
f (a , c) = (g a , c)
f-order-preserving : is-order-preserving (Ξ± Γβ Ξ³) (Ξ² Γβ Ξ³) f
f-order-preserving (a , c) (a' , c') (inl l) = inl l
f-order-preserving (a , c) (a' , c) (inr (refl , l))
= inr (refl , simulations-are-order-preserving Ξ± Ξ² g g-sim a a' l)
EM-implies-induced-β΄-on-Γβ : EM π€
β (Ξ± Ξ² Ξ³ Ξ΄ : Ordinal π€)
β Ξ± β΄ Ξ³ β Ξ² β΄ Ξ΄ β (Ξ± Γβ Ξ²) β΄ (Ξ³ Γβ Ξ΄)
EM-implies-induced-β΄-on-Γβ em Ξ± Ξ² Ξ³ Ξ΄ π π =
β΄-trans (Ξ± Γβ Ξ²) (Ξ± Γβ Ξ΄) (Ξ³ Γβ Ξ΄)
(Γβ-right-monotone-β΄ Ξ± Ξ² Ξ΄ π)
(EM-implies-Γβ-left-monotonicity em Ξ± Ξ³ Ξ΄ π)
\end{code}
To prove that multiplication is left cancellable, we require the following
technical lemma: if Ξ± > π, then every simulation from Ξ± Γβ Ξ² to Ξ± Γβ Ξ³ + Ξ± β aβ
firstly never hits the second summand, and secondly, in the first component, it
decomposes as the identity on the first component and a function Ξ² β Ξ³ on the
second component, viz. one that is independent of the first component. The
inspiration for this lemma is the lemma simulation-product-decomposition below,
which only deals with simulations f : Ξ± Γβ Ξ² β΄ Ξ± Γβ Ξ³ (ie, with Ξ± β aβ = πβ in
the context of the current lemma). However the more general statement seems to
be necessary for proving left cancellability with respect to β΄, rather than
just with respect to οΌ.
\begin{code}
simulation-product-decomposition-generalized
: (Ξ± : Ordinal π€)
β πβ β² Ξ±
β (Ξ² Ξ³ : Ordinal π€)
β (aβ : β¨ Ξ± β©)
β ((f , _) : Ξ± Γβ Ξ² β΄ Ξ± Γβ Ξ³ +β (Ξ± β aβ))
β Ξ£ g κ (β¨ Ξ² β© β β¨ Ξ³ β©) , ((a : β¨ Ξ± β©) (b : β¨ Ξ² β©) β f (a , b) οΌ inl (a , g b))
simulation-product-decomposition-generalized {π€} Ξ± (aβ , aβ-least) = II
where
P : Ordinal π€ β π€ βΊ Μ
P Ξ² = (Ξ³ : Ordinal π€) (aβ : β¨ Ξ± β©)
((f , _) : Ξ± Γβ Ξ² β΄ Ξ± Γβ Ξ³ +β (Ξ± β aβ))
β (b : β¨ Ξ² β©) β Ξ£ c κ β¨ Ξ³ β© , ((a : β¨ Ξ± β©) β f (a , b) οΌ inl (a , c))
Pβ : Ordinal π€ β π€ βΊ Μ
Pβ Ξ² = (aβ : β¨ Ξ± β©) (Ξ³ : Ordinal π€)
((f , _) : Ξ± Γβ Ξ² β΄ Ξ± Γβ Ξ³ +β (Ξ± β aβ))
(b : β¨ Ξ² β©)
(x : β¨ (Ξ± Γβ Ξ³) +β (Ξ± β aβ) β©)
β f (aβ , b) οΌ x
β Ξ£ c κ β¨ Ξ³ β© , f (aβ , b) οΌ inl (aβ , c)
I : (Ξ² Ξ³ : Ordinal π€) (aβ : β¨ Ξ± β©)
((f , _) : Ξ± Γβ Ξ² β΄ (Ξ± Γβ Ξ³) +β (Ξ± β aβ))
(b : β¨ Ξ² β©)
β Ξ± Γβ (Ξ² β b) οΌ Ξ± Γβ Ξ³ +β (Ξ± β aβ) β f (aβ , b)
I Ξ² Ξ³ aβ π@(f , f-sim) b =
Ξ± Γβ (Ξ² β b) οΌβ¨ Iβ β©
Ξ± Γβ (Ξ² β b) +β (Ξ± β aβ) οΌβ¨ Γβ-β Ξ± Ξ² β»ΒΉ β©
Ξ± Γβ Ξ² β (aβ , b) οΌβ¨ Iβ β©
Ξ± Γβ Ξ³ +β (Ξ± β aβ) β f (aβ , b) β
where
Iβ = πβ-right-neutral
(Ξ± Γβ (Ξ² β b)) β»ΒΉ β ap (Ξ± Γβ (Ξ² β b) +β_)
aβ-least
Iβ = simulations-preserve-β _ _ π (aβ , b)
πβ : (Ξ² : Ordinal π€)
β ((b : β¨ Ξ² β©) β P (Ξ² β b))
β Pβ Ξ²
πβ Ξ² IH aβ Ξ³ π@(f , _) b (inl (a' , c)) e = c , III
where
eq = Ξ± Γβ (Ξ² β b) οΌβ¨ I Ξ² Ξ³ aβ π b β©
Ξ± Γβ Ξ³ +β (Ξ± β aβ) β f (aβ , b) οΌβ¨ ap ((Ξ± Γβ Ξ³ +β (Ξ± β aβ)) β_) e β©
Ξ± Γβ Ξ³ +β (Ξ± β aβ) β inl (a' , c) οΌβ¨ +β-β-left (a' , c) β»ΒΉ β©
Ξ± Γβ Ξ³ β (a' , c) οΌβ¨ Γβ-β Ξ± Ξ³ β©
Ξ± Γβ (Ξ³ β c) +β (Ξ± β a') β
π' : Ξ± Γβ (Ξ² β b) β΄ Ξ± Γβ (Ξ³ β c) +β (Ξ± β a')
f' = Idtofunβ eq
π' = f' , Idtofunβ-is-simulation eq
π'β»ΒΉ : Ξ± Γβ (Ξ³ β c) +β (Ξ± β a') β΄ Ξ± Γβ (Ξ² β b)
f'β»ΒΉ = Idtofunβ (eq β»ΒΉ)
π'β»ΒΉ = f'β»ΒΉ , Idtofunβ-is-simulation (eq β»ΒΉ)
II : a' οΌ aβ
II = Extensionality Ξ± a' aβ
(Ξ» x l β π-elim (IIβ x l))
(Ξ» x l β π-elim (transportβ»ΒΉ β¨_β© aβ-least (x , l)))
where
IIβ : (x : β¨ Ξ± β©) β Β¬ (x βΊβ¨ Ξ± β© a')
IIβ x l = +disjoint IIβ
where
y : β¨ Ξ± Γβ (Ξ² β b) β©
y = f'β»ΒΉ (inr (x , l))
yβ = prβ y
yβ = prβ y
z : β¨ Ξ³ β c β©
z = prβ (IH b (Ξ³ β c) a' π' yβ)
IIβ = inl (yβ , z) οΌβ¨ prβ (IH b (Ξ³ β c) a' π' yβ) yβ β»ΒΉ β©
f' (f'β»ΒΉ (inr (x , l))) οΌβ¨ Idtofunβ-retraction eq (inr (x , l)) β©
inr (x , l) β
III = f (aβ , b) οΌβ¨ e β©
inl (a' , c) οΌβ¨ ap (Ξ» - β inl (- , c)) II β©
inl (aβ , c) β
πβ Ξ² _ aβ Ξ³ π@(f , f-sim) b (inr (x , p)) e = π-elim (Ξ½ (aβ , refl))
where
eq-I = Ξ± Γβ (Ξ² β b) οΌβ¨ I Ξ² Ξ³ aβ π b β©
Ξ± Γβ Ξ³ +β (Ξ± β aβ) β f (aβ , b) οΌβ¨ ap ((Ξ± Γβ Ξ³ +β (Ξ± β aβ)) β_) e β©
Ξ± Γβ Ξ³ +β (Ξ± β aβ) β inr (x , p) οΌβ¨ +β-β-right (x , p) β»ΒΉ β©
Ξ± Γβ Ξ³ +β (Ξ± β aβ β (x , p)) οΌβ¨ eq-Iβ β©
Ξ± Γβ Ξ³ +β (Ξ± β x) β
where
eq-Iβ = ap ((Ξ± Γβ Ξ³) +β_) (iterated-β Ξ± aβ x p)
eq-II = Ξ± Γβ Ξ³ +β ((Ξ± β x) +β Ξ±) οΌβ¨ +β-assoc (Ξ± Γβ Ξ³) (Ξ± β x) Ξ± β»ΒΉ β©
Ξ± Γβ Ξ³ +β (Ξ± β x) +β Ξ± οΌβ¨ ap (_+β Ξ±) eq-I β»ΒΉ β©
Ξ± Γβ (Ξ² β b) +β Ξ± οΌβ¨ Γβ-successor Ξ± (Ξ² β b) β»ΒΉ β©
Ξ± Γβ ((Ξ² β b) +β πβ) β
ineq-I : Ξ± Γβ Ξ³ +β ((Ξ± β x) +β Ξ±) β΄ Ξ± Γβ Ξ³ +β (Ξ± β aβ)
ineq-I = transportβ»ΒΉ
(Ξ» - β - β΄ Ξ± Γβ Ξ³ +β (Ξ± β aβ))
eq-II
(β΄-trans
(Ξ± Γβ ((Ξ² β b) +β πβ))
(Ξ± Γβ Ξ²)
(Ξ± Γβ Ξ³ +β (Ξ± β aβ))
(Γβ-right-monotone-β΄ Ξ± ((Ξ² β b) +β πβ) Ξ²
(upper-bound-of-successors-of-initial-segments Ξ² b))
π)
ineq-II : (Ξ± β x) +β Ξ± β΄ Ξ± β aβ
ineq-II = +β-left-reflects-β΄ (Ξ± Γβ Ξ³) ((Ξ± β x) +β Ξ±) (Ξ± β aβ) ineq-I
h : β¨ Ξ± β© β β¨ Ξ± β aβ β©
h a = [ (Ξ± β x) +β Ξ± , Ξ± β aβ ]β¨ ineq-II β© (inr a)
h-order-preserving : is-order-preserving Ξ± (Ξ± β aβ) h
h-order-preserving a a' l =
simulations-are-order-preserving
((Ξ± β x) +β Ξ±)
(Ξ± β aβ)
[ (Ξ± β x) +β Ξ± , Ξ± β aβ ]β¨ ineq-II β©
([ (Ξ± β x) +β Ξ± , Ξ± β aβ ]β¨ ineq-II β©-is-simulation)
(inr a) (inr a') l
Ξ½ : Β¬ (Ξ± β aβ β² Ξ±)
Ξ½ = order-preserving-gives-not-β² Ξ± (Ξ± β aβ)
(h , h-order-preserving)
πβ : (Ξ² : Ordinal π€)
β ((b : β¨ Ξ² β©) β P (Ξ² β b))
β P Ξ²
πβ Ξ² IH Ξ³ aβ π@(f , f-sim) b = c , c-satisfies-equation
where
c : β¨ Ξ³ β©
c = prβ (πβ Ξ² IH aβ Ξ³ π b (f (aβ , b)) refl)
c-spec : f (aβ , b) οΌ inl (aβ , c)
c-spec = prβ (πβ Ξ² IH aβ Ξ³ π b (f (aβ , b)) refl)
c-satisfies-equation : (a : β¨ Ξ± β©) β f (a , b) οΌ inl (a , c)
c-satisfies-equation a = β-lc (Ξ± Γβ Ξ³ +β (Ξ± β aβ)) _ _ eq-II
where
eq-I = Ξ± Γβ (Ξ² β b) οΌβ¨ I Ξ² Ξ³ aβ π b β©
Ξ± Γβ Ξ³ +β (Ξ± β aβ) β f (aβ , b) οΌβ¨ eq-Iβ β©
Ξ± Γβ Ξ³ +β (Ξ± β aβ) β inl (aβ , c) οΌβ¨ +β-β-left (aβ , c) β»ΒΉ β©
Ξ± Γβ Ξ³ β (aβ , c) οΌβ¨ Γβ-β Ξ± Ξ³ β©
Ξ± Γβ (Ξ³ β c) +β (Ξ± β aβ) οΌβ¨ eq-Iβ β©
Ξ± Γβ (Ξ³ β c) β
where
eq-Iβ = ap (((Ξ± Γβ Ξ³) +β (Ξ± β aβ)) β_) c-spec
eq-Iβ = ap ((Ξ± Γβ (Ξ³ β c)) +β_) aβ-least β»ΒΉ
β πβ-right-neutral (Ξ± Γβ (Ξ³ β c))
eq-II = Ξ± Γβ Ξ³ +β (Ξ± β aβ) β f (a , b) οΌβ¨ eq-IIβ β©
Ξ± Γβ Ξ² β (a , b) οΌβ¨ Γβ-β Ξ± Ξ² β©
Ξ± Γβ (Ξ² β b) +β (Ξ± β a) οΌβ¨ ap (_+β (Ξ± β a)) eq-I β©
Ξ± Γβ (Ξ³ β c) +β (Ξ± β a) οΌβ¨ Γβ-β Ξ± Ξ³ β»ΒΉ β©
Ξ± Γβ Ξ³ β (a , c) οΌβ¨ +β-β-left (a , c) β©
Ξ± Γβ Ξ³ +β (Ξ± β aβ) β inl (a , c) β
where
eq-IIβ = (simulations-preserve-β _ _ π (a , b)) β»ΒΉ
π : (Ξ² : Ordinal π€) β P Ξ²
π = transfinite-induction-on-OO P πβ
II : (Ξ² Ξ³ : Ordinal π€)
β (aβ : β¨ Ξ± β©)
β ((f , _) : Ξ± Γβ Ξ² β΄ Ξ± Γβ Ξ³ +β (Ξ± β aβ))
β Ξ£ g κ (β¨ Ξ² β© β β¨ Ξ³ β©) ,
((a : β¨ Ξ± β©) (b : β¨ Ξ² β©) β f (a , b) οΌ inl (a , g b))
II Ξ² Ξ³ aβ π = (Ξ» b β prβ (π Ξ² Ξ³ aβ π b)) ,
(Ξ» a b β prβ (π Ξ² Ξ³ aβ π b) a)
Γβ-left-cancellable-β΄-generalized : (Ξ± Ξ² Ξ³ : Ordinal π€) (aβ : β¨ Ξ± β©)
β πβ β² Ξ±
β Ξ± Γβ Ξ² β΄ (Ξ± Γβ Ξ³) +β (Ξ± β aβ)
β Ξ² β΄ Ξ³
Γβ-left-cancellable-β΄-generalized Ξ± Ξ² Ξ³ aβ p@(aβ , aβ-least) π@(f , f-sim) =
(g , g-is-initial-segment , g-is-order-preserving)
where
g : β¨ Ξ² β© β β¨ Ξ³ β©
g = prβ (simulation-product-decomposition-generalized Ξ± p Ξ² Ξ³ aβ π)
g-property : (a : β¨ Ξ± β©) (b : β¨ Ξ² β©) β f (a , b) οΌ inl (a , g b)
g-property = prβ (simulation-product-decomposition-generalized Ξ± p Ξ² Ξ³ aβ π)
g-is-order-preserving : is-order-preserving Ξ² Ξ³ g
g-is-order-preserving b b' l = III II
where
I : f (aβ , b) βΊβ¨ (Ξ± Γβ Ξ³) +β (Ξ± β aβ) β© f (aβ , b')
I = simulations-are-order-preserving _ _ f f-sim (aβ , b) (aβ , b') (inl l)
II : inl (aβ , g b) βΊβ¨ (Ξ± Γβ Ξ³) +β (Ξ± β aβ) β© inl (aβ , g b')
II = transportβ (Ξ» x y β x βΊβ¨ ((Ξ± Γβ Ξ³) +β (Ξ± β aβ))β© y)
(g-property aβ b)
(g-property aβ b')
I
III : (aβ , g b) βΊβ¨ (Ξ± Γβ Ξ³) β© (aβ , g b') β g b βΊβ¨ Ξ³ β© g b'
III (inl p) = p
III (inr (r , q)) = π-elim (irrefl Ξ± aβ q)
g-is-initial-segment : is-initial-segment Ξ² Ξ³ g
g-is-initial-segment b c l = b' , II k , III
where
lβ : inl (aβ , c) βΊβ¨ (Ξ± Γβ Ξ³) +β (Ξ± β aβ) β© inl (aβ , g b)
lβ = inl l
lβ : inl (aβ , c) βΊβ¨ (Ξ± Γβ Ξ³) +β (Ξ± β aβ) β© f (aβ , b)
lβ = transportβ»ΒΉ (Ξ» - β inl (aβ , c) βΊβ¨ ((Ξ± Γβ Ξ³) +β (Ξ± β aβ))β© -)
(g-property aβ b)
lβ
Ο : Ξ£ y κ β¨ Ξ± Γβ Ξ² β© , (y βΊβ¨ Ξ± Γβ Ξ² β© (aβ , b)) Γ (f y οΌ (inl (aβ , c)))
Ο = simulations-are-initial-segments _ _ f f-sim (aβ , b) (inl (aβ , c)) lβ
a' = prβ (prβ Ο)
b' = prβ (prβ Ο)
k = prβ (prβ Ο)
e = prβ (prβ Ο)
II : (a' , b') βΊβ¨ Ξ± Γβ Ξ² β© (aβ , b) β b' βΊβ¨ Ξ² β© b
II (inl p) = p
II (inr (r , q)) = π-elim (Idtofunβ (aβ-least β»ΒΉ) (a' , q))
III : g b' οΌ c
III = ap prβ (inl-lc (inl (a' , g b') οΌβ¨ g-property a' b' β»ΒΉ β©
f (a' , b') οΌβ¨ e β©
inl (aβ , c) β))
Γβ-left-cancellable-β΄ : (Ξ± Ξ² Ξ³ : Ordinal π€)
β πβ β² Ξ±
β (Ξ± Γβ Ξ²) β΄ (Ξ± Γβ Ξ³)
β Ξ² β΄ Ξ³
Γβ-left-cancellable-β΄ Ξ± Ξ² Ξ³ p@(aβ , aβ-least) π =
Γβ-left-cancellable-β΄-generalized Ξ± Ξ² Ξ³ aβ p
(transport (Ξ± Γβ Ξ² β΄_)
(Ξ± Γβ Ξ³ οΌβ¨ πβ-right-neutral (Ξ± Γβ Ξ³) β»ΒΉ β©
Ξ± Γβ Ξ³ +β πβ οΌβ¨ ap ((Ξ± Γβ Ξ³) +β_) aβ-least β©
Ξ± Γβ Ξ³ +β (Ξ± β aβ) β)
π)
\end{code}
The following result states that multiplication for ordinals can be cancelled on
the left. Interestingly, Andrew Swan [Swa18] proved that the corresponding
result for sets is not provable constructively already for Ξ± = π: there are
toposes where the statement
π Γ X β π Γ Y β X β Y
is not true for certain objects X and Y in the topos.
[Swa18] Andrew Swan. On Dividing by Two in Constructive Mathematics
2018. https://arxiv.org/abs/1804.04490
\begin{code}
Γβ-left-cancellable : (Ξ± Ξ² Ξ³ : Ordinal π€)
β πβ β² Ξ±
β (Ξ± Γβ Ξ²) οΌ (Ξ± Γβ Ξ³)
β Ξ² οΌ Ξ³
Γβ-left-cancellable {π€ = π€} Ξ± Ξ² Ξ³ p e = β΄-antisym Ξ² Ξ³ (f Ξ² Ξ³ e) (f Ξ³ Ξ² (e β»ΒΉ))
where
f : (Ξ² Ξ³ : Ordinal π€) β (Ξ± Γβ Ξ²) οΌ (Ξ± Γβ Ξ³) β Ξ² β΄ Ξ³
f Ξ² Ξ³ e = Γβ-left-cancellable-β΄ Ξ± Ξ² Ξ³ p (ββ-to-β΄ (Ξ± Γβ Ξ²) (Ξ± Γβ Ξ³)
(idtoeqβ (Ξ± Γβ Ξ²) (Ξ± Γβ Ξ³) e))
\end{code}
As mentioned above, the generalized decomposition lemma for simulation from a
product was inspired by the following less general lemma for which we give both
an indirect and a direct proof (with more general universe levels).
\begin{code}
simulation-product-decomposition' : (Ξ± Ξ² Ξ³ : Ordinal π€)
((aβ , aβ-least) : πβ β² Ξ±)
((f , _) : (Ξ± Γβ Ξ²) β΄ (Ξ± Γβ Ξ³))
(a : β¨ Ξ± β©) (b : β¨ Ξ² β©)
β f (a , b) οΌ (a , prβ (f (aβ , b)))
simulation-product-decomposition' Ξ± Ξ² Ξ³ (aβ , aβ-least) π@(f , f-sim) a = III
where
π' : Ξ± Γβ Ξ² β΄ Ξ± Γβ Ξ³ +β (Ξ± β a)
π' = β΄-trans (Ξ± Γβ Ξ²) (Ξ± Γβ Ξ³) (Ξ± Γβ Ξ³ +β (Ξ± β a))
π
(+β-left-β΄ (Ξ± Γβ Ξ³) (Ξ± β a))
f' = [ Ξ± Γβ Ξ² , Ξ± Γβ Ξ³ +β (Ξ± β a) ]β¨ π' β©
I : Ξ£ g κ (β¨ Ξ² β© β β¨ Ξ³ β©) ,
((a' : β¨ Ξ± β©) (b : β¨ Ξ² β©) β f' (a' , b) οΌ inl (a' , g b))
I = simulation-product-decomposition-generalized Ξ± (aβ , aβ-least) Ξ² Ξ³ a π'
g = prβ I
g-property = prβ I
II : (b : β¨ Ξ² β©) β g b οΌ prβ (f (aβ , b))
II b = ap prβ (inl-lc (inl (aβ , g b) οΌβ¨ (g-property aβ b) β»ΒΉ β©
f' (aβ , b) οΌβ¨reflβ©
inl (f (aβ , b)) β))
III : (b : β¨ Ξ² β©)
β f (a , b) οΌ a , prβ (f (aβ , b))
III b =
inl-lc (inl (f (a , b)) οΌβ¨ g-property a b β©
inl (a , g b) οΌβ¨ ap (Ξ» - β inl (a , -)) (II b) β©
inl (a , prβ (f (aβ , b))) β)
simulation-product-decomposition
: (Ξ± : Ordinal π€) (Ξ² Ξ³ : Ordinal π₯)
((aβ , aβ-least) : πβ β² Ξ±)
((f , _) : (Ξ± Γβ Ξ²) β΄ (Ξ± Γβ Ξ³))
β (a : β¨ Ξ± β©) (b : β¨ Ξ² β©) β f (a , b) οΌ (a , prβ (f (aβ , b)))
simulation-product-decomposition {π€} {π₯} Ξ± Ξ² Ξ³ (aβ , aβ-least)
(f , sim@(init-seg , order-pres)) a b = I
where
f' : β¨ Ξ± Γβ Ξ² β© β β¨ Ξ± Γβ Ξ³ β©
f' (a , b) = (a , prβ (f (aβ , b)))
P : β¨ Ξ± Γβ Ξ² β© β π€ β π₯ Μ
P (a , b) = (f (a , b)) οΌ f' (a , b)
I : P (a , b)
I = Transfinite-induction (Ξ± Γβ Ξ²) P II (a , b)
where
II : (x : β¨ Ξ± Γβ Ξ² β©)
β ((y : β¨ Ξ± Γβ Ξ² β©) β y βΊβ¨ Ξ± Γβ Ξ² β© x β P y)
β P x
II (a , b) IH = Extensionality (Ξ± Γβ Ξ³) (f (a , b)) (f' (a , b)) III IV
where
III : (u : β¨ Ξ± Γβ Ξ³ β©) β u βΊβ¨ Ξ± Γβ Ξ³ β© f (a , b) β u βΊβ¨ Ξ± Γβ Ξ³ β© f' (a , b)
III (a' , c') p = transport (Ξ» - β - βΊβ¨ Ξ± Γβ Ξ³ β© f' (a , b)) IIIβ (IIIβ p')
where
IIIβ : Ξ£ (a'' , b') κ β¨ Ξ± Γβ Ξ² β© , (a'' , b') βΊβ¨ Ξ± Γβ Ξ² β© (a , b)
Γ (f (a'' , b') οΌ a' , c')
IIIβ = init-seg (a , b) (a' , c') p
a'' = prβ (prβ IIIβ)
b' = prβ (prβ IIIβ)
p' = prβ (prβ IIIβ)
eq : f (a'' , b') οΌ (a' , c')
eq = prβ (prβ IIIβ)
IIIβ : f' (a'' , b') οΌ (a' , c')
IIIβ = IH (a'' , b') p' β»ΒΉ β eq
IIIβ : (a'' , b') βΊβ¨ Ξ± Γβ Ξ² β© (a , b)
β f' (a'' , b') βΊβ¨ Ξ± Γβ Ξ³ β© f' (a , b)
IIIβ (inl q) = h (order-pres (aβ' , b') (aβ , b) (inl q))
where
aβ' : β¨ Ξ± β©
aβ' = prβ (f (aβ , b))
ih : (f (aβ' , b')) οΌ f' (aβ' , b')
ih = IH (aβ' , b') (inl q)
h : f (aβ' , b') βΊβ¨ Ξ± Γβ Ξ³ β© f (aβ , b)
β f' (a'' , b') βΊβ¨ Ξ± Γβ Ξ³ β© f' (a , b)
h (inl r) = inl (transport (Ξ» - β - βΊβ¨ Ξ³ β© prβ (f (aβ , b)))
(ap prβ ih) r)
h (inr (_ , r)) = π-elim (irrefl Ξ± aβ' (transport (Ξ» - β - βΊβ¨ Ξ± β© aβ')
(ap prβ ih) r))
IIIβ (inr (e , q)) = inr (ap (Ξ» - β prβ (f (aβ , -))) e , q)
IV : (u : β¨ Ξ± Γβ Ξ³ β©) β u βΊβ¨ Ξ± Γβ Ξ³ β© f' (a , b) β u βΊβ¨ Ξ± Γβ Ξ³ β© f (a , b)
IV (a' , c') (inl p) = lβ (a' , c') (inl p)
where
lβ : aβ βΌβ¨ Ξ± β© a
lβ x p = π-elim (transport β¨_β© (aβ-least β»ΒΉ) (x , p))
lβ : f (aβ , b) βΌβ¨ Ξ± Γβ Ξ³ β© f (a , b)
lβ = simulations-are-monotone _ _
f sim (aβ , b) (a , b) (Γβ-βΌ-left Ξ± Ξ² lβ)
IV (a' , c') (inr (r , q)) =
transport (Ξ» - β - βΊβ¨ Ξ± Γβ Ξ³ β© f (a , b)) eq
(order-pres (a' , b) (a , b) (inr (refl , q)))
where
eq = f (a' , b) οΌβ¨ IH (a' , b) (inr (refl , q)) β©
f' (a' , b) οΌβ¨reflβ©
(a' , prβ (f (aβ , b))) οΌβ¨ ap (a' ,_) (r β»ΒΉ) β©
(a' , c') β
\end{code}
Using similar techniques, we can also prove that multiplication is
left cancellable with respect to β².
\begin{code}
simulation-product-decomposition-leftover-empty
: (Ξ± Ξ² Ξ³ : Ordinal π€)
β πβ β² Ξ±
β (a : β¨ Ξ± β©)
β (Ξ± Γβ Ξ²) οΌ (Ξ± Γβ Ξ³ +β (Ξ± β a))
β (Ξ± Γβ Ξ²) οΌ (Ξ± Γβ Ξ³)
simulation-product-decomposition-leftover-empty Ξ± Ξ² Ξ³ (aβ , p) a e = II
where
a-least : (x : β¨ Ξ± β©) β Β¬ (x βΊβ¨ Ξ± β© a)
a-least x l = +disjoint (Ξ½ β»ΒΉ)
where
π : Ξ± Γβ Ξ² β΄ Ξ± Γβ Ξ³ +β (Ξ± β a)
f = Idtofunβ e
π = f , Idtofunβ-is-simulation e
πβ»ΒΉ : Ξ± Γβ Ξ³ +β (Ξ± β a) β΄ Ξ± Γβ Ξ²
fβ»ΒΉ = Idtofunβ (e β»ΒΉ)
πβ»ΒΉ = fβ»ΒΉ , Idtofunβ-is-simulation (e β»ΒΉ)
f-decomposition
: Ξ£ g κ (β¨ Ξ² β© β β¨ Ξ³ β©) ,
((a : β¨ Ξ± β©) (b : β¨ Ξ² β©) β f (a , b) οΌ inl (a , g b) )
f-decomposition =
simulation-product-decomposition-generalized Ξ± (aβ , p) Ξ² Ξ³ a π
g = prβ f-decomposition
Ξ½ = (inr (x , l)) οΌβ¨ (Idtofunβ-retraction e (inr (x , l))) β»ΒΉ β©
f (fβ»ΒΉ (inr (x , l))) οΌβ¨ prβ (f-decomposition) x' y' β©
inl (x' , g y') β
where
x' = prβ (fβ»ΒΉ (inr (x , l)))
y' = prβ (fβ»ΒΉ (inr (x , l)))
I : a οΌ aβ
I = Extensionality Ξ± a aβ (Ξ» x l β π-elim (a-least x l))
(Ξ» x l β π-elim (Idtofunβ (p β»ΒΉ) (x , l)))
II = Ξ± Γβ Ξ² οΌβ¨ e β©
Ξ± Γβ Ξ³ +β (Ξ± β a) οΌβ¨ ap ((Ξ± Γβ Ξ³) +β_) (ap (Ξ± β_) I β p β»ΒΉ) β©
Ξ± Γβ Ξ³ +β πβ οΌβ¨ πβ-right-neutral (Ξ± Γβ Ξ³) β©
Ξ± Γβ Ξ³ β
Γβ-left-cancellable-β² : (Ξ± Ξ² Ξ³ : Ordinal π€)
β πβ β² Ξ±
β Ξ± Γβ Ξ² β² Ξ± Γβ Ξ³
β Ξ² β² Ξ³
Γβ-left-cancellable-β² Ξ± Ξ² Ξ³ Ξ±-positive ((a , c) , p) = c , III
where
I : Ξ± Γβ Ξ² οΌ Ξ± Γβ (Ξ³ β c) +β (Ξ± β a)
I = p β Γβ-β Ξ± Ξ³
II : Ξ± Γβ Ξ² οΌ Ξ± Γβ (Ξ³ β c)
II = simulation-product-decomposition-leftover-empty Ξ± Ξ² (Ξ³ β c) Ξ±-positive a I
III : Ξ² οΌ Ξ³ β c
III = Γβ-left-cancellable Ξ± Ξ² (Ξ³ β c) Ξ±-positive II
\end{code}
Added 15 July 2025 by Tom de Jong.
Updated 6 October 2026 by Tom de Jong to reflect that we can even restrict to
ordinals with a trichotomous least element.
\begin{code}
Γβ-as-large-as-right-factor-implies-EM'
: ((Ξ± Ξ² : Ordinal π€) β has-trichotomous-least-element Ξ±
β has-trichotomous-least-element Ξ²
β πβ β² Ξ± β Ξ² β΄ Ξ± Γβ Ξ²)
β EM π€
Γβ-as-large-as-right-factor-implies-EM' hyp P P-is-prop = IV (f (inr β)) refl
where
Pβ = prop-ordinal P P-is-prop
Ξ± = πβ +β Pβ
Ξ² = πβ
π : Ξ² β΄ Ξ± Γβ Ξ²
π = hyp Ξ± Ξ²
(decomposable-to-trichotomous-least Ξ± (Pβ , refl))
(decomposable-to-trichotomous-least Ξ² (πβ , refl))
(inl β , (πβ-β β»ΒΉ β +β-β-left β))
f = [ Ξ² , Ξ± Γβ Ξ² ]β¨ π β©
f-is-sim : is-simulation Ξ² (Ξ± Γβ Ξ²) f
f-is-sim = [ Ξ² , Ξ± Γβ Ξ² ]β¨ π β©-is-simulation
I : (p : P) β f (inr β) οΌ (inr p , inl β)
I p = β-lc (Ξ± Γβ Ξ²) (f (inr β)) (inr p , inl β) e
where
e = (Ξ± Γβ Ξ²) β f (inr β) οΌβ¨ eβ β©
Ξ² β inr β οΌβ¨ eβ β©
πβ οΌβ¨ eβ β©
Ξ± β inr p οΌβ¨ eβ β©
Ξ± Γβ πβ +β (Ξ± β inr p) οΌβ¨ eβ
β©
Ξ± Γβ (Ξ² β inl β) +β (Ξ± β inr p) οΌβ¨ Γβ-β Ξ± Ξ² β»ΒΉ β©
(Ξ± Γβ Ξ²) β (inr p , inl β) β
where
eβ = (simulations-preserve-β Ξ² (Ξ± Γβ Ξ²) π (inr β)) β»ΒΉ
eβ = +β-β-right β β»ΒΉ β ap (πβ +β_) πβ-β β πβ-right-neutral πβ
eβ = (πβ-right-neutral πβ) β»ΒΉ
β ap (πβ +β_) ((prop-ordinal-β P-is-prop p) β»ΒΉ) β +β-β-right p
eβ = (ap (_+β (Ξ± β inr p)) (Γβ-πβ-right Ξ±)
β πβ-left-neutral (Ξ± β inr p)) β»ΒΉ
eβ
= ap (Ξ» - β Ξ± Γβ - +β (Ξ± β inr p)) (πβ-β β»ΒΉ β +β-β-left β)
II : (x : β¨ Ξ± β©) β f (inr β) οΌ (x , inr β) β Β¬ P
II x e p = +disjoint (ap prβ ((I p) β»ΒΉ β e))
III : f (inr β) β (inl β , inl β)
III h = +disjoint (simulations-are-lc Ξ² (Ξ± Γβ Ξ²) f f-is-sim (e β h β»ΒΉ))
where
e : f (inl β) οΌ (inl β , inl β)
e = simulations-preserve-least
Ξ² (Ξ± Γβ Ξ²) (inl β) (inl β , inl β) f f-is-sim
Ξ²-least
(Γβ-least Ξ± Ξ² (inl β) (inl β) (+β-least πβ Pβ β πβ-least) Ξ²-least)
where
Ξ²-least : is-least Ξ² (inl β)
Ξ²-least = +β-least πβ πβ β πβ-least
IV : (x : β¨ Ξ± Γβ Ξ² β©) β f (inr β) οΌ x β P + Β¬ P
IV (inl β , inl β) e = π-elim (III e)
IV (inr p , inl β) e = inl p
IV (inl β , inr β) e = inr (II (inl β) e)
IV (inr p , inr β) e = inl p
Γβ-as-large-as-right-factor-implies-EM
: ((Ξ± Ξ² : Ordinal π€) β πβ β² Ξ± β Ξ² β΄ Ξ± Γβ Ξ²) β EM π€
Γβ-as-large-as-right-factor-implies-EM hyp =
Γβ-as-large-as-right-factor-implies-EM' (Ξ» Ξ± Ξ² _ _ β hyp Ξ± Ξ²)
EM-implies-Γβ-as-large-as-right-factor
: EM π€
β (Ξ± Ξ² : Ordinal π€) β πβ β² Ξ± β Ξ² β΄ Ξ± Γβ Ξ²
EM-implies-Γβ-as-large-as-right-factor em Ξ± Ξ² (aβ , _) =
βΌ-gives-β΄ Ξ² (Ξ± Γβ Ξ²)
(EM-implies-order-preserving-gives-βΌ em Ξ² (Ξ± Γβ Ξ²) (f , I))
where
f : β¨ Ξ² β© β β¨ Ξ± Γβ Ξ² β©
f b = (aβ , b)
I : is-order-preserving Ξ² (Ξ± Γβ Ξ²) f
I b b' l = inl l
\end{code}
Added in September 2025 by Fredrik Nordvall Forsberg.
Moved here from ArithmeticReflection by Tom de Jong in October 2025.
Some special cases of multiplication by Ο.
\begin{code}
πβΓβΟ-is-Ο : πβ Γβ Ο οΌ Ο
πβΓβΟ-is-Ο = πβ-left-neutral-Γβ Ο
πβΓβΟ-is-Ο : πβ Γβ Ο οΌ Ο
πβΓβΟ-is-Ο = eqtoidβ (ua _) fe' (πβ Γβ Ο) Ο h
where
open import Naturals.Addition hiding (_+_)
open import Naturals.Division
open import Naturals.Order
open import Naturals.Double
f : β¨ πβ β© Γ β β β
f (inl β , n) = double n
f (inr β , n) = sdouble n
g' : (n : β) β division-theorem n 1 β β¨ πβ β© Γ β
g' n (k , 0 , p , l) = inl β , k
g' n (k , 1 , p , l) = inr β , k
g' n (k , succ (succ j) , p , l) = π-elim l
g : β β β¨ πβ β© Γ β
g n = g' n (division n 1)
f-equiv : is-equiv f
f-equiv = qinvs-are-equivs f (g , (Ξ· , Ο΅))
where
Ξ·' : (x : β¨ πβ β© Γ β)(m : β) β m οΌ f x β (d : division-theorem m 1)
β g' m d οΌ x
Ξ·' (inl β , n) m r (k , 0 , p , l) = ap (inl β ,_) (double-lc Ο)
where
Ο : double k οΌ double n
Ο = double-is-self-addition k β p β»ΒΉ β r
Ξ·' (inr β , n) m r (k , 0 , p , l) = π-elim (double-is-not-sdouble Ο)
where
Ο : double k οΌ sdouble n
Ο = double-is-self-addition k β p β»ΒΉ β r
Ξ·' (inl β , n) m r (k , 1 , p , l) = π-elim (double-is-not-sdouble Ο)
where
Ο : double n οΌ sdouble k
Ο = r β»ΒΉ β p β ap succ (double-is-self-addition k β»ΒΉ)
Ξ·' (inr β , n) m r (k , 1 , p , l) = ap (inr β ,_) (sdouble-lc Ο)
where
Ο : sdouble k οΌ sdouble n
Ο = ap succ (double-is-self-addition k) β p β»ΒΉ β r
Ξ·' (inl β , n) m r (k , succ (succ j) , p , l) = π-elim l
Ξ·' (inr β , n) m r (k , succ (succ j) , p , l) = π-elim l
Ξ· : (Ξ» x β g (f x)) βΌ id
Ξ· x = Ξ·' x (f x) refl (division (f x) 1)
Ο΅' : (n : β) β (d : division-theorem n 1) β f (g' n d) οΌ n
Ο΅' n (k , 0 , refl , l) = double-is-self-addition k
Ο΅' n (k , 1 , refl , l) = ap succ (double-is-self-addition k)
Ο΅' n (k , succ (succ j) , p , l) = π-elim l
Ο΅ : (Ξ» n β f (g n)) βΌ id
Ο΅ n = Ο΅' n (division n 1)
f-preserves-order : (x y : β¨ πβ β© Γ β) β x βΊβ¨ πβ Γβ Ο β© y β f x βΊβ¨ Ο β© f y
f-preserves-order (inl β , x) (inl β , y) (inl p) =
transportββ»ΒΉ (Ξ» - β succ - β€β_)
(double-is-self-addition x)
(double-is-self-addition y)
(β€-adding x y (succ x) y (β€-trans x (succ x) y (β€-succ x) p) p)
f-preserves-order (inl β , x) (inr β , y) (inl p) =
transportββ»ΒΉ _β€β_ (double-is-self-addition x) (double-is-self-addition y)
(β€-adding x y x y (β€-trans x (succ x) y (β€-succ x) p)
(β€-trans x (succ x) y (β€-succ x) p))
f-preserves-order (inr β , x) (inl β , y) (inl p) =
transportββ»ΒΉ (Ξ» - β succ - β€β_)
(ap succ (double-is-self-addition x) β succ-left x x β»ΒΉ)
(double-is-self-addition y)
(β€-adding (succ x) y (succ x) y p p)
f-preserves-order (inr β , x) (inr β , y) (inl p) =
transportββ»ΒΉ (Ξ» - β succ - β€β_)
(double-is-self-addition x)
(double-is-self-addition y)
(β€-adding x y (succ x) y (β€-trans x (succ x) y (β€-succ x) p) p)
f-preserves-order (inl β , x) (inl β , y) (inr (refl , q)) = π-elim q
f-preserves-order (inl β , x) (inr β , x) (inr (refl , _)) = β€-refl _
f-preserves-order (inr β , x) (inl β , x) (inr (refl , q)) = π-elim q
f-preserves-order (inr β , x) (inr β , x) (inr (refl , q)) = π-elim q
f-reflects-order : (x y : β¨ πβ β© Γ β) β f x βΊβ¨ Ο β© f y β x βΊβ¨ πβ Γβ Ο β© y
f-reflects-order (inl β , x) (inl β , y) p = inl (double-reflects-< p)
f-reflects-order (inl β , x) (inr β , y) p = Ο (<-trichotomous x y)
where
Ο : (x <β y) + (x οΌ y) + (y <β x) β (x <β y) + (x οΌ y) Γ π
Ο (inl l) = inl l
Ο (inr (inl e)) = inr (e , β)
Ο (inr (inr g)) =
π-elim (less-than-not-equal y y (<-β€-trans y x y g (double-reflects-β€ p)) refl)
f-reflects-order (inr β , x) (inl β , y) p = inl (double-reflects-β€ p)
f-reflects-order (inr β , x) (inr β , y) p = inl (double-reflects-< p)
h : (πβ Γβ Ο) ββ Ο
h = f , order-preserving-reflecting-equivs-are-order-equivs (πβ Γβ Ο) Ο f
f-equiv f-preserves-order f-reflects-order
\end{code}