Dependent identifications
Content created by Egbert Rijke, Fredrik Bakke, Julian KG, Raymond Baker, Vojtěch Štěpančík, fernabnor and louismntnu.
Created on 2023-06-10.
Last modified on 2024-04-19.
module foundation.dependent-identifications where open import foundation-core.dependent-identifications public
Imports
open import foundation.action-on-identifications-functions open import foundation.dependent-pair-types open import foundation.transport-along-higher-identifications open import foundation.universe-levels open import foundation-core.equivalences open import foundation-core.function-types open import foundation-core.homotopies open import foundation-core.identity-types open import foundation-core.transport-along-identifications
Idea
We characterize dependent paths in the family of depedent paths; define the groupoidal operators on dependent paths; define the cohrences paths: prove the operators are equivalences.
Properites
Computing twice iterated dependent identifications
module _ {l1 l2 : Level} {A : UU l1} (B : A → UU l2) where map-compute-dependent-identification² : {x y : A} {p q : x = y} (α : p = q) {x' : B x} {y' : B y} (p' : dependent-identification B p x' y') (q' : dependent-identification B q x' y') → p' = tr² B α x' ∙ q' → dependent-identification² B α p' q' map-compute-dependent-identification² refl ._ refl refl = refl map-inv-compute-dependent-identification² : {x y : A} {p q : x = y} (α : p = q) {x' : B x} {y' : B y} (p' : dependent-identification B p x' y') (q' : dependent-identification B q x' y') → dependent-identification² B α p' q' → p' = tr² B α x' ∙ q' map-inv-compute-dependent-identification² refl refl ._ refl = refl is-section-map-inv-compute-dependent-identification² : {x y : A} {p q : x = y} (α : p = q) {x' : B x} {y' : B y} (p' : dependent-identification B p x' y') (q' : dependent-identification B q x' y') → ( map-compute-dependent-identification² α p' q' ∘ map-inv-compute-dependent-identification² α p' q') ~ id is-section-map-inv-compute-dependent-identification² refl refl ._ refl = refl is-retraction-map-inv-compute-dependent-identification² : {x y : A} {p q : x = y} (α : p = q) {x' : B x} {y' : B y} (p' : dependent-identification B p x' y') (q' : dependent-identification B q x' y') → ( map-inv-compute-dependent-identification² α p' q' ∘ map-compute-dependent-identification² α p' q') ~ id is-retraction-map-inv-compute-dependent-identification² refl ._ refl refl = refl is-equiv-map-compute-dependent-identification² : {x y : A} {p q : x = y} (α : p = q) {x' : B x} {y' : B y} (p' : dependent-identification B p x' y') (q' : dependent-identification B q x' y') → is-equiv (map-compute-dependent-identification² α p' q') is-equiv-map-compute-dependent-identification² α p' q' = is-equiv-is-invertible ( map-inv-compute-dependent-identification² α p' q') ( is-section-map-inv-compute-dependent-identification² α p' q') ( is-retraction-map-inv-compute-dependent-identification² α p' q') compute-dependent-identification² : {x y : A} {p q : x = y} (α : p = q) {x' : B x} {y' : B y} (p' : dependent-identification B p x' y') (q' : dependent-identification B q x' y') → (p' = tr² B α x' ∙ q') ≃ dependent-identification² B α p' q' pr1 (compute-dependent-identification² α p' q') = map-compute-dependent-identification² α p' q' pr2 (compute-dependent-identification² α p' q') = is-equiv-map-compute-dependent-identification² α p' q'
The groupoidal structure of dependent identifications
We show that there is groupoidal structure on the dependent identifications. The statement of the groupoid laws use dependent identifications, due to the dependent nature of dependent identifications.
Concatenation of dependent identifications
module _ {l1 l2 : Level} {A : UU l1} (B : A → UU l2) where concat-dependent-identification : {x y z : A} (p : x = y) (q : y = z) {x' : B x} {y' : B y} {z' : B z} → dependent-identification B p x' y' → dependent-identification B q y' z' → dependent-identification B (p ∙ q) x' z' concat-dependent-identification refl q refl q' = q' compute-concat-dependent-identification-refl : { y z : A} (q : y = z) → { x' y' : B y} {z' : B z} (p' : x' = y') → ( q' : dependent-identification B q y' z') → ( concat-dependent-identification refl q p' q') = ap (tr B q) p' ∙ q' compute-concat-dependent-identification-refl refl refl q' = refl
Inverses of dependent identifications
module _ {l1 l2 : Level} {A : UU l1} (B : A → UU l2) where inv-dependent-identification : {x y : A} (p : x = y) {x' : B x} {y' : B y} → dependent-identification B p x' y' → dependent-identification B (inv p) y' x' inv-dependent-identification refl refl = refl
Associativity of concatenation of dependent identifications
module _ {l1 l2 : Level} {A : UU l1} (B : A → UU l2) where assoc-dependent-identification : {x y z u : A} (p : x = y) (q : y = z) (r : z = u) {x' : B x} {y' : B y} {z' : B z} {u' : B u} (p' : dependent-identification B p x' y') (q' : dependent-identification B q y' z') (r' : dependent-identification B r z' u') → dependent-identification² B ( assoc p q r) ( concat-dependent-identification B ( p ∙ q) ( r) ( concat-dependent-identification B p q p' q') ( r')) ( concat-dependent-identification B ( p) ( q ∙ r) ( p') ( concat-dependent-identification B q r q' r')) assoc-dependent-identification refl q r refl q' r' = refl
Unit laws for concatenation of dependent identifications
module _ {l1 l2 : Level} {A : UU l1} (B : A → UU l2) where right-unit-dependent-identification : {x y : A} (p : x = y) {x' : B x} {y' : B y} (q : dependent-identification B p x' y') → dependent-identification² ( B) ( right-unit {p = p}) ( concat-dependent-identification B p refl q refl) ( q) right-unit-dependent-identification refl refl = refl left-unit-dependent-identification : {x y : A} (p : x = y) {x' : B x} {y' : B y} (q : dependent-identification B p x' y') → dependent-identification² ( B) ( left-unit {p = p}) ( concat-dependent-identification B refl p ( refl-dependent-identification B) ( q)) ( q) left-unit-dependent-identification p q = refl
Inverse laws for dependent identifications
module _ {l1 l2 : Level} {A : UU l1} (B : A → UU l2) where right-inv-dependent-identification : {x y : A} (p : x = y) {x' : B x} {y' : B y} (q : dependent-identification B p x' y') → dependent-identification² B ( right-inv p) ( concat-dependent-identification B ( p) ( inv p) ( q) ( inv-dependent-identification B p q)) ( refl-dependent-identification B) right-inv-dependent-identification refl refl = refl left-inv-dependent-identification : {x y : A} (p : x = y) {x' : B x} {y' : B y} (q : dependent-identification B p x' y') → dependent-identification² ( B) ( left-inv p) ( concat-dependent-identification B ( inv p) ( p) ( inv-dependent-identification B p q) ( q)) ( refl-dependent-identification B) left-inv-dependent-identification refl refl = refl
The inverse of dependent identifications is involutive
module _ {l1 l2 : Level} {A : UU l1} (B : A → UU l2) where inv-inv-dependent-identification : {x y : A} (p : x = y) {x' : B x} {y' : B y} (q : dependent-identification B p x' y') → dependent-identification² B ( inv-inv p) ( inv-dependent-identification B ( inv p) ( inv-dependent-identification B p q)) ( q) inv-inv-dependent-identification refl refl = refl
The inverse distributes over concatenation of dependent identifications
module _ {l1 l2 : Level} {A : UU l1} (B : A → UU l2) where distributive-inv-concat-dependent-identification : {x y z : A} (p : x = y) (q : y = z) {x' : B x} {y' : B y} {z' : B z} (p' : dependent-identification B p x' y') (q' : dependent-identification B q y' z') → dependent-identification² B ( distributive-inv-concat p q) ( inv-dependent-identification B ( p ∙ q) ( concat-dependent-identification B p q p' q')) ( concat-dependent-identification B ( inv q) ( inv p) ( inv-dependent-identification B q q') ( inv-dependent-identification B p p')) distributive-inv-concat-dependent-identification refl refl refl refl = refl
Recent changes
- 2024-04-19. Fredrik Bakke. Rewrite rules for pushouts (#1021).
- 2023-10-16. Fredrik Bakke and Egbert Rijke. Sequential limits (#839).
- 2023-09-24. Raymond Baker. Refactor Eckmann-Hilton (#788).
- 2023-09-13. Vojtěch Štěpančík. Flattening lemma for pushouts (#764).
- 2023-09-11. Fredrik Bakke. Transport along and action on equivalences (#706).