Retractions
module foundation.retractions where
Imports
open import foundation-core.retractions public open import foundation.coslice open import foundation-core.dependent-pair-types open import foundation-core.equivalences open import foundation-core.functions open import foundation-core.homotopies open import foundation-core.identity-types open import foundation-core.injective-maps open import foundation-core.universe-levels
Properties
Characterizing the identity type of retr f
module _ {l1 l2 : Level} {A : UU l1} {B : UU l2} {f : A → B} where htpy-retr : retr f → retr f → UU (l1 ⊔ l2) htpy-retr = htpy-hom-coslice extensionality-retr : (g h : retr f) → Id g h ≃ htpy-retr g h extensionality-retr g h = extensionality-hom-coslice g h eq-htpy-retr : ( g h : retr f) (H : pr1 g ~ pr1 h) (K : (pr2 g) ~ ((H ·r f) ∙h pr2 h)) → Id g h eq-htpy-retr g h = eq-htpy-hom-coslice g h
If the left factor of a composite has a retraction, then the type of retractions of the right factor is a retract of the type of retractions of the composite
isretr-retraction-comp-htpy : {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {X : UU l3} (f : A → X) (g : B → X) (h : A → B) (H : f ~ (g ∘ h)) (retr-g : retr g) → ( ( retraction-right-factor-htpy f g h H) ∘ ( retraction-comp-htpy f g h H retr-g)) ~ id isretr-retraction-comp-htpy f g h H (pair l L) (pair k K) = eq-htpy-retr ( ( retraction-right-factor-htpy f g h H ( retraction-comp-htpy f g h H (pair l L) (pair k K) ))) ( pair k K) ( k ·l L) ( ( inv-htpy-assoc-htpy ( inv-htpy ((k ∘ l) ·l H)) ( (k ∘ l) ·l H) ( (k ·l (L ·r h)) ∙h K)) ∙h ( ap-concat-htpy' ( (inv-htpy ((k ∘ l) ·l H)) ∙h ((k ∘ l) ·l H)) ( refl-htpy) ( (k ·l (L ·r h)) ∙h K) ( left-inv-htpy ((k ∘ l) ·l H)))) retr-right-factor-retract-of-retr-left-factor : {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {X : UU l3} (f : A → X) (g : B → X) (h : A → B) (H : f ~ (g ∘ h)) → retr g → (retr h) retract-of (retr f) pr1 (retr-right-factor-retract-of-retr-left-factor f g h H retr-g) = retraction-comp-htpy f g h H retr-g pr1 (pr2 (retr-right-factor-retract-of-retr-left-factor f g h H retr-g)) = retraction-right-factor-htpy f g h H pr2 (pr2 (retr-right-factor-retract-of-retr-left-factor f g h H retr-g)) = isretr-retraction-comp-htpy f g h H retr-g
abstract is-injective-retr : {l1 l2 : Level} {A : UU l1} {B : UU l2} (f : A → B) → retr f → is-injective f is-injective-retr f (pair h H) {x} {y} p = (inv (H x)) ∙ (ap h p ∙ H y)