# The universal property of identity systems ```agda module foundation.universal-property-identity-systems where ``` <details><summary>Imports</summary> ```agda open import foundation.dependent-pair-types open import foundation.identity-systems open import foundation.universal-property-contractible-types open import foundation.universal-property-dependent-pair-types open import foundation.universe-levels open import foundation-core.contractible-types open import foundation-core.equivalences open import foundation-core.identity-types open import foundation-core.torsorial-type-families ``` </details> ## Idea A **(unary) identity system** on a type `A` equipped with a point `a : A` consists of a type family `B` over `A` equipped with a point `b : B a` that satisfies an induction principle analogous to the induction principle of the [identity type](foundation.identity-types.md) at `a`. The [dependent universal property of identity types](foundation.universal-property-identity-types.md) also follows for identity systems. ## Definition ### The universal property of identity systems ```agda dependent-universal-property-identity-system : {l1 l2 : Level} {A : UU l1} (B : A → UU l2) {a : A} (b : B a) → UUω dependent-universal-property-identity-system {A = A} B b = {l3 : Level} (P : (x : A) (y : B x) → UU l3) → is-equiv (ev-refl-identity-system b {P}) ``` ## Properties ### A type family satisfies the dependent universal property of identity systems if and only if it is torsorial ```agda module _ {l1 l2 : Level} {A : UU l1} {B : A → UU l2} {a : A} (b : B a) where dependent-universal-property-identity-system-is-torsorial : is-torsorial B → dependent-universal-property-identity-system B b dependent-universal-property-identity-system-is-torsorial H P = is-equiv-left-factor ( ev-refl-identity-system b) ( ev-pair) ( dependent-universal-property-contr-is-contr ( a , b) ( H) ( λ u → P (pr1 u) (pr2 u))) ( is-equiv-ev-pair) equiv-dependent-universal-property-identity-system-is-torsorial : is-torsorial B → {l : Level} {C : (x : A) → B x → UU l} → ((x : A) (y : B x) → C x y) ≃ C a b pr1 (equiv-dependent-universal-property-identity-system-is-torsorial H) = ev-refl-identity-system b pr2 (equiv-dependent-universal-property-identity-system-is-torsorial H) = dependent-universal-property-identity-system-is-torsorial H _ is-torsorial-dependent-universal-property-identity-system : dependent-universal-property-identity-system B b → is-torsorial B pr1 (is-torsorial-dependent-universal-property-identity-system H) = (a , b) pr2 (is-torsorial-dependent-universal-property-identity-system H) u = map-inv-is-equiv ( H (λ x y → (a , b) = (x , y))) ( refl) ( pr1 u) ( pr2 u) ``` ### A type family satisfies the dependent universal property of identity systems if and only if it is an identity system ```agda module _ {l1 l2 : Level} {A : UU l1} {B : A → UU l2} {a : A} (b : B a) where dependent-universal-property-identity-system-is-identity-system : is-identity-system B a b → dependent-universal-property-identity-system B b dependent-universal-property-identity-system-is-identity-system H = dependent-universal-property-identity-system-is-torsorial b ( is-torsorial-is-identity-system a b H) is-identity-system-dependent-universal-property-identity-system : dependent-universal-property-identity-system B b → is-identity-system B a b is-identity-system-dependent-universal-property-identity-system H P = section-is-equiv (H P) ```