9.9 The Rezk completion

9.9 The Rezk completion

In this

section

we will give a

universal

way to replace a

precategory

by a

category

.
In fact, we will give two.
Both rely on the fact that “categories see

weak equivalences

as

equivalences

”.

To prove this, we begin with a couple of lemmas which are completely standard

category theory

, phrased carefully so as to make sure we are using the eliminator for

∥

–

∥

-

1

correctly.
One would have to be similarly careful in classical category theory if one wanted to avoid the

axiom of choice

: any time we want to define a

function

, we need to characterize its values uniquely somehow.

Lemma 9.9.1

.

If

A

,

B

,

C

are precategories and

H

:

A

→

B

is an essentially surjective functor, then

(

–

∘

H

)

:

C

B

→

C

A

is

faithful

.

Proof.

Let

F

,

G

:

B

→

C

, and

γ

,

δ

:

F

→

G

be such that

γ

⁢

H

=

δ

⁢

H

; we must show

γ

=

δ

.
Thus let

b

:

B

; we want to show

γ

b

=

δ

b

.
This is a mere proposition, so since

H

is

essentially surjective

, we may assume given an

a

:

A

and an

isomorphism

f

:

H

⁢

a

≅

b

.
But now we have

γ

b

=

G

⁢

(

f

)

∘

γ

H

⁢

a

∘

F

⁢

(

f

-

1

)

=

G

⁢

(

f

)

∘

δ

H

⁢

a

∘

F

⁢

(

f

-

1

)

=

δ

b

.

∎

Lemma 9.9.2

.

If

A

,

B

,

C

are precategories and

H

:

A

→

B

is essentially surjective and full, then

(

–

∘

H

)

:

C

B

→

C

A

is fully faithful.

Proof.

It remains to show fullness.
Thus, let

F

,

G

:

B

→

C

and

γ

:

F

⁢

H

→

G

⁢

H

.
We claim that for any

b

:

B

, the type

∑

(

g

:

hom

C

(

F

b

,

G

b

)

)

∏

(

a

:

A

)

∏

(

f

:

H

a

≅

b

)

(

γ

a

=

G

f

-

1

∘

g

∘

F

f

)

(9.9.3)

is

contractible

.
Since

contractibility

is a mere property, and

H

is essentially surjective, we may assume given

a

0

:

A

and

h

:

H

⁢

a

0

≅

b

.

Now take

g

:

≡

G

h

∘

γ

a

0

∘

F

h

-

1

.
Then given any other

a

:

A

and

f

:

H

⁢

a

≅

b

, we must show

γ

a

=

G

⁢

f

-

1

∘

g

∘

F

⁢

f

.
Since

H

is full, there merely exists a

morphism

k

:

hom

A

⁡

(

a

,

a

0

)

such that

H

⁢

k

=

h

-

1

∘

f

.
And since our goal is a mere proposition, we may assume given some such

k

.
Then we have

γ

a

=

G

⁢

H

⁢

k

-

1

∘

γ

a

0

∘

F

⁢

H

⁢

k

=

G

⁢

f

-

1

∘

G

⁢

h

∘

γ

a

0

∘

F

⁢

h

-

1

∘

F

⁢

f

=

G

⁢

f

-

1

∘

g

∘

F

⁢

f

.

Thus, (

9.9.3

) is inhabited.
It remains to show it is a mere proposition.
Let

g

,

g

′

:

hom

C

⁡

(

F

⁢

b

,

G

⁢

b

)

be such that for all

a

:

A

and

f

:

H

⁢

a

≅

b

, we have both

(

γ

a

=

G

⁢

f

-

1

∘

g

∘

F

⁢

f

)

and

(

γ

a

=

G

⁢

f

-

1

∘

g

′

∘

F

⁢

f

)

.
The dependent product types are mere propositions, so all we have to prove is

g

=

g

′

.
But this is a mere proposition, so we may assume

a

0

:

A

and

h

:

H

⁢

