Functoriality of function types
Content created by Fredrik Bakke, Egbert Rijke, Jonathan Prieto-Cubides, Tom de Jong, Elisabeth Stenholm and Vojtěch Štěpančík.
Created on 2022-02-08.
Last modified on 2024-03-02.
module foundation.functoriality-function-types where
Imports
open import foundation.action-on-identifications-functions open import foundation.dependent-pair-types open import foundation.functoriality-dependent-function-types open import foundation.postcomposition-functions open import foundation.unit-type open import foundation.universal-property-equivalences open import foundation.universe-levels open import foundation-core.embeddings open import foundation-core.equivalences open import foundation-core.function-types open import foundation-core.identity-types open import foundation-core.precomposition-functions open import foundation-core.propositional-maps open import foundation-core.truncated-maps open import foundation-core.truncation-levels
Properties
Equivalent types have equivalent function types
module _ { l1 l2 l3 l4 : Level} { A' : UU l1} {B' : UU l2} {A : UU l3} (B : UU l4) ( e : A' ≃ A) (f : B' ≃ B) where map-equiv-function-type : (A' → B') → (A → B) map-equiv-function-type h = map-equiv f ∘ (h ∘ map-inv-equiv e) compute-map-equiv-function-type : (h : A' → B') (x : A') → map-equiv-function-type h (map-equiv e x) = map-equiv f (h x) compute-map-equiv-function-type h x = ap (map-equiv f ∘ h) (is-retraction-map-inv-equiv e x) is-equiv-map-equiv-function-type : is-equiv map-equiv-function-type is-equiv-map-equiv-function-type = is-equiv-comp ( precomp (map-equiv (inv-equiv e)) B) ( postcomp A' (map-equiv f)) ( is-equiv-postcomp-equiv f A') ( is-equiv-precomp-equiv (inv-equiv e) B) equiv-function-type : (A' → B') ≃ (A → B) pr1 equiv-function-type = map-equiv-function-type pr2 equiv-function-type = is-equiv-map-equiv-function-type
A map is truncated iff postcomposition by it is truncated
module _ {l1 l2 : Level} (k : 𝕋) {X : UU l1} {Y : UU l2} (f : X → Y) where is-trunc-map-postcomp-is-trunc-map : is-trunc-map k f → {l3 : Level} (A : UU l3) → is-trunc-map k (postcomp A f) is-trunc-map-postcomp-is-trunc-map is-trunc-f A = is-trunc-map-map-Π-is-trunc-map' k ( terminal-map A) ( point f) ( point is-trunc-f) is-trunc-map-is-trunc-map-postcomp : ({l3 : Level} (A : UU l3) → is-trunc-map k (postcomp A f)) → is-trunc-map k f is-trunc-map-is-trunc-map-postcomp is-trunc-postcomp-f = is-trunc-map-is-trunc-map-map-Π' k ( point f) ( λ {l} {J} α → is-trunc-postcomp-f {l} J) ( star) module _ {l1 l2 : Level} {X : UU l1} {Y : UU l2} (f : X → Y) where is-emb-postcomp-is-emb : is-emb f → {l3 : Level} (A : UU l3) → is-emb (postcomp A f) is-emb-postcomp-is-emb is-emb-f A = is-emb-is-prop-map ( is-trunc-map-postcomp-is-trunc-map neg-one-𝕋 f ( is-prop-map-is-emb is-emb-f) ( A)) is-emb-is-emb-postcomp : ({l3 : Level} (A : UU l3) → is-emb (postcomp A f)) → is-emb f is-emb-is-emb-postcomp is-emb-postcomp-f = is-emb-is-prop-map ( is-trunc-map-is-trunc-map-postcomp neg-one-𝕋 f ( is-prop-map-is-emb ∘ is-emb-postcomp-f)) emb-postcomp : {l1 l2 l3 : Level} {X : UU l1} {Y : UU l2} (f : X ↪ Y) (A : UU l3) → (A → X) ↪ (A → Y) pr1 (emb-postcomp f A) = postcomp A (map-emb f) pr2 (emb-postcomp f A) = is-emb-postcomp-is-emb (map-emb f) (is-emb-map-emb f) A
See also
- Functorial properties of dependent function types are recorded in
foundation.functoriality-dependent-function-types
. - Arithmetical laws involving dependent function types are recorded in
foundation.type-arithmetic-dependent-function-types
. - Equality proofs in dependent function types are characterized in
foundation.equality-dependent-function-types
.
Recent changes
- 2024-03-02. Fredrik Bakke. Factor out standard pullbacks (#1042).
- 2024-01-14. Fredrik Bakke. Exponentiating retracts of maps (#989).
- 2024-01-10. Fredrik Bakke. Use
point x
instead ofconst unit X x
(#994). - 2024-01-09. Fredrik Bakke. Make type argument explicit for
terminal-map
(#993). - 2023-12-21. Fredrik Bakke. Action on homotopies of functions (#973).