Martin Escardo, 21th December 2020 - 18th February 2021. In collaboration with Marc Bezem, Thierry Coquand, Peter Dybjer. The Burali-Forti argument in HoTT/UF with applications to the type of groups in a universe ------------------------------------------------------------------------------------------ Abstract. We use the Burali-Forti argument to show that, in HoTT/UF, the embedding π€ β π€βΊ. of a universe π€ into its successor π€βΊ is not equivalence. Similarly, the embedding hSet π€ β hSet π€βΊ of the type of sets of π€ into that of π€βΊ in not an equivalence either. We also establish this for the types of magmas, monoids and groups, where the case of groups requires considerable more work (invoked here but performed in the modules FreeGroup.lagda and FreeGroupOfLargeLocallySmallSet.lagda). We work with ordinals as defined in the HoTT book for that purpose. https://homotopytypetheory.org/book/ Introduction ------------ Univalence is used three times (at least): 1. to know that the type of ordinals is a 0-type and hence all ordinals in a universe form an ordinal in the next universe, 2. to develop the Burali-Forti argument that no ordinal in the universe π€ is equivalent to the ordinal of ordinals in π€. 3. to resize down the values of the order relation of the ordinal of ordinals, to conclude that the ordinal of ordinals is large. There are also a number of uses of univalence via functional and propositional extensionality. Propositional resizing is not needed, thanks to (3). An ordinal in a universe π€ is a type X : π€ equipped with a relation _βΊ_ : X β X β π€ required to be 1. proposition-valued, 2. transitive, 3. extensional (any two points with same lower set are the same), 4. well founded (every element is accessible, or, equivalently, the principle of transfinite induction holds). The HoTT book additionally requires X to be a set, but this follows automatically from the above requirements for the order. We denote by Ordinal π€ the type of ordinals in a universe π€. The underlying type of an ordinal Ξ± is denoted by β¨ Ξ± β© and its order relation is denoted by _βΊβ¨ Ξ± β©_. Equivalence of ordinals, _ββ_ : Ordinal π€ β Ordinal π₯ β π€ β π₯, means that that there is an equivalence of the underlying types that preserves and reflects order. For ordinals Ξ± and Ξ² in the *same* universe, their identity type Ξ± οΌ Ξ² is canonically equivalent to the ordinal-equivalence type Ξ± ββ Ξ², by univalence. The lower set of a point x : β¨ Ξ± β© is written Ξ± β x, and is itself an ordinal under the inherited order. The ordinals in a universe π€ form an ordinal in the successor universe π€βΊ, denoted by OrdinalOfOrdinals π€ : Ordinal π€βΊ. Its order relation is denoted by _β²_ and is defined by Ξ± β² Ξ² = Ξ£ b κ β¨ Ξ² β© , Ξ± οΌ (Ξ² β b). This order has type _β²_ : Ordinal π€ β Ordinal π€ β π€βΊ, as required for it to make the type Ordinal π€ into an ordinal in the next universe. But, by univalence, it is pointwise equivalent to the "resized down" order _β²β»_ : Ordinal π€ β Ordinal π€ β π€ defined by Ξ± β²β» Ξ² = Ξ£ b κ β¨ Ξ² β© , Ξ± ββ (Ξ² β b). The existence of such a resized-down order is crucial for the corollaries of Burali-Forti, but not for Burali-Forti itself. Agda formulation of the Burali-Forti argument and its corollaries ----------------------------------------------------------------- \begin{code} {-# OPTIONS --safe --without-K #-} \end{code} As discussed above, we assume univalence as a hypothesis: \begin{code} open import UF.Univalence module Ordinals.BuraliForti (ua : Univalence) where open import UF.Subsingletons open import UF.Retracts open import UF.Equiv hiding (_β _) open import UF.UniverseEmbedding open import UF.UA-FunExt open import UF.FunExt open import UF.Size private fe : FunExt fe = Univalence-gives-FunExt ua fe' : Fun-Ext fe' = Univalence-gives-Fun-Ext ua pe : Prop-Ext pe = Univalence-gives-Prop-Ext ua open import MLTT.Spartan open import Ordinals.Arithmetic fe open import Ordinals.Equivalence open import Ordinals.Notions open import Ordinals.OrdinalOfOrdinals ua open import Ordinals.Type open import Ordinals.WellOrderTransport \end{code} Our version of Burali-Forti says that there is no ordinal in the universe π€ equivalent to the ordinal of all ordinals in the universe π€. \begin{code} Burali-Forti : Β¬ (Ξ£ Ξ± κ Ordinal π€ , Ξ± ββ OO π€) Burali-Forti {π€} (Ξ± , π) = Ξ³ where a : OO π€ ββ Ξ± a = ββ-sym Ξ± (OO π€) π b : Ξ± ββ (OO π€ β Ξ±) b = ordinals-in-OO-are-lowersets-of-OO Ξ± c : OO π€ ββ (OO π€ β Ξ±) c = ββ-trans (OO π€) Ξ± (OO π€ β Ξ±) a b d : OO π€ οΌ (OO π€ β Ξ±) d = eqtoidβ (ua (π€ βΊ)) fe' (OO π€) (OO π€ β Ξ±) c e : OO π€ β² OO π€ e = Ξ± , d Ξ³ : π Ξ³ = irreflexive _β²_ (OO π€) (β²-is-well-founded (OO π€)) e \end{code} Some corollaries follow. The main work is in the first one, which says that the type of all ordinals is large, happens in the function transfer-structure, which is developed in the module OrdinalsWellOrderTransport, where the difficulties are explained. As discussed above, the type OO π€ of ordinals in the universe π€ lives in the next universe π€βΊ. We say that a type in the universe π€βΊ is small if it is equivalent to some type in π€, and large otherwise. This is defined in the module UF.Size. Our first corollary of Burali-Forti is that the type of ordinals is large, as expected: \begin{code} the-type-of-ordinals-is-large : is-large (Ordinal π€) the-type-of-ordinals-is-large {π€} (X , π) = Ξ³ where Ξ΄ : Ξ£ s κ OrdinalStructure X , (X , s) ββ OO π€ Ξ΄ = transfer-structure fe {π€} {π€ βΊ} X (OO π€) π (_β²β»_ , β²-is-equivalent-to-β²β») Ξ³ : π Ξ³ = Burali-Forti ((X , prβ Ξ΄) , prβ Ξ΄) \end{code} It is crucial in the above proof, in order to be able to transfer the ordinal structure of the ordinal of ordinals to the type X along the hypothetical equivalence π : X β Ordinal π€, that the order _β²_ has a resized-down version _β²β»_ , as mentioned above. By a *universe embedding* we mean a map f : π€ β π₯ of universes such that f X β X. Of course, any two universe embeddings are equal, by univalence, so that there is at most one universe embedding. Moreover, universe embeddings are automatically type embeddings (meaning that they have subsingleton fibers), as shown in the module UF.UniverseEmbeddings. So the following says that the universe π€βΊ is strictly larger than the universe π€: \begin{code} successive-universe-embeddings-dont-have-sections : (f : π€ Μ β π€ βΊ Μ ) β is-universe-embedding f β Β¬ has-section f successive-universe-embeddings-dont-have-sections {π€} f i (s , Ξ·) = Ξ³ where X : π€ Μ X = s (Ordinal π€) p : f X οΌ Ordinal π€ p = Ξ· (Ordinal π€) e : X β Ordinal π€ e = transport (X β_) p (β-sym (i X)) Ξ³ : π Ξ³ = the-type-of-ordinals-is-large (X , e) successive-universe-embeddings-are-not-equivs : (f : π€ Μ β π€ βΊ Μ ) β is-universe-embedding f β Β¬ is-equiv f successive-universe-embeddings-are-not-equivs f i j = successive-universe-embeddings-dont-have-sections f i (equivs-have-sections f j) \end{code} In particular, we have the following, where Lift {π€} (π€ βΊ) : π€ β π€βΊ is the canonical embedding of the universe π€ into the successor universe π€βΊ, defined in the module UF.UniverseEmbedding: \begin{code} Lift-doesnt-have-section : Β¬ has-section (Lift {π€} (π€ βΊ)) Lift-doesnt-have-section {π€} h = successive-universe-embeddings-dont-have-sections (Lift (π€ βΊ)) (Ξ» X β Lift-is-universe-embedding (π€ βΊ) X) h Lift-is-not-equiv : Β¬ is-equiv (Lift {π€} (π€ βΊ)) Lift-is-not-equiv {π€} e = Lift-doesnt-have-section (equivs-have-sections (Lift (π€ βΊ)) e) \end{code} For a universe π€, we define the type hSet π€ : π€βΊ of sets in the universe π€ by hSet π€ = Ξ£ A κ π€ Μ , is-set A. By an *hSet embedding* we mean a map f : hSet π€ β hSet π₯ such that the underlying type of f π is equivalent to the underlying type of π, that is, prβ (f π) β prβ π, for all π : hSet π€. Any hSet-embedding is a type embedding, and any two hSet-embeddings are equal by univalence. The map Lift-hSet {π€} π₯ : hSet π€ β hSet (π€ β π₯) is the unique hSet embedding, given by Lift-hSet π₯ (X , i) = Lift π₯ X , Lift-is-set X i) where Lift-is-set X i : is-set (Lift π₯ X) is derived from the fact that Lift π₯ X β X using i : is-set X. \begin{code} open import UF.Sets Lift-hSet-doesnt-have-section : Β¬ has-section (Lift-hSet {π€} (π€ βΊ)) Lift-hSet-doesnt-have-section {π€} (s , Ξ·) = Ξ³ where π : hSet (π€ βΊ) π = (Ordinal π€ , (the-type-of-ordinals-is-a-set (ua π€) fe')) π : hSet π€ π = s π X : π€ Μ X = prβ π have : (Lift (π€ βΊ) X , _) οΌ π have = Ξ· π p : Lift (π€ βΊ) X οΌ Ordinal π€ p = ap prβ (Ξ· π) d : X β Lift (π€ βΊ) X d = β-sym (Lift-is-universe-embedding (π€ βΊ) X) e : X β Ordinal π€ e = transport (X β_) p d Ξ³ : π Ξ³ = the-type-of-ordinals-is-large (X , e) \end{code} Finally, the following says that the type of sets in π€βΊ is strictly larger than that of sets in π€, as we wanted to show: \begin{code} Lift-hSet-is-not-equiv : Β¬ is-equiv (Lift-hSet {π€} (π€ βΊ)) Lift-hSet-is-not-equiv {π€} e = Lift-hSet-doesnt-have-section (equivs-have-sections (Lift-hSet (π€ βΊ)) e) \end{code} This doesn't show that Β¬ (hSet π€ β hSet π€βΊ), as in principle there may be an equivalence that is not an hSet embedding in the sense defined above, which we leave as an open problem. Notice that excluded middle, which is not assumed but is consistent, implies that there is an automorphism of hSet π€ that swaps the empty set π and the one-point set π and leaves all the other sets unchanged, so that potentially there are automorphisms of hSet π€ that are not hSet embeddings. We don't know whether such a rogue equivalence hSet π€ β hSet π€βΊ exists, but this shouldn't be the case, of course. Similarly, the above also doesn't show that Β¬ (π€ β π€βΊ), but we know that this is the case by a different argument, which generalizes Thierry Coquand's "paradox of trees", developed in the module LawvereFPT. We also wish to know that e.g. the types of groups in the universes π€ and π€βΊ are not equivalent. Marc Bezem conjectures that Β¬ (Ξ£ A : π€ Μ , A β β₯ π€ Μ β₯β), that is, there is no type in π€ equivalent to the set truncation of π€. Added 18th January 2021. The following generalizes Lift-hSet-is-not-equiv. In the following, A generalizes is-set, and A-lifts generalizes the fact that the lift of a set is a set. \begin{code} module _ (A : {π€ : Universe} β π€ Μ β π€ Μ ) (A-lifts : β {π€} π₯ {X : π€ Μ } β A X β A (Lift π₯ X)) (type-of-ordinals-is-A : {π€ : Universe} β A (Ordinal π€)) where π : (π€ : Universe) β π€ βΊ Μ π π€ = Ξ£ X κ π€ Μ , A X Lift-π : β {π€} π₯ β π π€ β π (π€ β π₯) Lift-π {π€} π₯ (X , a) = Lift π₯ X , A-lifts π₯ a Lift-π-doesnt-have-section : Β¬ has-section (Lift-π {π€} (π€ βΊ)) Lift-π-doesnt-have-section {π€} (s , Ξ·) = Ξ³ where π : π (π€ βΊ) π = (Ordinal π€ , type-of-ordinals-is-A) π : π π€ π = s π X : π€ Μ X = prβ π have : (Lift (π€ βΊ) X , _) οΌ π have = Ξ· π p : Lift (π€ βΊ) X οΌ Ordinal π€ p = ap prβ (Ξ· π) d : X β Lift (π€ βΊ) X d = β-sym (Lift-is-universe-embedding (π€ βΊ) X) e : X β Ordinal π€ e = transport (X β_) p d Ξ³ : π Ξ³ = the-type-of-ordinals-is-large (X , e) Lift-π-is-not-equiv : Β¬ is-equiv (Lift-π {π€} (π€ βΊ)) Lift-π-is-not-equiv {π€} e = Lift-π-doesnt-have-section (equivs-have-sections (Lift-π (π€ βΊ)) e) \end{code} Examples of the above situation include hSets, pointed types, β-magmas, magmas and monoids: \begin{code} module examples where \end{code} hSet again: \begin{code} Lift-hSet-is-not-equiv-bis : Β¬ is-equiv (Lift-hSet {π€} (π€ βΊ)) Lift-hSet-is-not-equiv-bis {π€} = Lift-π-is-not-equiv is-set (Ξ» π₯ {X} β Lift-is-set π₯ X) (the-type-of-ordinals-is-a-set (ua _) fe') \end{code} Pointed types: \begin{code} PointedType : (π€ : Universe) β π€ βΊ Μ PointedType π€ = Ξ£ X κ π€ Μ , X Lift-PointedType : β {π€} π₯ β PointedType π€ β PointedType (π€ β π₯) Lift-PointedType {π€} π₯ (X , x) = Lift π₯ X , lift π₯ x \end{code} In the following, A is the identity function, and to prove that the ordinal or ordinals is pointed, we choose the ordinal zero: \begin{code} Lift-PointedType-is-not-equiv : Β¬ is-equiv (Lift-PointedType {π€} (π€ βΊ)) Lift-PointedType-is-not-equiv {π€} = Lift-π-is-not-equiv id lift πβ \end{code} β-magmas. In the following, A is magma structure: \begin{code} β-Magma-structure : π€ Μ β π€ Μ β-Magma-structure X = X β X β X β-Magma : (π€ : Universe) β π€ βΊ Μ β-Magma π€ = Ξ£ X κ π€ Μ , β-Magma-structure X lift-β-Magma-structure : β π₯ {X : π€ Μ } β β-Magma-structure X β β-Magma-structure (Lift π₯ X) lift-β-Magma-structure π₯ _Β·_ x y = lift π₯ (lower x Β· lower y) Lift-β-Magma : β {π€} π₯ β β-Magma π€ β β-Magma (π€ β π₯) Lift-β-Magma {π€} π₯ (X , _Β·_) = Lift π₯ X , lift-β-Magma-structure π₯ _Β·_ Lift-β-Magma-is-not-equiv : Β¬ is-equiv (Lift-β-Magma {π€} (π€ βΊ)) Lift-β-Magma-is-not-equiv {π€} = Lift-π-is-not-equiv β-Magma-structure lift-β-Magma-structure _+β_ \end{code} Magmas: \begin{code} Magma-structure : π€ Μ β π€ Μ Magma-structure X = is-set X Γ (X β X β X) Magma : (π€ : Universe) β π€ βΊ Μ Magma π€ = Ξ£ X κ π€ Μ , Magma-structure X lift-Magma-structure : β π₯ {X : π€ Μ } β Magma-structure X β Magma-structure (Lift π₯ X) lift-Magma-structure π₯ {X} (X-is-set , _Β·_) = Lift-is-set π₯ X X-is-set , Ξ» x y β lift π₯ (lower x Β· lower y) Lift-Magma : β {π€} π₯ β Magma π€ β Magma (π€ β π₯) Lift-Magma {π€} π₯ (X , _Β·_) = Lift π₯ X , lift-Magma-structure π₯ _Β·_ Lift-Magma-structure-is-not-equiv : Β¬ is-equiv (Lift-Magma {π€} (π€ βΊ)) Lift-Magma-structure-is-not-equiv {π€} = Lift-π-is-not-equiv Magma-structure lift-Magma-structure (the-type-of-ordinals-is-a-set (ua _) fe' , _+β_) \end{code} Monoids: \begin{code} open import Ordinals.AdditionProperties ua monoid-structure : π€ Μ β π€ Μ monoid-structure X = (X β X β X) Γ X monoid-axioms : (X : π€ Μ ) β monoid-structure X β π€ Μ monoid-axioms X (_Β·_ , e) = is-set X Γ left-neutral e _Β·_ Γ right-neutral e _Β·_ Γ associative _Β·_ \end{code} We will consider A = Monoid-structure (with capital M), and π = Monoid. \begin{code} Monoid-structure : π€ Μ β π€ Μ Monoid-structure X = Ξ£ s κ monoid-structure X , monoid-axioms X s Monoid : (π€ : Universe) β π€ βΊ Μ Monoid π€ = Ξ£ X κ π€ Μ , Monoid-structure X lift-Monoid-structure : β π₯ {X : π€ Μ } β Monoid-structure X β Monoid-structure (Lift π₯ X) lift-Monoid-structure π₯ {X} ((_Β·_ , e) , X-is-set , l , r , a) = Ξ³ where X' = Lift π₯ X _Β·'_ : X' β X' β X' x' Β·' y' = lift π₯ (lower x' Β· lower y') e' : X' e' = lift π₯ e l' : left-neutral e' _Β·'_ l' x' = ap (lift π₯) (l (lower x')) r' : right-neutral e' _Β·'_ r' x' = ap (lift π₯) (r (lower x')) a' : associative _Β·'_ a' x' y' z' = ap (lift π₯) (a (lower x') (lower y') (lower z')) Ξ³ : Monoid-structure (Lift π₯ X) Ξ³ = (_Β·'_ , e') , Lift-is-set π₯ X X-is-set , l' , r' , a' Lift-Monoid : β {π€} π₯ β Monoid π€ β Monoid (π€ β π₯) Lift-Monoid {π€} π₯ (X , _Β·_) = Lift π₯ X , lift-Monoid-structure π₯ _Β·_ type-of-ordinals-has-Monoid-structure : {π€ : Universe} β Monoid-structure (Ordinal π€) type-of-ordinals-has-Monoid-structure {π€} = (_+β_ , πβ) , (the-type-of-ordinals-is-a-set (ua π€) fe'), πβ-left-neutral , πβ-right-neutral , +β-assoc Lift-Monoid-structure-is-not-equiv : Β¬ is-equiv (Lift-Monoid {π€} (π€ βΊ)) Lift-Monoid-structure-is-not-equiv {π€} = Lift-π-is-not-equiv Monoid-structure lift-Monoid-structure type-of-ordinals-has-Monoid-structure \end{code} Added 18 Feb 2021. The same is true for groups, using the following fact and a fact proved in the module FreeGroupOfLargeLocallySmallSet. We need to assume that propositional truncations exist. \begin{code} open import Groups.Type open import Groups.Large open import UF.PropTrunc module _ (pt : propositional-truncations-exist) where there-is-a-large-group : Ξ£ F κ Group (π€ βΊ) , ((G : Group π€) β Β¬ (G β F)) there-is-a-large-group {π€} = large-group-with-no-small-copy fe' pe pt (Ordinal π€ , (the-type-of-ordinals-is-a-set (ua π€) fe') , the-type-of-ordinals-is-large , the-type-of-ordinals-is-locally-small (ua π€) fe') \end{code} And from this it of course follows that the embedding of the type of groups of one universe into that of its successor universe is not an equivalence: \begin{code} Lift-Group-structure-is-not-equiv : Β¬ is-equiv (Lift-Group {π€} (π€ βΊ)) Lift-Group-structure-is-not-equiv {π€} e = Ξ³ there-is-a-large-group where Lower-Group : Group (π€ βΊ) β Group π€ Lower-Group = inverse (Lift-Group (π€ βΊ)) e Ξ³ : (Ξ£ F κ Group (π€ βΊ) , ((G : Group π€) β Β¬ (G β F))) β π Ξ³ (F , Ο) = Ο G i where G : Group π€ G = Lower-Group F F' : Group (π€ βΊ) F' = Lift-Group (π€ βΊ) G p : F' οΌ F p = inverses-are-sections (Lift-Group (π€ βΊ)) e F j : G β F' j = β -sym F' G (Lifted-Group-is-isomorphic G) i : G β F i = transport (G β _) p j \end{code}