a

0

≅

b

, in which case we have

g

=

G

⁢

h

∘

γ

a

0

∘

F

⁢

h

-

1

=

g

′

.

This proves that (

9.9.3

) is contractible for all

b

:

B

.
Now we define

δ

:

F

→

G

by taking

δ

b

to be the unique

g

in (

9.9.3

) for that

b

.
To see that this is natural, suppose given

f

:

hom

B

⁡

(

b

,

b

′

)

; we must show

G

⁢

f

∘

δ

b

=

δ

b

′

∘

F

⁢

f

.
As before, we may assume

a

:

A

and

h

:

H

⁢

a

≅

b

, and likewise

a

′

:

A

and

h

′

:

H

⁢

a

′

≅

b

′

.
Since

H

is full as well as essentially surjective, we may also assume

k

:

hom

A

⁡

(

a

,

a

′

)

with

H

⁢

k

=

h

′

-

1

∘

f

∘

h

.

Since

γ

is natural,

G

⁢

H

⁢

k

∘

γ

a

=

γ

a

′

∘

F

⁢

H

⁢

k

.
Using the definition of

δ

, we have

G

⁢

f

∘

δ

b

=

G

⁢

f

∘

G

⁢

h

∘

γ

a

∘

F

⁢

h

-

1

=

G

⁢

h

′

∘

G

⁢

H

⁢

k

∘

γ

a

∘

F

⁢

h

-

1

=

G

⁢

h

′

∘

γ

a

′

∘

F

⁢

H

⁢

k

∘

F

⁢

h

-

1

=

G

⁢

h

′

∘

γ

a

′

∘

F

⁢

h

′

-

1

∘

F

⁢

f

=

δ

b

′

∘

F

⁢

f

.

Thus,

δ

is natural.
Finally, for any

a

:

A

, applying the definition of

δ

H

⁢

a

to

a

and

1

a

, we obtain

γ

a

=

δ

H

⁢

a

.
Hence,

δ

∘

H

=

γ

.
∎

The rest of the

theorem

follows almost exactly the same lines, with the category-ness of

C

inserted in one crucial step, which we have italicized below for emphasis.
This is the point at which we are trying to define a function into

objects

without using choice, and so we must be careful about what it means for an object to be “uniquely specified”.
In classical category theory, all one can say is that this object is specified up to unique isomorphism, but in set-theoretic

foundations

this is not a

sufficient

amount of uniqueness to give us a function without invoking

𝖠𝖢

.
In

univalent foundations

, however, if

C

is a category, then isomorphism is equality, and we have the appropriate sort of uniqueness (namely, living in a contractible space).

Theorem 9.9.4

.

If

A

,

B

are precategories,

C

is a category, and

H

:

A

→

B

is a weak equivalence, then

(

–

∘

H

)

:

C

B

→

C

A

is an isomorphism.

Proof.

By

\autoref

ct:functor-cat,

C

B

and

C

A

are categories.
Thus, by

\autoref

ct:eqv-levelwise it will suffice to show that

(

–

∘

H

)

is an equivalence.
But since we know from the preceding two lemmas that it is fully faithful, by

\autoref

ct:catweq it will suffice to show that it is essentially surjective.
Thus, suppose

F

:

A

→

C

; we want there to merely exist a

G

:

B

→

C

such that

G

⁢

H

≅

F

.

For each

b

:

B

, let

X

b

be the type whose

elements

consist of:

1.

An element

c

:

C

; and

2.

For each

a

:

A

and

h

:

H

⁢

a

≅

b

, an isomorphism

k

a

,

h

:

F

⁢

a

≅

c

; such that

3.

For each

(

a

,

h

)

and

(

a

′

,

h

′

)

as in

2

and each

f

:

hom

A

⁡

(

a

,

a

′

)

such that

h

′

∘

H

⁢

f

=

h

, we have

k

a

′

,

h

′

∘

F

⁢

f

=

k

a

,

h

.

We claim that for any

