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 --auto-inline #-} 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.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}