Chris Grossack's Blog
https://grossack.site
Estimating a Difference of Products<p>Wow, it’s been a long time! Both since my last blog post, and since my last
<a href="/tags/quick-analysis-tricks">quick analysis trick</a>. But I’ve been itching to
write more blog posts lately, and I thought that something quick and easy like
this would be a good way to get back into it without the kind of effort that
goes into some of my longer-form posts (which I’m still working on, of course).</p>
<p>I got back from a conference yesterday night, and gave myself the day off to
recover (and do some chores…) so I decided to do some low-energy math while
my laundry was going. I <em>love</em> watching lectures in computer-science-y and
combinatorics-y subjects that I don’t get to spend much time doing anymore.
It doesn’t take much effort to get the gist of the subject, learn
some surface level techniques, etc. that keep me feeling like I’m improving,
even though I don’t have the time to read papers and do serious research
in these areas right now.
This year I’ve been slowly been making progress in
Yufei Zhao’s phenomenal course on “Graph Theory and Combinatorics”, available
freely on <a href="https://www.youtube.com/playlist?list=PLUl4u3cNGP62qauV_CpT1zKaGG_Vj5igX">youtube</a>.</p>
<p>While talking about <a href="https://en.wikipedia.org/wiki/Graphon">graphons</a>, Zhao gives an
analytical argument that I can see being <em>extremely</em> applicable in other
settings, so I figured I would talk about it here<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>!</p>
<hr />
<p>Let’s get right into the trick, then I’ll give a few situations where it
might be helpful. Say you have two sequences $a_1, \ldots, a_n$
and $b_1, \ldots, b_n$ and you want to control the difference</p>
\[\prod_{i=1}^n a_i - \prod_{i=1}^n b_i.\]
<p>The quick-analysis-trick du jour is to rewrite this difference as</p>
\[\prod_1^n a_i - \prod_1^n b_i =
\sum_{j=1}^n \left ( \prod_{i \lt j} b_i \right ) (a_j - b_j) \left ( \prod_{i \gt j} a_i \right )\]
<p>This looks a bit unwieldy, but it follows a very easy pattern. Let’s see what
this looks like for a few small values of $n$:</p>
\[a_1 a_2 - b_1 b_2 =
(a_1 - b_1) a_2 + b_1 (a_2 - b_2)\]
<p><br /></p>
\[a_1 a_2 a_3 - b_1 b_2 b_3 =
(a_1 - b_1) a_2 a_3 + b_1 (a_2 - b_2) a_3 + b_1 b_2 (a_3 - b_3)\]
<p><br /></p>
\[\begin{align}
a_1 a_2 a_3 a_4 - b_1 b_2 b_3 b_4
&= (a_1 - b_1) a_2 a_3 a_4 \\
&+ b_1 (a_2 - b_2) a_3 a_4 \\
&+ b_1 b_2 (a_3 - b_3) a_4 \\
&+ b_1 b_2 b_3 (a_4 - b_4)
\end{align}\]
<p>You start with $(a_1 - b_1)$ and all the $a_i$s on the right. Then
to get from one term to the next you hop an $a_i$ over the difference,
turning it into a $b_i$ along the way. You finish when you’re left with
all the $b_i$s on the left.</p>
<p>This has a kind of “product rule” feeling to it, where we replace the
difference of products (analogous to the derivative of a product) with
a sum of products over all places we could “put” the difference
(analogous to the sum over all places we can “put” the derivative). Indeed,
we can <em>prove</em> the product rule using this trick!</p>
<div class="boxed">
<p>As a cute exercise, you might use this to prove the product rule formula</p>
\[\left ( \prod_{i=1}^n f_i \right )' =
\sum_j \left ( \prod_{i \lt j} f_i \right ) f_j' \left ( \prod_{i \gt j} f_i \right )\]
<p>If the $\prod$s are unwieldy, it’s worth doing the $n=3$ case without them
to see what’s going on.</p>
</div>
<p>Notice the key idea of this proof of the product formula is that we
controlled a <em>difference of products</em> by rewriting it as a sum where
each term only had a <em>single difference</em> in it! This is the main idea of
the technique. For instance, here’s another problem you might try:</p>
<div class="boxed">
<p>Say that each $\lvert a_i \rvert, \lvert b_i \rvert \leq 1$ for $1 \leq i \leq n$. Prove</p>
<p>\(\left \lvert \prod_{i=1}^n a_i - \prod_{i=1}^n b_i \right \rvert \leq
\sum_{i=1}^n \lvert a_i - b_i \rvert\)</p>
</div>
<p>In fact, this problem was exactly the flavor of the graphon application
from Zhao’s lectures! Say we have two graphons $W, U : [0,1]^2 \to [0,1]$
which are “close” in the sense that</p>
\[\iint_{[0,1]^2} \Big ( W(x,y) - U(x,y) \Big ) \phi(x) \psi(y) \ dy \ dx \quad \quad (\star)\]
<p>is small for each pair of weight functions $\phi$ and $\psi$.</p>
<p>The “number of triangles in $W$” is given by</p>
\[t(W) = \iiint_{[0,1]^3} W(x,y) W(y,z) W(z,x) \ dx \ dy \ dz\]
<p>since we think of $W(x,y)$ as being the “probability of an edge”
between $x$ and $y$.</p>
<p>Then if we want to know that $W$ and $U$ have a similar number of triangles,
we want to show the difference $\lvert t(W) - t(U) \rvert$ is small. Of course,
this expands to</p>
\[\left \lvert \iiint W(x,y) W(y,z) W(z,x) - U(x,y) U(y,z) U(z,x) \ dx \ dy \ dz \right \rvert\]
<p>which is bounded by</p>
\[\iiint \left \lvert W(x,y) W(y,z) W(z,x) - U(x,y) U(y,z) U(z,x) \right \rvert \ dx \ dy \ dz\]
<p>and thus, by our trick-du-jour, by the sum</p>
\[\begin{align}
\iiint (W_{x,y} - U_{x,y}) W_{y,z} W_{z,x} \ dx \ dy \ dz + \\
\iiint U_{x,y} (W_{y,z} - U_{y,z}) W_{z,x} \ dx \ dy \ dz + \\
\iiint U_{x,y} U_{y,z} (W_{z,x} - U_{z,x}) \ dx \ dy \ dz
\end{align}\]
<p>(where I’ve replaced $W(x,y)$ by $W_{x,y}$ and I’m eliding some absolute
values in order to improve readability).</p>
<p>But note if we fix $z$ in the first integral, then we get something that
$(\star)$ tells us how to control! We can then integrate over $z$ at the end
to get a bound. The story is similar, fixing $x$ in the second integral
and $y$ in the third. Taken together we’re able to get exactly the kind of
bound that we’re after<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup>!</p>
<hr />
<p>Ok, that one really <em>was</em> quick<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>! I’ve been traveling a TON lately
(I’ve been to way too many conferences this year…) but now I’m finally done and
I should have time to work on blog posts more regularly. I have a lot of
ideas, and a lot of drafts, and hopefully I’m able to get them out soon ^_^.</p>
<p>Thanks for hanging out, all. Stay safe, and we’ll talk soon!</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>He uses this trick in the service of <em>the counting lemma</em>.
If we fix a graph $H$, the counting lemma says that two “similar”
graphons have to contain a “similar” number of copies of $H$.
This is around the 16 minute mark of <a href="https://youtu.be/9gy-CAwx0Ls?si=E2ZFePCdidTBbKzk">Lecture 15</a> in that playlist,
if you’re interested in seeing more. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>Again, I’m glossing over a lot of details here. Thankfully they’re all in
<a href="https://youtu.be/9gy-CAwx0Ls?si=E2ZFePCdidTBbKzk">the relevant lecture</a>. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>I actually had a couple extra things I was considering saying in this
post, like a potential relationship with Abel’s <a href="https://en.wikipedia.org/wiki/Summation_by_parts">summation by parts</a>.
But I don’t actually know if that relationship exists, so I would need to
figure it out myself. I don’t know if that would be easy or hard,
but either way it goes against the low-effort spirit of quick-analysis-tricks,
haha. I ended up deciding not to think about that, because I have a fair
amount of stuff I have to do around the house today.</p>
<p>Though if any ambitious readers want to look for a connection between
this trick and abel summation, I would be super interested in hearing
about it! <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Mon, 28 Aug 2023 00:00:00 +0000
https://grossack.site/2023/08/28/telescoping-graphons.html
https://grossack.site/2023/08/28/telescoping-graphons.htmlTalk -- What is Algebraic Geometry and Why Should You Care?<p>So an <em>embarrassing</em> amount of time ago (Feburary 17?) I gave a talk for the
undergraduate math club titled
“What is Algebraic Geometry, and Why Should You Care?”. I think it went quite
well, and the audience seemed like they had a good time. I really wanted to
have the talk recorded, since this is <em>exactly</em> the kind of talk I would have
wanted to see as an undergrad and I think it should be available to more people.
Unfortunately we weren’t able to make it happen, so we’ll have to wait until
the next time I give this talk<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>.</p>
<p>I actually told the audience that I would have a blog post with the slides
posted later that night, but uh… clearly that didn’t happen, haha. In my
defense, I really wanted to add some sage code to this post in order to
replicate some of the demos that I did during the talk, and to let readers
play around with some of this stuff themselves. I never really built up the
energy to write those demos, and I picked up two more projects along the way<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup>
so the post never got made.</p>
<p>Well the other day I bumped into some students from the math club, and
they teased me for never posting the slides! To be totally honest, I was
surprised that they had noticed, haha. I’m happy to see that people were
actually interested in reading them, so that interaction was exactly the
motivation I needed to finally post this! The unfortunate fact, though,
is that I’m still to busy to really make the demos as nice as I would like
to… So we’re going to have to go without. You can see the kind of thing
I would have made at an old blog post <a href="/2021/11/16/dense-pythagorean-triples.html">here</a>, and you can imagine 3d
versions of some of the pictures in the slides.</p>
<hr />
<p>As a quick summary of what’s <em>in</em> the talk, I make an analogy to
linear algebra (which is about as elementary as I think you can go
while still giving an honest look into how the machinery works). Here
we study a close connection between the <em>algebra</em> of linear equations
and the <em>geometry</em> of linear subspaces! We can build a dictionary between
these two worlds where, loosely:</p>
<ul>
<li>Geometry provides the intuition for what the algebra is “doing”</li>
<li>Algebra provides the machinery which lets us do computations with the geometry</li>
</ul>
<p>So the geometers want powerful algebra to solve their problems, and conversely
the algebraists want to make more general ideas of “geometry” that allow them
to visualize the algebra they’re studying abstractly<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>. Then the geometers
start studying these more complicated structures as geometry, and they ask
for more algebra to study them, but then these newer more complicated
algebraic gadgets work in more general settings, so we build a more general
notion of “geometry” to visualize all of them at once, and so on.</p>
<p>Round and round we go, until we get to today, where algebraic geometry has a
fearsome reputation for being incredibly abstract and challenging<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup>. Our
“geometric objects” are now things like <a href="https://en.wikipedia.org/wiki/Scheme_(mathematics)">schemes</a> and <a href="https://en.wikipedia.org/wiki/Topos">topoi</a> and
<a href="https://en.wikipedia.org/wiki/Stack_(mathematics)">stacks</a> and they’re valued with points in an arbitrary ring
(as opposed to the classical case of complex numbers), and it’s hard to believe
that anyone can reasonably say they’re doing “geometry” when studying these.
But of course, with practice, you really <em>can</em> come to visualize these
objects! They really <em>do</em> deserve to be called geometric! And the benefit of
taking the time to do this is that suddenly <em>everything</em> feels like it has
geometric content, and the whole of math (well, a lot of it at least) becomes
more fun!</p>
<p>Perhaps most surprisingly, though, is that these high abstraction notions of
“geometry” really <em>solve problems</em>. This is something I emphasize at the
end of the talk, since I think that beautiful math should solve problems,
and it’s important to remember how these computations tether us to reality!</p>
<p><br /></p>
<p>At the most basic level, the theory of <a href="https://en.wikipedia.org/wiki/Gr%C3%B6bner_basis">gröbner bases</a> allow us to
computationally solve polynomial equations! This is useful almost everywhere
in the real world, since polynomials arise naturally in physics, engineering,
and really <em>anywhere</em> math is used to model the world!</p>
<p><br /></p>
<p>Then we have “middle abstraction” tools from algebraic geometry, like
schemes. These arise naturally as limiting cases of “honest” geometric
objects, and they remember more information that the naive approach to
these situations.
Importantly this bonus information helps us solve problems! For instance,
if we intersect the parabola $y = x^2$ with the line $y=0$, we
get a single point $(x,y)=(0,0)$. However, this “single point” should really
be counted twice if we want to make our formulas work properly.</p>
<p>Geometrically this is because if we wiggle the $y=0$ line slightly<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup>
we actually get TWO intersection points ($y=\epsilon$ intersects $y = x^2$
at $\pm \sqrt{\epsilon}$ for each $\epsilon \neq 0$) and we want the number
of intersection points to be <em>continuous</em>.</p>
<p>But even though this single point (viewed as a “classical” geometric object)
doesn’t know it, if we take the intersection as <em>schemes</em>
(the more advanced geometric object) we remember more about where we came
from, and the scheme “has one point” but that point “counts twice”!</p>
<p>Indeed, the ring $k[x,y] \big (y = x^2, y = 0)$ gives the intersection,
and this becomes $k[x] \big / (x^2 = 0)$. This has a single point<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">6</a></sup> yet
it’s 2-dimensional (it has a basis ${1,x}$). The nilpotency of $x$ says
our scheme sees something “infinitesimally bigger” than just the point $x=0$.
In fact, it “remembers” that it came from the intersection of a curve with
its tangent line (that is, we get not just a point of intersection, but an
infinitesimally small “line segment” of intersection)!</p>
<p>Much of this “middle abstraction” level is learning to visualize these
infinitesimals and other similar phenomena, which (as we’ve seen)
contain the answer to many geometric problems<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">7</a></sup>!</p>
<p><br /></p>
<p>Finally the “high abstraction” machinery, like stacks allow us
to solve problems for whole <em>families</em> of geometric objects at once. I won’t
say more about this here, since I want this post to be fairly short, but the
relevant buzzword is “moduli stack”. These are geometric objects where a
single point can still “have symmetry”.</p>
<p>Separately, topoi are geometric objects which are characterized not by
their points, but by their <a href="https://en.wikipedia.org/wiki/Sheaf_(mathematics)"><em>sheaves</em></a>. Sheaves are certain objects
associated to a geometric space, and we can rephrase a lot of geometry
in terms of operations on sheaves. A (grothendieck) topos, then, is a
category of sheaves that “looks like” a category of sheaves on some
geometric space. Then we can pretend that it really <em>is</em> sheaves on some
space, and use the fact that we can do geometry in terms of just sheaves
in order to ask what properties this space must have!</p>
<p>This turns out to be extremely useful, even for surprisingly simple to
state problems. After all, hard problems demand hard solutions, and
sometimes easy to state problems are still hard to solve!
<a href="https://en.wikipedia.org/wiki/Fermat%27s_Last_Theorem">Fermat’s Last Theorem</a>, for instance, is famously easy to state,
but requires the use of both stacks <em>and</em> topoi in order to complete
the proof!</p>
<p><br /></p>
<p>Lastly, I invite the people who have tuned out<sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">8</a></sup> to tune back in for
a more concrete ending to the talk. We show how to use a simple idea from
algebraic geometry in order to classify all pythagorean triples! The fact
that geometry should be useful here is surprising, and this is a very
concrete example which forms the inspiration for the very fruitful subject
of <a href="https://en.wikipedia.org/wiki/Arithmetic_geometry">arithmetic geometry</a>.</p>
<hr />
<p>As usual, here is the title and abstract, and slides are available
<a href="/assets/docs/ag-for-undergrads/ag-talk.pdf">here</a>.</p>
<p>What is Algebraic Geometry, and Why Should You Care?</p>
<p>Algebraic Geometry, at its core, is the study of solutions of polynomial
equations. However in the 20th century it gained a reputation for both its
abstraction and difficulty. In this talk we will outline what connects
algebra and geometry, and explain what led to the explosion in abstraction
that occurred in Grothendieck’s school. We will end the talk with some
applications in both pure and applied math. We assume no prerequisites at all,
except possibly some linear algebra.</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>It went well enough that I’ll probably add it into my list of
“talks I’m happy to give without much preparation”, so there’s
likely to be more opportunities. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>Both of which are super interesting problems, that I’ll likely talk about
someday, but neither of which I’m comfortable talking about right now. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>Since this can help them intuit what’s true! <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>Which is somewhat well deserved, but I would argue it’s no harder than
what a lot of functional analysts get up to… <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>Grown-up mathematicians would probably prefer I say “perturb” instead
of “wiggle”, but they can get over it. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>If you’re in the know, this means “a single prime ideal”. See
<a href="https://math.stackexchange.com/questions/2139078/kx-x2-has-only-one-prime-ideal">here</a>, for instance. <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:7" role="doc-endnote">
<p>In fact, this scheme-theoretic intersection <em>still</em> doesn’t always
compute intersections properly… In some extreme situations it
still “forgets too much”. This is one of the motivations behind the
“high abstraction” notion of <a href="https://en.wikipedia.org/wiki/Derived_algebraic_geometry">derived algebraic geometry</a>, which
is even harder to visualize (I certainly can’t… At least not yet)
but which correctly solves <em>even more problems</em>! <a href="#fnref:7" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:8" role="doc-endnote">
<p>And anyone who tuned out for some of this discussion of high abstraction
tools would of course be completely forgiven! <a href="#fnref:8" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Mon, 01 May 2023 00:00:00 +0000
https://grossack.site/2023/05/01/ag-for-undergrads-talk.html
https://grossack.site/2023/05/01/ag-for-undergrads-talk.htmlA 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.html