Wedges of pointed types

module synthetic-homotopy-theory.wedges-of-pointed-types where
Imports
open import foundation.dependent-pair-types
open import foundation.embeddings
open import foundation.homotopies
open import foundation.identity-types
open import foundation.universe-levels

open import structured-types.pointed-cartesian-product-types
open import structured-types.pointed-maps
open import structured-types.pointed-types
open import structured-types.pointed-unit-type

open import synthetic-homotopy-theory.cocones-under-spans-of-pointed-types
open import synthetic-homotopy-theory.cofibers
open import synthetic-homotopy-theory.pushouts-of-pointed-types

Idea

The wedge or wedge sum of two pointed types a : A and b : B is defined by the following pointed pushout:

  unit ------> A
    |          |
    |          |
    v       ⌜  v
    B -----> A ∨∗ B,

and is thus canonically pointed at the identified image of a and b.

Definition

wedge-Pointed-Type :
  {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) 
  Pointed-Type (l1  l2)
wedge-Pointed-Type A B =
  pushout-Pointed-Type
    ( inclusion-point-Pointed-Type A)
    ( inclusion-point-Pointed-Type B)

_∨∗_ = wedge-Pointed-Type

Note: the symbols used for the wedge sum _∨∗_ are the logical or (agda-input: \vee \or) and the asterisk operator (agda-input: \ast), not the latin small letter v v or the asterisk *.

indexed-wedge :
  {l1 l2 : Level} (I : UU l1) (A : I  Pointed-Type l2)  Pointed-Type (l1  l2)
pr1 (indexed-wedge I A) = cofiber  i  i , point-Pointed-Type (A i))
pr2 (indexed-wedge I A) = point-cofiber  i  i , point-Pointed-Type (A i))

Properties

The inclusion of the wedge sum A ∨∗ B into the pointed product A ×∗ B

There is a canonical inclusion of the wedge sum into the pointed product that is defined by the cogap map induced by the canonical inclusions A → A ×∗ B ← B.

module _
  {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2)
  where

  cocone-prod-wedge-Pointed-Type :
    type-cocone-Pointed-Type
      ( inclusion-point-Pointed-Type A)
      ( inclusion-point-Pointed-Type B)
      ( A ×∗ B)
  pr1 cocone-prod-wedge-Pointed-Type = inl-prod-Pointed-Type A B
  pr1 (pr2 cocone-prod-wedge-Pointed-Type) = inr-prod-Pointed-Type A B
  pr1 (pr2 (pr2 cocone-prod-wedge-Pointed-Type)) = refl-htpy
  pr2 (pr2 (pr2 cocone-prod-wedge-Pointed-Type)) = refl

  pointed-map-prod-wedge-Pointed-Type :
    (A ∨∗ B) →∗ (A ×∗ B)
  pointed-map-prod-wedge-Pointed-Type =
    cogap-Pointed-Type
      ( inclusion-point-Pointed-Type A)
      ( inclusion-point-Pointed-Type B)
      ( cocone-prod-wedge-Pointed-Type)

  map-prod-wedge-Pointed-Type :
    type-Pointed-Type (A ∨∗ B)  type-Pointed-Type (A ×∗ B)
  map-prod-wedge-Pointed-Type = pr1 pointed-map-prod-wedge-Pointed-Type

See also