# The Regensburg extension of the fundamental theorem of identity types ```agda module foundation.regensburg-extension-fundamental-theorem-of-identity-types where ``` <details><summary>Imports</summary> ```agda open import foundation.0-connected-types open import foundation.connected-maps open import foundation.connected-types open import foundation.dependent-pair-types open import foundation.equivalences open import foundation.fiber-inclusions open import foundation.fibers-of-maps open import foundation.function-types open import foundation.functoriality-dependent-pair-types open import foundation.functoriality-propositional-truncation open import foundation.functoriality-truncation open import foundation.homotopies open import foundation.identity-types open import foundation.inhabited-types open import foundation.logical-equivalences open import foundation.maps-in-subuniverses open import foundation.propositional-truncations open import foundation.separated-types open import foundation.subuniverses open import foundation.surjective-maps open import foundation.truncated-maps open import foundation.truncated-types open import foundation.truncation-levels open import foundation.universe-levels ``` </details> ## Idea The **Regensburg extension** of the [fundamental theorem of identity types](foundation.fundamental-theorem-of-identity-types.md) asserts that for any [subuniverse](foundation.subuniverses.md) `P`, and any [pointed](structured-types.pointed-types.md) [connected type](foundation.connected-types.md) `A` equipped with a type family `B` over `A`, the following are [logically equivalent](foundation.logical-equivalences.md): 1. Every family of maps `f : (x : A) → (* = x) → B x` is a family of `P`-maps, i.e., a family of maps with [fibers](foundation-core.fibers-of-maps.md) in `P`. 2. The [total space](foundation.dependent-pair-types.md) `Σ A B` is [`P`-separated](foundation.separated-types.md), i.e., its [identity types](foundation-core.identity-types.md) are in `P`. In other words, the extended fundamental theorem of [identity types](foundation-core.identity-types.md) asserts that for any [higher group](higher-group-theory.higher-groups.md) `BG` equipped with a [higher group action](higher-group-theory.higher-group-actions.md) `X`, every [homomorphism of higher group actions](higher-group-theory.homomorphisms-higher-group-actions.md) `f : (u : BG) → (* = u) → X u` consists of a family of `P` maps if and only if the type of [orbits](higher-group-theory.orbits-higher-group-actions.md) of `X` is `P`-separated. **Proof:** Suppose that every family of maps `f : (x : A) → (* = x) → B x` is a family of `P`-maps. The [fiber](foundation-core.fibers-of-maps.md) of such `f x : (* = x) → B x` at `y` is [equivalent](foundation-core.equivalences.md) to the type `(* , f * refl) = (x , y)`. Our assumption is therefore equivalent to the assumption that the type `(* , f * refl) = (x , y)` is in `P` for every `f`, `x`, and `y`. By the [universal property of identity types](foundation.universal-property-identity-types.md), this condition is equivalent to the condition that `(* , y') = (x , y)` is in `P` for every `y'`, `x`, and `y`. Finally, since `A` is assumed to be connected, this condition is equivalent to the condition that `Σ A B` is `P`-separated. This theorem was stated and proven for the first time during the [Interactions of Proof Assistants and Mathematics](https://itp-school-2023.github.io) summer school in Regensburg, 2023, as part of Egbert Rijke's tutorial on formalization in agda-unimath. ## Theorem ```agda module _ {l1 l2 l3 : Level} (P : subuniverse (l1 ⊔ l2) l3) {A : UU l1} (a : A) {B : A → UU l2} where abstract forward-implication-extended-fundamental-theorem-id : is-0-connected A → ((f : (x : A) → (a = x) → B x) (x : A) → is-in-subuniverse-map P (f x)) → is-separated P (Σ A B) forward-implication-extended-fundamental-theorem-id H K (x , y) (x' , y') = apply-universal-property-trunc-Prop ( mere-eq-is-0-connected H a x) ( P _) ( λ where refl → is-in-subuniverse-equiv P ( compute-fiber-map-out-of-identity-type ( ind-Id a (λ u v → B u) y) ( x') ( y')) ( K (ind-Id a (λ u v → B u) y) x' y')) abstract backward-implication-extended-fundamental-theorem-id : is-separated P (Σ A B) → (f : (x : A) → (a = x) → B x) (x : A) → is-in-subuniverse-map P (f x) backward-implication-extended-fundamental-theorem-id K f x y = is-in-subuniverse-equiv' P ( compute-fiber-map-out-of-identity-type f x y) ( K (a , f a refl) (x , y)) abstract extended-fundamental-theorem-id : is-0-connected A → ((f : (x : A) → (a = x) → B x) (x : A) → is-in-subuniverse-map P (f x)) ↔ is-separated P (Σ A B) pr1 (extended-fundamental-theorem-id H) = forward-implication-extended-fundamental-theorem-id H pr2 (extended-fundamental-theorem-id H) = backward-implication-extended-fundamental-theorem-id ``` ## Corollaries ### Characterizing families of surjective maps out of identity types ```agda module _ {l1 l2 : Level} {A : UU l1} (a : A) {B : A → UU l2} where forward-implication-extended-fundamental-theorem-id-surjective : is-0-connected A → ( (f : (x : A) → (a = x) → B x) → (x : A) → is-surjective (f x)) → is-inhabited (B a) → is-0-connected (Σ A B) forward-implication-extended-fundamental-theorem-id-surjective H K L = is-0-connected-mere-eq-is-inhabited ( map-trunc-Prop (fiber-inclusion B a) L) ( forward-implication-extended-fundamental-theorem-id ( is-inhabited-Prop) ( a) ( H) ( K)) backward-implication-extended-fundamental-theorem-id-surjective : is-0-connected (Σ A B) → (f : (x : A) → (a = x) → B x) (x : A) → is-surjective (f x) backward-implication-extended-fundamental-theorem-id-surjective L = backward-implication-extended-fundamental-theorem-id ( is-inhabited-Prop) ( a) ( mere-eq-is-0-connected L) extended-fundamental-theorem-id-surjective : is-0-connected A → is-inhabited (B a) → ( (f : (x : A) → (a = x) → B x) → (x : A) → is-surjective (f x)) ↔ is-0-connected (Σ A B) pr1 (extended-fundamental-theorem-id-surjective H K) L = forward-implication-extended-fundamental-theorem-id-surjective H L K pr2 ( extended-fundamental-theorem-id-surjective H K) = backward-implication-extended-fundamental-theorem-id-surjective ``` ### Characterizing families of connected maps out of identity types ```agda module _ {l1 l2 : Level} (k : 𝕋) {A : UU l1} (a : A) {B : A → UU l2} where forward-implication-extended-fundamental-theorem-id-connected : is-0-connected A → ( (f : (x : A) → (a = x) → B x) → (x : A) → is-connected-map k (f x)) → is-inhabited (B a) → is-connected (succ-𝕋 k) (Σ A B) forward-implication-extended-fundamental-theorem-id-connected H K L = is-connected-succ-is-connected-eq ( map-trunc-Prop (fiber-inclusion B a) L) ( forward-implication-extended-fundamental-theorem-id ( is-connected-Prop k) ( a) ( H) ( K)) backward-implication-extended-fundamental-theorem-id-connected : is-connected (succ-𝕋 k) (Σ A B) → (f : (x : A) → (a = x) → B x) (x : A) → is-connected-map k (f x) backward-implication-extended-fundamental-theorem-id-connected K = backward-implication-extended-fundamental-theorem-id ( is-connected-Prop k) ( a) ( λ x y → is-connected-eq-is-connected K) extended-fundamental-theorem-id-connected : is-0-connected A → is-inhabited (B a) → ((f : (x : A) → (a = x) → B x) (x : A) → is-connected-map k (f x)) ↔ is-connected (succ-𝕋 k) (Σ A B) pr1 (extended-fundamental-theorem-id-connected H K) L = forward-implication-extended-fundamental-theorem-id-connected H L K pr2 (extended-fundamental-theorem-id-connected H K) = backward-implication-extended-fundamental-theorem-id-connected ``` ### Characterizing families of truncated maps out of identity types ```agda module _ {l1 l2 : Level} (k : 𝕋) {A : UU l1} (a : A) {B : A → UU l2} where forward-implication-extended-fundamental-theorem-id-truncated : is-0-connected A → ((f : (x : A) → (a = x) → B x) → (x : A) → is-trunc-map k (f x)) → is-trunc (succ-𝕋 k) (Σ A B) forward-implication-extended-fundamental-theorem-id-truncated = forward-implication-extended-fundamental-theorem-id ( is-trunc-Prop k) ( a) backward-implication-extended-fundamental-theorem-id-truncated : is-trunc (succ-𝕋 k) (Σ A B) → (f : (x : A) → (a = x) → B x) (x : A) → is-trunc-map k (f x) backward-implication-extended-fundamental-theorem-id-truncated = backward-implication-extended-fundamental-theorem-id ( is-trunc-Prop k) ( a) extended-fundamental-theorem-id-truncated : is-0-connected A → ((f : (x : A) → (a = x) → B x) (x : A) → is-trunc-map k (f x)) ↔ is-trunc (succ-𝕋 k) (Σ A B) pr1 (extended-fundamental-theorem-id-truncated H) = forward-implication-extended-fundamental-theorem-id-truncated H pr2 (extended-fundamental-theorem-id-truncated H) = backward-implication-extended-fundamental-theorem-id-truncated ``` ## See also The Regensburg extension of the fundamental theorem is used in the following files: - In [`higher-group-theory.free-higher-group-actions.md`](higher-group-theory.free-higher-group-actions.md) it is used to show that a higher group action is free if and only its total space is a set. - In [`higher-group-theory.transitive-higher-group-actions.md`](higher-group-theory.transitive-higher-group-actions.md) it is used to show that a higher group action is transitive if and only if its total space is connected. ## References Two special cases of the extended fundamental theorem of identity types are stated in {{#cite Rij22}}: The case where `P` is the subuniverse of `k`-truncated types is stated as Theorem 19.6.2; and the case where `P` is the subuniverse of inhabited types is stated as Exercise 19.14. {{#bibliography}}