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}