b

:

B

, the type

X

b

is contractible.
As this is a mere proposition, we may assume given

a

0

:

A

and

h

0

:

H

⁢

a

0

≅

b

.
Let

c

0

:

≡

F

a

0

.
Next, given

a

:

A

and

h

:

H

⁢

a

≅

b

, since

H

is fully faithful there is a unique isomorphism

g

a

,

h

:

a

→

a

0

with

H

⁢

g

a

,

h

=

h

0

-

1

∘

h

; define

k

a

,

h

0

:

≡

F

g

a

,

h

.
Finally, if

h

′

∘

H

⁢

f

=

h

, then

h

0

-

1

∘

h

′

∘

H

⁢

f

=

h

0

-

1

∘

h

, hence

g

a

′

,

h

′

∘

f

=

g

a

,

h

and thus

k

a

′

,

h

′

0

∘

F

⁢

f

=

k

a

,

h

0

.
Therefore,

X

b

is inhabited.

Now suppose given another

(

c

1

,

k

1

)

:

X

b

.
Then

k

a

0

,

h

0

1

:

c

0

≡

F

⁢

a

0

≅

c

1

.

Since

C

is a category, we have

p

:

c

0

=

c

1

with

idtoiso

⁢

(

p

)

=

k

a

0

,

h

0

1

.

And for any

a

:

A

and

h

:

H

⁢

a

≅

b

, by

3

for

(

c

1

,

k

1

)

with

f

:

≡

g

a

,

h

, we have

k

a

,

h

1

=

k

a

0

,

h

0

1

∘

k

a

,

h

0

=

p

*

(

k

a

,

h

0

)

This gives the requisite data for an equality

(

c

0

,

k

0

)

=

(

c

1

,

k

1

)

, completing the proof that

X

b

is contractible.

Now since

X

b

is contractible for each

b

, the type

∏

(

b

:

B

)

X

b

is also contractible.
In particular, it is inhabited, so we have a function assigning to each

b

:

B

a

c

and a

k

.
Define

G

0

⁢

(

b

)

to be this

c

; this gives a function

G

0

:

B

0

→

C

0

.

Next we need to define the action of

G

on morphisms.
For each

b

,

b

′

:

B

and

f

:

hom

B

⁡

(

b

,

b

′

)

, let

Y

f

be the type whose elements consist of:

[resume]

1.

A morphism

g

:

hom

C

⁡

(

G

⁢

b

,

G

⁢

b

′

)

, such that

2.

For each

a

:

A

and

h

:

H

⁢

a

≅

b

, and each

a

′

:

A

and

h

′

:

H

⁢

a

′

≅

b

′

, and any

ℓ

:

hom

A

⁡

(

a

,

a

′

)

, we have

(

h

′

∘

H

ℓ

=

f

∘

h

)

→

(

k

a

′

,

h

′

∘

F

ℓ

=

g

∘

k

a

,

h

)

.

We claim that for any

b

,

b

′

and

f

, the type

Y

f

is contractible.
As this is a mere proposition, we may assume given

a

0

:

A

and

h

0

:

H

⁢

a

0

≅

b

, and each

a

0

′

:

A

and

h

0

′

:

H

⁢

a

0

′

≅

b

′

.
Then since

H

is fully faithful, there is a unique

ℓ

0

:

hom

A

⁡

(

a

0

,

a

0

′

)

such that

h

0

′

∘

H

⁢

ℓ

0

=

f

∘

h

0

.
Define

g

0

:

≡

k

a

0

′

,

h

0

′

∘

F

ℓ

0

∘

(

k

a

0

,

h

0

)

-

1

.

Now for any

a

,

h

,

a

′

,

h

′

, and

ℓ

such that

(

h

′

∘

H

⁢

ℓ

=

f

∘

h

)

, we have

h

-

1

∘

h

0

:

H

⁢

a

0

≅

H

⁢

a

, hence there is a unique

m

:

a

0

≅

a

