Martin Escardo 6th December 2018.
\begin{code}
{-# OPTIONS --safe --without-K #-}
open import MLTT.Spartan
open import UF.Univalence
open import UF.FunExt
module Slice.Embedding
(𝓤 𝓣 : Universe)
(ua : is-univalent 𝓣)
(fe : funext 𝓣 𝓤)
where
open import UF.Subsingletons
open import UF.Embeddings
open import UF.Equiv
open import UF.EquivalenceExamples
open import UF.UA-FunExt
open import Slice.Construction 𝓣
open import Slice.IdentityViaSIP 𝓣
η-is-embedding : {X : 𝓤 ̇ } → is-embedding (η {𝓤} {X})
η-is-embedding {X} = embedding-criterion' η c
where
a : (𝟙 ≃ 𝟙) ≃ 𝟙
a = (𝟙 ≃ 𝟙) ≃⟨ ≃-sym (univalence-≃ ua 𝟙 𝟙) ⟩
(𝟙 = 𝟙) ≃⟨ 𝟙-=-≃ 𝟙 (univalence-gives-funext ua) (univalence-gives-propext ua) 𝟙-is-prop ⟩
𝟙 ■
b : (x y : X) → ((λ (_ : 𝟙) → x) = (λ (_ : 𝟙) → y)) ≃ (x = y)
b x y = ((λ _ → x) = (λ _ → y)) ≃⟨ ≃-funext fe (λ _ → x) (λ _ → y) ⟩
(𝟙 → x = y) ≃⟨ ≃-sym (𝟙→ fe) ⟩
(x = y) ■
c : (x y : X) → (η x = η y) ≃ (x = y)
c x y = (η x = η y) ≃⟨ 𝓕-Id ua (η x) (η y) ⟩
(𝟙 ≃ 𝟙) × ((λ _ → x) = (λ _ → y)) ≃⟨ ×-cong a (b x y) ⟩
𝟙 × (x = y) ≃⟨ 𝟙-lneutral ⟩
(x = y) ■
\end{code}