Martin Escardo 7th December 2018.
Characterization of equality in the lifting via the structure of
identity principle.
\begin{code}
{-# OPTIONS --without-K --exact-split --safe #-}
open import SpartanMLTT
module LiftingIdentityViaSIP
(๐ฃ : Universe)
{๐ค : Universe}
{X : ๐ค ฬ }
where
open import UF-Base
open import UF-Subsingletons
open import UF-Subsingletons-FunExt
open import UF-Equiv
open import UF-EquivalenceExamples
open import UF-FunExt
open import UF-Univalence
open import UF-UA-FunExt
open import UF-StructureIdentityPrinciple
open import Lifting ๐ฃ
_โ_ : ๐ X โ ๐ X โ ๐ฃ โ ๐ค ฬ
l โ m = ฮฃ e ๊ is-defined l โ is-defined m , value l โก value m โ โ e โ
๐-Id : is-univalent ๐ฃ โ (l m : ๐ X) โ (l โก m) โ (l โ m)
๐-Id ua = โก-is-โโ'
where
open gsip-with-axioms'
๐ฃ (๐ฃ โ ๐ค) (๐ฃ โ ๐ค) ๐ฃ ua
(ฮป P โ P โ X)
(ฮป P s โ is-prop P)
(ฮป P s โ being-prop-is-prop (univalence-gives-funext ua))
(ฮป {l m (f , e) โ prโ l โก prโ m โ f})
(ฮป l โ refl)
(ฮป P ฮต ฮด โ id)
(ฮป A ฯ ฯ
โ refl-left-neutral)
โ-gives-โก : is-univalent ๐ฃ โ {l m : ๐ X} โ (l โ m) โ l โก m
โ-gives-โก ua = โ ๐-Id ua _ _ โโปยน
\end{code}
When dealing with functions it is often more convenient to work with
pointwise equality, and hence we also consider:
\begin{code}
_โยท_ : ๐ X โ ๐ X โ ๐ฃ โ ๐ค ฬ
l โยท m = ฮฃ e ๊ is-defined l โ is-defined m , value l โผ value m โ โ e โ
๐-Idยท : is-univalent ๐ฃ
โ funext ๐ฃ ๐ค
โ (l m : ๐ X) โ (l โก m) โ (l โยท m)
๐-Idยท ua fe l m = (๐-Id ua l m) โ (ฮฃ-cong (ฮป e โ โ-funext fe (value l) (value m โ โ e โ)))
\end{code}