with

H

⁢

m

=

h

-

1

∘

h

0

and hence

h

∘

H

⁢

m

=

h

0

.
Similarly, we have a unique

m

′

:

a

0

′

≅

a

′

with

h

′

∘

H

⁢

m

′

=

h

0

′

.
Now by

3

, we have

k

a

,

h

∘

F

⁢

m

=

k

a

0

,

h

0

and

k

a

′

,

h

′

∘

F

⁢

m

′

=

k

a

0

′

,

h

0

′

.
We also have

H

⁢

m

′

∘

H

⁢

ℓ

0

=

(

h

′

)

-

1

∘

h

0

′

∘

H

⁢

ℓ

0

=

(

h

′

)

-

1

∘

f

∘

h

0

=

(

h

′

)

-

1

∘

f

∘

h

∘

h

-

1

∘

h

0

=

H

⁢

ℓ

∘

H

⁢

m

and hence

m

′

∘

ℓ

0

=

ℓ

∘

m

since

H

is fully faithful.
Finally, we can compute

g

0

∘

k

a

,

h

=

k

a

0

′

,

h

0

′

∘

F

⁢

ℓ

0

∘

(

k

a

0

,

h

0

)

-

1

∘

k

a

,

h

=

k

a

0

′

,

h

0

′

∘

F

⁢

ℓ

0

∘

F

⁢

m

-

1

=

k

a

0

′

,

h

0

′

∘

(

F

⁢

m

′

)

-

1

∘

F

⁢

ℓ

=

k

a

′

,

h

′

∘

F

⁢

ℓ

.

This

completes

the proof that

Y

f

is inhabited.
To show it is contractible, since hom-sets are sets, it suffices to take another

g

1

:

hom

C

⁡

(

G

⁢

b

,

G

⁢

b

′

)

satisfying

2

and show

g

0

=

g

1

.
However, we still have our specified

a

0

,

h

0

,

a

0

′

,

h

0

′

,

ℓ

0

around, and

2

implies both

g

0

and

g

1

must be equal to

k

a

0

′

,

h

0

′

∘

F

⁢

ℓ

0

∘

(

k

a

0

,

h

0

)

-

1

.

This completes the proof that

Y

f

is contractible for each

b

,

b

′

:

B

and

f

:

hom

B

⁡

(

b

,

b

′

)

.
Therefore, there is a function assigning to each such

f

its unique inhabitant; denote this function

G

b

,

b

′

:

hom

B

⁡

(

b

,

b

′

)

→

hom

C

⁡

(

G

⁢

b

,

G

⁢

b

′

)

.
The proof that

G

is a

functor

is straightforward; in each case we can choose

a

,

h

and apply

2

.

Finally, for any

a

0

:

A

, defining

c

:

≡

F

a

0

and

k

a

,

h

:

≡

F

g

, where

g

:

hom

A

⁡

(

a

,

a

0

)

is the unique isomorphism with

H

⁢

g

=

h

, gives an element of

X

H

⁢

a

0

.
Thus, it is equal to the specified one; hence

G

⁢

H

⁢

a

=

F

⁢

a

.
Similarly, for

f

:

hom

A

⁡

(

a

0

,

a

0

′

)

we can define an element of

Y

H

⁢

f

by transporting along these equalities, which must therefore be equal to the specified one.
Hence, we have

G

⁢

H

=

F

, and thus

G

⁢

H

≅

F

as desired.
∎

Therefore, if a precategory

A

admits a weak equivalence functor

A

→

A

^

, then that is its “

reflection

” into categories: any functor from

A

into a category will factor essentially uniquely through

A

^

.
We now give two constructions of such a weak equivalence.

Theorem 9.9.5

.

For any precategory

A

, there is a category

A

^

and a weak equivalence

A

→

A

^

.

First proof.

Let

A

^

0

:

≡

\setof

F

:

𝒮

e

t

A

op

|

∃

(

a

:

A

)

.

