6.8 Pushouts

6.8 Pushouts

From a category-theoretic point of view, one of the important aspects of any foundational system is the ability to

construct

limits and

colimits

.
In set-theoretic

foundations

, these are limits and colimits of sets, whereas in our case they are limits and colimits of

types

.
We have seen in §2.15 (

http://planetmath.org/215universalproperties

) that

cartesian product

types have the correct

universal property

of a

categorical product

of types, and in

http://planetmath.org/node/87640

Exercise 2.9 that

coproduct

types likewise have their expected universal property.

As remarked in §2.15 (

http://planetmath.org/215universalproperties

), more general limits can be constructed using identity types and

Σ

-types, e.g. the

pullback

of

f

:

A

→

C

and

g

:

B

→

C

is

∑

(

a

:

A

)

∑

(

b

:

B

)

(

f

(

a

)

=

g

(

b

)

)

(see

http://planetmath.org/node/87642

Exercise 2.11).
However, more general

colimits

require identifying

elements

coming from different types, for which higher inductives are well-adapted.
Since all our constructions are homotopy-invariant, all our colimits are necessarily

homotopy colimits

, but we drop the ubiquitous adjective in the interests of concision.

In this

section

we discuss

pushouts

, as perhaps the simplest and one of the most useful colimits.
Indeed, one expects all finite colimits (for a suitable homotopical definition of “finite”) to be constructible from pushouts and finite coproducts.
It is also possible to give a direct construction of more general colimits using

higher inductive types

, but this is somewhat technical, and also not completely satisfactory since we do not yet have a good fully general notion of homotopy coherent diagrams.

Suppose given a span of types and

functions

:

\includegraphics

HoTT_fig_6.8.1.png

The

pushout

of this span is the higher inductive type

A

⊔

C

B

presented by

•

a function

𝗂𝗇𝗅

:

A

→

A

⊔

C

B

,

•

a function

𝗂𝗇𝗋

:

B

→

A

⊔

C

B

, and

•

for each

c

:

C

a path

𝗀𝗅𝗎𝖾

(

c

)

:

(

𝗂𝗇𝗅

(

f

(

c

)

)

=

𝗂𝗇𝗋

(

g

(

c

)

)

)

.

In other words,

A

⊔

C

B

is the

disjoint union

of

A

and

B

, together with for every

c

:

C

a witness that

f

⁢

(

c

)

and

g

⁢

(

c

)

are equal.
The

recursion

principle says that if

D

is another type, we can define a map

s

:

A

⊔

C

B

→

D

by defining

•

for each

a

:

A

, the value of

s

⁢

(

𝗂𝗇𝗅

⁢

(

a

)

)

:

D

,

•

for each

b

:

B

, the value of

s

⁢

(

𝗂𝗇𝗋

⁢

(

b

)

)

:

D

, and

•

for each

c

:

C

, the value of

𝖺𝗉

s

⁢

(

𝗀𝗅𝗎𝖾

⁢

(

c

)

)

:

s

⁢

(

𝗂𝗇𝗅

⁢

(

f

⁢

(

c

)

)

)

=

s

⁢

(

𝗂𝗇𝗋

⁢

(

g

⁢

(

c

)

)

)

.

We leave it to the reader to formulate the

induction

principle.
It also implies the uniqueness principle that if

s

,

s

′

:

A

⊔

C

B

→

D

are two maps such that

s

⁢

(

𝗂𝗇𝗅

⁢

(

a

)

)

=

s

′

⁢

(

𝗂𝗇𝗅

⁢

(

a

)

)

s

⁢

(

𝗂𝗇𝗋

⁢

(

b

)

)

=

s

′

⁢

(

𝗂𝗇𝗋

⁢

(

b

)

)

𝖺𝗉

s

⁢

(

𝗀𝗅𝗎𝖾

⁢

(

c

)

)

=

𝖺𝗉

s

′

⁢

(

𝗀𝗅𝗎𝖾

⁢

(

c

)

)

(modulo the previous two equalities)

for every

a

,

b

,

c

, then

s

=

s

′

.

To formulate the universal property of a pushout, we introduce the following.

Definition 6.8.1

.

