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}