Chris Grossack's Blog
https://grossack.site
A Quick Application of Model Categories<p>Almost exactly a year ago (time flies!) I was thinking really hard about
model categories in preparation for the HoTTEST summer school. I learned
a TON doing this, but I’ve just today seen a really nice (and somewhat concrete)
reason to care about the whole endeavor! I’d love to share it ^_^</p>
<p>Also, I know the blog posts have been slow lately. I have a handful of bigger
posts in the pipeline that I really want to finish up as soon as I find the time.
One is on 2-categories and what kinds of problems they solve (with a little
appendix on an application of 3-categories), and another is on various ways
of understanding categories. A category is simultaneously a
geometric, logical, algebraic, set theoretic, etc. object, and this is part of
what makes category theory so interesting and useful… but also so hard to
learn! This post will break down all the ways I know of to think about categories,
and why these different perspectives are useful.
The 2-category post is likely to come out fairly soon, but the post on
different perspectives is liable to take longer, haha. Still, I think they’ll
both be good posts, so I’m excited to get them finished.</p>
<p>As long as we’re giving little life updates, I’m going to two conferences
next week: The ASL general meeting in Irvine (where I’ll get to hang out with
other logicians again! Actually, one of my best friends <a href="https://pedromarun.github.io">Pedro Marun</a> is
giving a talk on Tuesday, which I’m looking forward to) as well as a
geometric group theory conference at
UC Riverside. I’m going to have to split my time between the two conferences,
since they perfectly overlap, but I really want to go to both. Thankfully
Irvine and Riverside are only a 2 hour trainride apart!</p>
<p>There’s a paper of mine that’s been literally written, and just needs
some revision, since <em>august of last year</em>. I want to talk about it with
people at the geometric group theory conference, which means I should try
to finish it this week… I’ll take a day and so that soon, but I’m
running out of week, haha.</p>
<p>Ok, that’s enough about my life. Let’s get into the math!</p>
<hr />
<p>First, let’s have a brief reminder of what a <a href="https://en.wikipedia.org/wiki/Model_category">model category</a> is.
This is likely to be slightly ahistorical, since I’m optimizing for
pedagogy rather than a correct timeline.</p>
<p>In $\mathsf{Top}$, the category of topological spaces, we find that
continuous maps are often the wrong thing to study, in part because
there’s too many. We can cut down on this by considering continuous
functions “up to <a href="https://en.wikipedia.org/wiki/Homotopy">homotopy</a>”, and when we do this we get a new category
$\mathsf{hTop}$ which is as badly behaved as it is useful.</p>
<p>Mathematicians developed lots of tools for studying this category by working
in (the much better behaved) $\mathsf{Top}$ for as long as possible, then
quotienting out the homotopy relation at the very end.</p>
<p>Algebraically, we have the <a href="https://en.wikipedia.org/wiki/Derived_category">derived category</a> of Grothendieck’s school.
Here we have a notion of “chain homotopy” and again we want to consider
not <em>all</em> chain maps, but merely chain maps up to homotopy. Again, the
derived category is badly behaved, so we want to make computations in
(the much better behaved) category of chain complexes for as long as possible,
and quotient at the end.</p>
<p>There are many informal analogies between these two settings, morally mediated
by the functor assigning to a topological space $X$ its “singular chain complex”
$\text{Sing}_\bullet(X)$. Then homotopy in the topological setting becomes
homotopy in the chain complex setting. Quillen made this analogy precise by
distilling the common techniques between these two settings into the
axioms for a model category. Now we know if we have a category $\mathcal{C}$
that admits a model structure, many of the techniques for working
“up to homotopy” are immediately applicable to working with objects of
$\mathcal{C}$ up to homotopy!</p>
<div class="boxed">
<p>A <span class="defn">Model Structure</span> on $\mathcal{C}$ consists of
three sets of arrows:</p>
<ul>
<li>The <span class="defn">Weak Equivalences</span></li>
<li>The <span class="defn">Fibrations</span></li>
<li>The <span class="defn">Cofibrations</span></li>
</ul>
<p>satisfying certain axioms.</p>
<p>We think of a weak equivalence as an “isomorphism up to homotopy”,
a fibration as a “homotopically nice surjection” and a cofibration
as a “homotopically nice inclusion”.</p>
<p>You can read more in an <a href="/2022/07/11/model-categories.html">old blog post</a> of mine, which also gives
plenty of references if you’re interested in learning more!</p>
</div>
<p>The only axiom I’ll mention here is the “lifting” axiom. It says that
whenever we have a situation:</p>
<p style="text-align:center;">
<img src="/assets/images/quick-model-cats-application/square.png" width="33%" />
</p>
<p>where $\iota$ is a cofibration, $\pi$ is a fibration, and at least one
of the two is a weak equivalence, then we can always find a lift:</p>
<p style="text-align:center;">
<img src="/assets/images/quick-model-cats-application/square-filled.png" width="33%" />
</p>
<p>making the square commute.</p>
<hr />
<p>Now, this is great and all, but what does it <em>do</em> for us? I’m happy with the
ability to generalize old arguments to new settings, and model categories
are very useful in modern mathematics for exactly this reason. But if we have
a good abstract framework it should do <em>more</em> than just generalize! It should
also recast old results in a way that’s easier to understand. After all,
in the right level of generality, there’s often only one obvious thing to try!</p>
<p>And this is what prompted me to write this post. Earlier today I was reading
Kottke’s notes on bundles (available <a href="https://ckottke.ncf.edu/docs/bundles.pdf">here</a>), which led me to a slightly
surprising theorem in the comments of a <a href="https://math.stackexchange.com/questions/3548714/existence-of-section-on-fiber-bundles-with-contractible-fibers">mse question</a> (which, in hindsight, I think I’ve seen before):</p>
<div class="boxed">
<p>If $\pi : E \to B$ is a fibre bundle with contractible fibres, then we
can always find a section of $\pi$. That is, a map $s : B \to E$ with
$\pi s = \text{id}_B$.</p>
</div>
<p>The key idea is that it’s easy to build maps into a contractible space<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>,
so contractible fibres make it easy to build a section of $\pi$. But how
do we make this idea precise?</p>
<p>Here’s two proofs, which do two different things.</p>
<p><br /><br /></p>
<p>$\ulcorner$
<strong>Proof 1:</strong></p>
<p>Fix a CW structure on $B$. We’ll build the map $B \to E$ inductively.</p>
<p>First, to each $0$-cell $x$ in our structure, we’ll choose a
point in the fibre over $x$.</p>
<p>Next, we want to say that for each $1$-cell in our structure
(a path $x$ to $y$ between two $0$-cells) we can <em>extend</em> this map
to the whole $1$-cell. One can show that this extension always exists.</p>
<p>Next, we say for each $2$-cell in our structure (a disk whose boundary
is built from $1$-cells) we can <em>extend</em> this map to the $2$-cell.
Again, one can show this always exists.</p>
<p>In general, inductively assume we’ve defined a map $B^{(k)} \to E$ from
the $k$-skeleton of $B$ to $E$. We would like to extend this map to the
$(k+1)$-skeleton. One can show that the function extends to a $(k+1)$ cell
exactly when its image, restricted to the boundary of our cell, is
nullhomotopic. But we use our contractibility assumption here in order to
show that this condition always holds, so that we can always extend our function!</p>
<p>Along the way, we must be careful to make sure that our extension is always
a section of $\pi$ at each step, but again this is doable.</p>
<p>If you believe all this, then the union of these partial sections $s^{(k)}$
is the desired global section $s : B \to E$.
<span style="float:right">$\lrcorner$</span></p>
<p><br />
This proof is great because it really lets you feel like you understand
<em>what the section is</em>. After all, it gives us a (somewhat complicated)
procedure for building it<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup>! The downside, of course, is all of the
little technical details (all of which I glossed over). It feels like a
fairly delicate inductive construction, and it would be great if there were a
faster, more conceptual, proof. Enter model categories!</p>
<p><br /><br /></p>
<p>$\ulcorner$
<strong>Proof 2:</strong></p>
<p>Since $B$ is a CW complex, the unique map $\emptyset \to B$ is a
cofibration. Since $\pi : E \to B$ is a fibre bundle, it’s a fibration.</p>
<p>So we have a square</p>
<p style="text-align:center;">
<img src="/assets/images/quick-model-cats-application/square-2.png" width="33%" />
</p>
<p>whose left side is a cofibration and whose right side is a fibration. Then,
by the axiom we mentioned earlier, if we can show one of our arrows is a
weak equivalence we’ll be able to fill this square:</p>
<p style="text-align:center;">
<img src="/assets/images/quick-model-cats-application/square-filled-2.png" width="33%" />
</p>
<p>and commutativity of this diagram says that $\pi s = \text{id}_B$ so that
$s$ is a section of $\pi$!</p>
<p>There’s no way that $\emptyset$ is going to be weakly equivalent to $B$,
so we need to show that $\pi$ is a weak equivalence. That is, we need to
show that the maps on homotopy groups (sorry in advance for this notation)</p>
\[\pi_n(\pi) : \pi_n(E) \to \pi_n(B)\]
<p>should all be isomorphisms.</p>
<p>Now the <a href="https://en.wikipedia.org/wiki/Homotopy_group#Long_exact_sequence_of_a_fibration">long exact sequence</a> of a fibration tells us</p>
\[\cdots \to \pi_n(F) \to \pi_n(E) \to \pi_n(B) \to \pi_{n-1}(F) \to \cdots\]
<p>But each $\pi_k(F) = 0$ since our fibres are contractible! Thus our long
exact sequence becomes $0 \to \pi_n(E) \to \pi_n(B) \to 0$ and we get the
desired isomorphisms. So $\pi$ is a weak equivalence, and the lifting
axiom gives us our desired section.
<span style="float:right">$\lrcorner$</span></p>
<p><br />
This proof is nice because it’s very conceptual. Provided you’re comfortable
with long exact sequences, the proof is much less fiddly than the previous
inductive proof, so there’s less that can go wrong along the way.
The downside, of course, is that it makes it less clear what our section
“really is”, since we don’t have to build it ourselves.</p>
<p>I wouldn’t be surprised if there’s a fiddly inductive proof involved in
the proof that $\mathsf{Top}$ really <em>does</em> satisfy the model category
axioms (in particular this lifting axiom), but that’s part of the beauty of
theories like this!
By packaging these technical proofs into a single (easy to use) set of axioms,
we’re able to make future proofs less error prone! We get the technical work
out of the way up front and all at once so that future mathematicians will
have an easier time.</p>
<p>This is analogous to building a nice API for the theory. Lots of work
went on behind the scenes, but now we can use that work without needing to
check ourselves that $\mathsf{Top}$ really <em>is</em> a model category! But to
use it, we need to <em>know that the API exists</em>. So it’s useful
to learn the language of model categories even if we <em>aren’t</em> interested in
the vast generalization of homotopy theory to other categories.</p>
<hr />
<p>Thanks for reading! In hindsight, this is slightly less “down to earth” than
I originally thought it was, haha. I’ve been doing math for far too long
and it’s rotted my brain a little bit.</p>
<p>That said, hopefully the takeaway is clear. By packaging a fiddly proof into
an axiom, we’re able to work with the cleaner axiom directly, rather
than having to do a fiddly inductive proof ourselves! This is one way for the
model category axioms to justify themselves. The fact that these axioms are
satisfied for other categories as well can be thought of as icing on the cake!</p>
<p>This was a super quick one (I think I wrote it in under two hours, which is
unheard of for me) because I really wanted to get it out before I do a bunch
of other, more pressing work. This was helpful as well, because it means I
allowed myself to not look too deeply into the details of proof $1$. I don’t
fully understand it (and that probably shows from my sketch) but I think
that’s ok. One of these days I’ll get around to learning some obstruction
theory, and at that point I’ll come back to the proof with a better
appreciation for <em>just</em> how fiddly the induction is ^_^.</p>
<p>Stay warm, everyone. Talk soon!</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>This idea forms the beginning of <a href="https://en.wikipedia.org/wiki/Obstruction_theory">obstruction theory</a>. I would
love to know more about this, but I haven’t had the time to really
look into it. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>As an aside, I would be curious how constructive
the obstruction theory here is. Given a function on the $k$-skeleton, can
a computer <em>actually</em> find me the extension provided the nullhomotopic
condition is satisfied? <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Wed, 22 Mar 2023 00:00:00 +0000
https://grossack.site/2023/03/22/quick-model-cats-application.html
https://grossack.site/2023/03/22/quick-model-cats-application.htmlBuilding Objects with Category Theory<p>Typically category theory is useful for showing the <em>uniqueness</em>
of certain objects by checking that they satisfy some
<a href="https://en.wikipedia.org/wiki/Universal_property">universal property</a>. This makes them unique up to unique isomorphism.
However, category theory can <em>also</em> be used in order to show that objects
exist <em>at all</em>, usually with the help of the <a href="https://ncatlab.org/nlab/show/adjoint+functor+theorem">Adjoint Functor Theorems</a>.</p>
<p>The plan is to build a functor which does something useful. Then we’ll show
that the functor is <a href="https://en.wikipedia.org/wiki/Representable_functor">representable</a>. In particular, there’s an object
$X$ representing the functor, and we’ll have shown the existence of $X$
purely abstractly!</p>
<p>This is a very common mode of argument nowadays in algebraic geometry.
You want to build a <a href="https://en.wikipedia.org/wiki/Moduli_space">moduli space</a> for some family of objects, but it
can be tricky to build it explicitly. Since it’s a moduli space, though,
we <em>know</em> what its “functor of points” should be. So if we can show
its functor of points is representable, we’ll be in business! This is
one reason to pass to the category of <a href="https://en.wikipedia.org/wiki/Stack_(mathematics)">stacks</a>, since oftentimes
a moduli functor is representable as a stack but is <em>not</em> representable
by a scheme. For more information, see Alper’s excellent notes on
<a href="https://sites.math.washington.edu/~jarod/moduli.pdf">Stacks and Moduli</a>.</p>
<p>The algebro-geometric examples are quite intricate, but we can already
find a small example in <a href="https://en.wikipedia.org/wiki/Tensor_product">tensor products</a>. After all, we know the
tensor product $M \otimes N$ is supposed to represent bilinear maps from
$M$ and $N$!</p>
<p>Let’s see what this means, sketch how to build the tensor product purely
abstractly, and then talk about the benefits and shortcomings of this approach.</p>
<hr />
<p>First, what do we mean when we say the tensor product “represents”
bilinear maps? The answer is summed up in the
<em>universal property of the tensor product</em>:</p>
<div class="boxed">
<p>Linear maps $M \otimes N \to X$ are in (natural) bijection
with bilinear maps $M \times N \to X$.</p>
<p>Moreover, there is a <em>universal</em> bilinear map $M \times N \to M \otimes N$
which corresponds to the identity map under this bijection.</p>
</div>
<p>This universal property, like all universal properties,
pins down $M \otimes N$ up to unique isomorphism <em>if it exists</em>.
But it (crucially) doesn’t tell us whether $M \otimes N$ really <em>does</em> exist!
Maybe there’s no such object.</p>
<p>In the language of representable functors, we consider the functor
$\mathsf{BL}_{M,N} : \mathsf{Vect} \to \mathsf{Set}$ so that</p>
\[\mathsf{BL}_{M,N}(X) = \{ \text{bilinear maps } f : M \times N \to X \}\]
<p>Then the universal property says that there’s a bijection (natural in $X$)</p>
\[\mathsf{Vect}(M \otimes N, X) \cong \mathsf{BL}_{M,N}(X)\]
<p>so that $M \otimes N$ <span class="defn">represents</span> $\mathsf{BL}_{M,N}$.</p>
<hr />
<p>So the question, generally, is this:
If I give you some functor to $\mathsf{Set}$, how can we <em>tell</em> if it’s
representable or not? We know from experience that $\mathsf{BL}_{M,N}$ is
representable, but if you’d never heard of a tensor product before it would
probably be hard to make a guess!</p>
<div class="boxed">
<p>Here’s a cute example.
Is the functor $\mathsf{E}_M : \mathsf{Vect}^\text{op} \to \mathsf{Set}$
representable, where</p>
\[\mathsf{E}_{M,N}(X) = \{ \text{linear maps } f : M \oplus X \to N \}?\]
<p>Notice this is a <em>contravariant</em> functor, so a representing object would
be some vector space $Y$ with</p>
<p>\(\mathsf{E}_{M,N}(-) \cong \mathsf{Vect}(-,Y)\)</p>
</div>
<!-- No. Such an object Y would be the exponential N^M, but Vect is not cartesian closed -->
<p>We can answer this general question using the
<span class="defn">Adjoint Functor Theorems</span>.
While this is <em>presented</em> in a lot of category theory
classes, I think it’s often left mysterious how and
why to use it. Well here’s a prime example of the adjoint functor theorem in action:</p>
<div class="boxed">
<p>Theorem: Every representable functor preserves limits.</p>
<p>Theorem: If $\mathcal{C}$ is “nice”, then every limit-preserving functor is
representable!</p>
</div>
<p>The key to proving this (and to figuring out what “nice” means) lies in
the adjoint functor theorems. There are a whole bunch of adjoint functor
theorems, each of which is impossible to remember in its own special way. For instance:</p>
<div class="boxed">
<p><span class="defn">General Adjoint Functor Theorem</span></p>
<p>If $F : \mathcal{C} \to \mathcal{D}$ is a functor which preserves limits,
then $F$ admits a left adjoint provided the following conditions are met:</p>
<ol>
<li>$\mathcal{C}$ is complete and locally small</li>
<li>For each $d \in \mathcal{D}$ there’s a set ${c_i}$ of objects in $\mathcal{C}$
and arrows $f_i : d \to F c_i$ so that every arrow $g : d \to F x$ factors as
\(d \overset{f_i}{\to} Fc_i \overset{Ft}{\to} Fx\)
for some arrow $t : c_i \to x$.</li>
</ol>
</div>
<p>Condition (2) above is usually called the <a href="https://ncatlab.org/nlab/show/solution+set+condition">solution set condition</a>.</p>
<p>Thankfully, in many nice settings we don’t have to remember this condition!
Here are two easy to remmeber settings where adjoint functors always exist:</p>
<div class="boxed">
<ul>
<li>Any colimit preserving functor between grothendieck topoi is a left adjoint</li>
<li>Any limit preserving functor between grothendieck topoi is a right adjoint</li>
</ul>
</div>
<div class="boxed">
<ul>
<li>Any colimit preserving functor between “essentially algebraic” categories<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>
is a left adjoint</li>
<li>Any limit preserving functor that <em>also preserves filtered colimits</em>
between essentially algebraic categories is a right adjoint</li>
</ul>
</div>
<p>This is great and all, but what do adjoint functors have to do with representables? Here’s the key,
which for some reason wasn’t taught to me in any classes I took:</p>
<div class="boxed">
<p>If $F : \mathcal{C} \to \mathsf{Set}$ has a left adjoint $L$, then $F$ is representable</p>
</div>
<p>$\ulcorner$
We claim \(L \{ \star \}\) works. Indeed,
\(\mathcal{C}(L \{ \star \}, X) \cong \mathsf{Set}(\{ \star \}, FX) \cong FX\),
naturally in $X$.</p>
<p><span style="float:right">$\lrcorner$</span></p>
<p>In fact, this is typically the <em>only</em> way for $F$ to be representable:</p>
<div class="boxed">
<p>Exercise 4.6.iii in Emily Riehl’s <em>Category Theory in Context</em>:</p>
<p>Suppose $\mathcal{C}$ is a locally small category with coproducts. Show
$F : \mathcal{C} \to \mathsf{Set}$ is representable if and only if it admits
a left adjoint</p>
</div>
<hr />
<p>Ok, so now we have a strategy! To prove (purely abstractly) that tensor
products exist, we’ll show that \(\mathsf{BL}_{M,N} : \mathsf{Vect} \to \mathsf{Set}\)
has a left adjoint. Since $\mathsf{Vect}$ and $\mathsf{Set}$ are both
essentially algebraic (indeed they’re both <em>algebraic</em>), we just need to show
that it preserves limits and filtered colimits.</p>
<p>Thankfully, neither of these is too hard to check! Here’s a sketch, which can
be turned into a real proof by someone who doesn’t want to go to sleep soon<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup> :P.
They key insight is that for an arrow $f : X \to Y$, $\mathsf{BL}_{M,N}(f)$
is extremely simple: just compose your bilinear map $M \times N \to X$
with $f$! This, paired with the fact that everything here plays nicely with
the forgetful functor to $\mathsf{Set}$ makes the computations fairly painless.</p>
<p>$\ulcorner$
We start by showing that $\mathsf{BL}_{M,N}$ preserves limits,
and we can do this by checking that it preserves products and equalizers.</p>
<p>First, it’s easy to see that a bilinear map into $\prod X_\alpha$
is the same thing as a family of bilinear maps into each $X_\alpha$.
Next, we need to show that \(\mathsf{BL}_{M,N}\) preserves equalizers.
So if $f_\alpha : X \to Y$ is a family of maps, we’ll consider the equalizer</p>
\[E = \{ x \in X \mid \forall \alpha, \beta . f_\alpha x = f_\beta x \}\]
<p>Now \(\mathsf{BL}_{M,N}(E)\) is the set of bilinear maps $M \times N \to E$.
We would like this to agree with the equalizer in $\mathsf{Set}$ of the
\(\mathsf{BL}_{M,N}(f_\alpha) : \mathsf{BL}_{M,N}(X) \to \mathsf{BL}_{M,N}(Y)\).
That is, with the set of bilinear maps $g : M \times N \to X$ so that all of
the \(f_\alpha \circ g\) are equal. But if all the \(f_\alpha \circ g\) are equal,
then $g$ lands in the equalizer of the \(f_\alpha\) (computed in $\mathsf{Set}$)
which is the underlying set of $E$!</p>
<p>So $\mathsf{BL}_{M,N}$ preserves limits. Let’s move onto filtered colimits.</p>
<p>Say $\mathcal{D}$ is a filtered category and $X_{(-)}$ is a functor sending
each object $i$ of $\mathcal{D}$ to a vector space $X_i$. Then we want to show that
bilinear maps $M \times N$ into the colimit of the $X_i$ agrees with the
colimit of the sets of bilinear maps.</p>
<p>But what is $\varinjlim X_i$? It’s the disjoint union of the $X_i$, where we
glue together the points $x_i$ and $f x_i$ for each arrow $f$ in the diagram.
What makes this diagram filtered is that any two arrows are eventually
merged. So if we have a bilinear map $M \times N \to \varinjlim X_i$, we’re
choosing some equivalence class $[x_i]$ for each $(m,n)$ pair.</p>
<p>But if we have a family of sets of bilinear maps $M \times N \to X_i$,
their colimit is the disjoint union of these sets, where we glue together any
maps that are eventually merged. So we are left with equivalence classes
$[f_i]$ of maps landing in $X_i$.</p>
<p>Now it’s not hard to see that the function sending $[f_i]$ to the
$\varinjlim X_i$-valued bilinear map $(m,n) \mapsto [f_i(m,n)]$ is
well defined, and really <em>does</em> output a valid equivalence class. It’s
also not hard to see that, given some bilinear map
$f : M \times N \to \varinjlim X_i$, we can get a family of maps $f_i$
by letting $f_i(m,n)$ be the element of $X_i$ in the equivalence class of
$[x_i] = f(m,n)$. Checking that these maps are well defined is where we
crucially use filteredness of $\mathcal{D}$.</p>
<p>Then we check these maps are inverse to each other, so that $\mathsf{BL}_{M,N}$
preserves filtered colimits.
<span style="float:right">$\lrcorner$</span></p>
<p>So \(\mathsf{BL}_{M,N}\) is representable! Call the representing object
$M \otimes N$, and we’re done ^_^.</p>
<hr />
<p>Now I would argue that the above construction of the tensor product
is worse than the explicit definition (by generators and relations)
we typically see in an algebra class. It’s very high powered, and
gives very little insight into how to make computations with $M \otimes N$.</p>
<p>This, more generally, is the downside to showing the existence of objects
in this way. We have very little control over what the resulting object
looks like. We only know how to probe it by maps to other objects<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>.
The yoneda lemma tells us that this is enough to fully
understand the object we’ve built, and it’s often good enough in the
abstract, but sometimes you need to get your hands dirty and compute.</p>
<p>The big <em>benefit</em> to working this way is that it really doesn’t get <em>much</em>
harder than this. Yes this was a superpowered proof of the existence of
tensor products. But this proof doesn’t get any more complicated no matter
<em>what</em> we want to exist! If we want to build something particularly
complicated, then frequently this method (or one like it, tailored to the
category of interest) will be easier than having to construct the relevant
object by hand.</p>
<hr />
<p>Anyways, that’s going to do it for today’s post! I have like 4 or 5 posts
all most of the way done, and I want to start wrapping them up soon,
so hopefully there will be more Content™ for all of you in the near future ^_^.</p>
<p>As a quick story for how addled my brain is, though, I went to mark this post
off my todo list of blog post ideas<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup>, and I couldn’t find it on the todo list…
I knew I’d thought about making this post before, so it was weird it wasn’t there.</p>
<p>It turns out that I never bothered putting it in the todo list, because I
had <em>started writing</em> a version of this post in September of last year!
I actually remember doing that, because I had this realization about the
link between the adjoint functor theorems and representability<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup>
while (re)reading Emily Riehl’s <em>Category Theory in Context</em> on a trip to
New York. That became the impetus for this entire post, since it makes for
a good excuse to clarify the adjoint functor theorems.</p>
<p>In fact, that old draft is still in my git history, and I looked through it
after finishing the post, but before writing this epilogue. It’s
structurally pretty similar to this one, but longer<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">6</a></sup>, and with more examples
of moduli spaces in geometry. That’s not <em>so</em> surprising, since only a few
months prior I had been doing a reading course on stacks and moduli spaces
with <a href="https://sites.google.com/site/patriciogallardomath/">Patricio Gallardo Candela</a>. There’s part of me that wants to
move some of those examples here (for instance, projective space as a
moduli space of lines through the origin), but a bigger part of me that
wants to go to sleep, haha.
I’m sure I’ll have plenty of time to talk about moduli spaces in some
other post!</p>
<p>Thanks as always for reading. Stay warm, and we’ll chat soon<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">7</a></sup> ^_^.</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>More generally, <a href="https://ncatlab.org/nlab/show/locally+presentable+category">locally presentable</a> categories. It turns out that
models of an essentially algebraic theory form particularly nice
locally presentable categories, namely the “locally <em>finitely</em> presentable”
ones.</p>
<p>In particular, this includes your categories of groups, rings, modules, etc. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>I was actually working on a <em>different</em> blog post earlier today about
2-categories and why you should care (which is almost done), but I got
distracted and decided to work on this instead, haha.
So I <em>really</em> want this to be a one-night kind of blog post. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>Though the examples that show up geometrically are usually contravariant,
so we probe them with maps <em>from</em> other objects. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>Which, at time of writing, has 209 items… <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>Which again, nobody taught me for some reason! <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:7" role="doc-endnote">
<p>It’s also notably <em>unfinished</em> :P. <a href="#fnref:7" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>I’m <em>slowly</em> finalizing all these posts that are mostly done, after all! <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Mon, 20 Feb 2023 00:00:00 +0000
https://grossack.site/2023/02/20/abstract-tensor-products.html
https://grossack.site/2023/02/20/abstract-tensor-products.htmlExternalizing Some Simple Topos Statements<p>Hey all! It’s been a minute. I’ve been super busy with
<a href="https://www.fairucnow.org/">the UC strike</a> and honestly I haven’t done math in any
serious capacity for almost the past month. It’s been a
lot of hard work trying to get fair contracts out of the UC,
but I had a lot of travel plans this December to see my friends,
so I’ve taken a step back from the picket line until January.
Right now I’m in Chicago, so here’s an obligatory bean pic:</p>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/bean.jpg" width="50%" />
</p>
<p>This means I have time to do math again, and it’s been really good
for me to get back into it! I’ve started working with <a href="https://sites.google.com/view/petersamuelson/home?pli=1">Peter Samuelson</a>
on some really cool work involving skein algebras, and I can’t wait to
chat about it once I spend more time with it.</p>
<p>I also spent some time trying to understand manifolds in a topos of $G$-sets.
I gave a (fairly informal) talk in Dave Weisbart’s seminar, where I tried to
pitch him topos theory as a method of studying $G$-invariant constructions<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>,
and I thought I remembered a result that we can get our hands on a
<a href="https://ncatlab.org/nlab/show/global+quotient+orbifold">global quotient orbifold</a> $M // G$ by working with a manifold internal to
$G$-set… I couldn’t find a reference for this, so I set about trying to
prove it myself, and (to nobody’s surprise) it’s false, haha.</p>
<p>So my last couple weeks, when I had the energy to do math after picketing,
looked eerily like Julia Robinson’s famous description of her week:</p>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/robinson.png" width="50%" />
</p>
<p>I learned a <em>ton</em> while doing this, though, and I wanted to share some
insights with everyone. It’s really hard to find examples of
people taking statements in the internal logic of a topos and externalizing
them to get “classical” statements, so I had to work out a bunch of small
examples myself.</p>
<p>Let’s go over a few together, and hopefully make things easier for the
next round of topos theorists looking to do this ^_^</p>
<hr />
\[\lvert X \rvert = 3\]
<p>Let’s start small. What does it mean to say that \(\lvert X \rvert = 3\)?
This is really an abbreviation saying “there’s a bijection between $X$ and $3$”,
which we expand out to</p>
\[\exists \alpha : 3^X . \exists \beta : X^3 .
\alpha \beta = \text{id}_3 \land \beta \alpha = \text{id}_X\]
<p>Here, of course, we’re writing $A^B$ for the <a href="https://en.wikipedia.org/wiki/Exponential_object">exponential object</a> of the
topos.</p>
<p>So we’re saying that \(\mathcal{E} \models \lvert X \rvert = 3\). If we switch over
to the forcing language, we’re saying that \(1 \Vdash \lvert X \rvert = 3\), and from
here we can follow the instructions in section VI.6 of Mac Lane and Moerdijk’s
<em>Sheaves in Geometry and Logic</em>. In fact, since we’ll be working exclusively
with grothendieck topoi in this post, we can work with the slightly simpler
sheaf semantics outlined in section VI.7.</p>
<p>First, let’s look at the case $\mathcal{E} = G\text{-}\mathsf{Set}$.</p>
<p>We start with</p>
\[1 \Vdash \exists \alpha : 3^X . \exists \beta : X^3 .
\alpha \beta = \text{id}_3 \land \beta \alpha = \text{id}_X\]
<p>Next we cash out our existential quantifiers for honest (generalized)
elements $f$ in $3^X$ and $g$ in $X^3$. The “local” nature of existential
quantification, though, means that our generalized elements no longer have
domain $1$ (which would make them <em>global</em> elements). Instead, they have
domain $V$ for some epi $V \twoheadrightarrow 1$.</p>
<p>Of course, in a topos of $G$-sets, every nonempty object admits a unique
epi to $1$, and every nonempty object is a disjoint union of $G$-orbits.
So it’s not hard to see we can restrict attention to the connected epis
(transitive $G$-sets). But we <em>also</em> know that truth is local. So we can pull
back some transitive $G$-set along a further epimorphism to assume that our
connected object is actually $G$ itself!</p>
<p>So we end up with elements $\alpha : G \to 3^X$ and $\beta : G \to X^3$
so that</p>
\[G \Vdash \alpha \beta = \text{id}_3 \land \beta \alpha = \text{id}_X\]
<p>But what does this mean? Well, in $G$-set, the exponential $A^B$ is the set of
<em>all</em> functions ${\varphi : B \to A}$ equipped with the conjugation action:</p>
\[(g \cdot_{A^B} \varphi)(x) = g \cdot_A \varphi (g^{-1} \cdot_B x)\]
<p>Notice that the <em>global</em> elements of $A^B$ are the maps $1 \to A^B$,
which are thus the fixed points of $A^B$. But to say $\varphi = g \cdot \varphi$
for all $g$ is to say that $\varphi$ is $G$-equivariant. However generalized
elements give us access to other maps. In particular:</p>
<div class="boxed">
<p>Exercise: Show that the $G$-elements of $A^B$ (that is, the maps $G \to A^B$)
are in natural bijection with ordinary functions $B \to A$ that ignore the
$G$-structure entirely.</p>
<p>Hint: Look at what happens to the identity element of the group</p>
</div>
<p>So then we have two ordinary functions $\alpha : X \to 3$ and $\beta : 3 \to X$
which are mutually inverse. This means exactly that the underlying set of $X$
has $3$ elements.</p>
<p>This brings us to an important observation about $G$-sets:</p>
<p>Something is “locally” true in $G\text{-}\mathsf{Set}$ exactly when it’s
true for the underlying sets. This is basically because each $G$-set $X$
is covered by $G \times X$, but this is isomorphic to $G \times UX$ where
$UX$ (the underlying set of $X$) is equipped with the trivial $G$-action!</p>
<p>So if we want a statement in $G\text{-}\mathsf{Set}$ to externalize to
something $G$-equivariant, we’ll want to avoid existential quantifiers
and disjunctions (since these are only true up to a cover)<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">2</a></sup>.</p>
<div class="boxed">
<p>Can you find a formula $\psi(X)$ (which will use $G$ as a parameter) so that
$G\text{-}\mathsf{Set} \models \psi(X)$ if and only if $X$ has finitely many
$G$-orbits<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">3</a></sup>?</p>
</div>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/hand-raise.gif" width="50%" />
</p>
<p>Great question! I’m glad you asked!</p>
<p>Say that instead of $G$-sets, we work inside a topos $\mathcal{E} = \mathsf{Sh}(S)$
for some topological space $S$<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup>.
What does it mean if \(\mathcal{E} \models \lvert X \rvert = 3\)?</p>
<p>Well again, we see that</p>
\[1 \Vdash \exists \alpha : 3^X . \exists \beta : X^3 .
\alpha \beta = \text{id}_3 \land \beta \alpha = \text{id}_X\]
<p>and we cash out our existential quantifiers for <em>local</em> witnesses. That is,
there’s an open cover ${ U_i }$ of $S$ with elements
$\alpha_i : U_i \to 3^X$ and $\beta_i : U_i \to X^3$ so that, for each $U_i$,</p>
\[U_i \Vdash \alpha_i \beta_i = \text{id}_3 \land \beta_i \alpha_i = \text{id}_X\]
<p>Now (by yoneda), an element $U_i \to A^B$ is “just” a function $B \to A$ defined over $U_i$.
So altogether we see that $\lvert X \rvert = 3$ if and only if there’s an open
cover \(\{U_i\}\) of $S$ so that
\(X \! \upharpoonright_{U_i} \cong 3 \! \upharpoonright_{U_i}\)
for each $i$.</p>
<p>This means $X$ is <em>locally isomorphic</em> to $3$, the disjoint union of three
copies of $S$. It’s not hard to see that this means $X$ is a 3-sheeted
covering space of $S$.</p>
<p>Notice that these local isomorphisms do <em>not</em> have to glue into a global
isomorphism! The simplest thing to do is to give a picture. If $S = S^1$
is a circle, and $X$ is a triple cover as shown below:</p>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/triple-cover.png" width="25%" />
</p>
<p>then $X$ is locally isomorphic to the trivial triple cover $3$:</p>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/triple-cover-trivial.png" width="25%" />
</p>
<p>despite the fact that they <em>aren’t</em> globally isomorphic!</p>
<p>From the perspective of the internal logic, the point is that the isomorphisms
over each $U_i$ need not be compatible in the sense that
\(\alpha_i \! \upharpoonright_{U_i \cap U_j} \neq \alpha_j \! \upharpoonright_{U_i \cap U_j}\).</p>
<div class="boxed">
<p>If you’ve never done it before, it’s worth going through this in detail!</p>
<p>Cover $S^1$ by open sets (so that each intersection is connected,
for simplicity) and show that the two triple covers are isomorphic on
each open set, but these isomorphisms aren’t compatible on intersections.</p>
</div>
<p>Note, as an aside, that we’ve been working with an explicit choice of
finite cardinality: $\lvert X \rvert = 3$. Say instead we wanted the
weaker “$\lvert X \rvert \text{ is finite}$”. There’s nothing to worry about
in $G\text{-}\mathsf{Set}$ because this topos is boolean, satisfies AC, etc.
However for topoi without LEM, there are multiple inequivalent notions of
finiteness. See <a href="https://ncatlab.org/nlab/show/finite+set">here</a> for a discussion<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup>.</p>
<hr />
\[\forall x,y : X . x = y \lor x \neq y\]
<p>This says that $X$ is <a href="https://ncatlab.org/nlab/show/decidable+object"><em>decidable</em></a>, which is language coming from a
computability theoretic interpretation of our logic that I’ll save for a
different post<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">6</a></sup>.</p>
<p>Let’s start with the externalization. If
$\mathcal{E} \models \forall x, y : X . x = y \lor x \neq y$,
then in the forcing notation we have</p>
\[1 \Vdash \forall x, y : X . x = y \lor x \neq y\]
<p>which we can cash out (again, see chapter VI in Mac Lane and Moerdijk) for</p>
\[X \times X \Vdash \pi_1 = \pi_2 \lor \pi_1 \neq \pi_2\]
<p>where $\pi_1$ and $\pi_2$ are the projections $X \times X \to X$.</p>
<p>Now, just like existential quantifiers, disjunctions need only be true
locally. So in the case $\mathcal{E} = G\text{-}\mathsf{Set}$ we want to
find $G$-sets $V$ and $W$, with maps $p: V \to X^2$ and $q : W \to X^2$
so that</p>
<ol>
<li>$V \Vdash \pi_1 p = \pi_2 p$</li>
<li>$W \Vdash \pi_1 q \neq \pi_2 q$</li>
<li>$p+q : V + W \to X^2$ is an epi</li>
</ol>
<p>Of course, this isn’t hard to do! Let’s take
\(V = \{ (x,x) \mid x \in X \}\) (equipped with the diagonal $G$-action)
and \(W = X^2 \setminus V\) (also equipped with the diagonal $G$-action).</p>
<div class="boxed">
<p>If it’s not obvious, prove that $W$ really is a $G$-set.</p>
</div>
<p>Then it’s easy to see that by taking $p$ and $q$ to be the relevant inclusion
maps we can satisfy our 3 conditions. Thus <em>every</em> $G$-set $X$ is decidable!<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">7</a></sup></p>
<p><br /><br /></p>
<p>Next, let’s look at $\mathsf{Sh}(S)$.</p>
<p>Again, we’ll take an object $X$ and look at the statement
$\forall x,y : X . x = y \lor x \neq y$.</p>
<p>The flow of the computation is hopefully becoming familiar now.
For variety, since we’re working in a sheaf topos, let’s do this
computation with the sheaf semantics (Maclane and Moerdijk VI.7).
This lets us restrict attention to open subsets of $S$, which is
sometimes useful.</p>
<p>We start with $1 \Vdash \forall x,y : X . x = y \lor x \neq y$,
that is, $S \Vdash \forall x,y : X . x = y \lor x \neq y$.</p>
<p>Now the universal quantifiers represent true statements for any local section.
That is, for each $U$ open in $S$, and for each generalized element
$x,y : U \to X$
(that is, by yoneda, local sections $x,y \in X(U)$ of the sheaf $X$ over $U$)</p>
\[U \Vdash x = y \lor x \neq y\]
<p>Then since disjunctions need only be true locally, this is true exactly when
we can over $U$ by opens $V_i$ so that, on each $V_i$, either</p>
\[V_i \Vdash x = y\]
<p>or</p>
\[V_i \Vdash x \neq y\]
<p>That is, on each $V_i$ in the cover, either the sections
$x \upharpoonright_{V_i}$ and $y \upharpoonright_{V_i}$ are everywhere equal
or they’re nowhere equal.</p>
<p>So an object $X$ in $\mathsf{Sh}(S)$ is decidable exactly when, for
any connected open $U \subseteq S$, any two local sections of $X$ are either
everywhere equal or nowhere equal<sup id="fnref:10" role="doc-noteref"><a href="#fn:10" class="footnote" rel="footnote">8</a></sup>.</p>
<p>For a <em>super</em> concrete example, let’s look at $S = [-1,1]$ and
$X$ the sheaf of continuous
functions on $S$. Then if we look at $x = s$ and $y = \lvert s \rvert$, we
can ask about the truth values $x=y$ and $x \neq y$.</p>
<p>Here $x=y$ is the largest open subset of $S = [-1,1]$ on which
$s = \lvert s \rvert$. This is, of course, $(0,1]$. Similarly,
$x \neq y$ is the largest open subset on which $s \neq \lvert s \rvert$,
but her friends call her $[-1,0)$.</p>
<p>Notice the truth values are open subsets of $S$. We’re keeping track of
<em>where</em> something is true, which is a finer (and more useful!) tool
than just a simple boolean true/false.</p>
<p>But of course, this means that $x=y \lor x \neq y$ is the
union \((0,1] \cup [-1,0) = [-1,1] \setminus \{0\}\). Which
is <em>not</em> the top element of the lattice of opens, and thus is not “true”!
Even though $0 = \lvert 0 \rvert$, this truth is not local – No matter how slightly
we wiggle $0$, this truth value can change, and this instability is exactly what
keeps $0$ from being in the set \([-1,0) \cup (0,1] = [ \! [ s = |s| \lor s \neq |s| ] \! ]\)</p>
<p><br /><br /></p>
<p>Let’s give a bonus example as well, since this is a fairly subtle concept.</p>
<p>We’ll work in the arrow topos $\mathsf{Set}^{\to}$ whose objects are triples
$(a,f,b)$ where $f : a \to b$ in $\mathsf{Set}$. An arrow
$(\varphi_0, \varphi_1) : (a,f,b) \to (c,g,d)$ is a pair of arrows in $\mathsf{Set}$
making the obvious square commute:</p>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/arrow-arrow.png" width="50%" />
</p>
<p>I’ll leave much of this example as a fun exercise, since it’s important to
get practice working these things out for yourself! If you want to check
your work, though, I’ll leave brief solutions in a fold!</p>
<div class="boxed">
<p>First, can you compute the object of truth values $\Omega$?</p>
</div>
<details>
<summary>solution</summary>
<p>This is worked out in detail in chapter I of Mac Lane and Moerdijk
(pages 35 and 36 of my edition) but briefly, we get</p>
\[\Omega = \{ \top, \bot', \bot \} \overset{\sigma}{\to} \{ \top, \bot \}\]
<p>with $\sigma(\top) = \top$, $\sigma(\bot’) = \top$, $\sigma(\bot) = \bot$.</p>
<p>Remember that a subobject of $X_0 \overset{f}{\to} X_1$ is a pair of subsets
$A_0 \subseteq X_0$, $A_1 \subseteq X_1$ so that $f[A_0] \subseteq A_1$.
This is exactly a <em>restriction</em> of $f$!</p>
<p>Then any $x_1 \in X_1$ is either in $A_1$ or it isn’t. That’s why the
target of $\sigma$ is \(\{ \top, \bot \}\). But an $x_0 \in X_0$ has more
options. Either</p>
<ul>
<li>$x_0 \in A_0$ and, necessarily, $f x_0 \in A_1$</li>
<li>$x_0 \not \in A_0$ but $f x_0 \in A_1$ anyways</li>
<li>$x_0 \not \in A_0$ and $f x_0 \not \in A_1$</li>
</ul>
<p>these correspond to the truth values $\top$, $\bot’$, and $\bot$ in the
domain of $\sigma$.</p>
</details>
<div class="boxed">
<p>Next, can you figure out what it means for an object $a \overset{f}{\to} b$
to be decidable?</p>
</div>
<details>
<summary>solution</summary>
<p>Let’s compute.</p>
<p>We quickly get to $f^2 \Vdash x=y \lor x \neq y$, where (as usual)
$x$ and $y$ are the projection maps from $f^2 \to f$.</p>
<p>Another, smaller, computation shows that $f^2 : a^2 \to b^2$ is just the
map sending $(x,y) \mapsto (fx,fy)$. Moreover, an epi</p>
\[(\tilde{a} \overset{\tilde{f}}{\to} \tilde{b}) \twoheadrightarrow (a \overset{f}{\to} b)\]
<p>is a pair of surjections $\tilde{a} \to a$ and $\tilde{b} \to b$ making the square commute.</p>
<p>With this in mind, when we unwind the disjunction to a pair of maps
$V \to f^2$ and $W \to f^2$ so that</p>
<ul>
<li>$V \Vdash x=y$</li>
<li>$W \Vdash x \neq y$</li>
<li>$V+W \to f^2$ is epi</li>
</ul>
<p>it’s enough to look at the images of the maps $V \to f^2$ and $W \to f^2$.
That is, it’s enough to look at $V$ and $W$ <em>subobjects</em> of $f^2$
and ask that the union $V \cup W$ is all of $f^2$.</p>
<p>To have our best chance at covering $f^2$, we should take $V$ and $W$ to be
as big as possible under the restrictions that $V \Vdash x=y$ and
$W \Vdash x \neq y$.</p>
<p>Unwinding $V \Vdash x=y$, the best we can do is to take $V$ to be the diagonal
\(\{ (x,y) \in a^2 \mid x=y \} \overset{f^2}{\to} \{ (x,y) \in b^2 \mid x=y \}\).</p>
<p>Then unwinding $W \Vdash x \neq y$, the best we can do is
\(\{ (x,y) \in a^2 \mid x \neq y \land fx \neq fy \} \overset{f^2}{\to} \{ (x,y) \in b^2 \mid x \neq y \}\).</p>
<p>Notice we have to restrict the domain to those elements who <em>stay</em> separated
after we apply $f^2$! After all, if $x \neq y$ but $fx = fy$, then we wouldn’t
land in the right codomain<sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">9</a></sup>.</p>
<p>So if we want the union of $V$ and $W$ to be all of $f$, we need to know that
each pair $(x,y)$ with $x \neq y$ gets sent to a pair with $fx \neq fy$,
and this happens exactly when $f$ is a monomorphism!</p>
<p>So the decidable objects of $\mathsf{Set}^\to$ are the monos.</p>
<p>Hopefully this also makes clear, in a more discrete way than the $\mathsf{Sh}(S)$
example, how decidability can fail! For a super concrete example<sup id="fnref:9" role="doc-noteref"><a href="#fn:9" class="footnote" rel="footnote">10</a></sup>,
consider the ring object in $\mathsf{Set}^\to$ given by</p>
\[\mathbb{Z}[\epsilon] / \epsilon^2
\overset{\epsilon \mapsto 0}{\longrightarrow}
\mathbb{Z}\]
<p>This ring is not decidable since $\epsilon = 0$ is neither true nor false!</p>
</details>
<hr />
<p>This was a lot of fun, and hopefully you feel more comfortable externalizing
some simple statements after reading through these. It’s all about
practice practice practice, though, so I encourage everyone to come up with
their own easy examples and try externalizing them! I learned a <em>ton</em> while
writing this blog post, and that’s on top of everything I learned trying
to work out what a manifold inside $G\text{-}\mathsf{Set}$ should be!</p>
<p>I won’t make promises, but I would love to write another post of this flavor
sometime soon, where we can talk about something simple like linear algebra
or basic analysis inside a topos. Of course, I have lots of ideas, and
comparatively little time to write them all, so things will happen when they do
^_^.</p>
<p>Stay warm and stay safe, all! We’ll talk soon 💖</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>In particular, we’re planning to think about $G$-equivariant brownian
motion. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>Something like this is probably true for more general <a href="https://ncatlab.org/nlab/show/%C3%A9tendue">etendues</a>,
which (up to a cover) look like $\mathsf{Sh}(X)$. The case of $G$-sets
is particularly easy, since locally they look like
$\mathsf{Set} = \mathsf{Sh}(\star)$. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>Try
$\exists n : \mathbb{N} . \exists f : X^{G \times n} .
\ulcorner f \text{ is surjective} \urcorner$ <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>Nothing at all changes if we instead take $S$ to be a <a href="https://ncatlab.org/nlab/show/locale">locale</a> <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>Also note that the existential quantifier really impacts things. Essentially
we asked for
$\mathcal{E} \models \exists \alpha : X \cong 3 . \top$.
If we had instead asked for an actual (global) element,
$\mathcal{E} \models \alpha : X \cong 3$, we would have actual isomorphism
instead of mere local isomorphism. This is what the previous nlab link
calls “(bishop) finite”, and it’s a stronger condition than what we’ve been
working with. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:7" role="doc-endnote">
<p>Briefly, a property is called <em>decidable</em> if a computer can check if the
answer is yes or no.</p>
<p>A property is called <em>semidecidable</em> if a computer can check if the answer
is “yes”, but we don’t know how long it’ll take. What’s worse, the code
is allowed to loop forever if the answer is “no”! So really we get a “yes”
or “maybe”.</p>
<p>Dually, we say a property is <em>co-semidecidable</em> if a computer can answer
“no” or “maybe”. If you run it long enough and the answer is “no”,
it will always say so. But if the answer is “yes” the code might loop forever.</p>
<div class="boxed">
<p>As a (fairly easy?) exercise, show that something is decidable
if and only if it’s both semidecidable and co-semidecidable.</p>
</div>
<p>To finish the brief explanation, equality is <em>such</em> an important
predicate that we say $X$ is decidable exactly when equality on $X$
is, and this is the definition we ported to topos theory. <a href="#fnref:7" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>This should make intuitive sense. A topos of $G$-sets is boolean, and
even satisfies AC. So it looks almost exactly like $\mathsf{Set}$!
In particular, we can see that every object in $G\text{-}\mathsf{Set}$
is decidable by appeal to LEM, rather than by building the witnesses directly.</p>
<p>Yet another way to see this (which I’m 80% sure is true) is by working
in the slice topos. I’m pretty sure that</p>
\[X^2 \Vdash \pi_1 = \pi_2 \lor \lnot \pi_1 = \pi_2\]
<p>is the same thing as asking for</p>
\[\pi_1 = \pi_2 \lor \lnot \pi_1 = \pi_2\]
<p>to name $\top$ in the slice topos $\mathcal{E} /_{ X^2}$.</p>
<p>Here the truth values are subobjects of $X^2$ in $\mathcal{E}$,
with $\pi_1 = \pi_2$ naming the truth value</p>
\[\{ (x,y) \mid x = y \}\]
<p>and $\lnot \pi_1 = \pi_2$ naming the truth value</p>
\[\text{``the biggest sub-$G$-set disjoint from } \{ (x,y) \mid x = y \} \text{''}\]
<p>of course, since the complement of the diagonal is a sub-$G$-set,
these two sets union to the whole of $X^2$. That is, the truth value of
their disjunction is $\top$, as desired.</p>
<p>Note this is <em>not</em> the case for $M$-sets for a monoid $M$!</p>
<p>If we work with the monoid $\mathbb{N}$, let’s consider the
$\mathbb{N}$-set $X = {a,b}$ with $1a = 1b = b$. That is,</p>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/arrow.png" width="25%" />
</p>
<p>(plus a self loop at $b$ that q.uiver won’t draw for me… I’d make it
myself but it’s getting late and I don’t feel like it, haha)</p>
<p>Then the product $X^2$ is</p>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/square.png" width="25%" />
</p>
<p>(again, with a secret self loop at $(b,b)$).</p>
<p>The diagonal, of course, is a sub-$M$-set:</p>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/diagonal.png" width="25%" />
</p>
<p>But now the off-diagonal is <em>not</em> a sub-$M$-set. It’s not closed under
the $M$-action:</p>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/off-diagonal.png" width="25%" />
</p>
<p>So the complement \(\{ (x,y) \mid x \neq y \}\) will be the largest
sub-$M$-set contained inside the off-diagonal. But in this example
that’s empty!</p>
<p>In particular, \(\{ (x,y) \mid x=y \} \lor \{ (x,y) \mid x \neq y \}\),
a subobject of $X^2$, and thus a truth value in
\(M\text{-}\mathsf{Set} \big /_{\! X^2}\),
is <em>not</em> $X^2$. So $M\text{-}\mathsf{Set}$ thinks
$\forall x,y : X . x = y \lor x \neq y$ is not true.</p>
<div class="boxed">
<p>It also thinks it’s not false, for what that’s worth.</p>
<p>As a nice (slightly more challenging) exercise, figure out
what the truth value of that statement actually is!</p>
</div>
<p>It’s still not fully clear to me what truth values in
$M\text{-}\mathsf{Set} /_{X^2}$ should look like…
In $M\text{-}\mathsf{Set}$ there are only two global truth values,
even though externally we can see that $\Omega$ is the set of all
(left) ideals of $M$.</p>
<p>Presumably in $M\text{-}\mathsf{Set} /_{X^2}$ the global truth values
are the sub-$M$-sets of $X^2$… But I’m not sure about what exactly
$\Omega$ looks like.</p>
<p>If someone wants to work this out, I’d love to hear your thoughts in the
comments! This footnote is already getting <em>super</em> long, though, and I
have the rest of the post to work on! <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:10" role="doc-endnote">
<p>This is obviously an <em>extremely</em> strict condition! If we think about the sheaf
of real-valued continuous functions on $S$, it’s hard to imagine the case that
two functions which agree on a point automatically agree everywhere! <a href="#fnref:10" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:8" role="doc-endnote">
<p>This is worth some meditation. There’s something model-theoretic
happening here, where truth is <em>preserved</em> as we move from the
domain to the codomain. But falsity does <em>not</em> need to be preserved
(said another way, truth does not need to be <em>reflected</em> from the codomain
to the domain).</p>
<p>So true things stay true, but false things can <em>become</em> true later on.</p>
<p>It’s possible for $x$ and $y$ to start different and end the same, but
if they start the same they have to stay that way.</p>
<p>Somehow the logic of the topos handles all of this for us, which doesn’t
seem so impressive when we only have one arrow, but you can imagine as
we increase the complexity of the category $\mathcal{C}$ in the
topos $\mathsf{Set}^\mathcal{C}$ that it becomes more annoying to do this
bookkeeping by hand.</p>
<p>Regardless, it’s not lost on me that $f$ is decidable in
$\mathsf{Set}^\to$ exactly when it’s a monomorphism in $\mathsf{Set}$…
This has something to do with the fact that, model theoretically,
monos <em>do</em> reflect the truth of atomic questions (like equality). I’m seeing
some connection here, but I can’t quite make it precise. <a href="#fnref:8" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:9" role="doc-endnote">
<p>taken from Johnstone’s <em>Rings, Fields, and Spectra</em>, which should
really be required reading for anyone interested in applications
of topos theory! <a href="#fnref:9" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Tue, 13 Dec 2022 00:00:00 +0000
https://grossack.site/2022/12/13/internal-logic-examples.html
https://grossack.site/2022/12/13/internal-logic-examples.htmlTalk - Where Are The Open Sets?<p>I was invited to give a talk at <a href="https://www.uwo.ca/math/faculty/kapulkin/seminars/hottest.html">HoTTEST 2022</a>, and was more than
happy to accept! Ever since I was first learning <a href="https://en.wikipedia.org/wiki/Homotopy_type_theory">HoTT</a> I was curious how
we could be sure that theorems in HoTT give us corresponding theorems in
“classical” homotopy theory. Earlier this summer I spent a lot of
time wrestling wtih $\infty$-categories (culminating in a series of
<a href="/tags/homotopy-theories/">blog posts</a>) and I realized I was quite close to finally understanding
the connection between HoTT and classical topology. I think this is a
question that should have a more accessible answer
(the machinery is fairly intense, but that shouldn’t prevent a high level overview)
and I’m happy I was able to help fill this gap!</p>
<p>All in all, I think the talk went quite well! I think I did a good job
making the broad ideas involved in the semantics accessible to an audience
without much background, though my actual delivery was a bit jittery –
I had to wake up at 7.30 to give the talk and I was basically being held up
by willpower and caffeine, haha.</p>
<!-- As a secret life update, I got prescribed my hormones today as well! -->
<p>Now that I’ve napped, let’s write up a quick summary of the talk ^_^</p>
<hr />
<p>The basic idea is to interpret the syntax of HoTT in the model category
of <a href="https://en.wikipedia.org/wiki/Simplicial_set">simplicial sets</a> $s\mathsf{Set}$. This means that anything we do in
HoTT externalizes to a statement about $s\mathsf{Set}$.
Then we use the quillen equivalence of $s\mathsf{Set}$ with $\mathsf{Top}$<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> in
order to transfer our statement in $s\mathsf{Set}$ to a statement about
$\mathsf{Top}$ (up to homotopy).</p>
<p>First, I spent some time discussing (<em>very</em> roughly) what a model structure
on a category is. As a reference for a less rough idea, I mentioned a famous
paper <a href="https://math.jhu.edu/~eriehl/616-s16/DwyerSpalinski.pdf"><em>Homotopy Theories and Model Categories</em></a> by Dwyer and Spalinski.
Next, I gave some intuition for what a simplicial set might be, and outlined how
they combinatorially encode topological spaces. For more detailed references
I mentioned Friedman’s <a href="https://arxiv.org/pdf/0809.4221.pdf"><em>An Elementary Illustrated Introduction to Simplicial Sets</em></a>
as well as Singh’s thesis <a href="https://www.abdn.ac.uk/staffpages/uploads/r01gs19/Gyan_Singh_sSet.pdf"><em>A Survey of Simplicial Sets</em></a>.</p>
<p>Then came a discussion of the functors converting back and forth between
$s\mathsf{Set}$ and $\mathsf{Top}$:</p>
<ul>
<li><a href="https://kerodon.net/tag/001X">geometric realization</a>, $\lvert \cdot \rvert : s\mathsf{Set} \to \mathsf{Top}$</li>
<li><a href="https://kerodon.net/tag/001Q">singular chains</a>, $\text{Sing}(\cdot) : \mathsf{Top} \to s\mathsf{Set}$</li>
</ul>
<p>these form an adjunction ($\lvert \cdot \rvert \ \dashv \ \text{Sing}(\cdot)$)
which respects the model structure on both categories in the sense that they
form a <a href="https://ncatlab.org/nlab/show/Quillen+equivalence">quillen equivalence</a>:</p>
<div class="boxed">
<ol>
<li>They induce functors on the homotopy categories
<ul>
<li>$\mathbb{L} \lvert \cdot \rvert : s\mathsf{Set}[\mathcal{W}^{-1}] \to \mathsf{Top}[\mathcal{W}^{-1}]$</li>
<li>$\mathbb{R}\text{Sing}(\cdot) : \mathsf{Top}[\mathcal{W}^{-1}] \to s\mathsf{Set}[\mathcal{W}^{-1}]$</li>
</ul>
</li>
<li>$\mathbb{L} \lvert \cdot \rvert$ and $\mathbb{R} \text{Sing}(\cdot)$
form an adjoint equivalence $s\mathsf{Set}[\mathcal{W}^{-1}] \simeq \mathsf{Top}[\mathcal{W}^{-1}]$</li>
</ol>
</div>
<p>The punchline is that <em>any</em> question<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup> we have about the homotopy theory of
topological spaces can be answered by transporting to $s\mathsf{Set}$ and
answering the question there<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>!</p>
<p>This is great news for two reasons:</p>
<ul>
<li>
<p>Concretely, simplicial sets are combinatorial, so we can describe many
interesting simplicial sets to a computer with only a finite amount of data.
This is the backbone of most implementations of algebraic topology –
see <a href="https://doc.sagemath.org/html/en/reference/topology/index.html">here</a>, for instance.</p>
</li>
<li>
<p>Abstractly, simplicial sets assemble into a (grothendieck) <a href="https://en.wikipedia.org/wiki/Topos">topos</a>,
which gives us access to lots of heavy duty category theoretic machinery
when working with them.</p>
</li>
</ul>
<p>Speaking of heavy duty category theoretic machinery, this marked the end of
section $1$ of the talk. Section $2$ is about the interpretation of HoTT
in $s\mathsf{Set}$, and there’s a notable spike in vagueness here.
Unfortunately the math becomes quite a bit more technical
(and involves a lot of category theory I didn’t want to assume of the
audience) but I still wanted to give a flavor for externalizing
HoTT statements into statements about $s\mathsf{Set}$. That means I
wasn’t able to give many details at all<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup>, but I still tried to
roughly sketch the ideas involved.</p>
<p>Again, I pointed to the literature for those who want to see things
more precisely. There’s an excellent set of three talks by <a href="https://math.jhu.edu/~eriehl/">Emily Riehl</a>,
<em>On the $\infty$-Topos Semantics for Homotopy Type Theory</em>
(lectures <a href="https://www.youtube.com/watch?v=PejZfl5kOlU">1</a>, <a href="https://www.youtube.com/watch?v=m2_ObHxDcQs">2</a>, and <a href="https://www.youtube.com/watch?v=hcGKmEuJJMY">3</a>), as well as associated
<a href="https://emilyriehl.github.io/files/semantics.pdf">lecture notes</a>. They do a good job motivating the semantics
in any $\infty$-topos (as the title suggests) at the cost of being
somewhat more abstract. There’s also a paper
(<a href="https://arxiv.org/pdf/1211.2851.pdf"><em>The Simplicial Model of Univalent Foundations (After Voevodsky)</em></a>,
by Kapulkin and Lumsdaine) which works only for $s\mathsf{Set}$,
but is much more concrete. I forgot to mention it during the talk,
but <a href="https://www.youtube.com/watch?v=NpzqeZd4Yw0">Subramaniam’s talk</a> in the HoTTEST Summer School Colloquium is
another fantastic resource.</p>
<p>Morally, the idea is that types in HoTT are <a href="https://ncatlab.org/nlab/show/Kan+complex">kan complexes</a>
(that is, simplicial sets which are “honestly geometric” in some sense).
Then constructions on types externalize to (categorical) constructions
on kan complexes, and terms inhabiting a type correspond to global points
of the associated kan complex.</p>
<p>This is a bit of a fib, since the syntax of HoTT is strict on-the-nose
whereas the categorical constructions we do in $s\mathsf{Set}$ are only
defined up to isomorphism. It turns out that this is a serious technical
obstruction, since we need to <em>choose</em> a particular object from each
isomorphism class in order to interpret the syntax. But we need to do this
in a way that the constructions are all compatible.</p>
<p>For instance, say $P$ is a dependent type over $B$ and $f : A \to B$
is a function. Then if $a : A$ we could first evaluate $f(a)$ then
consider the type $P(f(a))$, <em>or</em> we could first compose $P$ with $f$
to get a type family $P(f(-))$ over $A$, then take the fibre at $a:A$.</p>
<p>No matter what, we end up with the syntax $P(f(a))$<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup>, so we get
literal equality at the level of syntax.</p>
<p>However, in $s\mathsf{Set}$ if we <em>choose</em> a representative for each
isomorphism class, and define our constructions to manipulate those
specific objects, it’s possible that we chose poorly so that we end up
with <em>different objects</em> depending on which order we choose to perform
the above substitutions
(they’ll be isomorphic of course, but this is not good enough).</p>
<p>The key to solving this issue is to somehow make <em>one</em> really hard
choice, then define all of our other choices in terms of it! This is
the idea behind Voevodsky’s <em>(weak) universal fibration</em>, which you can
read all about in the linked paper of Kapulkin and Lumsdaine.</p>
<p>Lastly, I mentioned a good exercise to keep in mind when trying to learn
this material:</p>
<div class="boxed">
<p>Can you show that if HoTT proves $\mathtt{isContr}(A)$ is
inhabited, then \([ \! [ A ] \! ]\) (the kan complex that $A$ denotes) is
contractible in the sense of simplicial sets?</p>
<p>After this, can you show that
the geometric realization \(\lvert [ \! [ A ] \! ] \rvert\) is contractible too?</p>
<p>If you can do both of the above exercises, you’ll have successfully proven
a fact about an honest topological space by proving some theorem in HoTT!</p>
</div>
<hr />
<p>All in all, I was pleased with how the talk went, and I learned a <em>ton</em>
while writing it! I still have to work through the details of the
semantics to fully feel comfortable externalizing HoTT statements,
but I have a much more nuanced appreciation for the issue of
strictness.</p>
<p>As usual, here’s the title, abstract, and recording.</p>
<p>Take care, all ^_^</p>
<hr />
<p>Where Are The Open Sets? – Comparing HoTT with Classical Topology</p>
<p>It’s often said that Homotopy Type Theory is a synthetic description of
homotopy theory, but how do we know that the theorems we prove in HoTT are true
for mathematicians working classically? In this expository talk we will outline
the relationship between HoTT and classical homotopy theory by first using the
simplicial set semantics and then transporting along a certain equivalence
between (the homotopy categories of) simplicial sets and topological spaces.
We will assume no background besides some basic knowledge of HoTT and
classical topology.</p>
<p>You can find the slides <a href="/assets/docs/where-are-the-open-sets/slides.pdf">here</a>, and I’ll post the recording as
soon as it’s up.</p>
<p><strong>Edit:</strong></p>
<p>Here’s the recording ^_^</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/syftUuf5Hpk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>With their usual model structures <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>Well, any question that transports along categorical equivalences…
But that means every question we can phrase categorically!</p>
<p>This is part of the reason so many category theorists get a bit
obsessive about phrasing everything in terms of category theoretic
jargon. It’s not <em>just</em> to make life hard for people who don’t
know the lingo (even though it might feel that way), nor is it
<em>just</em> to help us organize our own thoughts and relate different
constructions to each other (though that’s a big part of it).
One big reason to go through with the endeavor is to be able to
transport as many things as possible across an equivalence of categories,
and things phrased in a categorical language are <em>automatically</em>
invariant under these equivalences! <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>In the questions and discussion after the talk, <a href="https://jdc.math.uwo.ca/">Dan Christensen</a>
mentioned an important point: This equivalence goes much deeper than
just the homotopy categories. In fact, we get an equivalence of
$\infty$-categories between the <a href="https://ncatlab.org/nlab/show/simplicial+localization">simplicial localizations</a>
of $\mathsf{Top}$ and $s\mathsf{Set}$ at their weak equivalences,
which tells us that much more homotopical structure is preserved by
this translation! For instance, the <em>mapping spaces</em>.</p>
<p>On the one hand, this is great (since it means our translation is
<em>even better</em> than my talk lets on) and necessary (since this higher
structure is useful when working with the semantics of HoTT in
$s\mathsf{Set}$).</p>
<p>On the other hand, it requires one to say the words “$\infty$-category”,
which I was trying to avoid for concreteness reasons
(and because I’m less comfortable with them).</p>
<p>I figured I would mention it here, though, since it’s a lot easier to
have footnotes and asides in a blog post than in a talk ^_^. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>Though this ended up being good for time-management reasons as well.
My talk was basically 30 minutes on-the-nose, which I’m pretty pleased
with to be honest. It was pretty ambitious, and I’m glad I managed to
stay on time!</p>
<p>This was also good because I’m less comfortable with the
translation from HoTT into $s\mathsf{Set}$, and glossing over details
saved me from accidentally saying something false. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>Or, if you want to be <em>extremely</em> precise, $P([f[a/x]/b])$. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Thu, 06 Oct 2022 00:00:00 +0000
https://grossack.site/2022/10/06/where-are-the-open-sets.html
https://grossack.site/2022/10/06/where-are-the-open-sets.htmlMonoidal Monoidoidoids<p>So I was on the <a href="https://ncatlab.org/nlab/show/HomePage">nlab</a> the other day, and I saw a fantastic joke:
A 2-category is “just” a monoidal monoidoidoid! Here’s a screenshot
in case the nlab page for <a href="https://ncatlab.org/nlab/show/2-category">2-categories</a> changes someday:</p>
<p style="text-align:center;">
<img src="/assets/images/monoidal-monoidoidoids/screenshot.png" width="50%" />
</p>
<p>There’s a thing called the <em>Category Theorist’s “Just”</em>, which describes
the joy that many category theorists take in telling other mathematicians
that an X is “just” a [categorical gibberish]. This is often seen as
unhelpful at best and annoying at worst by other mathematicians, and I think
there’s room for a bit of honest discussion here, if you’ll give me a second
to preach (I’ll get to the joke in the title soon, I promise).</p>
<p>I’ve met category theorists who do this <em>purely</em> to try and look smart,
and to make other people who aren’t fluent in abstract nonsense feel inadequate.</p>
<p>I do not like these category theorists.</p>
<p>That said, when you spend a long time around the language of category theory,
you really <em>do</em> build an intuition for what certain common
constructions (monoids, adjunctions, co/limits, etc.) look like in certain
common kinds of categories
(algebraic categories, topological categories, functor categories, etc.).</p>
<p>In this way, if someone knows the lingo, you can really convey a <em>lot</em> of
information very efficiently by the use of this language. For instance, I
genuinely think the meme</p>
<blockquote>
<p>monads are “just” monoids in the category of endofunctors</p>
</blockquote>
<p>is a useful way to explain monads provided you’re talking to
another category theorist. It’s not even that hard to imagine
somebody who knows things about algebra internal to functor categories,
but who <em>doesn’t</em> know things about monads!</p>
<p>Of course, this quip is <em>entirely unhelpful</em> if you’re trying to explain
monads to a software engineer with little to no knowledge of category theory…</p>
<hr />
<p>Now, I personally try to never use the category theorist’s “just” when I’m
talking to someone who I don’t know well. Or if I do, I always make sure to
preface it by a question of how much category theory they know, and the promise
that I can translate whatever abstract nonsense I say into concrete terms
if they want me to.</p>
<p>The unique exception is when making jokes, because sometimes it’s hilarious
to give the worst possible definition for a simple object. And 9 times out of 10
that definition will be categorical in nature.</p>
<p>This leads to a fun little game where you try to obfuscate a definition as
much as possible, and if you’re like me, it’s also fun to <em>deobfuscate</em>
the definition to see why it works! Which (finally) leads us to the title
of this post:</p>
<div class="boxed">
<p>Why is a 2-category “just” a Monoidal Monoidoidoid?</p>
</div>
<p>This is possibly the worst way to introduce 2-categories, and has the added
benefit of being incredibly silly to say out loud. 10/10. No notes. I’m
absolutely adding this to my vocabulary.</p>
<p style="text-align:center;">
<img src="/assets/images/monoidal-monoidoidoids/talented-brilliant.gif" width="50%" />
</p>
<p>But what does it <em>mean</em>?</p>
<p>Well first things first, we want to parenthesize this correctly.
A 2-category is a (monoidal monoidoid)oid.</p>
<p>Category theorists love to put the suffix “<a href="https://ncatlab.org/nlab/show/oidification">oid</a>” at the end of a preexisting
word. In general if X is a gadget that can be seen as a one-object category,
then an X-oid will be that same kind of gadget, but allowing multiple objects.</p>
<p>For instance, a group can be seen as a one object category where every arrow
is invertible. So a <span class="defn">groupoid</span> is <em>any</em> category where
every arrow is invertible.</p>
<p>Similarly, an algebra over a field $k$ can be seen as a one object category
whose homset is a $k$-vector space<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>. So an <span class="defn">algebroid</span>
is a category all of whose homsets are $k$-vector spaces.</p>
<p>The exception is monoid, which historically already has an “oid” suffix.
A monoid is “just” a one object category, so a monoidoid should be <em>any category</em>.
Obviously nobody calls categories “monoidoids”, but it’s kind of cute to know
we <em>could</em>.</p>
<p><br /></p>
<p>Next we need to understand monoidal monoidoids. That is, <a href="https://en.wikipedia.org/wiki/Monoidal_category">monoidal categories</a>.
We’re about to oid-ify this into (monoidal monoidoid)oids, so we should be
able to view a monoidal category as a kind of one-object category in its
own right.</p>
<p>We know that monoidal categories are categories $\mathcal{C}$ with a multiplication
$\otimes : \mathcal{C} \times \mathcal{C} \to \mathcal{C}$. So by analogy with
groupoids and algebroids from before, we should expect this multiplication to
become composition in some kind of one-object category.</p>
<p>Inspired by this, say $\mathcal{C}$ is a monoidal category. Let’s build a
new category with one object $\star$, and we’ll take $\text{Hom}(\star,\star)$
to be the objects of $\mathcal{C}$. Then “composition” of two objects $C_1$
and $C_2$ (viewed as arrows $\star \to \star$) should be the object $C_1 \otimes C_2$
(viewed as an arrow $\star \to \star$).</p>
<p>Of course, $\mathcal{C}$ has arrows too! Since in our one-object category
the objects of $\mathcal{C}$ became arrows $\star \to \star$, the <em>arrows</em> of
$\mathcal{C}$ need to be “arrows between the arrows”, and these 2-arrows are
compatible with 1-composition of 1-arrows in the sense that 1-composition was
given by $\otimes$, which is a bifunctor
(so has an action on arrows of $\mathcal{C}$, or 2-arrows of our new category).</p>
<p>So then, a monoidal category $\mathcal{C}$ is “just” a category with
one object $\star$ equipped with a collection of “2-arrow”s
$\text{2Hom}(C_1,C_2)$ for each pair of arrows $C_1, C_2 : \star \to \star$.
These 2-arrows can compose in the expected way
(this is often called <span class="defn">vertical composition</span>)
and are also compatible with composition of 1-arrows (in the sense that
1-composition acts on 2-arrows like a bifunctor $\otimes$. This is often
called <span class="defn">horizontal composition</span>)<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup>.</p>
<p><br /></p>
<p>So finally, we see that we can oid-ify the notion of monoidal category by
removing the assumption that there be a single object $\star$.</p>
<p>Now a “monoidal category”-oid (or a monoidal monoidoid oid)
has</p>
<ul>
<li>Objects</li>
<li>1-Arrows between the objects</li>
<li>2-Arrows between the 1-arrows</li>
</ul>
<p>We can compose 1-arrows in the expected way, and we can compose 2-arrows
<em>vertically</em> (which is the obvious way) and <em>horizontally</em> (which says that
2-arrows are compatible with composition of 1-arrows)<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>.</p>
<p>Of course, this is the usual definition of a (strict) 2-category!
Now you’re officially in on the joke ^_^</p>
<p style="text-align:center;">
<img src="/assets/images/monoidal-monoidoidoids/joke.gif" width="50%" />
</p>
<hr />
<p>Another short post for once! I’m once again on my way to New York tonight
to see some friends, but when I saw “monoidal monoidoidoid” on the nlab
I literally laughed out loud. I spent a bit of time yesterday figuring out
what it meant (though in hindsight the nlab page just tells you…) and wanted
to write this up and share it today before I head to the airport.</p>
<p>As another little life update, I was at <a href="https://math.chapman.edu/blast2022/">BLAST</a> last week, and had a <em>ton</em>
of fun<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup>! It was great to hang out with other logicians, and it’s super exciting
to know that there’s likeminded people so near me – It was getting kind of
lonely being the only logician at UC Riverside. Everyone was super nice, and
I had a lot of great conversations. I’ll definitely be at BLAST next year,
and I might try to spend a bit of time at Chapman too.</p>
<p>For now, though, I have to start packing. Take care everyone, and
see you soon ^_^</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>Do you see why? As a hint, multiplication in your algebra becomes
composition in the category, just like group multiplication becomes composition. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>Concretely, if we have 2-arrows $f : C_1 \to C_2$ and $g : C_2 \to C_3$
then we can compose these “vertically” to get a single 2-arrow $gf : C_1 \to C_3$.</p>
<p style="text-align:center;">
<img src="/assets/images/monoidal-monoidoidoids/vertical.png" width="50%" />
</p>
<p>If instead we have objects $C_1$, $C_1’$, $C_2$, and $C_2’$ with arrows
$f$ and $f’$ as in the following setup</p>
<p style="text-align:center;">
<img src="/assets/images/monoidal-monoidoidoids/horizontal.png" width="50%" />
</p>
<p>then
(recalling that the “composition” $C_1’ \circ C_1 : \star \to \star$ is
given by the monoidal product $\otimes$)
we can compose these “horizontally” to get a 2-arrow
$f’ \otimes f : C_1’ \otimes C_1 \to C_2’ \otimes C_2$. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>Another way to see this is to say that a monoidal category is a
category with one object $\star$ whose homset $\text{Hom}(\star, \star)$
is itself a category.</p>
<p>Then we recover (strict) 2-categories as the oid-ified version of this.
That is, as a category where each homset $\text{Hom}(A,B)$ is itself a
category. That is, a 2-category is “just” a category <a href="https://ncatlab.org/nlab/show/enriched+category">enriched</a> in
$\mathsf{Cat}$.</p>
<p>This is <em>perfectly</em> analogous to the case of $k$-algebroids being
categories enriched in $k$-mod. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>One could say I…. Had a blast? :P <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Sun, 21 Aug 2022 00:00:00 +0000
https://grossack.site/2022/08/21/monoidal-monoidoidoids.html
https://grossack.site/2022/08/21/monoidal-monoidoidoids.htmlEmbedding Dihedral Groups in Vanishingly Small Symmetric Groups<p>After the long and arduous process of writing my previous posts on
homotopy theories and $\infty$-categories, it’s nice to go back to a
relaxed post based on an <a href="https://math.stackexchange.com/questions/4491025/the-smallest-number-for-faithful-operation/4491030#4491030">mse question</a> I answered the other day.
Nature is healing ^_^.</p>
<p>This post was asking about the smallest set on which certain groups can faithfully
act. I actually wrote about this same idea almost exactly a year ago
in a blog post <a href="/2021/08/16/embedding-dihedral-groups-efficiently.html">here</a>, and while answering this question I remembered
that I wanted to follow up on that post. I mentioned some asymptotic result
at the end of it that’s super hard to use,
and I was sure I could get a more legible result if I wanted to<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>.</p>
<p>Well, when answering this question I was reminded that I want to!</p>
<hr />
<p>First, let’s recall what question we want to answer:</p>
<p>In the <a href="/2021/08/16/embedding-dihedral-groups-efficiently.html">last post</a>, we showed that the dihedral group of an $n$-gon’s symmetries
\(D_{2n}\) can embed into the symmetric group \(\mathfrak{S}_m\) even if $m \lt n$.
For instance, \(D_{2 \cdot 6} \hookrightarrow \mathfrak{S}_5\).</p>
<p>A perfectly natural question, then, is <em>how much smaller</em> can we make this?</p>
<p>We showed that if $n = \prod p_i^{k_i}$ is the prime factorization of $n$,
then $D_{2n} \hookrightarrow \mathfrak{S}_{\sum p_i^{k_i}}$.
For instance, since $6 = 2 \cdot 3$, we have
\(D_{2 \cdot 6} \hookrightarrow \mathfrak{S}_{2+3} = \mathfrak{S}_5\).</p>
<p>With this in mind, it seems entirely believable that we can get the ratio to
be <em>very</em> small.</p>
<p>As is usually the case, before trying to prove this, I wanted to compute
some values and see how quickly things are decreasing. This wasn’t really
necessary in hindsight, but it did make for some pretty pictures!</p>
<hr />
<p>First, here’s a plot of the minimal $m$ so that $D_{2n} \hookrightarrow \mathfrak{S}_m$.</p>
<div class="auto">
<script type="text/x-sage">
N = 100
data = [(n, sum(a^b for (a,b) in list(factor(n)))) for n in range(2,N)]
scatter_plot(data).show(axes_labels=['$n$', '$m$'])
</script>
</div>
<p>You can see that the maximal values are always $m=n$, which occurs at all the
prime powers. However, you can <em>also</em> see that the minimal values can be
substantially smaller.</p>
<p>To get a handle on just how much smaller, let’s plot the ratios $m/n$ instead.</p>
<div class="auto">
<script type="text/x-sage">
N = 100
data = [(n, sum(a^b for (a,b) in list(factor(n)))/n) for n in range(2,N)]
scatter_plot(data).show(axes_labels=['$n$', '$m/n$'])
</script>
</div>
<div class="boxed">
<p>As a (very) quick exercise, for which $n$ do we hit the ratio $1$? How often
do these occur?</p>
<p>As a less quick exercise, set $N = 1000$ in the above code and notice how
we stratify into multiple limiting ratios. Can you tell what some of these
ratios are?</p>
</div>
<p>Lastly, let’s take the minimal ratio we’ve seen so far</p>
<div class="auto">
<script type="text/x-sage">
N = 100
rmin = 1
data = []
for n in range(2,N):
r = sum(a^b for (a,b) in list(factor(n)))/n
if r < rmin:
rmin = r
data += [(n,rmin)]
scatter_plot(data).show(axes_labels=['$n$', '$\\min_{k \\leq n}\\ m(k)/k$'])
</script>
</div>
<p>I would love to find a nice curve upper bounding this last scatter plot,
but it seems like a possibly tricky problem in number theory. Formally:</p>
<div class="boxed">
<p>Define</p>
\[f(n) \triangleq \displaystyle \min_{\prod p_i^{k_i} \leq n} \frac{\sum p_i^{k_i}}{\prod p_i^{k_i}}\]
<p>Can you find asymptotics for $f$?</p>
</div>
<p>If anyone wants to take a stab at this
(or any other problems related to this sequence<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">2</a></sup>),
I would love to hear what you find ^_^.</p>
<hr />
<p>Whatever the asymptotics are, it’s clear that $f(n) \to 0$. That is,
for any $\epsilon$ you like, there’s a dihedral group $D_{2n}$ embedding into
a symmetric group $\mathfrak{S}_{n \epsilon}$. I don’t know why, but this
feels remarkable to me. It says that somehow we can get away
with practically no objects at all in order to faithfully represent a dihedral
group action. Said another way, there’s some $n$-gon whose symmetries can be
faithfully represented in the symmetries of only $\frac{n}{1000000}$ many points.</p>
<p>For completeness, let’s give a quick proof of this fact. It’s fairly easy,
so I encourage you to try it yourself! In fact, it’s quite easy to prove
various strengthenings of this fact. For instance, the proof we’re about
to give shows that we can take $n$ to be a product of $2$ primes, and is
easily tweaked to allow us to put lots of bonus conditions on the prime
factorization of $n$.</p>
<p>$\ulcorner$
Let $\epsilon \gt 0$.</p>
<p>Pick two primes $p,q \gt \frac{2}{\epsilon}$. Then from the results in
the <a href="/2021/08/16/embedding-dihedral-groups-efficiently.html">last post</a> the dihedral group $D_{2pq}$ embeds into the symmetric group
$\mathfrak{S}_{p+q}$. But now</p>
\[\frac{m}{n} = \frac{p+q}{pq} = \frac{1}{q} + \frac{1}{p} \lt \epsilon\]
<p>That is, $f(pq) \lt \epsilon$, so that $f(n) \to 0$.
<span style="float:right">$\lrcorner$</span></p>
<hr />
<p>It’s nice to write up a quick relaxing post for once. I thought about trying
to answer some of the number theoretic questions that I posed throughout
(as well as a few that I didn’t), but I really wanted to keep this quick.
Plus, I suspect a lot of these questions will be somewhat simple, and I might
keep them in my back pocket in case a younger undergraduate comes to me
looking for a project.</p>
<p>Also there’s an <em>extra</em> reason to be excited about this post:
it gave me an excuse to submit another sequence to the OEIS!
The inputs for which $f(n)$ changes are
interesting, and were not in the OEIS already, so I submitted them
while I was writing this up! If all goes well, they should be available as
<a href="https://oeis.org/A354424">A354424</a> in the near future<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">3</a></sup>.</p>
<p>It’s also nice to go back to an older post and give it the closure it really
deserves. The asymptotic result I cited there is borderline unusable, and
this post answers the question that I really <em>wanted</em> to ask in that post<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">4</a></sup>.</p>
<p>Take care, and stay safe all ^_^. Talk Soon!</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>While writing that post all those months ago, I certainly did <em>not</em>
want to. If I remmeber right, I finished writing that post at like
3 or 4 in the morning… <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>For instance, how long can the wait time be before we see a better ratio?</p>
<p>Precisely, let $a_n$ be the sequence of values so that $f(a_n) \neq f(a_n-1)$.
How far apart can $a_n$ be from $a_{n+1}$?</p>
<p>Said another way, how large are the gaps in <a href="https://oeis.org/A354424">A354424</a>? <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>I don’t know why, but submitting to the OEIS always makes me kind of
giddy with excitement! <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>It also brought up a whole host of other questions! This is a huge part
of the fun of math for me – there’s always more to explore. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Sat, 16 Jul 2022 00:00:00 +0000
https://grossack.site/2022/07/16/efficient-embedding-followup.html
https://grossack.site/2022/07/16/efficient-embedding-followup.htmlWhy Care about the "Homotopy Theory of Homotopy Theories"? (Homotopy Theories pt 4/4)<p>It’s time for the last post of the series! Ironically, this is the post that
I meant to write from the start. But as I realized how much background
knowledge I needed to provide (and also internalize myself), various sections
got long enough to warrant their own posts.
Well, three posts and around $8000$ words later, it’s finally time!
The point of this post will be to explain what people mean when they
talk about the “homotopy theory of homotopy theories”, as well as to
explain why we might care about such an object.
After all – it seems incredibly abstract!</p>
<p>Let’s get to it!</p>
<hr />
<p>Let’s take a second to recap what we’ve been talking about over the course
of these posts.</p>
<p>We started with relative categories. These are categories $\mathcal{C}$
equipped with a set of arrows $\mathcal{W}$ (called <em>weak equivalences</em>)
which we think of as morally being isomorphisms, even if they aren’t
<em>actually</em> isos in $\mathcal{C}$. The classical examples are topological
spaces up to homotopy equivalence, and chains of $R$-modules up to
quasiisomorphism.</p>
<p>In the first post, we defined the <em>localization</em> (or the <em>homotopy category</em>)
$\mathcal{C}[\mathcal{W}^{-1}]$, which we get by freely inverting the arrows
in $\mathcal{W}$. We say that a <em>homotopy theory</em> is a category of the form
$\mathcal{C}[\mathcal{W}^{-1}]$ up to equivalence.</p>
<p>Unfortunately, homotopy categories (to use a technical term)
suck. So we introduce <a href="https://en.wikipedia.org/wiki/Model_category">model structures</a> on $(\mathcal{C}, \mathcal{W})$,
which let us do computations in $\mathcal{C}[\mathcal{W}^{-1}]$ using the
data in $\mathcal{C}$. Model structures also give us a notion of
<a href="https://ncatlab.org/nlab/show/Quillen+equivalence">quillen equivalence</a>, which allow us to quickly guarantee that two
relative categories present the same homotopy theory (that is, they have
equivalent localizations)<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>.</p>
<p>Unfortunately again, model categories have problems of their own. While
they’re great tools for computation, they don’t have the kinds of nice
“formal properties” that we would like. Most disturbingly, there’s no good
notion of a functor between two model categories.</p>
<p>We tackled this problem by defining <em>simplicial categories</em>, which are
categories that have a <em>space</em> worth of arrows between any two objects,
rather than just a set. We call simplicial categories
(up to equivalence) $\infty$-categories.</p>
<p>Now, we know how to associate to each relative category $(\mathcal{C}, \mathcal{W})$
an $\infty$-category via <em>hammock localization</em>.
Surprisingly, (up to size issues), <em>every</em> $\infty$-category arises from a
pair $(\mathcal{C}, \mathcal{W})$ in this way.
With this in mind, and knowing how nice the world of $\infty$-categories is,
we might want to say a “homotopy theory” is an $\infty$-category rather than
a relative category.
Intuitively, the facts
in the previous paragraph tell us that we shouldn’t lose any information by
doing this… But the correspondence isn’t <em>actually</em> one-to-one.
Is there any way to remedy this, and put our intuition on solid ground?</p>
<p>Also, in the <a href="quasicategories">previous post</a> we gave a second definition of
$\infty$-category, based on <a href="https://en.wikipedia.org/wiki/Quasi-category">quasicategories</a>!
These have some pros and some cons compared to the simplicial category approach,
but we now have <em>three different definitions</em> for “homotopy theory”
floating around. Is there any way to get our way out of this situation?</p>
<hr />
<p>To start, recall that we might want to consider two relative categories
“the same” if they present the same homotopy theory. With our new,
more subtle tool, that’s asking if</p>
\[L^H(\mathcal{C}_1, \mathcal{W}_1) \simeq L^H(\mathcal{C}_2, \mathcal{W}_2)\]
<p>but wait… There’s an obvious category $\mathsf{RelCat}$ whose objects
are relative categories and arrows
\((\mathcal{C}_1, \mathcal{W}_1) \to (\mathcal{C}_2, \mathcal{W}_2)\) are functors
\(\mathcal{C}_1 \to \mathcal{C}_2\) sending each arrow in \(\mathcal{W}_1\) to
an arrow in \(\mathcal{W}_2\).</p>
<p>Then this category has objects which are <em>morally</em> isomorphic
(since they have equivalent hammock localizations), but which are not
<em>actually</em> isomorphic…</p>
<p>Are you thinking what I’m thinking!?</p>
<p>$\mathsf{RelCat}$ <em>itself</em> forms a relative category, and
in this sense, $\mathsf{RelCat}$ becomes itself a homotopy theory whose
objects are (smaller) homotopy theories!</p>
<p>We can do the same thing with simplicial categories (resp. quasicategories)
to get a relative category of $\infty$-categories. In fact, all three of
these categories admit model structures, and are quillen equivalent!</p>
<p>This makes precise the idea that relative categories and $\infty$-categories
are really carrying the same information<sup id="fnref:25" role="doc-noteref"><a href="#fn:25" class="footnote" rel="footnote">2</a></sup>!</p>
<p>In fact, there’s a <em>zoo</em> of relative categories which all have the
same homotopy category as $\mathsf{RelCat}$. We say that these are
models of the “homotopy theory of homotopy theories”, or equivalently,
that these are models of $\infty$-categories<sup id="fnref:27" role="doc-noteref"><a href="#fn:27" class="footnote" rel="footnote">3</a></sup>.</p>
<div class="boxed">
<p>If you remember earlier, we only gave a tentative definition of a
homotopy theory. Well now we’re in a place to give a proper definition!</p>
<p>A <span class="defn">Homotopy Theory</span>
(equivalently, an <span class="defn">$\infty$-category</span>) is an object
in any (thus every) of the localizations of the categories we’ve just discussed.</p>
</div>
<p>Perhaps unsurprisingly, we can do the same simplicial localization
maneuver to one of these relative categories
in order to get an $\infty$-category of $\infty$-categories!</p>
<p>But why care about all this?</p>
<p>It tells us that (in the abstract) we can make computations with either
simplicial categories or quasicategories – whichever is more convenient
for the task at hand. But are there any more concrete reasons to care?</p>
<hr />
<p>Remember all those words ago in the <a href="model-categories">first post</a> of this series,
I mentioned that hammock localization <em>works</em>, but feels somewhat
unmotivated. Foreshadowing with about as much grace as a young
fanfiction author, I asked if there were some more conceptual way to
understand the hammock construction, which shows us “what’s really going on”.</p>
<p>Well what’s the simplest example of a localization? Think of the category
$\Delta^1$ with two objects and one arrow:</p>
\[0 \longrightarrow 1\]
<p>Inverting this arrow gives us a category with two objects and an isomorphism
between them, but of course this is equivalent to the terminal category
$\Delta^0$ (which has one object and only the identity arrow).</p>
<p>So then how should we invert all of the arrows in $\mathcal{W}$? It’s not
hard to see that this pushout, intuitively, does the job:</p>
<p style="text-align:center;">
<img src="/assets/images/infinity-categories/oo-pushout.png" width="33%" />
</p>
<p>Here the top functor sends each copy of $\Delta^1$ to its corresponding
arrow in $\mathcal{W}$, and the left functor sends each copy of $\Delta^1$
to a copy of $\Delta^0$. Then the pushout should be $\mathcal{C}$, only we’ve
identified all the arrows in $\mathcal{W}$ with the points $\Delta^0$.
This is exactly what we expect the (simplicial) localization to be, and
it turns out that in the $\infty$-category of $\infty$-categories, this
pushout really does the job!</p>
<p>For more about this, I really can’t recommend the youtube series
<a href="https://www.youtube.com/watch?v=3IjAy0gHRyY&list=PLsmqTkj4MGTDenpj574aSvIRBROwCugoB"><em>Higher Algebra</em></a> by Homotopy Theory Münster highly enough.
Their goal is to give the viewer an idea of how we <em>compute</em> with
$\infty$-categories, and what problems they solve, without getting
bogged down in the foundational details justifying exactly why these
computational tools work.</p>
<p>Personally, that’s <em>exactly</em> what I’m looking for when I’m first learning
a topic, and I really appreciated their clarity and insight!</p>
<hr />
<p>With that last example, we’re <em>finally</em> done! This is easily the most
involved (series of) posts I’ve ever written, so thanks for sticking through
it!</p>
<p>I learned a <em>ton</em> about model categories and $\infty$-categories while
researching for this post, and I’m glad to finally have a decent idea of
what’s going on. Hopefully this will be helpful for other people too ^_^.</p>
<p>Stay safe, all, and I’ll see you soon!</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>Note, however, that while most examples of two model categories with the
same homotopy theory come from quillen equivalences, this does not have
to be the case. See <a href="https://mathoverflow.net/questions/135717/examples-of-non-quillen-equivalent-model-categories-having-equivalent-homotopy-c">here</a> for an example. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:25" role="doc-endnote">
<p>When I was originally conceiving of this post, I wanted this to be the
punchline.</p>
<p>The “homotopy theory of homotopy theories” is obviously <em>cool</em>, but it
wasn’t clear to me what it actually <em>did</em>. I was initially writing up this
post in order to explain that I’ve found a new reason to care about heavy
duty machinery: Even if it doesn’t directly solve problems, it can allow
us to make certain analogies precise, which we can maybe only see from a
high-abstraction vantage point.</p>
<p>Fortunately for me, but unfortunately for my original outline for this post,
while writing this I’ve found <em>lots</em> of other, more direct, reasons to care about
this theory! So I’ve relegated this original plan to the
footnote you’re reading… <a href="https://youtu.be/YFX7SOLoi1Y?t=246">right. now</a>. <a href="#fnref:25" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:27" role="doc-endnote">
<p>See Juila Bergner’s <em>A Survey of $(\infty,1)$-Categories</em>
(available <a href="https://arxiv.org/pdf/math/0610239.pdf">here</a>) for more. <a href="#fnref:27" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Mon, 11 Jul 2022 04:00:00 +0000
https://grossack.site/2022/07/11/homotopy-of-homotopies.html
https://grossack.site/2022/07/11/homotopy-of-homotopies.htmlAn Interlude -- Quasicategories (Homotopy Theories pt 3/4)<p>In the <a href="infinity-categories">previous post</a>, we defined $\infty$-categories as being
categories “enriched in simplicial sets”. These are nice, and
fairly quick to introduce, but if you start reading the
$\infty$-category theoretic literature, you’ll quickly run into
another definition: <span class="defn">Quasicategories</span>.
In this post, we’ll give a quick introduction to quasicategories,
and talk about how they’re related to the $\mathcal{S}$-enriched
categories we’ve come to know and love.</p>
<hr />
<p>First, then, a reminder:</p>
<p>A <span class="defn">Simplicial Set</span> is a (contravariant)
functor from the <a href="https://en.wikipedia.org/wiki/Simplex_category">simplex category</a> to $\mathsf{Set}$.</p>
<p>This seems strange at first, but it turns out that we can model
many different kinds of behavior using simplicial sets.</p>
<p>Most notably, simplicial sets are a common generalization of both
topological spaces (up to homotopy) and categories!</p>
<p>We’ve already seen how simplicial sets can represent topological spaces up to
homotopy (this is given by a quillen equivalence of model structures on
$\mathsf{Top}$ and $s\mathsf{Set}$). To a simplicial set, we associate its
<a href="https://ncatlab.org/nlab/show/geometric+realization#OfSimplicialSets">geometric realization</a>, and to a topological space we associate its
(singular) simplicial set $\text{Sing}_X$ where $\text{Sing}_X(\Delta^n)$
is the set of continuous maps from the topological $n$-simplex into $X$.</p>
<p>We know that $X$ is determined up to (weak) homotopy equivalence by
$\text{Sing}_X$, so we previously defined a
<span class="defn">Simplicial Category</span> to be a category enriched in
simplicial sets. We wanted to intuitively view this as a category with a
geometric space of arrows between any two objects, as this came up in our
study of $\infty$-categories. This turns out to be
a great definition for intuition, but it can be a bit difficult to work with.</p>
<p>I mentioned earlier that simplicial sets can <em>directly</em> generalize categories…
Maybe there’s some way to define $\infty$-categories directly as simplicial
sets as well?</p>
<p>The answer will be “yes”, but let’s start small. Is there a way for us to
recognize when a simplicial set is $\text{Sing}_X$ for some topological
space $X$?</p>
<hr />
<div class="boxed">
<p>The <span class="defn">$i$th Horn</span> of $\Delta^n$ is (geometrically)
the space we get by removing the interior of $\Delta^n$, along with the
face opposite the $i$th vertex<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>. We denote it $\Lambda^n_i$</p>
</div>
<p>For instance, let’s look at $\Delta^2$. This is a solid triangle, and it
has three horns – one for each vertex.</p>
<p>Concretely, $\Delta^2$ is given by</p>
<p style="text-align:center;">
<img src="/assets/images/quasicategories/delta2.png" width="50%" />
</p>
<p>Then the $0$th horn of $\Delta^2$, denoted $\Lambda^2_0$, is what we get by
removing the interior 2-cell, along with the 1-cell opposite $0$:</p>
<p style="text-align:center;">
<img src="/assets/images/quasicategories/horn-2-0.png" width="50%" />
</p>
<p>Analogously, we get $\Lambda^2_1$ by removing the interior 2-cell and the
1-cell opposite $1$:</p>
<p style="text-align:center;">
<img src="/assets/images/quasicategories/horn-2-1.png" width="50%" />
</p>
<p>and we get $\Lambda^2_2$ by removing the interior 2-cell and the 1-cell
opposite $2$:</p>
<p style="text-align:center;">
<img src="/assets/images/quasicategories/horn-2-2.png" width="50%" />
</p>
<p>What about the horns of $\Delta^3$? Well now, we remove the interior 3-cell
(the “volume” of the simplex) as well as the 2-cell opposite your favorite
vertex. Concretely, we see $\Lambda^3_0$ is given by<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">2</a></sup></p>
<p style="text-align:center;">
<img src="/assets/images/quasicategories/horn-3-0.png" width="50%" />
</p>
<p>Similarly, $\Lambda^3_1$ is</p>
<p style="text-align:center;">
<img src="/assets/images/quasicategories/horn-3-1.png" width="50%" />
</p>
<p>$\Lambda^3_2$ is</p>
<p style="text-align:center;">
<img src="/assets/images/quasicategories/horn-3-2.png" width="50%" />
</p>
<p>and $\Lambda^3_3$ is</p>
<p style="text-align:center;">
<img src="/assets/images/quasicategories/horn-3-3.png" width="50%" />
</p>
<div class="boxed">
<p>As a (quick?) exercise, you should try to write down a definition of
$\Lambda^n_i$ as a simplicial set.</p>
<p>Remember that, by the yoneda lemma, it (more or less) suffices to say what the
$k$-cells are for each $k$<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">3</a></sup>.</p>
</div>
<hr />
<p>Now then, we come to an important definition</p>
<div class="boxed">
<p>A simplicial set $X$ is called a
<span class="defn">Kan Complex</span>
if every horn $\Lambda^n_i$ in $X$ can be
“filled” by a $\Delta^n$.</p>
</div>
<p>In a commutative diagram, we ask that the following dotted
morphism should always exist:</p>
<p style="text-align:center;">
<img src="/assets/images/quasicategories/filling-horns.png" width="33%" />
</p>
<p>Why care about this? Because of the following major theorem:</p>
<div class="boxed">
<p>For every topological space $X$, $\text{Sing}_X$ is a kan complex.</p>
<p>Moreover, (up to weak equivalence), every kan complex arises in this way.</p>
</div>
<p>So we see that we can completely recover the notion of topological space
(up to homotopy) by looking at special simplicial sets… But wasn’t this
all supposed to have something to do with category theory?</p>
<hr />
<p>Just like every topological space $X$ defines a simplicial set
\(\text{Sing}_X\), every category <em>also</em> defines a simplicial set,
called the <span class="defn">Nerve</span> of the category $\mathcal{C}$.</p>
<p>In general, the $n$-cells in the nerve $\mathcal{N}(\mathcal{C})$ will be
given by the “paths” of length $n$ made of arrows in $\mathcal{C}$. That is</p>
<ul>
<li>The 0-cells will be objects of $\mathcal{C}$</li>
<li>The 1-cells will be the arrows, $C_0 \to C_1$</li>
<li>The 2-cells will be the paths of length 2, $C_0 \to C_1 \to C_2$</li>
<li>The 3-cells will be the paths of length 3, $C_0 \to C_1 \to C_2 \to C_3$</li>
<li>etc.</li>
</ul>
<p>Concretely, let’s look at the following category (where $k = hf = hg$):</p>
<p style="text-align:center;">
<img src="/assets/images/quasicategories/cat.png" width="50%" />
</p>
<p>Then its nerve should have three 0-cells ($A$, $B$, and $C$),
plus 1-cells for $f$, $g$, $h$, and the composite $k$
(notice this is only <em>one</em> 1-cell, since it’s a single arrow in $\mathcal{C}$).
However, we add <em>two</em> 2-cells:</p>
\[A \overset{f}{\to} B \overset{h}{\to} C\]
\[A \overset{g}{\to} B \overset{h}{\to} C\]
<p>since $k$ arises as a composite in <em>two</em> ways: $hf$ and $hg$.</p>
<p>Thus, the nerve of $\mathcal{C}$ is a <em>cone</em></p>
<p style="text-align:center;">
<img src="/assets/images/quasicategories/nerve.png" width="50%" />
</p>
<p>Perhaps a better way to visualize this is as a <em>disk</em> instead:</p>
<p style="text-align:center;">
<img src="/assets/images/quasicategories/nerve2.png" width="50%" />
</p>
<p>Of course, it’s easy to guess the next question. Can we tell
<em>which</em> simplicial complexes arise as the nerve of some category?</p>
<p>Again, the answer is <em>yes</em>, and the answer will look shockingly similar
to the case of topological spaces!</p>
<div class="boxed">
<p>A simplicial complex is called a
<span class="defn">Quasicategory</span>
if every “inner horn” has a fill.</p>
<p>That is, every horn $\Lambda^n_i$ should have a fill, except
when $i=0$ or $i=n$.</p>
</div>
<p>This should make sense as a definition, since in a category <em>composition</em>
tells us that we can fill inner horns!</p>
<p>Indeed, consider the inner horn $\Lambda^2_1$:</p>
<p style="text-align:center;">
<img src="/assets/images/quasicategories/inner-horn.png" width="50%" />
</p>
<p>If this diagram lives inside the nerve of a category $\mathcal{N}(\mathcal{C})$,
then we can always fill the horn! Indeed, we have a 1-cell from $0 \to 2$
given by $gf$. We also have a 2-cell filling this triangle given by
the path $0 \overset{f}{\to} 1 \overset{g}{\to} 2$.</p>
<p style="text-align:center;">
<img src="/assets/images/quasicategories/filled-inner-horn.png" width="50%" />
</p>
<div class="boxed">
<p>As a cute exercise, you should check that the two inner horns
$\Lambda^3_1$ and $\Lambda^3_2$ have fills in the nerve of a category.</p>
</div>
<hr />
<p>This all brings us to another major theorem:</p>
<div class="boxed">
<p>For every category, the nerve $\mathcal{N}(\mathcal{C})$ is a
quasicategory.</p>
<p>Moreover, if $X$ is a quasicategory where each inner horn has a
<em>unique</em> fill, then $X$ is isomorphic to the nerve of some category.</p>
<p>Moreover again, the nerve construction embeds the category of categories
fully and faithfully into the category of quasicategories.</p>
</div>
<p>Importantly, this means that <em>every kan complex is a quasicategory</em>! This tells us
that quasicategories allow us to treat spaces and categories on equal footing<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">4</a></sup>!</p>
<p>In particular, quasicategories give us a setting where we can
“do homotopy theory” to categories, and if you remember back to
the main post about $\infty$-categories, and how they solve the
formal issues with model categories, that’s exactly what we were looking for!</p>
<div class="boxed">
<p>Here’s another tentative definition. If this reminds you of the tentative
definition of a “homotopy theory” from the last post, you have good instincts.</p>
<p>An <span class="defn">$\infty$-category</span> is a quasicategory, where we
say two quasicategories <em>present the same $\infty$-category</em> if they are
<a href="https://ncatlab.org/nlab/show/model+structure+on+simplicial+sets#joyals_model_structure">homotopy equivalent</a> as simplicial sets.</p>
</div>
<p>This is great because it gives us a super concrete way of working with
$\infty$ categories.</p>
<p>In this framework, our categories literally are geometric objects! The
category of simplicial sets is a topos, so it has as many nice constructions
as we could want, and many of these preserve kan complexes and quasicategories.</p>
<p>For instance, now functors are just simplicial maps, many limits and colimits
of quasicategories can be computed as with geometric objects, exponentials
give us functor quasicategories, and all of these work as well as we could hope.</p>
<p>Because of this concreteness,
Jacob Lurie’s tomes on $\infty$-categories are primarily based on the
language of quasicategories. But in the main post, we defined an
$\infty$-category to be a category enriched in spaces…</p>
<p>How can we reconcile these viewpoints? Is there a way for us to apply
the machinery proven in Lurie’s books to the hammock localization of
a model category? Is there some way for us to
use these nice geometric definitions for computations involving quasicategories,
and leverage them to understand the simplicial categories we’ve been talking
about? Why have we given two seemingly unrelated definitions of an
$\infty$-category in the first place?</p>
<p>For answers to these questions and more, read on to the <a href="homotopy-of-homotopies">last post</a> in this
series<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">5</a></sup>!</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>Super concretely, given $n+1$ vertices</p>
\[0 \lt 1 \lt \ldots \lt n-1 \lt n\]
<p>the $i$th horn $\Lambda^n_i$ is $\Delta^n$ minus two cells:</p>
<ul>
<li>the unique $n$-cell</li>
<li>the unique $n-1$ cell which doesn’t contain $i$</li>
</ul>
<p><a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>Sorry if these are hard to understand. Drawing 3d pictures is hard, haha.
Each image is made up of 1-cells (colored in black) as well as 2-cells
(shaded in blue). Moreover, in each picture we’ve omitted exactly one
2-cell from the boundary of the tetrahedron. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>If it’s not clear what role yoneda plays in this situation, see
my answer <a href="https://math.stackexchange.com/questions/4475159/conceptualizing-presheaves-as-generalized-spaces/4475219#4475219">here</a>.</p>
<p>It’s also definitely worth reading Friedman’s
<em>An Elementary Illustrated Introduction to Simplicial Sets</em>
(avaialable <a href="http://arxiv.org/abs/0809.4221">here</a>). <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>I originally put this in the main body, but I ended up deciding it
ruined the flow of the post too much. That said, I still think it’s
a fun (and enlightening) example, so I wanted to include it as a
~bonus exercise~ here:</p>
<div class="boxed">
<p>Show that two isomorphic categories give rise to homeomorphic nerves
(after taking <a href="https://ncatlab.org/nlab/show/geometric+realization">geometric realizations</a>, of course).</p>
<p>Then, show that two <em>equivalent</em> categories give rise to homotopy equivalent
nerves.</p>
</div>
<p><a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>Thank goodness! I have been working on these for <em>so</em> long.
I really didn’t realize how big a project I was in for when I decided
to make a post clarifying the relationship between model categories
and $\infty$-categories…</p>
<p>I love how it’s turning out, but I’m so ready for these posts to be
behind me, haha. I also didn’t want to post any of them until they
were all done. In part because I spent a lot of time moving various
bits back and forth between posts, and once one is public I would want
to consider it (mostly) set in stone. But also because I wanted to make
sure I actually finished them all.</p>
<p>I have a bad habit of starting a series and leaving things unfinished
(rest in peace <a href="/2021/03/01/cohomology-intuitively.html">cohomology part 1</a>),
but it was important that I not do that to these posts. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Mon, 11 Jul 2022 03:00:00 +0000
https://grossack.site/2022/07/11/quasicategories.html
https://grossack.site/2022/07/11/quasicategories.htmlWhy Care About Infinity Categories? (Homotopy Theories pt 2/4)<p>The title of this post is slightly misleading. It will be almost entirely
about $\infty$-categories, but it <em>will</em> have a focus on how
$\infty$-categories solve some of the formal problems with model categories
that we outlined in <a href="model-categories">part 1</a> of this trilogy.</p>
<p>With the intro out of the way, let’s have a quick recap.</p>
<hr />
<p>The setting we’re interested in is a category $\mathcal{C}$ equipped with
some arrows $\mathcal{W}$ that morally <em>should</em> be isomorphisms, but which
aren’t (these are called <em>weak equivalences</em>, and a pair $(\mathcal{C}, \mathcal{W})$
is called a <em>relative category</em>).
The quintessential examples are the (weak) homotopy equivalences in
$\mathsf{Top}$, and the quasi-isomorphisms of chain complexes.</p>
<p>We want to build a new category
(called the <em>homotopy category</em> or <em>localization</em>)
$\mathcal{C}[\mathcal{W}^{-1}]$ where we freely invert all the arrows in
$\mathcal{W}$<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>. The issue is that this category is quite badly behaved.
For instance, even if $\mathcal{C}$ is (co)complete,
$\mathcal{C}[\mathcal{W}^{-1}]$ almost never is.</p>
<p>A <a href="https://en.wikipedia.org/wiki/Model_category">model structure</a> on a pair $(\mathcal{C}, \mathcal{W})$ is a choice of
two new families of arrows, called <em>fibrations</em> and
<em>cofibrations</em>, plus axioms saying how they relate to
each other and to the weak equivalences $\mathcal{W}$.</p>
<p>A model structure on $(\mathcal{C}, \mathcal{W})$ solves many of the
computational problems with $\mathcal{C}[\mathcal{W}^{-1}]$. For instance,
now the homotopy category is guaranteed to be locally small, and we have
effective techniques for computing homotopy (co)limits,
derived functors, and guaranteeing that two relative categories have
equivalent localizations. All of these techniques go through
<em>bifibrant replacement</em>, which is a generalization of the familiar
projective and injective resolutions from homological algebra.</p>
<p>Unfortunately, as we noted at the end of the last post, model categories are
not without flaws. As soon as we want to talk about relationships <em>between</em>
model categories, we start running into trouble. For instance, there’s
no good notion of a functor between model categories.</p>
<p>What, then, are we to do? The answer is to fully accept homotopy theory as
part of our life, and to move to a notion of “category” which is better
equipped to handle the geometry which is implicit in the machinery of
model categories.</p>
<hr />
<p>To start, we need a model of “spaces” that’s more convenient to work with
than topological spaces.</p>
<div class="boxed">
<p>A <span class="defn">Simplicial Set</span> is a functor
$X : \Delta^{\text{op}} \to \mathsf{Set}$.</p>
<p>Here $\Delta$ (the <em>simplex category</em>) is the category whose objects are
the nonemtpy finite totally ordered sets, with order preserving maps.</p>
</div>
<p>Every object in $\Delta$ is isomorphic to an object of the form</p>
\[0 \lt 1 \lt 2 \lt \ldots \lt n\]
<p>which we call $\Delta^n$.</p>
<p>We should think of $\Delta^n$ as representing the <a href="https://en.wikipedia.org/wiki/Simplex">$n$-simplex</a>,
where we’ve chosen a total order the $n+1$ vertices. This allows us
to orient all the edges in a consistent way<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup>.</p>
<p>Now, to every topological space $X$ we can associate a simplicial set
$\text{Sing}_X$, where $\text{Sing}_X(\Delta^n)$ is the set of continuous
from the (topological) $n$-simplex into $X$. This construction is familiar
from, for instance, <a href="https://en.wikipedia.org/wiki/Singular_homology">singular homology</a>.</p>
<p>It turns out that \(\text{Sing}_X\) perfectly remembers the homotopy type of $X$,
in the sense that we can recover $X$ (up to homotopy equivalence) knowing
only the simplicial set \(\text{Sing}_X\). This is some justification that
simplicial sets really <em>can</em> be used to model homotopy types.</p>
<p>But there’s a natural follow up question: Can we recognize when a
simplicial set is \(\text{Sing}_X\) for some space $X$? The answer,
of course, is <em>yes</em>, but we’re not going to talk about that here.
This topic deserves its own post, which is <a href="quasicategories">part 3</a>.</p>
<p>For now we’ll content ourselves with the knowledge that
simplicial sets, up to homotopy equivalence, represent spaces
in a convenient way. For those following along, this is the
Quillen equivalence between $s\mathsf{Set}$ and $\mathsf{Top}$ that
we mentioned in the previous post!</p>
<p>We’ll write $\mathcal{S}$ for the homotopy category of $s\mathsf{Set}$
(equivalently of $\mathsf{Top}$), and we’ll call the objects of this
category <em>spaces</em>.</p>
<hr />
<div class="boxed">
<p>A <span class="defn">Simplicial Category</span> is a category
<a href="https://en.wikipedia.org/wiki/Enriched_category">enriched</a> in $\mathcal{S}$.</p>
<p>That is, given two objects $A$ and $B$ in our category, we have a
<em>space</em> of morphisms $\text{Map}(A,B)$.</p>
<p>There is a natural notion of equivalence between two simplicial categories,
called <em>Dwyer-Kan equivalence</em>, then we (tentatively) say an
<span class="defn">$\infty$-category</span> is a simplicial category
up to DK-equivalence.</p>
<p>Given an $\infty$-category $\mathcal{C}$, there’s a natural way to get an
ordinary category back from it. We keep the same objects,
but replace the space of arrows $\text{Map}(A,B)$ by its
set of connected components. We call this the
<span class="defn">Homotopy Category</span> of $\mathcal{C}$.</p>
</div>
<p>As an example, we might have two arrows $f,g : A \to B$,
which are connected by homotopies $H$ and $K$. In this case we have a
“circle’s worth” of arrows from $A \to B$:</p>
<p style="text-align:center;">
<img src="/assets/images/infinity-categories/circle.png" width="30%" />
</p>
<p>When we take connected components, these two maps $f$ and $g$ are
identified, so we only see one arrow in the homotopy category.</p>
<p>We’ll see another, more realistic example, once we know how to build an
$\infty$-category from a relative category $(\mathcal{C}, \mathcal{W})$.</p>
<hr />
<p>So how <em>do</em> we build an $\infty$-category from a relative category?
This is called the
<span class="defn">Hammock Construction</span><sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>, and while we won’t spend
<em>too</em> much time on this, it’s worth at least a few words!</p>
<p>We want to build up a space of maps $A \to B$.</p>
<p>The $0$-cells will be zigzags of the form:</p>
<ul>
<li>
\[A \to B\]
</li>
<li>
\[A \to C_0 \overset{\sim}{\leftarrow} B\]
</li>
<li>
\[A \to C_0 \overset{\sim}{\leftarrow} C_1 \to B\]
</li>
<li>
\[A \to C_0 \overset{\sim}{\leftarrow} C_1 \to C_2 \overset{\sim}{\leftarrow} B\]
</li>
<li>etc.<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup></li>
</ul>
<p>where the left-pointing arrows are weak equivalences. Notice that, after we
invert the weak equivalences, the left facing arrows will have inverses,
which will compose with the other right facing arrows to give an
honest-to-goodness arrow $A \to B$. That is, the $0$-cells really are
maps $A \to B$ in $\mathcal{C}[\mathcal{W}^{-1}]$.</p>
<p>Now, a $1$-cell from $f$ to $g$ should be a “proof” that $f$ and $g$ are homotopic.
If $f$ and $g$ have the same length, then we can represent this with a
“hammock”<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup>:</p>
<p style="text-align:center;">
<img src="/assets/images/infinity-categories/1hammock.png" width="50%" />
</p>
<p>Similarly, a $k$-cell will be a hammock that is $k$ strands “wide”.
Here’s the picture from the original paper:</p>
<p style="text-align:center;">
<img src="/assets/images/infinity-categories/wide-hammock.png" width="50%" />
</p>
<p>As before, the vertical arrows should all be weak equivalences, as should all
the backwards facing arrows in the zigzags.</p>
<p>Of course, we need the <a href="https://en.wikipedia.org/wiki/Simplicial_set#Face_and_degeneracy_maps_and_simplicial_identities">face maps</a> between simplicies. We get the $i$th face map
by just omitting row $i$ from the hammock. We get the $i$th degeneracy map
by repeating the $i$th row, using the identity map in each column as the weak
equivalence.</p>
<div class="boxed">
<p>The resulting $\infty$-category $L^H(\mathcal{C}, \mathcal{W})$ is called the
(Hammock) Simplicial Localization of $(\mathcal{C}, \mathcal{W})$.</p>
<p>Notice that the homotopy category of $L^H(\mathcal{C}, \mathcal{W})$
is equivalent to the category $\mathcal{C}[\mathcal{W}^{-1}]$, so we can
recover the “classical” localization from the hammock localization
whenever we want.</p>
</div>
<p style="text-align:center;">
<img src="/assets/images/infinity-categories/hammock.gif" width="50%" />
</p>
<hr />
<p>Let’s see an example. Consider the category</p>
<p style="text-align:center;">
<img src="/assets/images/infinity-categories/small-cat.png" width="50%" />
</p>
<p>where $hf = hg = k$.</p>
<p>Say we want to invert $h$. After doing this we see
that $f = g$, since we must have $f = h^{-1} k = g$. Thus we have
<em>lost</em> information in the homotopy category that we didn’t necessarily
plan on losing when we inverted $h$. Does the hammock localization
solve this problem?</p>
<p>Let’s compute $\text{Map}(A,B)$.</p>
<p>It should have a $0$ cell for each zigzag. So we’ll have $0$-cells</p>
<ul>
<li>$A \overset{f}{\to} B$</li>
<li>$A \overset{g}{\to} B$</li>
<li>$A \overset{k}{\to} C \overset{h}{\underset{\sim}{\leftarrow}} B$</li>
</ul>
<p>For $1$-cells, we’ll have two small hammocks:</p>
<p style="text-align:center;">
<img src="/assets/images/infinity-categories/eg-hammock-f.png" width="50%" />
</p>
<p style="text-align:center;">
<img src="/assets/images/infinity-categories/eg-hammock-g.png" width="50%" />
</p>
<p>So that $\text{Map}(A,B)$ is the space:</p>
<p style="text-align:center;">
<img src="/assets/images/infinity-categories/map-a-b.png" width="50%" />
</p>
<p>which is, of course, contractible. Crucially, though, this space is
capable of remembering more information about how the maps $A \to B$
in $\mathcal{C}[\mathcal{W}^{-1}]$ were built from maps in $\mathcal{C}$,
and how these relate to each other.</p>
<div class="boxed">
<p>Consider instead the category</p>
<p style="text-align:center;">
<img src="/assets/images/infinity-categories/another-cat.png" width="50%" />
</p>
<p>where $h_1 f = h_1 g = k = h_2 f = h_2 g$.</p>
<p>Show that, after inverting $h_1$ and $h_2$, $\text{Map}(A,B)$ is a circle.</p>
</div>
<hr />
<p>This is great, but it’s far from clear how we would do this for more
complicated categories! This is ok, though. Remember that
$\infty$-categories are conceptually nice but if you have a
<em>specific</em> category in mind, model categories are
where we actually want to do our computations.</p>
<p>It begs the question, though: just how nice <em>are</em> $\infty$-categories?
After all, this abstraction needs to justify itself somehow.</p>
<p>Let’s start with the most obvious issue with model categories: the lack of
functors between them. Once we pass to $\infty$-categories, then we know
exactly what to do! We have a good theory of functors between enriched
categories, and you can probably guess what the correct idea should be:</p>
<div class="boxed">
<p>If $\mathcal{C}$ and $\mathcal{D}$ are simplicial categories, then a
<span class="defn">Simplicial Functor</span> $F : \mathcal{C} \to \mathcal{D}$
is a pair</p>
<ul>
<li>$F_\text{obj}$ sending each object of $\mathcal{C}$ to an object of $\mathcal{D}$</li>
<li>$F_\text{map}$ which is a map of simplicial sets from each
\(\text{Map}_\mathcal{C}(A,B) \to \text{Map}_\mathcal{D}(F_\text{obj}A, F_\text{obj}B)\)</li>
</ul>
</div>
<p>Importantly, we have exactly one notion of functor between model categories,
namely the quillen equivalences. We would like to know that these are
faithfully preserved when we pass to $\infty$-categories, and indeed they are.
One can show that every quillen equivalence of model categories gives rise to
an equivalence (in the sense of $\infty$-categories) between the two
$\infty$-categories they present.</p>
<p>Next, not only do we <em>have</em> a notion of functor, but we have a notion of
functor which acts the way we expect it to. For instance between any
$\infty$-categories $\mathcal{I}$ and $\mathcal{C}$, the collection of
$\infty$-functors between them assembles into an $\infty$-category
$\text{Fun}(\mathcal{I}, \mathcal{C})$ with a simplicial analogue
of natural transformations as the arrows<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">6</a></sup>.</p>
<p>From here, developing (co)limits is easy!</p>
<div class="boxed">
<p>If $F : \mathcal{I} \to \mathcal{C}$ is a functor, then a
<span class="defn">Cone</span> over $F$ is an object $c \in \mathcal{C}$
plus a (simplicially enriched) natural transformation from the constant
$c$ functor $\text{const}_c$ to $F$.</p>
<p>We say that a cone on $c$ is a <span class="defn">Limit Cone</span> if for
every object $x \in \mathcal{C}$, the natural map</p>
\[\text{Map}_\mathcal{C}(x,c)
\to
\text{Map}_{\text{Fun}(\mathcal{I},\mathcal{C})}(\text{const}_x, F)\]
<p>is an equivalence of simplicial sets<sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">7</a></sup>.</p>
</div>
<p>If this looks like an adjunction between a “limit” functor and
the “const” functor, then you’d be right! We can actually develop
adjunctions in this theory as well, and indeed basically any construction
or theorem you would want to use from classical $1$-category theory exists
in some form in $\infty$-category theory!</p>
<p>So, miraculously, in the passage from model categories to $\infty$-categories,
not only have we solved our quibbles about the formal properties of model
categories, but we’ve done so in the most powerful possible way!
We have access, in the $\infty$-category setting, to all the nice formal
properties that made classical $1$-category theory so effective.</p>
<p>What’s even more remarkable is that this notion of a (co)limit
computes homotopy (co)limits as a special case!</p>
<p>In the <a href="quasicategories">next post</a> about quasicategories, we introduce the
nerve construction, which lets us build an
$\infty$-category from a $1$-category. Well if $\mathcal{C}$ is a model
category, then a homotopy (co)limit of some functor
$F : \mathcal{I} \to \mathcal{C}$ is the same thing as the
$\infty$-category theoretic colimit of the induced ($\infty$-)functor
$\tilde{F}$ from the nerve of $\mathcal{I}$ to $L^H(\mathcal{C}, \mathcal{W})$.</p>
<p>Lastly, let’s note that this is all good for something.
Functors on $\infty$-categories can be “truncated” in a way
that induces functors on the homotopy categories
(see <a href="https://kerodon.net/tag/005Z">here</a>, for instance).
This means that, at least in the abstract, we can prove theorems using
the language of $\infty$-categories, and at the end of the day we can
take homotopy categories. After doing this any categories or functors
we’ve built will descend nicely. In particular, since the homotopy
category of $L^H(\mathcal{C}, \mathcal{W})$ is $\mathcal{C}[\mathcal{W}^{-1}]$
this gives us a very powerful mode of argument for dealing with localizations!</p>
<hr />
<p>This still leaves open some questions, though. First, it seems like there are
two competing notions of $\infty$-category. We can use simplicial categories
or we can use quasicategories. Since we want to think about relative
categories and $\infty$-categories as both presenting homotopy theories,
we now have <em>three</em> different ways we could define “homotopy theory”!</p>
<p>Moreover, while the hammock localization is nice, it seems really annoying
to work with. Can we play the game one more time, and end up with a
conceptually clean way to see what the hammock localization is
“really doing”?</p>
<p>For answers to both of these questions, I’ll see you in the
<a href="homotopy-of-homotopies">last post</a> of this <del>trilogy</del>… tetralogy?</p>
<p>Maybe it’s best to call it a trilogy with a long quasi-categorical ~<a href="quasicategories">bonus post</a>~.</p>
<p>Take care, all ^_^</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>Think about $\mathsf{Top}$ where we invert all the (weak) homotopy
equivalences, or chain complexes of modules where we invert all the
quasi-isomorphisms. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>Notice this is exactly what we do to make (co)homological computations
with simplicial chains in topology. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>You can read more in the (surprisingly readable!) paper
<em>Calculating Simplicial Localizations</em> by Dwyer and Kan.</p>
<p>Another approach to simplicial localization is explained in another
readable paper by the same authors: <em>Simplicial Localizations of Categories</em>.
It’s a perfectly good definition, and works well in the abstract, but
the “hammock” definition is more amenable to direct computation, since it’s
slightly more explicit.</p>
<p>See <a href="https://ncatlab.org/nlab/show/simplicial+localization">here</a> for more details. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>It’s actually <em>slightly</em> more general. The first arrow is also allowed to
point left, as long as things still alternate. For instance, we allow
a zigzag of the form</p>
\[A \overset{\sim}{\leftarrow} C_0 \to B\]
<p>as well.</p>
<p>For the specifics of the construction, see
<em>Calculating Simplicial Localizations</em> by Dwyer and Kan. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>As before, we also allow the first map to face left instead of right,
as long as our maps strictly alternate. What does this mean for our hammocks?
The horizontal threads of our hammock must be oriented the same way!</p>
<p>For instance, this is a valid hammock:</p>
<p style="text-align:center;">
<img src="/assets/images/infinity-categories/legal-hammock-1.png" width="30%" />
</p>
<p>This is a valid hammock:</p>
<p style="text-align:center;">
<img src="/assets/images/infinity-categories/legal-hammock-2.png" width="30%" />
</p>
<p>But this is <em>not</em> a valid hammock:</p>
<p style="text-align:center;">
<img src="/assets/images/infinity-categories/illegal-hammock.png" width="30%" />
</p>
<p>Also, I can’t express enough how much I love this naming idea!
It’s quirky and apt in equal measure. 10/10. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:7" role="doc-endnote">
<p>We can actually get by with slightly less. $\mathcal{I}$ is allowed to be
<em>any</em> simplicial set. To see why this is more general, I’ll again
point you to the quasicategory post <a href="quasicategories">here</a>. <a href="#fnref:7" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:8" role="doc-endnote">
<p>If you want to learn about actually computing with $\infty$-categories,
I can’t recommend the Homotopy Theory Münster videos
<a href="https://www.youtube.com/watch?v=3IjAy0gHRyY&list=PLsmqTkj4MGTDenpj574aSvIRBROwCugoB">here</a> highly enough!</p>
<p>The second video already shows lots of sample computations for limits. <a href="#fnref:8" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Mon, 11 Jul 2022 02:00:00 +0000
https://grossack.site/2022/07/11/infinity-categories.html
https://grossack.site/2022/07/11/infinity-categories.htmlWhat are Model Categories? (Homotopy Theories pt 1/4)<p>I’m a TA at the <a href="https://uwo.ca/math/faculty/kapulkin/seminars/hottest_summer_school_2022.html">HoTTEST Summer 2022</a>, a summer school about
Homotopy Type Theory, and while I feel quite comfortable with the
basics of HoTT, there’s a <em>ton</em> of things that I should really know
better, so I’ve been doing a lot of reading to prepare. One thing
that I didn’t know anything about was <a href="https://ncatlab.org/nlab/show/infinity-category">$\infty$-categories</a>,
and the closely related <a href="https://en.wikipedia.org/wiki/Model_category">model categories</a>. I knew they had
something to do with homotopy theory, but I didn’t really know how.
Well, after lots of reading, I’ve finally figured it out, and I
would love to share with you ^_^.</p>
<p>This was originally going to be one post, but it ended up having
a lot of tangentially related stuff all mashed together, and it
felt very disorganized and unfocused<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>. So I’ve decided to split it
into <del>three</del> four posts, with each post introducing a new, more abstract
option, and hopefully saying how it solves problems present in
the more concrete settings.</p>
<p>Let’s get to it!</p>
<hr />
<p>First of all, what even <em>is</em> a “homotopy theory”?
Let’s look at the primordial example:</p>
<div class="boxed">
<p>Whatever a “Homotopy Theory” is, it should encompass the category $\mathsf{Top}$
of topological spaces where we identify spaces up to <a href="https://ncatlab.org/nlab/show/weak+homotopy+equivalence">(weak) homotopy equivalence</a></p>
</div>
<p>But there’s another motivating example, which we also call “homotopy”:</p>
<div class="boxed">
<p>Whatever a “Homotopy Theory” is, it should encompass the chains of modules,
where we identify two chains up to <a href="https://en.wikipedia.org/wiki/Chain_complex#Chain_homotopy">quasi-isomorphism</a></p>
</div>
<p>Obviously these are related – after all, from a topological space we can
get an associated “singular cochain” of $R$-modules.
Then a homotopy of spaces induces a homotopy of cochains, and indeed the
<a href="https://en.wikipedia.org/wiki/Cohomology">cohomology</a> of the cochain complex agrees with the cohomology of the space
we started with.</p>
<p>More abstractly, what links these situations? Well, we have some objects that
we want to consider “the same up to homotopy”, and we capture this
(as the category inclined are liable to do) by picking out some special arrows.
These are the “homotopy equivalences” – and they’re maps that we want to
think of as isomorphisms… but which might not <em>actually</em> be.</p>
<p>So, in $\mathsf{Top}$, we have the class of weak homotopy equivalences<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup>,
which we want to turn into isomorphisms. And in $\mathsf{Ch}(R\text{-mod})$,
the category of chains of $R$-modules, we want to turn the <a href="https://en.wikipedia.org/wiki/Quasi-isomorphism">quasi-isomorphisms</a>
into isomorphisms.</p>
<p>With these examples in mind, what should a <em>homotopy theory</em> be?</p>
<div class="boxed">
<p>A <span class="defn">Relative Category</span> is a small<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup> category $\mathcal{C}$
equipped with a set of arrows
$\mathcal{W}$ (called the <span class="defn">Weak Equivalences</span>)
that contains all the isomorphisms in $\mathcal{C}$<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup>.</p>
</div>
<p>Following our examples, we want to think of the arrows in $\mathcal{W}$ as
being <em>morally</em> isomorphisms, even though they might not <em>actually</em> be
isomorphisms.</p>
<p>Now, a (small) category is an algebraic structure. It’s just a set
with some operations defined on it, and axioms those operations satisfy.
So there’s nothing stopping us from just… adding in new arrows,
plus relations saying that they’re inverses for
the arrows we wanted to be isomorphisms. By analogy with ring theory,
we call this new category the <span class="defn">Localization</span>
$\mathcal{C}[\mathcal{W}^{-1}]$. This is also called the
<span class="defn">Homotopy Category</span> of $(\mathcal{C}, \mathcal{W})$.</p>
<p>For example, if we localize $\mathsf{Top}$ at the weak homotopy equivalences,
we get the classical homotopy category $\mathsf{hTop}$. If we invert the
quasi-isomorphisms of chains of $R$ modules, we get the
derived category<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup> of $R$ modules $\mathcal{D}(R\text{-mod})$.</p>
<div class="boxed">
<p>Tentatively, then, we’ll say that a <em>homotopy theory</em> is a category of the
form $\mathcal{C}[\mathcal{W}^{-1}]$.</p>
<p>Notice that the choice of $(\mathcal{C}, \mathcal{W})$ is far from unique. It’s
entirely possible for two relative categories to have the same homotopy category<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">6</a></sup></p>
\[\mathcal{C_1}[\mathcal{W_1}^{-1}] \simeq \mathcal{C_2}[\mathcal{W_2}^{-1}]\]
<p>In this situation we say that \((\mathcal{C}_1, \mathcal{W}_1)\) and
\((\mathcal{C}_2, \mathcal{W}_2)\) <em>present the same homotopy theory</em>.</p>
</div>
<p>There are many important examples of two relative categories
presenting the same homotopy theory. To start, let’s consider the
category $s\mathsf{Set}$ of <a href="https://en.wikipedia.org/wiki/Simplicial_set">simplical sets</a>, equipped with a notion
of weak equivalence. It turns out that this presents the same homotopy
theory as $\mathsf{Top}$ with weak homotopy equivalences!</p>
<p>This means that if we have a question about topological spaces up to homotopy,
we can study simplicial sets instead, with <em>no loss of information</em>! This is
fantastic, since simplicial sets are purely combinatorial objects, so
(in addition to other benefits)
it’s much easier to tell a computer how to work with them<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">7</a></sup>!</p>
<hr />
<p>This is great, but there’s one hitch…</p>
<p>The homotopy category $\mathcal{C}[\mathcal{W}^{-1}]$ might be
<em>terribly behaved</em>. For instance, even if $\mathcal{C}$ is (co)complete,
the homotopy category almost never is<sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">8</a></sup>!
Even worse, it’s possible that we end up with a <em>proper class</em> of arrows between
two objects, even if $\mathcal{C}$ started out locally small. Lastly, it’s
difficult to tell when two relative categories present the same homotopy
theory.</p>
<p>This is all basically because arrows in $\mathcal{C}[\mathcal{W}^{-1}]$ are
<em>really hard</em> to understand! After all, a general arrow from $A$ to $B$ in
$\mathcal{C}[\mathcal{W}^{-1}]$ looks like this:</p>
\[A \overset{\sim}{\leftarrow}
C_0 \to
C_1 \overset{\sim}{\leftarrow}
\cdots
C_k \to B\]
<p>where all the $\overset{\sim}{\leftarrow}$s are in $\mathcal{W}$.
After we invert $\mathcal{W}$, these arrows all acquire right-facing
inverses, which we can compose in this chain to get an honest arrow
$A \to B$.</p>
<p>There’s a <em>zoo</em> of techniques for working with homotopy categories, but
they all come down to trying to tame this unwieldy definition of arrow<sup id="fnref:9" role="doc-noteref"><a href="#fn:9" class="footnote" rel="footnote">9</a></sup>.
In this post, we’ll be focusing on a very flexible approach by endowing
$(\mathcal{C}, \mathcal{W})$ with a <span class="defn">Model Structure</span>.</p>
<hr />
<p>Roughly, to put a model structure on $(\mathcal{C}, \mathcal{W})$
(which we now assume to be complete and cocomplete) is to
choose two new subfamilies of arrows: the
<span class="defn">fibrations</span> and the <span class="defn">cofibrations</span>.</p>
<p>From these, we define some “nice” classes of objects:</p>
<ul>
<li>$X$ is called <span class="defn">fibrant</span> if the unique arrow to the
terminal object is a fibration</li>
<li>$X$ is called <span class="defn">cofibrant</span> if the unique arrow from
the initial object is a cofibration</li>
<li>$X$ is called <span class="defn">bifibrant</span> if it is both fibrant and cofibrant</li>
</ul>
<p>Let’s see some examples:</p>
<p>A <em>fibration</em> $f$ is an arrow that’s easy to “lift” into from cofibrant objects $A$:</p>
<p style="text-align:center;">
<img src="/assets/images/model-categories/fibration.png" width="30%" />
</p>
<p>For instance, covering spaces and bundles are examples of fibrations in
topology. If we restrict attention to the <a href="https://en.wikipedia.org/wiki/CW_complex">CW-complexes</a> then every
object is cofibrant, and this statement is basically the
<a href="https://ncatlab.org/nlab/show/homotopy+lifting+property">homotopy lifting property</a> for covering spaces.</p>
<p>Algebraically, there’s a model structure where a map of chains of
$R$-modules $f : A_\bullet \to B_\bullet$ is a fibration if each $f_n$ is a surjection.
The cofibrant objects in this model structure are exactly the levelwise
projective complexes, so this lifting property becomes the usual
lifting property for projective modules.</p>
<p>Dually, a <em>cofibration</em> $i$ is an arrow that’s easy to “extend” out of
provided our target $Y$ is fibrant:</p>
<p style="text-align:center;">
<img src="/assets/images/model-categories/cofibration.png" width="30%" />
</p>
<p>We should think of a cofibration as being a subspace inclusion
$A \hookrightarrow X$ where $A$ “sits nicely” inside of $X$.</p>
<p>For instance, the inclusion arrow of a “good pair” is a cofibration. Thus
inclusion maps of subcomplexes of a simplicial/CW/etc. complex are cofibrations.
More generally, any subspace inclusion $A \hookrightarrow X$ where $A$ is a
<a href="https://ncatlab.org/nlab/show/neighborhood+retract">nieghborhood deformation retract</a> in $X$ will be a cofibration.</p>
<p>Algebraically, a map
$f : A_\bullet \to B_\bullet$ is a cofibration exactly when each $f_n$ is an
injection whose cokernel is projective<sup id="fnref:17" role="doc-noteref"><a href="#fn:17" class="footnote" rel="footnote">10</a></sup>. This is a somewhat subtle condition,
which basically says that each $B_n \cong A_n \oplus P_n$ where $P_n$ is
projective. It should be intuitive that given a map $A_n \to Y_n$, it’s
easy to extend this to a map $B_n \to Y_n$ under these hypotheses.</p>
<p><br /></p>
<p>Precisely, these triangles are really special cases of squares. In the
fibration case, the left side of the square is the unique map from the
initial object to $A$. Dually, in the cofibration case the right
hand side of the square should really be the unique map from $Y$ to the
terminal object.</p>
<p>This lets us unify these diagrams into a single axiom, which says that
a square of the form</p>
<p style="text-align:center;">
<img src="/assets/images/model-categories/full-square.png" width="30%" />
</p>
<p>has a lift (the dotted map $X \to E$)
whenever $i$ is a cofibration, $f$ is a fibration, and one of $i$
or $f$ is a weak equivalence.</p>
<hr />
<p>The model category axioms<sup id="fnref:10" role="doc-noteref"><a href="#fn:10" class="footnote" rel="footnote">11</a></sup> imply that every object is weakly equivalent to a
bifibrant object. Since, after localizing, our
weak equivalences become isomorphisms, this means we can restrict attention to
the bifibrant objects… But why bother?</p>
<p>Well in any model category we have a notion of “homotopy” between maps
$f,g : A \to B$ which is entirely analogous to the topological notion.
Then by studying homotopy-classes of maps, we’ll be able to get a great
handle on the arrows in $\mathcal{C}[\mathcal{W}^{-1}]$!</p>
<p>Precisely, each object $A$ is weakly equivalent to a <a href="https://ncatlab.org/nlab/show/cylinder+object">cylinder object</a>
$A \times I$ which acts like $A \times [0,1]$ in topology<sup id="fnref:13" role="doc-noteref"><a href="#fn:13" class="footnote" rel="footnote">12</a></sup>. In particular,
it has two inclusions
$\iota_0 : A \to A \times I$ and $\iota_1 : A \to A \times I$.</p>
<div class="boxed">
<p>⚠ This is <em>not</em> in general an actual product with some element $I$.
It’s purely notational. Some authors use $A \wedge I$ instead, but
I don’t really like that either.</p>
<p>The best notation is probably $\text{Cyl}(A)$ or something similar, but
in this post I want to emphasize the relationship with the classical
topological case, so I’ll stick with $A \times I$.</p>
</div>
<p>Now if $f, g : A \to B$, then a homotopy between $f$ and $g$ is
a map $H : A \times I \to B$ so that the following triangle commutes:</p>
<p style="text-align:center;">
<img src="/assets/images/model-categories/homotopy-triangle.png" width="33%" />
</p>
<p>If there is a homotopy between $f$ and $g$, we say that $f$ and $g$ are
<em>homotopic</em> or <em>homotopy equivalent</em>, often written $f \sim g$.</p>
<p>This brings us to the big punchline:</p>
<div class="boxed">
<p>Let $(\mathcal{C}, \mathcal{W})$ be a model category.</p>
<ol>
<li>
<p>If $A$ and $B$ are bifibrant then homotopy equivalence really is
an equivalence relation on $\text{Hom}_\mathcal{C}(A,B)$. Moreover,
composition is well defined on the equivalence classes.</p>
</li>
<li>
<p>$\mathcal{C}[\mathcal{W}^{-1}]$ is equivalent to the category whose
objects are bifibrant objects of $\mathcal{C}$, and whose arrows are
homotopy equivalence classes of arrows in $\mathcal{C}$.</p>
</li>
</ol>
</div>
<p>Thus, a very common way we use model structures to perform computations is by
first replacing the objects we want to compute with by weakly equivalent
bifibrant ones. For instance, we might replace a module by a projective
resolution<sup id="fnref:15" role="doc-noteref"><a href="#fn:15" class="footnote" rel="footnote">13</a></sup>. Then maps in the homotopy category $\mathcal{C}[\mathcal{W}^{-1}]$
are just maps in $\mathcal{C}$ up to homotopy<sup id="fnref:11" role="doc-noteref"><a href="#fn:11" class="footnote" rel="footnote">14</a></sup>!</p>
<p>Notice this, off the bat, solves one of the problems with homotopy categories.
Maybe $\mathcal{C}[\mathcal{W}^{-1}]$ isn’t locally small, but it’s
<em>equivalent</em> to something locally small.</p>
<p>Moreover, model structures give us a very flexible way to tell when two
relative categories have the same homotopy theory. Indeed, say we we have
a pair of adjoint functors $L \dashv R$ between $\mathcal{C}_1$ and
$\mathcal{C}_2$ that respect the weak equivalences in the sense that
$f : c_1 \to R(c_2)$ is in $\mathcal{W}_1$ if and only if its adjoint
$\tilde{f} : L(c_1) \to c_2$ is in $\mathcal{W}_2$.
Then $\mathcal{C}_1[\mathcal{W}_1^{-1}] \simeq \mathcal{C}_2[\mathcal{W}_2^{-1}]$,
and moreover, this equivalence can be computed from the adjunction $L \dashv R$.</p>
<p>This is called a <a href="https://ncatlab.org/nlab/show/Quillen+equivalence">Quillen Equivalence</a> between \((\mathcal{C}_1, \mathcal{W}_1)\)
and \((\mathcal{C}_2, \mathcal{W}_2)\)<sup id="fnref:12" role="doc-noteref"><a href="#fn:12" class="footnote" rel="footnote">15</a></sup>.</p>
<p>Moreover again, even if $\mathcal{C}[\mathcal{W}^{-1}]$ doesn’t have (co)limits,
we <em>can</em> always construct <a href="https://en.wikipedia.org/wiki/Homotopy_colimit">homotopy (co)limits</a>, which we can compute
using the same cylinder objects from before. For instance, the homotopy pushout
of</p>
<p style="text-align:center;">
<img src="/assets/images/model-categories/homotopy-pushout.png" width="30%" />
</p>
<p>will be the colimit of the related diagram:</p>
<p style="text-align:center;">
<img src="/assets/images/model-categories/homotopy-pushout-full.png" width="50%" />
</p>
<p>Geometrically, rather than gluing $X$ to $Y$ along $A$ directly,
we’re adding a <em>path</em> from $f(a)$ to $g(a)$. This is the same up to
homotopy, but is better behaved.
We do this by taking disjoint copies of $X$ and $Y$, and then gluing
one side of the cylinder $A \times I$ to $X$ along $f$, and gluing the
other side of $A \times I$ to $Y$ along $g$.</p>
<p>Something like this will always work, but knowing how to modify our diagram
(and why) can be quite involved<sup id="fnref:14" role="doc-noteref"><a href="#fn:14" class="footnote" rel="footnote">16</a></sup>. Thus we’ve succeeded in
computationally solving the (co)limit issue, but it would be nice to have a
more conceptual framework, in which it’s obvious why this is the
“right thing to do”…</p>
<hr />
<p>We’ve seen that a model structure on a relative category helps to make
computations in the localized category $\mathcal{C}[\mathcal{W}^{-1}]$
effective (or even possible). But model categories have a fair number
of problems themselves.</p>
<p>For one, there’s no <em>great</em> notion of a
functor between model categories. In the case that a functor
$F : (\mathcal{C}_1, \mathcal{W}_1) \to (\mathcal{C}_2, \mathcal{W}_2)$
comes from and adjoint pair, then we can <a href="https://ncatlab.org/nlab/show/derived+functor">derive</a> it to get a
functor on the homotopy categories, but this is too restrictive to
be the general notion of functor between model categories.</p>
<p>Related to functors, if $\mathcal{C}$ has a model structure and $\mathcal{I}$
is an indexing category, then $\mathcal{C}^\mathcal{I}$, the category of
$\mathcal{I}$-diagrams in $\mathcal{C}$ (with the pointwise weak equivalences)
may not have a model structure. See <a href="https://ncatlab.org/nlab/show/model+structure+on+functors">here</a>, for instance<sup id="fnref:18" role="doc-noteref"><a href="#fn:18" class="footnote" rel="footnote">17</a></sup>.</p>
<p>With this in mind, we would like to have a version of the theory of model
categories which has better “formal properties”. While working with a
<em>single</em> model category is often quite easy to do, as soon as one looks
for relationships <em>between</em> model categories, we’re frequently out of luck.
In fact, since (co)limits come from functors, as soon as we’re interested in
(co)limits we already run into this problem! This is one philosophical reason
for the complexity of homotopy (co)limits.</p>
<p>The solution lies upwards, in the land of $\infty$-categories. These are categories
with homotopy theoretic structure (in the classical sense of topological spaces)
built in from the start. Miraculously, these will solve all the above problems
and more – while the category of model categories is a terrible place to live
(if we can define it at all…) the category of $\infty$-categories<sup id="fnref:16" role="doc-noteref"><a href="#fn:16" class="footnote" rel="footnote">18</a></sup>
is extremely similar to the category of categories. Then, since every
model category presents an $\infty$-category, we’ll be able to use this
machinery to solve our formal problems with model categories!</p>
<p>How exactly does this work? You’ll have to read more in <a href="infinity-categories">part 2</a>!</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>This is one of the biggest problems with trying to explain things you know.
Especially while you’re still trying to sort them out yourself!</p>
<p>All of this material was scattered in my head with messy interconnections,
but of course words have to be linearly ordered on a page, and it took
a lot of work to figure out how to put these ideas into a fixed order.
Especially one which has a nice narrative.</p>
<p>It’s currently my fifth time restarting this post (now <del>trilogy</del> tetralogy),
but I think I’m finally happy with my outline.
I don’t know why I’m writing this footnote, to be honest. But it felt
like something I wanted to say, so here we are.</p>
<p>On with the show! <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>It turns out there’s <em>also</em> a model category structure whose homotopy
category gives homotopy equivalence, rather than weak homotopy equivalence.</p>
<p>But the model structure on $\mathsf{Top}$ which gives weak homotopy
equivalence is the “standard” one, so that’s what I’m listing as the
motivating example. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>A better word would probably be “strict”. Since we’re going to be
treating $\mathcal{C}$ like an algebraic structure pretty soon, it
should have fixed <em>sets</em> of objects and arrows, which we will manipulate
like we might manipulate the underlying set of a group, ring, etc. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>Be careful, though, I’ve seen a handful of other definitions too!</p>
<p>I like this one because it means the obvious way to turn a
category into a relative category is to take just the isomorphisms.
Then localization from $\mathsf{RelCat} \to \mathsf{Cat}$ is
left adjoint to the functor sending $\mathcal{C}$ to
$(\mathcal{C}, {\text{isos}})$.</p>
<p>I’m not sure if I should require that $\mathcal{W}$ be closed under
composition… This doesn’t <em>feel</em> like it should break anything,
but I’m not 100% sure. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>This was a pleasant surprise for me. I’ve heard a lot of talk about
derived categories, and they always seemed quite scary. It’s been very
exciting to feel like I’m getting a two-for-one deal every time I notice
another concept in this subject start to make sense – after all, it
means I’m learning about both homotopy theories <em>and</em> derived categories!
^_^ <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>As an aside, as a topos theorist, this all feels a bit familiar.</p>
<p>Just like a model structure (which we’ll define later) is some
structure that presents a homotopy
theory in a way that lets us do concrete computation, a <a href="https://mathoverflow.net/questions/10364/categorical-homotopy-colimits">site</a> is
a structure that presents a (grothendieck) topos and lets us do
concrete computations.</p>
<p>Now, in the topos theory world,
Olivia Caramello’s bridges program is based on the idea that we can
find nontrivial relationships between two sites presenting the same
topos… I wonder if there are any theorems that let us relate two
model categories presenting the same homotopy theory. <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:7" role="doc-endnote">
<p>See, for instance, the sage documentation <a href="https://doc.sagemath.org/html/en/reference/categories/sage/categories/simplicial_sets.html">here</a> and <a href="https://doc.sagemath.org/html/en/reference/topology/sage/topology/simplicial_complex.html">here</a>. <a href="#fnref:7" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:8" role="doc-endnote">
<p>Even in the case of $\mathsf{hTop}$, we don’t have all (co)limits!
See <a href="https://mathoverflow.net/questions/10364/categorical-homotopy-colimits">here</a>, for instance! <a href="#fnref:8" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:9" role="doc-endnote">
<p>For instance you can only look at families $\mathcal{W}$ satisfying
the <a href="https://ncatlab.org/nlab/show/Ore+condition">Ore Conditions</a>. These say exactly that we can “commute”
weak equivalences past other arrows. Then, up to homotopy, every
arrow in the localization is of the form</p>
\[A \overset{\sim}{\leftarrow} C \to B\]
<p>and these are quite easy to manipulate.</p>
<p>See Sasha Polishchuk’s lectures on Derived Categories
<a href="https://www.youtube.com/watch?v=qFlt1XBNf4k&list=PLCe-H2N8-ny5nIYCQevWaJsO3PP44uz03&index=29">here</a>, for a really nice treatment using this language. <a href="#fnref:9" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:17" role="doc-endnote">
<p>Really we’re describing the <em>projective</em> model structure here.
There’s a dual model structure with the same weak equivalences
where we work with injectives instead. <a href="#fnref:17" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:10" role="doc-endnote">
<p>Which I still haven’t <em>really</em> told you, haha.</p>
<p>I don’t want to get into the precise details of a model structure here,
but you can (and should!) read more in Dwyer and Spalinski’s excellent
introduction <em>Homotopy Theory and Model Categories</em>, available
<a href="https://math.jhu.edu/~eriehl/616-s16/DwyerSpalinski.pdf">here</a>, for instance.</p>
<p>There’s a lot of good places to get intuition for model structures as well.</p>
<p>For instance, Mazel-Gee’s <em>The Zen of $\infty$-Categories</em>, avaialable
<a href="https://etale.site/writing/zen-of-infty-cats.pdf">here</a>, Kantor’s survey <em>Model Categories: Theory and Applications</em>,
available <a href="http://math.uchicago.edu/~may/REU2016/REUPapers/Kantor.pdf">here</a>, and of course, the <a href="https://en.wikipedia.org/wiki/Model_category">nlab</a>.</p>
<p>While we’re at it, there’s also Goerss and Schemmerhorn’s
<em>Model Categories and Simplicial Methods</em> (<a href="https://sites.math.northwestern.edu/~pgoerss/papers/ucnotes.pdf">here</a>), Hovey’s book
(<a href="https://people.math.rochester.edu/faculty/doug/otherpapers/hovey-model-cats.pdf">here</a>), and you can find a lot of good intuition in the
MO questions <a href="https://mathoverflow.net/questions/361191/applications-of-model-categories">here</a>, <a href="https://mathoverflow.net/questions/84381/computations-in-infty-categories">here</a>, <a href="https://mathoverflow.net/questions/169187/what-non-categorical-applications-are-there-of-homotopical-algebra?noredirect=1&lq=1">here</a>, and
<a href="https://mathoverflow.net/questions/78400/do-we-still-need-model-categories?noredirect=1&lq=1">here</a>. There’s also Ponto and May’s <em>More Concise Algebraic Topology</em>
(<a href="http://www.math.uchicago.edu/~may/TEAK/KateBookFinal.pdf">here</a>)… I could keep going, but I should probably get back to
writing the main body of the post. <a href="#fnref:10" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:13" role="doc-endnote">
<p>We build $A \times I$ by factoring the codiagonal
$A \coprod A \to A$ as</p>
\[A \coprod A \to A \times I \overset{\sim}{\to} A\]
<p>where $A \coprod A \to A \times I$ is a cofibration and
where $A \times I \overset{\sim}{\to} A$ is both a fibration and a
weak equivalence. <a href="#fnref:13" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:15" role="doc-endnote">
<p>This is made even more useful by the existence of <em>multiple</em> model structures
on $(\mathcal{C}, \mathcal{W})$. Depending on the computation, we might choose
one model structure over another in order to make our lives as simple as possible.
For instance, we have two model structures on chain complexes, one based on
<a href="https://en.wikipedia.org/wiki/Projective_module">projectives</a> and one based on <a href="https://en.wikipedia.org/wiki/Injective_module">injectives</a>. Then computations
involving these model structures reduce to the classical projective or
injective resolutions which you may recognize from homological algebra! <a href="#fnref:15" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:11" role="doc-endnote">
<p>For an example of this idea in action, see <a href="https://math.stackexchange.com/questions/4461610/maps-in-the-homotopy-category-and-derived-category-to-and-from-concentrated-in/4461656#4461656">this</a> answer of mine. <a href="#fnref:11" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:12" role="doc-endnote">
<p>For example, the earlier example of $\mathsf{Top}$ and $s\mathsf{Set}$,
which have the same homotopy theory, comes from a quillen equivalence.
See <a href="https://ncatlab.org/nlab/show/classical+model+structure+on+simplicial+sets#quillen_equivalence_with_">here</a>, for instance.</p>
<p>In fact, quillen equivalence is stronger
tronger way than we currently have the language to describe.
Not only are the localizations (read: homotopy categories) equivalent,
but actually the presented $\infty$-categories are equivalent too! <a href="#fnref:12" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:14" role="doc-endnote">
<p>Even though it’s complicated, this <em>is</em> a solved problem. We understand
how to take a diagram and massage it into a new, “homotopy coherent”
diagram.
The idea is again one of bifibrant replacement!</p>
<p>In many cases we can put a model structure on the category of
functors into a model category $\mathcal{C}$. Then instead of taking the
(co)limit of a diagram $F$, we cake the (co)limit of its bifrant replacement.</p>
<p>See either the notes by Dugger <a href="https://pages.uoregon.edu/ddugger/hocolim.pdf">here</a> or by Hirschhorn <a href="https://math.mit.edu/~psh/notes/hocolim.pdf">here</a>
for specifics.</p>
<p>Also, after reading those, notice that already the best way to organize
this data is with some kind of simplicial object… and keep a pin in that. <a href="#fnref:14" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:18" role="doc-endnote">
<p>Though, thankfully, most model categories that arise in practice are
(quillen equivalent to) a (simplicial) combinatorial model category.</p>
<p>In particular, this means that we can usually put a model structure on
the category of diagram in $\mathcal{C}$. In fact, this is one way to
effectively compute homotopy (co)limits in practice. We replace our
functor $F : I \to \mathcal{C}$ by a weakly equivalent bifibrant
functor $\tilde{F} : I \to \mathcal{C}$ and then output the
(weak equivalence class of) the (co)limit of $\tilde{F}$.</p>
<p>This is basically the derived functor approach to homotopy (co)limits,
and while it’s effective, it requires us to <em>choose</em> a bifibrant
replacement. Much like choosing coordinates or a basis makes some proofs
more annoying in the setting of differential geometry or linear algebra
(since we then have to prove our results are independent of this choice),
we would like to have a choice-free way of defining homotopy (co)limits. <a href="#fnref:18" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:16" role="doc-endnote">
<p>In fact, it eats its own tail, and we have an $\infty$-category of
$\infty$-categories. But more on that later. <a href="#fnref:16" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Mon, 11 Jul 2022 01:00:00 +0000
https://grossack.site/2022/07/11/model-categories.html
https://grossack.site/2022/07/11/model-categories.html