Given a span

D

=

(

A

←

𝑓

C

→

𝑔

B

)

and a type

D

, a

cocone under

D

with vertex

D

consists of functions

i

:

A

→

D

and

j

:

B

→

D

and a homotopy

h

:

∏

(

c

:

C

)

(

i

(

f

(

c

)

)

=

j

(

g

(

c

)

)

)

:

\includegraphics

HoTT_fig_6.8.2.png

We denote by

cocone

D

⁢

(

D

)

the type of all such cocones, i.e.

𝖼𝗈𝖼𝗈𝗇𝖾

𝒟

(

D

)

:

≡

∑

(

i

:

A

→

D

)

∑

(

j

:

B

→

D

)

∏

(

c

:

C

)

(

i

(

f

(

c

)

)

=

j

(

g

(

c

)

)

)

.

Of course, there is a canonical cocone under

𝒟

with vertex

A

⊔

C

B

consisting of

𝗂𝗇𝗅

,

𝗂𝗇𝗋

, and

𝗀𝗅𝗎𝖾

.

\includegraphics

HoTT_fig_6.8.3.png

The following lemma says that this is the

universal

such cocone.

Lemma 6.8.2

.

For any type

E

, there is an equivalence

(

A

⊔

C

B

→

E

)

≃

𝖼𝗈𝖼𝗈𝗇𝖾

𝒟

(

E

)

.

Proof.

Let’s consider an arbitrary type

E

:

𝒰

.
There is a canonical function

