Martin Escardo, 23rd June 2021
The type of finite types is universe invariant.
After a discussion with Ulrik Buchholtz and Peter Lumsdaine.
There is also a proof in Egbert Rijke's book (to appear).
\begin{code}
{-# OPTIONS --safe --without-K #-}
open import Fin.Bishop
open import Fin.Type
open import MLTT.Spartan
open import UF.Embeddings
open import UF.Equiv
open import UF.EquivalenceExamples
open import UF.FunExt
open import UF.PairFun
open import UF.PropTrunc
open import UF.Subsingletons
open import UF.UA-FunExt
open import UF.Univalence
open import UF.UniverseEmbedding
module Fin.UniverseInvariance
(pt : propositional-truncations-exist)
(ua : Univalence)
where
fe : Fun-Ext
fe = Univalence-gives-Fun-Ext ua
open PropositionalTruncation pt
open import UF.ImageAndSurjection pt
open finiteness pt
module constructions (Xβ : π€β Μ ) where
A : (π€ : Universe) β π€ βΊ Μ
A π€ = Ξ£ X κ π€ Μ , β₯ X β Xβ β₯
\end{code}
Recall that Lift : (π₯ : Universe) β π€ Μ β π€ β π₯ Μ is the unique map with
Lift π₯ X β X, and that Lift π₯ is an embedding of the universe π€ into
the universe π€ β π₯, meaning that it has subsingleton fibers. This
relies on univalence, which we are assuming in this file.
\begin{code}
Ξ΄ : (π€ : Universe) β (X : π€β Μ ) β β₯ X β Xβ β₯ β β₯ Lift π€ X β Xβ β₯
Ξ΄ π€ X = β₯β₯-functor (Ξ» (e : X β Xβ) β Lift-β π€ X β e)
Ξ΄-is-embedding : (X : π€β Μ ) β is-embedding (Ξ΄ π€ X)
Ξ΄-is-embedding {π€} X = maps-of-props-are-embeddings (Ξ΄ π€ X) β₯β₯-is-prop β₯β₯-is-prop
Ο : (π€ : Universe) β A π€β β A π€
Ο π€ (X , s) = Lift π€ X , Ξ΄ π€ X s
Ο-is-embedding : is-embedding (Ο π€)
Ο-is-embedding {π€} = pair-fun-is-embedding
(Lift π€) (Ξ΄ π€)
(Lift-is-embedding ua) Ξ΄-is-embedding
Ο-is-surjection : is-surjection (Ο π€)
Ο-is-surjection {π€} (Y , t) = g
where
f : Y β Xβ β Ξ£ (X , s) κ A π€β , (Lift π€ X , Ξ΄ π€ X s) οΌ (Y , t)
f e = (Xβ , β£ β-refl Xβ β£) , q
where
d = Lift π€ Xβ ββ¨ Lift-β π€ Xβ β©
Xβ ββ¨ β-sym e β©
Y β
p : Lift π€ Xβ οΌ Y
p = eqtoid (ua π€) _ _ d
q : (Lift π€ Xβ , Ξ΄ π€ Xβ β£ β-refl Xβ β£) οΌ (Y , t)
q = to-subtype-οΌ (Ξ» X β β₯β₯-is-prop) p
g : β (X , s) κ A π€β , (Lift π€ X , Ξ΄ π€ X s) οΌ (Y , t)
g = β₯β₯-functor f t
Ο-is-equiv : is-equiv (Ο π€)
Ο-is-equiv {π€} = surjective-embeddings-are-equivs (Ο π€) Ο-is-embedding Ο-is-surjection
lemmaβ : (π€ : Universe) β A π€β β A π€
lemmaβ π€ = Ο π€ , Ο-is-equiv
lemma : A π€ β A π₯
lemma {π€} {π₯} = β-sym (lemmaβ π€) β lemmaβ π₯
Finite : (π€ : Universe) β π€ βΊ Μ
Finite π€ = Ξ£ X κ π€ Μ , is-finite X
Finite-is-universe-independent : Finite π€ β Finite π₯
Finite-is-universe-independent {π€} {π₯} =
(Ξ£ X κ π€ Μ , Ξ£ n κ β , β₯ X β Fin n β₯) ββ¨ Ξ£-flip β©
(Ξ£ n κ β , Ξ£ X κ π€ Μ , β₯ X β Fin n β₯) ββ¨ Ξ£-cong (Ξ» n β constructions.lemma (Fin n)) β©
(Ξ£ n κ β , Ξ£ Y κ π₯ Μ , β₯ Y β Fin n β₯) ββ¨ Ξ£-flip β©
(Ξ£ Y κ π₯ Μ , Ξ£ n κ β , β₯ Y β Fin n β₯) β
finite-types-are-lifts : (X : π€ Μ ) β is-finite X β Ξ£ Xβ κ π€β Μ , Lift π€ Xβ οΌ X
finite-types-are-lifts {π€} X (n , s) = Xβ , p
where
open constructions (Fin n)
Xβ : π€β Μ
Xβ = prβ (inverse (Ο π€) Ο-is-equiv (X , s))
p : Lift π€ Xβ οΌ X
p = ap prβ (inverses-are-sections (Ο π€) Ο-is-equiv (X , s))
\end{code}