Marc Bezem, Thierry Coquand, Peter Dybjer, Martin Escardo
18th March 2025.
Discussion about whether a certain transport can be performed more
easily using univalence than "by hand". In particular, does
cumulativity help?
This discussion is inconclusive for the moment.
\begin{code}
{-# OPTIONS --safe --without-K #-}
module gist.transport-discussion where
open import MLTT.Spartan
open import UF.Equiv
open import UF.FunExt
open import UF.Subsingletons
open import UF.Univalence
open import UF.UniverseEmbedding
open import Ordinals.Type
open import Ordinals.Underlying
open import Ordinals.Equivalence
\end{code}
The following transport is performed by hand in the following imported
module.
\begin{code}
module _ (fe : FunExt) where
open import Ordinals.WellOrderTransport fe
_ : (X : π€ Μ ) (Ξ± : Ordinal π₯)
β X β β¨ Ξ± β©
β resizable-order Ξ± π€
β Ξ£ s κ OrdinalStructure X , (X , s) ββ Ξ±
_ = transfer-structure
\end{code}
Can it be done, instead, using univalence in the absence of
cumulativity? If not, would cumulativity help?
We consider a simplified version of the problem to reduce labour. We
could even remove the requirement that there is at most one edge
between any two vertices, but this is useful to prove a no-go theorem
below. We could also require that the type V of vertices is a set, but
we try to keep things as simple as possible.
\begin{code}
reflexive-structure : (π¦ : Universe) β π£ Μ β π¦ βΊ β π£ Μ
reflexive-structure π¦ V = Ξ£ _β_ κ (V β V β π¦ Μ)
, ((v : V) β v β v)
Γ ((v v' : V) β is-prop (v β v'))
Reflexive-Graph : (π¦ π£ : Universe) β (π¦ β π£)βΊ Μ
Reflexive-Graph π¦ π£ = Ξ£ V κ π£ Μ , reflexive-structure π¦ V
\end{code}
We now formulate the notion of reflexive graph equivalence, for the
above notion of reflexive graph. Using SIP, and assuming univalence,
we can show that for graphs in the same universes, identity is
canonically equivalent to this notion of reflexive graph
equivalence. But we won't bother to prove this, at least not for the
moment.
\begin{code}
_βΚ³α΅_ : {π¦ π£ π¦' π£' : Universe}
β Reflexive-Graph π¦ π£ β Reflexive-Graph π¦' π£' β π¦ β π£ β π¦' β π£' Μ
(V , _β_ , _) βΚ³α΅ (V' , _β'_ , _)
= Ξ£ f κ (V β V'), ((vβ vβ : V') β (β f ββ»ΒΉ vβ β β f ββ»ΒΉ vβ) β (vβ β' vβ))
\end{code}
So here is our experimental discussion.
\begin{code}
module discussion
(π€ π₯ : Universe)
(π@(A , _β_ , β-refl , β-is-prop-valued) : Reflexive-Graph π₯ π₯)
(_β'_ : A β A β π€ Μ )
(resizing-assumption : (a b : A) β (a β b) β (a β' b))
(X : π€ Μ )
(f : X β A)
(ua : is-univalent (π€ β π₯))
(sorry : {π¦ : Universe} {S : π¦ Μ} β S)
where
\end{code}
We don't have cumulativity, so we lift explicitly.
\begin{code}
XβΊ AβΊ : π€ β π₯ Μ
XβΊ = Lift (π€ β π₯) X
AβΊ = Lift (π€ β π₯) A
II : XβΊ β AβΊ
II = XβΊ ββ¨ Lift-β (π€ β π₯) X β©
X ββ¨ f β©
A ββ¨ β-Lift (π€ β π₯) A β©
AβΊ β
\end{code}
The following apologies can be filled by transporting by hand as in
the function `transfer-structure` mentioned above.
Presumably they don't need proof in a universe-cumulative system,
where XβΊ and AβΊ are simply X and A, so that we have false apologies.
\begin{code}
_ββΊ_ : AβΊ β AβΊ β π₯ Μ
a ββΊ b = sorry
ββΊ-refl : (a : AβΊ) β a ββΊ a
ββΊ-refl = sorry
ββΊ-is-prop-valued : (a b : AβΊ) β is-prop (a ββΊ b)
ββΊ-is-prop-valued = sorry
rsβ : reflexive-structure π₯ AβΊ
rsβ = _ββΊ_ , ββΊ-refl , ββΊ-is-prop-valued
I : XβΊ οΌ AβΊ
I = eqtoid ua (XβΊ) (AβΊ) II
rsβ : reflexive-structure π₯ XβΊ
rsβ = transportβ»ΒΉ (reflexive-structure π₯) I rsβ
\end{code}
But there is limit to the number of false apologies one can make.
The following needs more than cumulativity. And this is why we have
the above assumptions `_β'_` and `resizing-assumption` (which
correspond to the `resizable-order` condition in `transfer-structure`).
Without them, we get a no-go theorem (see `resizing-taboo` below).
So the following are genuine apologies: They can't just hold on the
nose by cumulativity.
\begin{code}
_ββ_ : X β X β π€ Μ
_ββ_ = sorry
ββ-refl : (x : X) β x ββ x
ββ-refl = sorry
ββ-is-prop-valued : (x y : X) β is-prop (x ββ y)
ββ-is-prop-valued = sorry
π§ : Reflexive-Graph π€ π€
π§ = X , _ββ_ , ββ-refl , ββ-is-prop-valued
transfer-structure-analogue : π§ βΚ³α΅ π
transfer-structure-analogue = sorry
\end{code}
Of course all the apologies can be removed, even without cumulativity,
by following the strategy of `transfer-structure` by transporting
structure and properties by hand, without univalence.
The question here is whether univalence, perhaps with the help of
cumulativity, can avoid transport by hand.
We now formulate and prove the no-go theorem. Because it holds in the
absence of cumulativity, it also holds in its presence.
The following type is a distilled version of the type of the function
`transfer-structure`, but without the `resizable-order` assumption.
\begin{code}
Transport-Assumption : π€Ο
Transport-Assumption =
{π€ π₯ : Universe} (X : π€ Μ ) (A : π₯ Μ )
(f : X β A)
(rsβ : reflexive-structure π₯ A)
β Ξ£ rsβ κ reflexive-structure π€ X , (X , rsβ) βΚ³α΅ (A , rsβ)
open import UF.Size
open import UF.EquivalenceExamples
resizing-taboo : Transport-Assumption β Propositional-Resizing
resizing-taboo t {π₯} {π€} = Ξ³
where
module _ (P : π₯ Μ) (P-is-prop : is-prop P) where
X : π€ Μ
X = π {π€} + π {π€}
A : π₯ Μ
A = π {π₯} + π {π₯}
I : X β A
I = +-cong one-π-only one-π-only
_β_ : A β A β π₯ Μ
inl β β inl β = π
inl β β inr β = π
inr β β inl β = P
inr β β inr β = π
β-refl : (a : A) β a β a
β-refl (inl β) = β
β-refl (inr β) = β
β-is-prop-valued : (a b : A) β is-prop (a β b)
β-is-prop-valued (inl β) (inl β) = π-is-prop
β-is-prop-valued (inl β) (inr β) = π-is-prop
β-is-prop-valued (inr β) (inl β) = P-is-prop
β-is-prop-valued (inr β) (inr β) = π-is-prop
rβ : reflexive-structure π₯ A
rβ = (_β_ , β-refl , β-is-prop-valued)
II : Ξ£ rβ κ reflexive-structure π€ X , (X , rβ) βΚ³α΅ (A , rβ)
II = t X A I rβ
III : type-of II β P is π€ small
III ((_ββ_ , ββ-refl , ββ-is-prop-valued) , f , g) =
Pβ , IV
where
Pβ : π€ Μ
Pβ = β f ββ»ΒΉ (inr β) ββ β f ββ»ΒΉ (inl β)
Pβ-is-prop : is-prop Pβ
Pβ-is-prop = ββ-is-prop-valued (β f ββ»ΒΉ (inr β)) (β f ββ»ΒΉ (inl β))
IV : Pβ β P
IV = g (inr β) (inl β)
Ξ³ : P is π€ small
Ξ³ = III II
\end{code}
NB. If we wanted to prove the converse, we would still have to chase
equivalences by hand, as far as we know at the time of writing, unless
we have propositional resizing on-the-nose like UniMath. But notice
that propositional resizing on-the-nose is not unknown to be
consistent.
In other words, there are propositional resizing *axioms* (which are
known to be consistent, and in the above no-go theorem we have a
propositional resizing axiom) and there are propositional resizing
*rules* for the type theory (which are not known to be consistent).
If we hadn't assumed that the edge relation of a reflexive graph is a
proposition, we would instead be able to show that every type in any
universe is equivalent to any type in any universe we wish, which is
of course false, as "there are more types in larger universes".