Written 26 March 2023 by Tom de Jong, following a discussion with Nicolai Kraus
on 24 March 2023, but not completed and merged into TypeTopology master then.
Revisited and updated on 17 February 2026.
--- Summary ---
We show that having an identification of the ordinals (π , β βΊ β) and
(π , β βΊ β) contradicts the K-axiom. It follows that preunivalence, while
sufficient to show that the type of ordinals is a set
(cf. Ordinal-is-set-under-preunivalence in Ordinals.Equivalence), is not enough
to show that the simulation ordering on the type of ordinals is
antisymmetric. Indeed, the ordinals (π , β βΊ β) and (π , β βΊ β) are equivalent,
while preunivalence is derivable from the K-axiom.
--- Proof sketch ---
For any two ordinals Ξ± and Ξ², we let Ξ± ββ Ξ² denote the type of order
equivalences from Ξ± to Ξ². By path induction, the following diagram
ap β¨_β©
Ξ± οΌ Ξ² ------------------> β¨ Ξ± β© οΌ β¨ Ξ² β©
| |
| idtoeq | idtoeq
v v
Ξ± ββ Ξ² ------------------> β¨ Ξ± β© β β¨ Ξ² β©
ββ-gives-β
always commutes.
Taking Ξ± = πβ = (π , β βΊ β) and Ξ² = πβ' = (π , β βΊ β), we first observe that
(Ξ± ββ Ξ²) has a single inhabitant eβ, namely the order equivalence that swaps the
booleans. Therefore, applying ββ-gives-β to *any* element of (Ξ± ββ Ξ²) always
yields the swapping equivalence (called complement in TypeTopology).
Assuming the K-axiom, all loops are refl, so that any element p : β¨ Ξ± β© = β¨ Ξ² β©
must be equal to refl as β¨ Ξ± β© and β¨ Ξ² β© are both just π. Hence, under the
K-axiom, applying idtoeq to any such element always yields the identity map.
Hence, the commutativity of the diagram then tells us that identifying Ξ± and Ξ²
must contradict the K-axiom.
\begin{code}
{-# OPTIONS --safe --without-K #-}
module Ordinals.IdentifyingEquivalentOrdinals where
open import MLTT.Spartan
open import MLTT.Two-Properties
open import UF.Equiv
open import UF.PreUnivalence
open import UF.Sets
open import UF.Subsingletons
open import Ordinals.Equivalence
open import Ordinals.Maps
open import Ordinals.Notions
open import Ordinals.Type
open import Ordinals.Underlying
idtoeqβ-naturality
: (Ξ± Ξ² : Ordinal π€) (p : Ξ± οΌ Ξ²)
β idtoeq β¨ Ξ± β© β¨ Ξ² β© (ap β¨_β© p) οΌ ββ-gives-β Ξ± Ξ² (idtoeqβ Ξ± Ξ² p)
idtoeqβ-naturality Ξ± Ξ² refl = refl
\end{code}
We now construct the ordinal πβ = (π , β βΊ β).
Note that it is equivalent to πβ +β πβ, but we prefer to work directly with booleans here.
\begin{code}
private
πβ : Ordinal π€β
πβ = π , (_βΊ_ , p , w , e , t)
where
_βΊ_ : π β π β π€β Μ
β βΊ β = π
β βΊ β = π
β βΊ β = π
β βΊ β = π
p : is-prop-valued _βΊ_
p β β = π-is-prop
p β β = π-is-prop
p β β = π-is-prop
p β β = π-is-prop
w : is-well-founded _βΊ_
w β = acc a
where
a : (y : π) β y βΊ β β is-accessible _βΊ_ y
a β l = π-elim l
a β l = π-elim l
w β = acc a
where
a : (y : π) β y βΊ β β is-accessible _βΊ_ y
a β l = w β
a β l = π-elim l
e : is-extensional _βΊ_
e β β u v = refl
e β β u v = π-elim (v β β)
e β β u v = π-elim (u β β)
e β β u v = refl
t : is-transitive _βΊ_
t β β β k l = l
t β β β k l = l
t β β β k l = l
t β β β k l = l
t β β β k l = l
t β β β k l = k
t β β β k l = k
t β β β k l = l
\end{code}
We now construct the ordinal πβ' = (π , β βΊ β).
There is some repetition of code which we could avoid by using
transport-well-order (on the complement map) from Ordinals.WellOrderTransport,
but that module requires function extensionality which we prefer not to assume
here for foundational minimalism.
\begin{code}
πβ' : Ordinal π€β
πβ' = π , (_βΊ_ , p , w , e , t)
where
_βΊ_ : π β π β π€β Μ
β βΊ β = π
β βΊ β = π
β βΊ β = π
β βΊ β = π
p : is-prop-valued _βΊ_
p β β = π-is-prop
p β β = π-is-prop
p β β = π-is-prop
p β β = π-is-prop
w : is-well-founded _βΊ_
w β = acc a
where
a : (y : π) β y βΊ β β is-accessible _βΊ_ y
a β l = π-elim l
a β l = w β
w β = acc a
where
a : (y : π) β y βΊ β β is-accessible _βΊ_ y
a β l = π-elim l
a β l = π-elim l
e : is-extensional _βΊ_
e β β u v = refl
e β β u v = π-elim (u β β)
e β β u v = π-elim (v β β)
e β β u v = refl
t : is-transitive _βΊ_
t β β β k l = l
t β β β k l = k
t β β β k l = β
t β β β k l = l
t β β β k l = l
t β β β k l = l
t β β β k l = l
t β β β k l = l
\end{code}
The two ordinals are equivalent via the complement map and of course this is the
only order equivalence between the two ordinals.
\begin{code}
πβ-ββ-πβ' : πβ ββ πβ'
πβ-ββ-πβ' = f , f-preserves-order , f-is-equiv , f-preserves-order'
where
f : π β π
f = complement
f-preserves-order : is-order-preserving πβ πβ' f
f-preserves-order β β l = l
f-preserves-order β β l = π-elim l
f-preserves-order β β l = π-elim l
f-preserves-order β β l = π-elim l
f-is-equiv : is-equiv f
f-is-equiv = qinvs-are-equivs f (f , complement-involutive , complement-involutive)
f-preserves-order' : is-order-preserving πβ' πβ f
f-preserves-order' β β l = π-elim l
f-preserves-order' β β l = π-elim l
f-preserves-order' β β l = l
f-preserves-order' β β l = π-elim l
complement-is-the-only-ordinal-equivalence-of-π
: (e : πβ ββ πβ') β ββ-to-fun πβ πβ' e βΌ complement
complement-is-the-only-ordinal-equivalence-of-π e β = II
where
f : π β π
f = ββ-to-fun πβ πβ' e
I : ββ-to-fun πβ πβ' e β β β
I p = l' (f β) (order-equivs-are-order-preserving πβ πβ'
(ββ-to-fun-is-order-equiv πβ πβ' e)
β β β)
where
l : (b : π) β Β¬ (β βΊβ¨ πβ' β© b)
l β l = π-elim l
l β l = π-elim l
l' : (b : π) β Β¬ (f β βΊβ¨ πβ' β© b)
l' b = idtofun _ _ (ap (Ξ» - β Β¬ (- βΊβ¨ πβ' β© b)) (p β»ΒΉ)) (l b)
II : f β οΌ β
II = different-from-β-equal-β I
complement-is-the-only-ordinal-equivalence-of-π e β = II
where
f : π β π
f = ββ-to-fun πβ πβ' e
I : ββ-to-fun πβ πβ' e β β β
I p = l' (f β) (order-equivs-are-order-preserving πβ πβ'
(ββ-to-fun-is-order-equiv πβ πβ' e)
β β β)
where
l : (b : π) β Β¬ (b βΊβ¨ πβ' β© β)
l β l = π-elim l
l β l = π-elim l
l' : (b : π) β Β¬ (b βΊβ¨ πβ' β© f β)
l' b = idtofun _ _ (ap (Ξ» - β Β¬ (b βΊβ¨ πβ' β© -)) (p β»ΒΉ)) (l b)
II : f β οΌ β
II = different-from-β-equal-β I
\end{code}
As announced, identifying the ordinals πβ and πβ' contradicts the K-axiom.
\begin{code}
identification-of-πβ-and-πβ'-contradicts-K : πβ οΌ πβ' β Β¬ K-axiom π€β
identification-of-πβ-and-πβ'-contradicts-K pβ K =
p-is-not-refl (K (π€β Μ ) p refl)
where
p : π οΌ π
p = ap β¨_β© pβ
f : π β π
f = β idtoeq π π p β
f' : π β π
f' = β ββ-gives-β πβ πβ' (idtoeqβ πβ πβ' pβ) β
I : f βΌ f'
I b = ap (Ξ» - β β - β b) (idtoeqβ-naturality πβ πβ' pβ)
II : f' βΌ complement
II = complement-is-the-only-ordinal-equivalence-of-π (idtoeqβ πβ πβ' pβ)
p-is-not-refl : Β¬ (p οΌ refl)
p-is-not-refl e = zero-is-not-one
(β οΌβ¨ refl β©
β idtoeq π π refl β β οΌβ¨ ap (Ξ» - β β idtoeq π π - β β) (e β»ΒΉ) β©
f β οΌβ¨ I β β©
f' β οΌβ¨ II β β©
β β)
\end{code}
In particular, antisymmetry of the simulation preorder contradicts the K-axiom.
Note that we copied the definition of the simulation preorder β΄ here from
Ordinals.OrdinalOfOrdinals since that module assumes univalence which we wish to
avoid here.
\begin{code}
_β΄_ : Ordinal π€ β Ordinal π₯ β π€ β π₯ Μ
Ξ± β΄ Ξ² = Ξ£ f κ (β¨ Ξ± β© β β¨ Ξ² β©) , is-simulation Ξ± Ξ² f
antisymmetry-of-β΄ : (π€ : Universe) β π€ βΊ Μ
antisymmetry-of-β΄ π€ = (Ξ± Ξ² : Ordinal π€) β Ξ± β΄ Ξ² β Ξ² β΄ Ξ± β Ξ± οΌ Ξ²
antisymmetry-of-β΄-contradicts-K : antisymmetry-of-β΄ π€β β Β¬ K-axiom π€β
antisymmetry-of-β΄-contradicts-K β΄-antisym =
identification-of-πβ-and-πβ'-contradicts-K I
where
I : πβ οΌ πβ'
I = β΄-antisym πβ πβ' Iβ Iβ
where
Iβ : πβ β΄ πβ'
Iβ = (complement ,
order-equivs-are-simulations πβ πβ' complement (prβ πβ-ββ-πβ'))
Iβ : πβ' β΄ πβ
Iβ = (complement , order-equivs-are-simulations πβ' πβ complement
(prβ (ββ-sym πβ πβ' (πβ-ββ-πβ'))))
\end{code}
Finally, we show that preunivalence cannot prove that β΄ is antisymmetric.
The argument uses that the K-axiom is not false (in the absence of univalence),
but of course it is not provable either, so we add ¬¬ K-axiom as a hypothesis.
We also need a small technical lemma, K-axiom-lower, that is perhaps better
placed in UF.Sets-Properties which it can't right now because of cyclic module
dependencies (which we could avoid by replacing β-Lift with an inline
construction).
\begin{code}
K-axiom-lower : K-axiom (π€ βΊ) β K-axiom π€
K-axiom-lower {π€} K X = I
where
open import UF.Sets-Properties
open import UF.UniverseEmbedding
I : is-set X
I = equiv-to-set (β-Lift (π€ βΊ) X) (K (Lift (π€ βΊ) X))
preunivalence-cannot-show-antisymmetry-of-β΄
: ¬¬ K-axiom π€β
β Β¬ (is-preunivalent π€β β antisymmetry-of-β΄ π€β)
preunivalence-cannot-show-antisymmetry-of-β΄ K-consistent hyp = V
where
I : K-axiom π€β β is-preunivalent π€β
I K = K-gives-preunivalence (K-axiom-lower K) K
II : is-preunivalent π€β β antisymmetry-of-β΄ π€β
II = hyp
III : antisymmetry-of-β΄ π€β β Β¬ K-axiom π€β
III = antisymmetry-of-β΄-contradicts-K
IV : K-axiom π€β β Β¬ K-axiom π€β
IV = III β II β I
V : π
V = K-consistent (Ξ» K β IV K K)
\end{code}