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}