(

𝐲

a

≅

F

)

, with hom-sets inherited from

𝒮

⁢

e

⁢

t

A

op

.
Then the

inclusion

A

^

→

𝒮

⁢

e

⁢

t

A

op

is fully faithful and an

embedding

on objects.
Since

𝒮

⁢

e

⁢

t

A

op

is a category (by

\autoref

ct:functor-cat, since

𝒮

⁢

e

⁢

t

is so by univalence),

A

^

is also a category.

Let

A

→

A

^

be the

Yoneda embedding

.
This is fully faithful by

\autoref

ct:yoneda-embedding, and essentially surjective by definition of

A

^

0

.
Thus it is a weak equivalence.
∎

This proof is very slick, but it has the drawback that it increases

universe

level.
If

A

is a category in a universe

𝒰

, then in this proof

𝒮

⁢

e

⁢

t

must be at least as large as

𝒮

⁢

e

⁢

t

𝒰

.
Then

𝒮

⁢

e

⁢

t

𝒰

and

(

𝒮

⁢

e

⁢

t

𝒰

)

A

op

are not themselves categories in

𝒰

, but only in a higher universe, and

a priori

the same is true of

A

^

.
One could imagine a resizing axiom that could deal with this, but it is also possible to give a direct construction using

higher inductive types

.

Second proof.

We define a higher inductive type

A

^

0

with the following constructors:

•

A function

i

:

A

0

→

A

^

0

.

•

For each

a

,

b

:

A

and

e

:

a

≅

b

, an equality

j

⁢

e

:

i

⁢

a

=

i

⁢

b

.

•

For each

a

:

A

, an equality

j

⁢

(

1

a

)

=

𝗋𝖾𝖿𝗅

i

⁢

a

.

•

For each

(

a

,

b

,

c

:

A

)

,

(

f

:

a

≅

b

)

, and

(

g

:

b

≅

c

)

, an equality

j

⁢

(

g

∘

f

)

=

j

⁢

(

f

)

⁢

\centerdot

⁢

j

⁢

(

g

)

.

•

1-truncation: for all

x

,

y

:

A

^

0

and

p

,

q

:

x

=

y

and

r

,

s

:

p

=

q

, an equality

r

=

s

.

Note that for any

a

,

b

:

A

and

p

:

a

=

b

, we have

j

(

𝗂𝖽𝗍𝗈𝗂𝗌𝗈

(

p

)

)

=

i

(

p

)

.
This follows by path

induction

on

p

and the third constructor.

The type

A

^

0

will be the type of objects of

A

^

; we now build all the rest of the

structure

.
(The following proof is of the sort that can benefit a lot from the help of a computer proof assistant: it is wide and shallow with many short cases to consider, and a large part of the work consists of writing down what needs to be checked.)

Step 1:

We define a family

hom

A

^

:

A

^

0

→

A

^

0

→

\set

by double induction on

A

^

0

.
Since

\set

is a 1-type, we can ignore the 1-truncation constructor.
When

x

and

y

are of the form

i

⁢

a

and

i

⁢

b

, we take

hom

A

^

(

i

a

,

i

b

)

:

≡

hom

A

(

a

,

b

)

.
It remains to consider all the other possible pairs of constructors.

Let us keep

x

=

i

⁢

a

fixed at first.
If

y

varies along the

identity

j

⁢

e

:

i

⁢

b

=

i

⁢

b

′

, for some

e

:

b

≅

b

′

, we require an identity

hom

A

⁡

(

a

,

b

)

=

hom

A

⁡

(

a

,

b

′

)

.
By univalence, it suffices to give an equivalence

hom

A

⁡

(

a

,

b

)

≃

hom

A

⁡

(

a

,

b

′

)

.
We take this to be the function

(

e

∘

–

)

:

hom

A

⁡

(

a

,

b

)

→

hom

A

⁡

(

a

,

b

′

)

.
To see that this is an equivalence, we give its

inverse

as

(

e

-

1

∘

–

)

