UF.UniverseEmbedding
Martin Escardo, 29th January 2019
If univalence holds, then any universe is embedded into any larger
universe.
We do this without cumulativity, because it is not available in the
Martin-LoΜf type theory that we are working with in Agda.
Moreover, any map f : π€ Μ β π€ β π₯ Μ with f X β X for all X : π€ Μ is an
embedding, e.g. the map X β¦ X + π {π₯}.
(Here the notion of a map being an embedding is stronger than that of
being left-cancellable, and it means that the fibers of the map are
propositions, or subsingletons, as in HoTT/UF.)
{-# OPTIONS --safe --without-K #-}
module UF.UniverseEmbedding where
open import MLTT.Spartan
open import UF.Embeddings
open import UF.Equiv
open import UF.Equiv-FunExt
open import UF.EquivalenceExamples
open import UF.FunExt
open import UF.Lower-FunExt
open import UF.PairFun
open import UF.Sets
open import UF.Sets-Properties
open import UF.Subsingletons
open import UF.UA-FunExt
open import UF.Univalence
is-universe-embedding : (π€ Μ β π₯ Μ ) β (π€ βΊ) β π₯ Μ
is-universe-embedding f = β X β f X β X
Of course:
at-most-one-universe-embedding : Univalence
β (f g : π€ Μ β π₯ Μ )
β is-universe-embedding f
β is-universe-embedding g
β f οΌ g
at-most-one-universe-embedding {π€} {π₯} ua f g i j = p
where
h : β X β f X β g X
h X = i X β β-sym (j X)
H : f βΌ g
H X = eqtoid (ua π₯) (f X) (g X) (h X)
p : f οΌ g
p = dfunext (Univalence-gives-Fun-Ext ua) H
universe-embeddings-are-embeddings : Univalence
β (π€ π₯ : Universe)
(f : π€ Μ β π₯ Μ )
β is-universe-embedding f
β is-embedding f
universe-embeddings-are-embeddings ua π€ π₯ f i = Ξ΄
where
Ξ³ : (X X' : π€ Μ ) β (f X οΌ f X') β (X οΌ X')
Ξ³ X X' = (f X οΌ f X') ββ¨ a β©
(f X β f X') ββ¨ b β©
(X β X') ββ¨ c β©
(X οΌ X') β
where
a = univalence-β (ua π₯) (f X) (f X')
b = β-cong (Univalence-gives-FunExt ua) (i X) (i X')
c = β-sym (univalence-β (ua π€) X X')
Ξ΄ : is-embedding f
Ξ΄ = embedding-criterion' f Ξ³
For instance, the following function satisfies this condition and
hence is an embedding:
Lift' : (π₯ : Universe) β π€ Μ β π€ β π₯ Μ
Lift' π₯ X = X + π {π₯}
lift' : (π₯ : Universe) {X : π€ Μ } β X β Lift' π₯ X
lift' π₯ = inl
lower' : {π₯ : Universe} {X : π€ Μ } β Lift' π₯ X β X
lower' (inl x) = x
lower' (inr x) = π-elim x
Lift'-β : (π₯ : Universe) (X : π€ Μ ) β Lift' π₯ X β X
Lift'-β π₯ X = π-rneutral'
Lift'-is-embedding : Univalence β is-embedding (Lift' {π€} π₯)
Lift'-is-embedding {π€} {π₯} ua =
universe-embeddings-are-embeddings ua π€ (π€ β π₯) (Lift' π₯) (Lift'-β π₯)
The following embedding has better definitional properties:
Lift : (π₯ : Universe) β π€ Μ β π€ β π₯ Μ
Lift π₯ X = X Γ π {π₯}
lift : (π₯ : Universe) {X : π€ Μ } β X β Lift π₯ X
lift π₯ x = (x , β)
lower : {X : π€ Μ } β Lift π₯ X β X
lower (x , β) = x
Ξ·-Lift : (π₯ : Universe) {X : π€ Μ } (π : Lift π₯ X)
β lift π₯ (lower π) οΌ π
Ξ·-Lift π₯ π = refl
Ξ΅-Lift : (π₯ : Universe) {X : π€ Μ } (x : X)
β lower (lift π₯ x) οΌ x
Ξ΅-Lift π₯ x = refl
lower-is-equiv : {X : π€ Μ } β is-equiv (lower {π€} {π₯} {X})
lower-is-equiv {π€} {π₯} = (lift π₯ , Ξ΅-Lift π₯) , (lift π₯ , Ξ·-Lift π₯)
lift-is-equiv : {X : π€ Μ } β is-equiv (lift π₯ {X})
lift-is-equiv {π€} {π₯} = (lower , Ξ·-Lift π₯) , lower , Ξ΅-Lift π₯
Lift-β : (π₯ : Universe) (X : π€ Μ ) β Lift π₯ X β X
Lift-β π₯ X = lower , lower-is-equiv
β-Lift : (π₯ : Universe) (X : π€ Μ ) β X β Lift π₯ X
β-Lift π₯ X = lift π₯ , lift-is-equiv
Lift-is-universe-embedding : (π₯ : Universe) β is-universe-embedding (Lift {π€} π₯)
Lift-is-universe-embedding = Lift-β
Lift-is-embedding : Univalence β is-embedding (Lift {π€} π₯)
Lift-is-embedding {π€} {π₯} ua = universe-embeddings-are-embeddings ua π€ (π€ β π₯)
(Lift π₯) (Lift-is-universe-embedding π₯)
Added 7th Feb 2019. Assuming propositional and functional
extensionality instead of univalence, then lift-fibers of propositions
are propositions. (For use in the module UF.Resize.)
prop-fiber-criterion : PropExt
β FunExt
β (π€ π₯ : Universe)
β (f : π€ Μ β π₯ Μ )
β is-universe-embedding f
β (Q : π₯ Μ )
β is-prop Q
β is-prop (fiber f Q)
prop-fiber-criterion pe fe π€ π₯ f i Q j (P , r) = d (P , r)
where
_ : f P οΌ Q
_ = r
k : is-prop (f P)
k = transportβ»ΒΉ is-prop r j
l : is-prop P
l = equiv-to-prop (β-sym (i P)) k
a : (X : π€ Μ ) β (f X οΌ f P) β (X οΌ P)
a X = (f X οΌ f P) ββ¨ prop-univalent-β (pe π₯) (fe π₯ π₯) (f X) (f P) k β©
(f X β f P) ββ¨ β-cong fe (i X) (i P) β©
(X β P) ββ¨ β-sym (prop-univalent-β (pe π€) (fe π€ π€) X P l) β©
(X οΌ P) β
b : (Ξ£ X κ π€ Μ , f X οΌ f P) β (Ξ£ X κ π€ Μ , X οΌ P)
b = Ξ£-cong a
c : is-prop (Ξ£ X κ π€ Μ , f X οΌ f P)
c = equiv-to-prop b (singleton-types'-are-props P)
d : is-prop (Ξ£ X κ π€ Μ , f X οΌ Q)
d = transport (Ξ» - β is-prop (Ξ£ X κ π€ Μ , f X οΌ -)) r c
prop-fiber-Lift : PropExt
β FunExt
β (Q : π€ β π₯ Μ )
β is-prop Q
β is-prop (fiber (Lift π₯) Q)
prop-fiber-Lift {π€} {π₯} pe fe = prop-fiber-criterion pe fe π€ (π€ β π₯)
(Lift {π€} π₯)
(Lift-is-universe-embedding π₯)
Taken from the MGS'2019 lecture notes (22 December 2020):
global-β-ap' : Univalence
β (F : Universe β Universe)
(A : {π€ : Universe} β π€ Μ β (F π€) Μ )
β ({π€ π₯ : Universe} (X : π€ Μ ) β A X β A (Lift π₯ X))
β (X : π€ Μ )
(Y : π₯ Μ )
β X β Y
β A X β A Y
global-β-ap' {π€} {π₯} ua F A Ο X Y e =
A X ββ¨ Ο X β©
A (Lift π₯ X) ββ¨ idtoeq (A (Lift π₯ X)) (A (Lift π€ Y)) q β©
A (Lift π€ Y) ββ¨ β-sym (Ο Y) β©
A Y β
where
d : Lift π₯ X β Lift π€ Y
d = Lift π₯ X ββ¨ Lift-is-universe-embedding π₯ X β©
X ββ¨ e β©
Y ββ¨ β-sym (Lift-is-universe-embedding π€ Y) β©
Lift π€ Y β
p : Lift π₯ X οΌ Lift π€ Y
p = eqtoid (ua (π€ β π₯)) (Lift π₯ X) (Lift π€ Y) d
q : A (Lift π₯ X) οΌ A (Lift π€ Y)
q = ap A p
global-property-of-types : π€Ο
global-property-of-types = {π€ : Universe} β π€ Μ β π€ Μ
global-property-of-typesβΊ : π€Ο
global-property-of-typesβΊ = {π€ : Universe} β π€ Μ β π€ βΊ Μ
cumulative : global-property-of-types β π€Ο
cumulative A = {π€ π₯ : Universe} (X : π€ Μ ) β A X β A (Lift π₯ X)
cumulativeβΊ : global-property-of-typesβΊ β π€Ο
cumulativeβΊ A = {π€ π₯ : Universe} (X : π€ Μ ) β A X β A (Lift π₯ X)
global-β-ap : Univalence
β (A : global-property-of-types)
β cumulative A
β (X : π€ Μ ) (Y : π₯ Μ ) β X β Y β A X β A Y
global-β-ap ua = global-β-ap' ua (Ξ» π€ β π€)
global-β-apβΊ : Univalence
β (A : global-property-of-typesβΊ)
β cumulativeβΊ A
β (X : π€ Μ ) (Y : π₯ Μ ) β X β Y β A X β A Y
global-β-apβΊ ua = global-β-ap' ua (_βΊ)
Cumulativity in the above sense doesn't always hold. See the module
LawvereFPT for a counter-example.
Added 24th December 2020. Lifting of hSets.
Lift-is-set : β {π€} π₯ (X : π€ Μ ) β is-set X β is-set (Lift π₯ X)
Lift-is-set π₯ X X-is-set = equiv-to-set
(Lift-is-universe-embedding π₯ X)
X-is-set
Lift-hSet : (π₯ : Universe) β hSet π€ β hSet (π€ β π₯)
Lift-hSet π₯ = pair-fun (Lift π₯) (Lift-is-set π₯)
Lift-is-set-is-embedding : funext (π€ β π₯) (π€ β π₯)
β (X : π€ Μ )
β is-embedding (Lift-is-set π₯ X)
Lift-is-set-is-embedding {π€} {π₯} fe X =
maps-of-props-are-embeddings
(Lift-is-set π₯ X)
(being-set-is-prop (lower-funext π₯ π₯ fe))
(being-set-is-prop fe)
Lift-hSet-is-embedding : Univalence β is-embedding (Lift-hSet {π€} π₯)
Lift-hSet-is-embedding {π€} {π₯} ua =
pair-fun-is-embedding
(Lift π₯)
(Lift-is-set π₯)
(Lift-is-embedding ua)
(Lift-is-set-is-embedding
(Univalence-gives-FunExt ua (π€ β π₯) (π€ β π₯)))
is-hSet-embedding : (hSet π€ β hSet π₯) β (π€ βΊ) β π₯ Μ
is-hSet-embedding {π€} {π₯} f = (π§ : hSet π€) β underlying-set (f π§)
β underlying-set π§
at-most-one-hSet-embedding : Univalence
β (f g : hSet π€ β hSet π₯)
β is-hSet-embedding f
β is-hSet-embedding g
β f οΌ g
at-most-one-hSet-embedding {π€} {π₯} ua f g i j = p
where
h : β π§ β underlying-set (f π§) β underlying-set (g π§)
h π§ = i π§ β β-sym (j π§)
H : f βΌ g
H π§ = to-subtype-οΌ
(Ξ» π¨ β being-set-is-prop (univalence-gives-funext (ua π₯)))
(eqtoid (ua π₯) (underlying-set (f π§)) (underlying-set (g π§)) (h π§))
p : f οΌ g
p = dfunext (Univalence-gives-FunExt ua (π€ βΊ) (π₯ βΊ)) H
the-only-hSet-embedding-is-Lift-hSet : Univalence
β (f : hSet π€ β hSet (π€ β π₯))
β is-hSet-embedding f
β f οΌ Lift-hSet π₯
the-only-hSet-embedding-is-Lift-hSet {π€} {π₯} ua f i =
at-most-one-hSet-embedding ua f
(Lift-hSet π₯) i
(Ξ» π§ β Lift-is-universe-embedding π₯ (underlying-set π§))
hSet-embeddings-are-embeddings : Univalence
β (f : hSet π€ β hSet (π€ β π₯))
β is-hSet-embedding f
β is-embedding f
hSet-embeddings-are-embeddings {π€} {π₯} ua f i =
transport is-embedding
((the-only-hSet-embedding-is-Lift-hSet ua f i)β»ΒΉ)
(Lift-hSet-is-embedding {π€} {π₯} ua)