Pointed cartesian product types
Content created by Fredrik Bakke and Egbert Rijke.
Created on 2023-04-28.
Last modified on 2024-02-06.
module structured-types.pointed-cartesian-product-types where
Imports
open import foundation.cartesian-product-types open import foundation.dependent-pair-types open import foundation.equality-cartesian-product-types open import foundation.function-types open import foundation.homotopies open import foundation.identity-types open import foundation.universe-levels open import structured-types.pointed-maps open import structured-types.pointed-types
Idea
Given two pointed types a : A
and b : B
, their cartesian product is again
canonically pointed at (a , b) : A × B
. We call this the pointed cartesian
product or pointed product of the two pointed types.
Definition
module _ {l1 l2 : Level} where product-Pointed-Type : (A : Pointed-Type l1) (B : Pointed-Type l2) → Pointed-Type (l1 ⊔ l2) pr1 (product-Pointed-Type (A , a) (B , b)) = A × B pr2 (product-Pointed-Type (A , a) (B , b)) = a , b infixr 15 _×∗_ _×∗_ = product-Pointed-Type
Properties
The pointed projections from the pointed product A ×∗ B
onto A
and B
module _ {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) where map-pr1-product-Pointed-Type : type-Pointed-Type (A ×∗ B) → type-Pointed-Type A map-pr1-product-Pointed-Type = pr1 pr1-product-Pointed-Type : (A ×∗ B) →∗ A pr1 pr1-product-Pointed-Type = map-pr1-product-Pointed-Type pr2 pr1-product-Pointed-Type = refl map-pr2-product-Pointed-Type : type-Pointed-Type (A ×∗ B) → type-Pointed-Type B map-pr2-product-Pointed-Type = pr2 pr2-product-Pointed-Type : (A ×∗ B) →∗ B pr1 pr2-product-Pointed-Type = map-pr2-product-Pointed-Type pr2 pr2-product-Pointed-Type = refl
The pointed product A ×∗ B
comes equipped with pointed inclusion of A
and B
module _ {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) where map-inl-product-Pointed-Type : type-Pointed-Type A → type-Pointed-Type (A ×∗ B) pr1 (map-inl-product-Pointed-Type x) = x pr2 (map-inl-product-Pointed-Type x) = point-Pointed-Type B inl-product-Pointed-Type : A →∗ (A ×∗ B) pr1 inl-product-Pointed-Type = map-inl-product-Pointed-Type pr2 inl-product-Pointed-Type = refl map-inr-product-Pointed-Type : type-Pointed-Type B → type-Pointed-Type (A ×∗ B) pr1 (map-inr-product-Pointed-Type y) = point-Pointed-Type A pr2 (map-inr-product-Pointed-Type y) = y inr-product-Pointed-Type : B →∗ (A ×∗ B) pr1 inr-product-Pointed-Type = map-inr-product-Pointed-Type pr2 inr-product-Pointed-Type = refl
The pointed inclusions into A ×∗ B
are sections to the pointed projections
module _ {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) where is-section-map-inl-product-Pointed-Type : (map-pr1-product-Pointed-Type A B ∘ map-inl-product-Pointed-Type A B) ~ id is-section-map-inl-product-Pointed-Type = refl-htpy is-section-map-inr-product-Pointed-Type : (map-pr2-product-Pointed-Type A B ∘ map-inr-product-Pointed-Type A B) ~ id is-section-map-inr-product-Pointed-Type = refl-htpy
The pointed gap map for the pointed product
module _ {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Type l2} where map-gap-product-Pointed-Type : {l3 : Level} {S : Pointed-Type l3} (f : S →∗ A) (g : S →∗ B) → type-Pointed-Type S → type-Pointed-Type (A ×∗ B) pr1 (map-gap-product-Pointed-Type f g x) = map-pointed-map f x pr2 (map-gap-product-Pointed-Type f g x) = map-pointed-map g x gap-product-Pointed-Type : {l3 : Level} {S : Pointed-Type l3} (f : S →∗ A) (g : S →∗ B) → S →∗ (A ×∗ B) pr1 (gap-product-Pointed-Type f g) = map-gap-product-Pointed-Type f g pr2 (gap-product-Pointed-Type f g) = eq-pair ( preserves-point-pointed-map f) ( preserves-point-pointed-map g)
Recent changes
- 2024-02-06. Fredrik Bakke. Rename
(co)prod
to(co)product
(#1017). - 2023-09-10. Fredrik Bakke. Define precedence levels and associativities for all binary operators (#712).
- 2023-07-19. Egbert Rijke. refactoring pointed maps (#682).
- 2023-06-15. Egbert Rijke. Replace
isretr
withis-retraction
andissec
withis-section
(#659). - 2023-06-10. Egbert Rijke. cleaning up transport and dependent identifications files (#650).