, with witnesses to

inversion

coming from the fact that

e

-

1

is the inverse of

e

in

A

.

As

y

varies along the identity

j

⁢

(

1

b

)

=

𝗋𝖾𝖿𝗅

i

⁢

b

, we require an identity

(

1

b

∘

–

)

=

𝗋𝖾𝖿𝗅

hom

A

⁡

(

a

,

b

)

; this follows from the identity axiom

1

b

∘

g

=

g

of a precategory.
Similarly, as

y

varies along the identity

j

⁢

(

g

∘

f

)

=

j

⁢

(

f

)

⁢

\centerdot

⁢

j

⁢

(

g

)

, we require an identity

(

(

g

∘

f

)

∘

–

)

=

(

g

∘

(

f

∘

–

)

)

, which follows from

associativity

.

Now we consider the other constructors for

x

.
Say that

x

varies along the identity

j

⁢

(

e

)

:

i

⁢

a

=

i

⁢

a

′

, for some

e

:

a

≅

a

′

; we again must deal with all the constructors for

y

.
If

y

is

i

⁢

b

, then we require an identity

hom

A

⁡

(

a

,

b

)

=

hom

A

⁡

(

a

′

,

b

)

.
By univalence, this may come from an equivalence, and for this we can use

(

–

∘

e

-

1

)

, with inverse

(

–

∘

e

)

.

Still with

x

varying along

j

⁢

(

e

)

, suppose now that

y

also varies along

j

⁢

(

f

)

for some

f

:

b

≅

b

′

.
Then we need to know that the two concatenated identities

hom

A

⁡

(

a

,

b

)

=

hom

A

⁡

(

a

′

,

b

)

=

hom

A

⁡

(

a

′

,

b

′

)

⁢

\mathrlap

and

hom

A

⁡

(

a

,

b

)

=

hom

A

⁡

(

a

,

b

′

)

=

hom

A

⁡

(

a

′

,

b

′

)

are identical.
This follows from associativity:

(

f

∘

–

)

∘

e

-

1

=

f

∘

(

–

∘

e

-

1

)

.
The other two constructors for

y

are

trivial

, since they are 2-fold equalities in sets.

For the next two constructors of

x

, all but the first constructor for

y

is likewise trivial.
When

x

varies along

j

⁢

(

1

a

)

=

𝗋𝖾𝖿𝗅

i

⁢

a

and

y

is

i

⁢

b

, we use the identity axiom again.
Similarly, when

x

varies along

j

⁢

(

g

∘

f

)

=

j

⁢

(

f

)

⁢

\centerdot

⁢

j

⁢

(

g

)

, we use associativity again.
This completes the construction of

hom

A

^

:

A

^

0

→

A

^

0

→

\set

.

Step 2:

We give the precategory structure on

A

^

, always by induction on

A

^

0

.
We are now eliminating into sets (the hom-sets of

A

^

), so all but the first two constructors are trivial to deal with.

For identities, if

x

is

i

⁢

a

then we have

hom

A

^

⁡

(

x

,

x

)

≡

hom

A

⁡

(

a

,

a

)

and we define

1

x

:

≡

1

i

⁢

a

.
If

x

varies along

j

⁢

e

for

e

:

a

≅

a

′

, we must show that

𝗍𝗋𝖺𝗇𝗌𝗉𝗈𝗋𝗍

x

↦

hom

A

^

⁡

(

x

,

x

)

⁢

(

j

⁢

e

,

1

i

⁢

a

)

=

1

i

⁢

a

′

.
But by definition of

hom

A

^

, transporting along

j

⁢

e

is given by composing with

e

and

e

-

1

, and we have

e

∘

1

i

⁢

a

∘

e

-

1

=

1

i

⁢

a

′

.

For

composition

, if

x

,

y

,

z

are

i

⁢

a

,

i

⁢

b

,

i

⁢

c

respectively, then

hom

A

^

reduces to

hom

A

