Ordinals.BuraliForti
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 predecessors 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
-----------------------------------------------------------------
{-# OPTIONS --safe --without-K #-}
As discussed above, we assume univalence as a hypothesis:
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
Our version of Burali-Forti says that there is no ordinal in the
universe ๐ค equivalent to the ordinal of all ordinals in the universe ๐ค.
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
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:
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โ ฮด)
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 ๐ค:
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)
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:
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)
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.
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)
Finally, the following says that the type of sets in ๐คโบ is strictly
larger than that of sets in ๐ค, as we wanted to show:
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)
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.
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)
Examples of the above situation include hSets, pointed types,
โ-magmas, magmas and monoids:
module examples where
hSet again:
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')
Pointed types:
PointedType : (๐ค : Universe) โ ๐ค โบ ฬ
PointedType ๐ค = ฮฃ X ๊ ๐ค ฬ , X
Lift-PointedType : โ {๐ค} ๐ฅ โ PointedType ๐ค โ PointedType (๐ค โ ๐ฅ)
Lift-PointedType {๐ค} ๐ฅ (X , x) = Lift ๐ฅ X , lift ๐ฅ x
In the following, A is the identity function, and to prove that the
ordinal or ordinals is pointed, we choose the ordinal zero:
Lift-PointedType-is-not-equiv : ยฌ is-equiv (Lift-PointedType {๐ค} (๐ค โบ))
Lift-PointedType-is-not-equiv {๐ค} = Lift-๐-is-not-equiv id lift ๐โ
โ-magmas.
In the following, A is magma structure:
โ-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
_+โ_
Magmas:
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' , _+โ_)
Monoids:
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 _ยท_
We will consider A = Monoid-structure (with capital M), and
๐ = Monoid.
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
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.
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')
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:
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