Martin Escardo 7th December 2018.
Characterization of equality in the lifting via the structure of
identity principle.
\begin{code}
{-# OPTIONS --safe --without-K #-}
open import MLTT.Spartan
module Lifting.IdentityViaSIP
(π£ : 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.Construction π£
_β_ : π 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 β
is-defined-βΒ· : (l m : π X)
β l βΒ· m β is-defined l β is-defined m
is-defined-βΒ· l m = prβ
value-βΒ· : (l m : π X) (π : l βΒ· m)
β value l βΌ (Ξ» x β value m (β is-defined-βΒ· l m π β x))
value-βΒ· l m = prβ
Id-to-βΒ· : (l m : π X) β (l οΌ m) β (l βΒ· m)
Id-to-βΒ· l m refl = (β-refl (is-defined l)) , (Ξ» x β refl)
π-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 β)))
βΒ·-gives-οΌ : is-univalent π£
β funext π£ π€
β {l m : π X} β (l βΒ· m) β l οΌ m
βΒ·-gives-οΌ ua fe = β π-IdΒ· ua fe _ _ ββ»ΒΉ
\end{code}
Added 8th September 2025.
\begin{code}
βΒ·-refl : (l : π X) β l βΒ· l
βΒ·-refl l = β-refl _ , βΌ-refl
βΒ·-sym : (l m : π X) β l βΒ· m β m βΒ· l
βΒ·-sym l m (e , d) =
β-sym e ,
Ξ» p β
value m p οΌβ¨ ap (value m) ((inverses-are-sections' e p)β»ΒΉ) β©
value m (β e β (β e ββ»ΒΉ p)) οΌβ¨ (d (β e ββ»ΒΉ p))β»ΒΉ β©
value l (β e ββ»ΒΉ p) β
βΒ·-trans : (l m n : π X) β l βΒ· m β m βΒ· n β l βΒ· n
βΒ·-trans l m n (e , d) (e' , d') =
(e β e') ,
(Ξ» p β value l p οΌβ¨ d p β©
value m (β e β p) οΌβ¨ d' (β e β p) β©
value n (β e' β (β e β p)) οΌβ¨reflβ©
value n (β e β e' β p) β)
\end{code}