and we can define composition in

A

^

to be composition in

A

.
And when

x

,

y

, or

z

varies along

j

⁢

e

, then we verify the following equalities:

e

∘

(

g

∘

f

)

=

(

e

∘

g

)

∘

f

,

g

∘

f

=

(

g

∘

e

-

1

)

∘

(

e

∘

f

)

,

(

g

∘

f

)

∘

e

-

1

=

g

∘

(

f

∘

e

-

1

)

.

Finally, the associativity and unitality axioms are mere propositions, so all constructors except the first are trivial.
But in that case, we have the corresponding axioms in

A

.

Step 3

: We show that

A

^

is a category.
That is, we must show that for all

x

,

y

:

A

^

, the function

𝗂𝖽𝗍𝗈𝗂𝗌𝗈

:

(

x

=

y

)

→

(

x

≅

y

)

is an equivalence.
First we define, for all

x

,

y

:

A

^

, a function

k

x

,

y

:

(

x

≅

y

)

→

(

x

=

y

)

by induction.
As before, since our goal is a set, it suffices to deal with the first two constructors.

When

x

and

y

are

i

⁢

a

and

i

⁢

b

respectively, we have

hom

A

^

⁡

(

i

⁢

a

,

i

⁢

b

)

≡

hom

A

⁡

(

a

,

b

)

, with composition and identities inherited as well, so that

(

i

⁢

a

≅

i

⁢

b

)

is

equivalent

to

(

a

≅

b

)

.
But now we have the constructor

j

:

(

a

≅

b

)

→

(

i

a

=

i

b

)

.

Next, if

y

varies along

j

⁢

(

e

)

for some

e

:

b

≅

b

′

, we must show that for

f

:

a

≅

b

we have

j

(

j

(

e

)

*

(

f

)

)

=

j

(

f

)

\centerdot

j

(

e

)

.
But by definition of

hom

A

^

on equalities, transporting along

j

⁢

(

e

)

is equivalent to post-composing with

e

, so this equality follows from the last constructor of

A

^

0

.
The remaining case when

x

varies along

j

⁢

(

e

)

for

e

:

a

≅

a

′

is similar.
This completes the definition of

k

:

∏

(

x

,

y

:

A

^

0

)

(

x

≅

y

)

→

(

x

=

y

)

.

Now one thing we must show is that if

p

:

x

=

y

, then

k

⁢

(

𝗂𝖽𝗍𝗈𝗂𝗌𝗈

⁢

(

p

)

)

=

p

.
By induction on

p

, we may assume it is

𝗋𝖾𝖿𝗅

x

, and hence

𝗂𝖽𝗍𝗈𝗂𝗌𝗈

⁢

(

p

)

≡

1

x

.
Now we argue by induction on

x

:

A

^

0

, and since our goal is a mere proposition (since

A

^

0

is a 1-type), all constructors except the first are trivial.
But if

x

is

i

⁢

a

, then

k

⁢

(

1

i

⁢

a

)

≡

j

⁢

(

1

a

)

, which is equal to

𝗋𝖾𝖿𝗅

i

⁢

a

by the third constructor of

A

^

0

.

To complete the proof that

A

^

is a category, we must show that if

f

:

x

≅

y

, then

𝗂𝖽𝗍𝗈𝗂𝗌𝗈

⁢

(

k

⁢

(

f

)

)

=

f

.
By induction we may assume that

x

and

y

are

i

⁢

a

and

i

⁢

b

respectively, in which case

f

must arise from an isomorphism

g

:

a

≅

b

and we have

k

⁢

(

f

)

≡

j

⁢

(

g

)

.
However, for any

p

we have

𝗂𝖽𝗍𝗈𝗂𝗌𝗈

(

p

)

=

p

*

(

1

)

, so in particular

𝗂𝖽𝗍𝗈𝗂𝗌𝗈

(

j

(

g

)

)

=

j

(

g

)

*

(

1

i

⁢

a

)

.
And by definition of

