Type arithmetic with dependent function types
Content created by Fredrik Bakke, Jonathan Prieto-Cubides, Egbert Rijke and Victor Blanchi.
Created on 2022-07-17.
Last modified on 2024-03-01.
module foundation.type-arithmetic-dependent-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.type-arithmetic-unit-type open import foundation.unit-type open import foundation.universe-levels open import foundation-core.contractible-types open import foundation-core.equivalences open import foundation-core.homotopies open import foundation-core.univalence
Properties
Unit law when the base type is contractible
module _ {l1 l2 : Level} {A : UU l1} {B : A → UU l2} (C : is-contr A) (a : A) where left-unit-law-Π-is-contr : ((a : A) → (B a)) ≃ B a left-unit-law-Π-is-contr = ( left-unit-law-Π ( λ _ → B a)) ∘e ( equiv-Π ( λ _ → B a) ( terminal-map A , is-equiv-terminal-map-is-contr C) ( λ a → equiv-eq (ap B ( eq-is-contr C))))
The swap function ((x : A) (y : B) → C x y) → ((y : B) (x : A) → C x y)
is an equivalence
module _ {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {C : A → B → UU l3} where swap-Π : ((x : A) (y : B) → C x y) → ((y : B) (x : A) → C x y) swap-Π f y x = f x y module _ {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {C : A → B → UU l3} where is-equiv-swap-Π : is-equiv (swap-Π {C = C}) is-equiv-swap-Π = is-equiv-is-invertible swap-Π refl-htpy refl-htpy equiv-swap-Π : ((x : A) (y : B) → C x y) ≃ ((y : B) (x : A) → C x y) pr1 equiv-swap-Π = swap-Π pr2 equiv-swap-Π = is-equiv-swap-Π
See also
- Functorial properties of dependent function types are recorded in
foundation.functoriality-dependent-function-types
. - Equality proofs in dependent function types are characterized in
foundation.equality-dependent-function-types
. - Arithmetical laws involving cartesian product types are recorded in
foundation.type-arithmetic-cartesian-product-types
. - Arithmetical laws involving dependent pair types are recorded in
foundation.type-arithmetic-dependent-pair-types
. - Arithmetical laws involving coproduct types are recorded in
foundation.type-arithmetic-coproduct-types
. - Arithmetical laws involving the unit type are recorded in
foundation.type-arithmetic-unit-type
. - Arithmetical laws involving the empty type are recorded in
foundation.type-arithmetic-empty-type
. - In
foundation.universal-property-empty-type
we show thatempty
is the initial type, which can be considered a left zero law for function types ((empty → A) ≃ unit
). - That
unit
is the terminal type is a corollary ofis-contr-Π
, which may be found infoundation-core.contractible-types
. This can be considered a right zero law for function types ((A → unit) ≃ unit
).
Recent changes
- 2024-03-01. Fredrik Bakke. chore: Fix markdown list formatting (#1047).
- 2024-01-09. Fredrik Bakke. Make type argument explicit for
terminal-map
(#993). - 2023-10-12. Fredrik Bakke. Define suspension prespectra and maps of prespectra (#833).
- 2023-09-11. Fredrik Bakke and Egbert Rijke. Some computations for different notions of equivalence (#711).
- 2023-06-10. Egbert Rijke and Fredrik Bakke. Cleaning up synthetic homotopy theory (#649).