Martin Escardo, 6th December 2018 \begin{code} {-# OPTIONS --safe --without-K #-} open import MLTT.Spartan module Slice.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 Slice.Construction ๐ฃ _โ_ : ๐ X โ ๐ X โ ๐ฃ โ ๐ค ฬ l โ m = ฮฃ e ๊ source l โ source m , family l ๏ผ family m โ โ e โ ๐-Id : is-univalent ๐ฃ โ (l m : ๐ X) โ (l ๏ผ m) โ (l โ m) ๐-Id ua = ๏ผ-is-โโ' where open gsip ๐ฃ (๐ฃ โ ๐ค) ua (ฮป P โ P โ X) (ฮป {l m (f , e) โ family l ๏ผ family m โ f}) (ฮป l โ refl) (ฮป P ฮต ฮด โ id) (ฮป A ฯ ฯ โ refl-left-neutral) โ-gives-๏ผ : is-univalent ๐ฃ โ {l m : ๐ X} โ (l โ m) โ l ๏ผ m โ-gives-๏ผ ua = โ ๐-Id ua _ _ โโปยน _โยท_ : ๐ X โ ๐ X โ ๐ฃ โ ๐ค ฬ l โยท m = ฮฃ e ๊ source l โ source m , family l โผ family 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 (family l) (family m โ โ e โ))) \end{code}