hom

A

^

on equalities, this is given by composing

1

i

⁢

a

with the equivalence

g

, hence is equal to

g

.

Note the similarity of this step to the encode-decode method used in

\autoref

sec:compute-coprod,sec:compute-nat,cha:

homotopy

.
Once again we are characterizing the identity types of a higher inductive type (here,

A

^

0

) by defining recursively a family of codes (here,

(

x

,

y

)

↦

(

x

≅

y

)

) and

encoding

and decoding functions by induction on

A

^

0

and on paths.

Step 4

: We define a weak equivalence

I

:

A

→

A

^

.
We take

I

0

:

≡

i

:

A

0

→

A

^

0

, and by construction of

hom

A

^

we have functions

I

a

,

b

:

hom

A

⁡

(

a

,

b

)

→

hom

A

^

⁡

(

I

⁢

a

,

I

⁢

b

)

forming a functor

I

:

A

→

A

^

.
This functor is fully faithful by construction, so it remains to show it is essentially surjective.
That is, for all

x

:

A

^

we want there to merely exist an

a

:

A

such that

I

⁢

a

≅

x

.
As always, we argue by induction on

x

, and since the goal is a mere proposition, all but the first constructor are trivial.
But if

x

is

i

⁢

a

, then of course we have

a

:

A

and

I

⁢

a

≡

i

⁢

a

, hence

I

⁢

a

≅

i

⁢

a

.
(Note that if we were trying to prove

I

to be

split

essentially surjective, we would be stuck, because we know nothing about equalities in

A

0

and thus have no way to deal with any further constructors.)
∎

We call the construction

A

↦

A

^

the

Rezk completion

,
although there is also an

argument

(coming from higher topos

semantics

)
for calling it the

stack completion

.

We have seen that most precategories arising in practice are categories, since they are constructed from

𝒮

⁢

e

⁢

t

, which is a category by the univalence axiom.
However, there are a few cases in which the Rezk completion is necessary to obtain a category.

Example 9.9.6

.

Recall from

\autoref

ct:fundgpd that for any type

X

there is a pregroupoid with

X

as its type of objects and

hom

(

x

,

y

)

:

≡

∥

x

=

y

∥

0

.
Its Rezk completion is the

fundamental groupoid

of

X

.
Recalling that

groupoids

are equivalent to 1-types, it is not hard to identify this groupoid with

∥

X

∥

1

.

Example 9.9.7

.

Recall from

\autoref

ct:hoprecat that there is a precategory whose type of objects is

U

and with

hom

(

X

,

Y

)

:

≡

∥

X

→

Y

∥

0

.
Its Rezk completion may be called the

homotopy category of types

.
Its type of objects can be identified with

∥

U

∥

1

(see

\autoref

ct:ex:hocat).

The Rezk completion also allows us to show that the notion of “category” is determined by the notion of “weak equivalence of precategories”.
Thus, insofar as the latter is inevitable, so is the former.

Theorem 9.9.8

.

A precategory

C

is a category if and only if for every weak equivalence of precategories

H

:

A

→

B

, the

induced

functor

(

–

∘

H

)

:

C

B

→

C

A

is an isomorphism of precategories.

Proof.

“Only if” is

\autoref

ct:cat-weq-eq.
In the other direction, let

H

be

I

:

A

→

A

^

.
Then since

(

–

∘

I

)

0

is an equivalence, there exists

R

:

A

^

→

A

such that

R

⁢

I

=

1

A

.
Hence

I

⁢

R

⁢

I

=

I

, but again since

(

–

∘

I

)

0

is an equivalence, this implies

I

⁢

R

=

1

A

^

.
By

\autoref

ct:isoprecat

LABEL:item:ct:ipc3

,

I

is an isomorphism of precategories.
But then since

A

^

is a category, so is

A

.
∎

Title

9.9 The Rezk completion

\metatable

Generated on Thu Feb 8 19:43:12 2018 by

LaTeXML