{

(

A

⊔

C

B

→

E

)

⟶

𝖼𝗈𝖼𝗈𝗇𝖾

𝒟

⁢

(

E

)

t

⟼

t

∘

c

⊔

defined by sending

(

i

,

j

,

h

)

to

(

t

∘

i

,

t

∘

j

,

𝖺𝗉

t

∘

h

)

.
We show that this is an equivalence.

Firstly, given a

c

=

(

i

,

j

,

h

)

:

𝖼𝗈𝖼𝗈𝗇𝖾

𝒟

⁢

(

E

)

, we need to construct a
map

𝗌

⁢

(

c

)

from

A

⊔

C

B

to

E

.

\includegraphics

HoTT_fig_6.8.4.png

The map

𝗌

⁢

(

c

)

is defined in the following way

𝗌

⁢

(

c

)

⁢

(

𝗂𝗇𝗅

⁢

(

a

)

)

:

≡

i

(

a

)

,

𝗌

⁢

(

c

)

⁢

(

𝗂𝗇𝗋

⁢

(

b

)

)

:

≡

j

(

b

)

,

𝖺𝗉

𝗌

⁢

(

c

)

⁢

(

𝗀𝗅𝗎𝖾

⁢

(

x

)

)

:=

h

⁢

(

x

)

.

We have defined a map

{

𝖼𝗈𝖼𝗈𝗇𝖾

𝒟

⁢

(

E

)

⟶

(

A

⊔

B

C

→

E

)

c

⟼

𝗌

⁢

(

c

)

and we need to prove that this map is an

inverse

to

t

↦

t

∘

c

⊔

.
On the one hand, if

c

=

(

i

,

j

,

h

)

:

𝖼𝗈𝖼𝗈𝗇𝖾

𝒟

⁢

(

E

)

, we have

𝗌

⁢

(

c

)

∘

c

⊔

=

(

𝗌

⁢

(

c

)

∘

𝗂𝗇𝗅

,

𝗌

⁢

(

c

)

∘

𝗂𝗇𝗋

,

𝖺𝗉

𝗌

⁢

(

c

)

∘

𝗀𝗅𝗎𝖾

)

=

(

λ

a

.

𝗌

(

c

)

(

𝗂𝗇𝗅

(

a

)

)

,

λ

b

.

𝗌

(

c

)

(

𝗂𝗇𝗋

(

b

)

)

,

λ

x

.

𝖺𝗉

𝗌

⁢

(

c

)

(

𝗀𝗅𝗎𝖾

(

x

)

)

)

=

(

λ

a

.

i

(

a

)

,

λ

b

.

j

(

b

)

,

λ

x

.

h

(

x

)

)

≡

(

i

,

j

,

h

)

=

c

.

On the other hand, if

t

:

A

⊔

B

C

→

E

, we want to prove that

𝗌

⁢

(

t

∘

c

⊔

)

=

t

.
For

a

:

A

, we have

𝗌

⁢

(

t

∘

c

⊔

)

⁢

(

𝗂𝗇𝗅

⁢

(

a

)

)

=

t

⁢

(

𝗂𝗇𝗅

⁢

(

a

)

)

because the first component of

t

∘

c

⊔

is

t

∘

𝗂𝗇𝗅

. In
the same way, for

b

:

B

we have

𝗌

⁢

(

t

∘

c

⊔

)

⁢

(

𝗂𝗇𝗋

⁢

(

b

)

)

=

t

⁢

(

𝗂𝗇𝗋

⁢

(

b

)

)

and for

x

:

C

we have

𝖺𝗉

𝗌

⁢

(

t

∘

c

⊔

)

⁢

(

𝗀𝗅𝗎𝖾

⁢

(

x

)

)

=

𝖺𝗉

t

⁢

(

𝗀𝗅𝗎𝖾

⁢

(

x

)

)

hence

𝗌

⁢

(

t

∘

c

⊔

)

=

t

.

This proves that

c

↦

𝗌

⁢

(

c

)

is a

quasi-inverse

to

t

↦

t

∘

c

⊔

, as desired.
∎

A number of standard homotopy-theoretic constructions can be expressed as (homotopy) pushouts.

•

The pushout of the span

𝟏

←

A

→

𝟏

is the

suspension

Σ

⁢

A

(see §6.5 (

http://planetmath.org/65suspensions

)).

•

The pushout of

A

←

𝗉𝗋

1

A

×

B

→

𝗉𝗋

2

B

is called the

join

of

A

and

B

, written

A

*

B

.

•

The pushout of

𝟏

←

A

→

𝑓

B

is the

cone

or

cofiber

of

f

.

•

If

A

and

B

are equipped with

basepoints

a

0

:

A

and

b

0

:

B

, then the pushout of

A

←

a

0

𝟏

→

b

0

B

is the

wedge

A

∨

B

.

•

If

A

and

B

are pointed as before, define

f

:

A

∨

B

→

A

×

B

by

f

(

𝗂𝗇𝗅

(

a

)

)

:

≡

(

a

,

b

0

)

and

f

(

𝗂𝗇𝗋

(

b

)

)

:

≡

(

a

0

,

b

)

, with

f

(

𝗀𝗅𝗎𝖾

)

:=

𝗋𝖾𝖿𝗅

(

a

0

,

b

0

)

.
Then the cone of

f

is called the

smash product

A

∧

B

.

We will discuss pushouts further in

http://planetmath.org/node/87580

Chapter 7,

http://planetmath.org/node/87582

Chapter 8.

Remark 6.8.3

.

As remarked in §3.7 (

http://planetmath.org/37propositionaltruncation

), the notations

∧

and

∨

for the smash product and wedge of pointed spaces are also used in logic for “and” and “or”, respectively.
Since types in

homotopy type theory

can behave either like spaces or like

propositions

, there is technically a potential for conflict — but since they rarely do both at once,

context

generally disambiguates.
Furthermore, the smash product and wedge only apply to

pointed

spaces, while the only pointed mere proposition is

⊤

≡

1

— and we have

1

∧

1

=

1

and

1

∨

1

=

1

for either meaning of

∧

and

∨

.

Remark 6.8.4

.

Note that colimits do not in general preserve truncatedness.
For

instance

,

S

0

and

1

are both sets, but the pushout of

1

←

S

0

→

1

is

S

1

, which is not a set.
If we are interested in colimits in the

category

of

n

-types, therefore (and, in particular, in the

category of sets

), we need to “truncate” the colimit somehow.
We will return to this point in §6.9 (

http://planetmath.org/69truncations

),

http://planetmath.org/node/87580

Chapter 7,

http://planetmath.org/node/87584

Chapter 10.

Title

6.8 Pushouts

\metatable

Generated on Thu Feb 8 19:38:30 2018 by

LaTeXML