Chris Grossack's Blog
https://grossack.site
Talk -- What is Factorization Homology?<p>I was recently invited to speak at the <a href="https://www.ams.org/meetings/sectional/2313_program_ss13.html">AMS Sectional</a> in
Tallahassee, Florida. In particular, at the special session on
<em>Homotopy Theory and Category Theory in Interaction</em>. The
conference was this weekend, and I’m typing this up on my
plane ride home. I had a great time, and met a lot of great
people! The special session was pretty small, so we all
got to talk to each other, and I got surprisingly close
with the people I went out for lunch (and later, drinks) with!</p>
<p>I was nervous at first, since Florida… isn’t politically friendly
towards trans people. Thankfully everybody that I interacted
with was lovely, and I didn’t have any issues at all. What’s more,
the campus was <em>beautiful</em>, and the surrounding area was
surprisingly walkable. We had a <em>4 hour</em> lunch break on the first
day (which is part of how I got so close with my lunch group),
and after we ate some great barbecue we all hung out under
some fantastic trees.</p>
<p>I also felt safer because I was hanging out with <a href="https://kayaarro.site/">Kaya Arro</a>,
a postdoc at UCR, for basically the whole time. They were great
company, and also helped a ton with silly homotopy questions
while I was making my slides (on the day before the talk…).</p>
<p>Anyways here are some of the trees <em>right</em> outside the conference building<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">1</a></sup>!</p>
<p style="text-align:center;">
<img src="/assets/images/ams-sectional-talk-fh/fsu-trees.jpg" width="50%" />
</p>
<p>It was like $400 cheaper to fly out on Monday evening, even
though the conference ended on Sunday, so Kaya and I had
almost a whole day to ourselves. We went to the FSU
<a href="https://mofa.fsu.edu/">Museum of Fine Arts</a> and walked around until it was
airport time.</p>
<p>It was the <em>perfect</em> size museum for the amount of time we had, with
some amazing installation pieces, and a whole section dedicated to
book making! That was particularly exciting for me, since one of my
best friends, <a href="https://www.ashleyjchan.com/stories">Ashley Chan</a>, is a super talented book maker!</p>
<p>These first few paragraphs were a bit bloggier than usual,
but I had a <em>great</em> time and wanted to talk about it!
Now that we’ve had a chance to catch up, though, let’s
get to the math ^_^.</p>
<hr />
<p>My talk was on <a href="https://ncatlab.org/nlab/show/factorization+homology">Factorization Homology</a>, and I
split it up into three sections:</p>
<ul>
<li>Why?</li>
<li>What?</li>
<li>How?</li>
</ul>
<p>In the first section, I wanted to provide some motivation for
the technology, and to explain why it deserves to be called
“homology”.</p>
<p>The second section was all about what factorization
homology <em>is</em>, at least in broad strokes. I left out a bunch of
details about orientation and framings since the talk was only
20 minutes and I wanted to stay light on my feet. This was
also the section I got to express myself the most, since I
view factorization homology through the lens of categorical logic<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">2</a></sup>,
and I was able to spend some time on that perspective.</p>
<p>The third section was on actually <em>doing things</em> with factorization
homology. That is, on how we can really compute it, and how we can
interpret what these computations mean. I wasn’t able to spend
<em>too</em> much time on the interpretation, but I said a few words,
and it was worth it for the extra time spent on a
(sketchy version of a) simple example computation.</p>
<p>There were some great questions after the talk, including one
from <a href="http://phck.net/">Philip Hackney</a>
(one of the organizers, and the person who invited me) which
gave me the chance to talk about what factorization homology
has to do with my research.</p>
<p>All in all, I think the talk went super well. I don’t think I
came off as particularly manic, which can happen when I give
short talks, and it seems like people were able to take some
intuition away, which is everything I wanted! It helps that
everyone at the conference was super nice, so I didn’t have to
worry at all about being judged or grilled. I think people were
in a <em>particularly</em> good mood, since I was the first talk after
lunch, so everyone was full and happy, haha.</p>
<hr />
<p>So then, in more detail, what all did we talk about?
In what follows, I’ll always mean $\infty$-category,
$\infty$-functor, etc. whenever I write “category”,
“functor”, etc.</p>
<p>First, the <em>why</em>.</p>
<p>We recall that “classical” cohomology $H^n(X,A)$ can be
seen as $\pi_0 \text{Map}(X, K(n,A))$. Unraveling these
hieroglyphics says that the cohomology of $X$ with
coefficients in $A$ can be computed as the connected
components of the <a href="https://ncatlab.org/nlab/show/compact-open+topology">space of maps</a> from $X$ to the
<a href="https://en.wikipedia.org/wiki/Eilenberg%E2%80%93MacLane_space">eilenberg-mac lane space</a> $K(A,n)$<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">3</a></sup>. That is,
with the set of maps up-to-homotopy $X \to K(A,n)$.</p>
<p>This encourages a rather broad perspective, which says
that we can think of $\pi_0 \text{Map}(X,Y)$ as the
“cohomology of the space $X$ with coefficients in the space $Y$”.
This is sometimes called <a href="https://ncatlab.org/nlab/show/nonabelian+cohomology#NonabelianSheafCohomology">nonabelian cohomology</a>, and
many cohomology theories can be subsumed by this one
(basically because lots of algebraic and topological things
can be seen as spaces! See <a href="https://ncatlab.org/nlab/show/Dold-Kan+correspondence">here</a>, for instance).</p>
<p>If we’re calling this thing cohomology, it’s natural to ask
which “classical” theorems in cohomology are true in this
setting. And one natural theorem to want is <a href="https://en.wikipedia.org/wiki/Poincar%C3%A9_duality">Poincaré Duality</a>.</p>
<p>One motivation for factorization homology is that it’s the
right homology theory to make this “Nonabelian Poincaré Duality”
true!</p>
<p>In the talk I said some words about this, but online there’s no
need for me to say anything. If you’re interested, you should
just go read <a href="https://www.math.ias.edu/~lurie/282ynotes/LectureVIII-Poincare.pdf">Lurie’s notes on the topic</a> instead. After all,
I basically just paraphrased them in the talk!</p>
<p>If you insist on sticking around here, though, the idea is this:</p>
<p>To prove the “classical” poincaré duality $H_i(X,A) \cong H^{n - i}_c(X,A)$,
one can show</p>
<ol>
<li>The functors $C_\bullet(-,A)$ and $C_c^\bullet(-,A)$ from
the category of $n$-manifolds and smooth embeddings to the
category of chain complexes are both <a href="https://en.wikipedia.org/wiki/Cosheaf">cosheaves</a>.</li>
<li><em>Just check</em> that
$C_\bullet(\mathbb{R}^n,A) \simeq C_c^\bullet(\mathbb{R}^n,A)$</li>
<li>Conclude that, since every manifold $\mathbb{R}^n$ is a bunch of
$\mathbb{R}^n$s in a trenchcoat, this equivalence is actually
true for all manifolds.</li>
<li>Taking homology of both sides to get the claim.</li>
</ol>
<p>Basically, a cosheaf is something we can compute for a big thing
by gluing together the computations for small things
(you should have something like <a href="https://en.wikipedia.org/wiki/Mayer%E2%80%93Vietoris_sequence#Basic_versions_for_singular_homology">Mayer-Veitoris</a> in mind).
In particular, since every manifold is glued from copies of
$\mathbb{R}^n$, a cosheaf is <em>totally determined</em> by what it
does to $\mathbb{R}^n$! So once we check that
$C_\bullet(-,A)$ and $C_c^\bullet(-,A)$ agree on $\mathbb{R}^n$,
we get for free that they must agree <em>for every manifold</em><sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">4</a></sup>!</p>
<p>Now, if we <em>wanted</em> to cook up a homology theory making
some kind of “nonabelian poincaré duality” true, we might
try something like this:</p>
<ol>
<li>Show $\text{Map}_c(-,Y) : \mathcal{M}\text{an} \to \mathcal{S}$
is a cosheaf</li>
<li>Define the “nonabelian homology” of $\mathbb{R}^n$ to be
$\text{Map}_c(\mathbb{R}^n,Y)$</li>
<li>Use the cosheaf-ness to extend this definition to all manifolds by
“doing what you have to do”.</li>
</ol>
<p>This turns out to not <em>quite</em> work, but if we define “nonabelian homology”
for all <em>disjoint unions</em></p>
\[\emptyset, \quad
\mathbb{R}^n, \quad
\mathbb{R}^n \coprod \mathbb{R}^n, \quad
\mathbb{R}^n \coprod \mathbb{R}^n \coprod \mathbb{R}^n, \quad \ldots\]
<p>we’re able to get the job done<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">5</a></sup>!</p>
<p>So then, we’ve found ourselves with a functor defined on
\(\mathcal{D}_n\) – the category of disjoint unions of $\mathbb{R}^n$s
with smooth embeddings. Then we <em>freely extend</em> this functor
to the whole category of manifolds $\mathcal{M}\text{an}_n$ by
defining the functor to be “compatible with gluing”. The keyword
here is <a href="https://en.wikipedia.org/wiki/Kan_extension">left kan extension</a>.</p>
<p>If you’re me, this feels a <em>whole</em> lot like a familiar story
from categorical logic!</p>
<p>This, of course, is all part of the <em>what</em>!</p>
<p>At this point in the talk I took a quick diversion to remind
people about <a href="https://ncatlab.org/nlab/show/Lawvere+theory">Functorial Semantics</a>. This was extra easy
since in the morning session <a href="https://math.virginia.edu/people/vz6an/">Valentina Zapata Castro</a> spent some time
talking about the lawvere theory for monoids!</p>
<p><br /></p>
<p>In (1-categorical) functorial semantics, we have <em>classifying categories</em>
associated to algebraic theories. Then a model of that
theory is “just” a functor from the classifying category to
$\mathsf{Set}$. For instance, the classifying category $\mathcal{A}$
for abelian groups looks like this<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">6</a></sup>:</p>
<p style="text-align:center;">
<img src="/assets/images/ams-sectional-talk-fh/A-cat.png" width="50%" />
</p>
<p>and the classifying category for rings $\mathcal{R}$ is:</p>
<p style="text-align:center;">
<img src="/assets/images/ams-sectional-talk-fh/R-cat.png" width="50%" />
</p>
<p>Indeed, a finite product functor $\mathcal{A} \to \mathsf{Set}$
has to send $1$ to some set $A$. Then, since it’s product preserving,
it has to send $2$ to $A^2$, and $0$ to $A^0 = { \star }$. Then
the indicated maps get sent to honest operations on $A$, which give us
the desired abelian group structure on $A$.</p>
<p>Note that we have an embedding $j : \mathcal{A} \hookrightarrow \mathcal{R}$.</p>
<p>Now any ring $R$ is a (finite product) functor
$\mathcal{R} \to \mathsf{Set}$, and if we <em>restrict</em> along $j$
we get a new finite product functor $\mathcal{A} \to \mathsf{Set}$.
That is, we get an abelian group! It should be believable that this is
the underlying abelian group of the ring we started with!</p>
<p style="text-align:center;">
<img src="/assets/images/ams-sectional-talk-fh/res.png" width="50%" />
</p>
<p>More excitingly, can we go the other way? Given a functor
$\mathcal{A} \to \mathsf{Set}$ (that is, an abelian group)
is there a way to freely <em>extend</em> this functor to one defined
on all of $\mathcal{R}$?</p>
<p style="text-align:center;">
<img src="/assets/images/ams-sectional-talk-fh/exn.png" width="50%" />
</p>
<p>The answer, of course, is <em>yes</em> and it’s given by
left kan extension! This recovers the usual free ring on an
abelian group $A$.</p>
<p><br /></p>
<p>Primed with this context, let’s look at our definition of
factorization homology again:</p>
<p>We have a (symmetric monoidal) functor \(\mathcal{D}_n \to \mathcal{C}\).
This data is actually quite well studied, since it’s a model for
<a href="https://ncatlab.org/nlab/show/En-algebra">$E_n$-algebras</a> in $\mathcal{C}$. These are monoids in $\mathcal{C}$
that are “commutative up-to-homotopy living in dimension $n$”<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">7</a></sup>.</p>
<p>So we have something that looks like some kind of algebra, which is
given by a functor out of \(\mathcal{D}_n\). Then we want to <em>freely extend</em>
this data to a new kind of algebra, given by a functor out of
$\mathcal{M}\text{an}_n$…</p>
<p>Doesn’t this setup sound familiar?</p>
<p>If \(A : \mathcal{D}_n \to \mathcal{C}\) is our $E_n$-algebra,
We define $\int_{(-)} A : \mathcal{M}\text{an}_n \to \mathcal{C}$,
the <span class="defn">Factorization Homology</span> to be the
left kan extension of $A$ along $j$. We can think of this as a kind of
“algebra” which is graded by connected manifolds. Moreover, we have
operations between these graded pieces corresponding to smooth embeddings!</p>
<p>For instance, if $i : M_1 \coprod M_2 \to N$ is a smooth embedding, then
we get an operation $\int_{M_1} A \otimes \int_{M_2} A \to \int_N A$.</p>
<p>In particular, for a <span class="defn">Collared Manifold</span>
(that is, a manifold of the form $M = M_0 \times \mathbb{R}$) we get
an algebra structure $\int_M A \otimes \int_M A \to \int_M A$
from the embedding</p>
<p style="text-align:center;">
<img src="/assets/images/ams-sectional-talk-fh/algebra.png" width="50%" />
</p>
<p>Similarly, if $M$ embeds into $N$, then we get a $\int_M A$-module structure on
$\int_N A$:</p>
<p style="text-align:center;">
<img src="/assets/images/ams-sectional-talk-fh/module.png" width="50%" />
</p>
<p>This brings us to the most important part of the <em>How</em>:</p>
<p>We can actually compute factorization homology by using “collared excision”:</p>
<p style="text-align:center;">
<img src="/assets/images/ams-sectional-talk-fh/excision.png" width="50%" />
</p>
<p>If you want to read more about all of this, I <em>highly</em> recommend
the relevant section in <a href="https://julietcooke.net/">Juliet Cooke</a>’s <a href="https://julietcooke.net/CookeThesis.pdf">Thesis</a>. If you want to
really understand it well, there’s also Alaya and Francis’s
<a href="https://www3.nd.edu/~stolz/2021S_Math80440/2019_Ayala_Francis.pdf"><em>Factorization Homology Primer</em></a> and <a href="https://www.hiroleetanaka.com/">Hiro Lee Tanaka</a>’s
excellent lectures on the subject, which are available on <a href="https://www.youtube.com/watch?v=yeTngpqaAmk">youtube</a>.</p>
<hr />
<p>Thanks again for reading, all! I’m really pleased with how this talk went,
and I’m happy to have made as many friends as I did at the conference.</p>
<p>It was great to be invited to speak in person somewhere for the first time,
and to feel super welcomed in the homotopy theory world
(which I’m only tangentially a part of… at least for now).</p>
<p>Stay safe, all, and we’ll talk soon!</p>
<hr />
<p>What is Factorization Homology?</p>
<p>Ayala, Francis, and Rozenblyum introduced Factorization Homology in order to
compare category theory and (topological quantum) field theory. It has since
grown into a useful invariant of surfaces and algebras which,
through excision, is often computable in practice. In this survey talk we
will discuss the basics of factorization homology, emphasizing its connections
to both homotopy theory and category theory (via infinity categories).
Given time, we will also discuss some applications to the speaker’s ongoing
dissertation work in skein theory.</p>
<p>The talk wasn’t recorded, but you can find the slides <a href="/assets/docs/ams-sectional-talk-fh/slides.pdf">here</a>.</p>
<p style="text-align:center;">
<img src="/assets/images/ams-sectional-talk-fh/me.jpg" width="50%" />
</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:7" role="doc-endnote">
<p>The hilariously named “HCB” (Huge Classroom Building). <a href="#fnref:7" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:1" role="doc-endnote">
<p>Though honestly, I view <em>most</em> things through the lens of either
categories or logic. So this should come as no surprise, haha. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>If you haven’t seen this before, it’s a <em>super</em> useful perspective
to have on hand! For example, <a href="https://ncatlab.org/nlab/show/complex+projective+space">$\mathbb{C}P^\infty$</a> is both
a model for $K(\mathbb{Z},2)$ and $BU(1)$.</p>
<p>Now (homotopy classes of) maps $X \to K(\mathbb{Z},2)$ are the same
thing as elements of $H^2(X,\mathbb{Z})$ by the fact from the main
post.</p>
<p>But homotopy classes of maps $X \to BU(1)$ are the same thing as
complex line bundles on $X$!</p>
<p>So, since these spaces are the same, we learn that complex line
bundles on $X$ are classified by $H^2(X,\mathbb{Z})$!</p>
<p>You can read more about this <a href="https://mathoverflow.net/questions/308253/classification-of-line-bundles-by-second-cohomology-of-a-manifold">here</a>, for instance. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>This is one <em>killer</em> example of why people care about this kind
of abstract nonsense. Not only do we need to know stuff about
(co)sheaves, we also have to care about $\infty$-categories!</p>
<p>This is basically because $\infty$-categorical things tend to
glue more nicely than $1$-categorical things. <em>This</em>, in turn,
is related to the idea that “Chain Complex: Good. Homology: Bad”,
as talked about in many places. (for instance, <a href="https://arxiv.org/abs/math/0501094">here</a> and
<a href="https://mathoverflow.net/questions/450835/what-is-the-motivation-for-infinity-category-theory">here</a>) <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>This is basically because checking the cosheaf condition requires
some version of Mayer-Veitoris. But the “usual” version of
Mayer-Veitoris crucially uses the ability to add functions
(since $A$ is an abelian group). Now that $Y$ is any old space,
we lose addition.</p>
<p>But by working with disjoint unions of $\mathbb{R}^n$s, we can
get a notion of “addition” back by taking the disjoint union of the
functions!</p>
<p>You can read more about precisely what’s going on in
<a href="https://www.math.ias.edu/~lurie/282ynotes/LectureVIII-Poincare.pdf">Lurie’s notes</a>. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>Precisely, the classifying category for the models of any
<a href="https://ncatlab.org/nlab/show/algebraic+theory">algebraic theory</a> is always the opposite of the
category of the finitely generated free models.</p>
<p>So, for instance, $\mathcal{A}^\text{op}$ is the full
subcategory of abelian groups spanned by</p>
\[\{1, \mathbb{Z}, \mathbb{Z}^2, \mathbb{Z}^3, \ldots \}\]
<p>and $\mathcal{R}^\text{op}$ is the full subcategory of
(let’s say commutative) rings spanned by</p>
\[\{1, \mathbb{Z}[x], \mathbb{Z}[x,y], \mathbb{Z}[x,y,z], \ldots \}\]
<p>There’s a similar version of this story that works for
<a href="https://ncatlab.org/nlab/show/essentially+algebraic+theory">essentially algebraic theories</a> where we use the
finitely <em>presented</em> models instead.</p>
<p>We’ve talked a bit about this on the blog <a href="/2023/11/14/ctoctoberfest2023.html">before</a>, and I
have plans to talk quite a bit about it sometime in the future. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>I’m not going to tell you what that means, but here’s an illustrative
example:</p>
<p>An $E_1$-algebra in $\mathfrak{Cat}$ is a monoidal category.</p>
<p>An $E_2$-algebra in $\mathfrak{Cat}$ is a <a href="https://en.wikipedia.org/wiki/Braided_monoidal_category"><em>braided</em></a> monoidal category.
That is, the multiplicative structure is commutative… but only up to a
homotopy (the braiding).</p>
<p>An $E_3$-algebra in $\mathfrak{Cat}$ is a <a href="https://en.wikipedia.org/wiki/Symmetric_monoidal_category">symmetric</a> monoidal category.
That is, a category whose multiplicative structure is <em>genuinely</em>
commutative (at least, up to isomorphism, which is the best we ever
want to do in a category).</p>
<p>All $E_n$-algebras for $n \geq 3$ are the same, since $\mathfrak{Cat}$
is a $2$-category. There <em>aren’t any</em> interesting (read: nonidentity)
homotopies in dimension $\geq 3$, so if you’re commutative up to a
higher homotopy, the only choice for that higher homotopy is the identity!
Which means you’re just commutative without further qualification!</p>
<p>But you can imagine that, for $\infty$-categories that do have higher
homotopies, we can have monoids that are commutative up to the data
of an $n$-homotopy, and that’s exactly an $E_n$-algebra. In case you
want something that really is commutative, you can take $n=\infty$ here. <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Wed, 27 Mar 2024 00:00:00 +0000
https://grossack.site/2024/03/27/ams-sectional-talk-fh.html
https://grossack.site/2024/03/27/ams-sectional-talk-fh.htmlProving Another "Real Theorem" with Topos Theory<p>Another day, another post that starts with “So I was on mse…”, lol.
Somebody <a href="https://math.stackexchange.com/q/4870971/655547">asked</a> whether maximizing over a compact set is a continuous thing
to do. That is, given a continuous function $f : K \times X \to \mathbb{R}$ is the
function $x \mapsto \max_{k \in K} f(k,x)$ continuous?</p>
<p>If you’re me, this looks an awful lot like the usual
<a href="https://en.wikipedia.org/wiki/Extreme_value_theorem#Generalization_to_metric_and_topological_spaces">extreme value theorem</a>, but where
“everything in sight depends continuously on a parameter from $X$”. Indeed,
say we had a family of compact sets $K_x$ depending on a parameter from $X$,
and a family of functions $f_x : K_x \to \mathbb{R}$ which is continuous both
in the choice of $x$ and in the choice of $k \in K_x$. Then the usual extreme
value theorem tells us that we have pointwise maxima
$m_x = \max_{k \in K_x} f_x(k)$, and it’s natural to ask whether these
maxima <em>also</em> vary continuously in the parameter $x$.</p>
<p>Depending on your experience with <a href="https://en.wikipedia.org/wiki/Fiber_bundle">bundles</a>, you might be aware that
the usual way to encode a “family of sets $A_x$ continuously depending on $x \in X$”
is with a single space $A$
(usually called the <span class="defn">total space</span>)
equipped with a map $\pi : A \to X$. Then the fibres of $\pi$ give us the
desired family of sets $A_x = \pi^{-1}(x)$<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">1</a></sup>. As a super concrete example,
say we want to represent the constant family $A_x = \mathbb{R}$. Then
we should use the <span class="defn">trivial bundle</span>
$\mathbb{R} \times X$ with the obvious projection map
$\pi : \mathbb{R} \times X \to X$<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">2</a></sup>.</p>
<div class="boxed">
<p>I bet you weren’t expecting a cute exercise this early in the post!</p>
<p>Can you show that a family of functions $f_x : A_x \to B_x$ over $X$
is the same thing as a single function $f : A \to B$ making the following
diagram commute:</p>
<p style="text-align:center;">
<img src="/assets/images/continuous-max-function/bundle-map.png" width="50%" />
</p>
<p>Recall we’re thinking of the sets $A_x$ and $B_x$ as being the fibres
$\pi_A^{-1}(x)$ and $\pi_B^{-1}(x)$.</p>
<p>To go from the family $f_x$ to a single function $f$ on the total spaces,
it might be worth remembering that the total space $A$ is just the
disjoint union of the fibres<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup> $\sum_{x \in X} A_x$ (suitably topologized).</p>
</div>
<p>So the constant family $K_x = K$ of compact sets is represented by the trivial
bundle $K \times X$, and (by the above exercise) a family of functions
$f_x : K_x \to \mathbb{R}$ is represented by a function
$f : K \times X \to \mathbb{R} \times X$ with $\pi_2 (f(k,x)) = x$. Since we
know what the second component <em>must</em> be, this is the same data as a function
$K \times X \to \mathbb{R}$! This tells us that, if we can prove some
“$X$-parameterized” version of the extreme value theorem
(where the resulting maxima also depend continuously on a parameter $x \in X$),
we can answer the OP’s question by looking at the special case where $K_x$
is a constant family!</p>
<p>If you’ve been exposed to some ideas in topos theory, you should be screaming
something to do with the “internal logic” right now! Indeed, a theorem inside
the topos of <a href="https://ncatlab.org/nlab/show/sheaf">sheaves</a> on $X$ externalizes to give a version of that
theorem where everything is automatically continuous in a parameter from $X$.
So if we have access to the extreme value theorem inside $\mathsf{Sh}(X)$
(that is, if we have a <a href="https://ncatlab.org/nlab/show/constructive+mathematics">constructive</a> proof of the extreme value theorem)
we would <em>immediately</em> get the parameterized version for free!</p>
<hr />
<p>So then, we want to get our hands on a constructive proof of the extreme
value theorem.
Typically constructive theorems which assert the <em>existence</em> of something
(in this case, a maximum) require some ~bonus assumptions~ which are invisible
in the classical case. This is because existence is a much stronger
phenomenon constructively<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">4</a></sup>.</p>
<p>To start, we probably want to be working with <a href="https://ncatlab.org/nlab/show/locale">locales</a> instead of
topological spaces. Since the person on mse was happy with $K$ and $X$
<em>metrizable</em>, they’ll certainly be ok with <a href="https://ncatlab.org/nlab/show/sober+topological+space">sobriety</a> since hausdorff-ness
already implies it! Since sober spaces and locales (with enough points) are
the same thing, we lose nothing by moving to the world of locales. There’s a
good notion of compactness for locales, and people have spent a lot of time
proving classical theorems constructively in this setting! So, optimistically,
we can google <code class="language-plaintext highlighter-rouge">"extreme value theorem"+"locale"</code> to see if someone has
already done what we’re looking for, and our optimism is quickly rewarded!
We find <a href="https://www.mat.uc.pt/~tacl2022/slides/GMlecture5.pdf">Graham Manuell’s slides</a> from <a href="https://www.mat.uc.pt/~tacl2022/">TACL 2022</a> which give a
constructive proof of the following:</p>
<div class="boxed">
<p>If $K$ is a compact, overt, positive locale, and $f : K \to \mathbb{R}$
is continuous, then $f$ has a maximum $\max_K f$ given by a dedekind real.</p>
</div>
<p>Let’s say a few words about what all these weird adjectives mean!</p>
<p>First, let’s handle the easiest one: <span class="defn">Compact</span>.</p>
<p>The most familiar definition of compactness is that every open cover
has a finite subcover. Precisely, if $\mathcal{U}$ is a family of open
subsets of $X$ with $X = \bigvee \mathcal{U}$, then there should be a
(<a href="https://ncatlab.org/nlab/show/finite+set">kuratowski-</a>)finite subfamily $\mathcal{U}_0 \subseteq \mathcal{U}$
so that actually $X = \bigvee \mathcal{U}_0$.</p>
<p>However, constructively it’s better to avoid saying the word “finite”
if you can. The notion of finiteness splits into different inequivalent
notions (kuratowski-finite, bishop-finite, dedekind-finite, etc) which makes
the whole thing a bit of a mess<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">5</a></sup>. For this reason, there’s a different,
equivalent definition of compactness which we often prefer:</p>
<p>We say $X$ is called compact if for every <em>directed</em> open cover $\mathcal{U}$<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">6</a></sup>
with $X = \bigvee \mathcal{U}$, we must actually have $X \in \mathcal{U}$!</p>
<div class="boxed">
<p>As a cute exercise, prove these two definitions are equivalent! Try your
hardest to make sure your proof is constructive!</p>
</div>
<p>There’s one last angle on compactness that I want to emphasize here as well:
We say a locale is compact if <em>universal quantification is open</em>. That is,
if $U \subseteq K \times X$ is open, we want to know if
\(\{ x \mid \forall k . (k,x) \in U \} \subseteq X\) is open.
This turns out to be true (for every $X$ and every $U$) if and only if $K$
is compact<sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">7</a></sup>!</p>
<p><br /></p>
<p>The next adjective on the list is <span class="defn">Overt</span>. This is
a kind of tricky notion to understand at first, since it’s invisible classically.
We say a locale $O$ is overt iff for any locale $X$ and open subset
$U \subseteq O \times X$, the projection
\(\{ x \mid \exists o \in O . (o,x) \} \subseteq X\) is open. Note how this is
dual to the universal quantifier present for compact sets. Also note that
this set is exactly the image of $U$ under $\pi_X : O \times X \to X$.
Since, classically, this projection map is always <a href="https://en.wikipedia.org/wiki/Open_and_closed_maps#Open_maps">open</a>, we learn that
classically <em>every</em> locale is overt<sup id="fnref:9" role="doc-noteref"><a href="#fn:9" class="footnote" rel="footnote">8</a></sup>.</p>
<p>There’s an equivalent characterization of overtness, which is often useful
in practice. We want to check that the unique map $X \overset{!}{\to} 1$
is open. Since open maps are preserved by pullbacks, this gives the
original definition for free. It also shows how this definition is classically
invisible, since every subset of the terminal locale is open when the terminal
locale is \(\{\star\}\).</p>
<p>However, recall that in a sheaf topos $\text{Sh}(X)$ the terminal locale is
$X$! Then a locale in $\text{Sh}(X)$ is just an external locale with a map
into $X$, and overtness of the internal locale corresponds to openness of the
external map! So there’s obviously no reason to expect every locale to be
overt constructively, since it’s easy to find continuous functions
that aren’t open.</p>
<p><br /></p>
<p>Lastly, we say that a locale is <span class="defn">Positive</span> iff every
open cover must be inhabited. That is, if $X = \bigvee \mathcal{U}$ for
$\mathcal{U}$ a family of open sets, the family $\mathcal{U}$ must be inhabited.</p>
<p>Recall we say $A$ is <em>inhabited</em> exactly when $\exists a \in A$ is true.
In $\text{Sh}(X)$, this means that there’s an open cover of $X$ so that $A$
has a section on every element of the cover. That is, exactly when the
structure map $A \to X$ is surjective.</p>
<hr />
<p>Now, let’s outline the proof from Manuell’s <a href="https://www.mat.uc.pt/~tacl2022/slides/GMlecture5.pdf">slides</a><sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">9</a></sup>. Recall a
<span class="defn">Dedekind Real</span> is a pair of cuts $(L,U)$ where</p>
<ul>
<li>$L \subseteq \mathbb{Q}$ is a <em>lower cut</em> of rational numbers in the sense that
<ol>
<li>$\exists p \in L$ ($L$ is inhabited)</li>
<li>if $p \lt q$ and $q \in L$, then $p \in L$ too ($L$ is downwards closed)</li>
<li>if $p \in L$, then $\exists q \in L . q \gt p$ ($L$ is upwards open)</li>
</ol>
</li>
<li>$U \subseteq \mathbb{Q}$ is an <em>upper cut</em> of rational numbers in the sense that
<ol>
<li>$\exists p \in U$ ($U$ is inhabited)</li>
<li>if $p \gt q$ and $q \in U$, then $p \in U$ too ($U$ is upwards closed)</li>
<li>if $p \in U$, then $\exists q \in U . q \lt p$ ($U$ is downwards open)</li>
</ol>
</li>
<li>$L$ and $U$ are <em>compatible</em> in the sense that
<ol>
<li>If $p \in L$ and $q \in U$, then $p \lt q$ ($L$ and $U$ don’t overlap)</li>
<li>If $p \lt q$ are any rationals, then $p \in L \lor q \in U$
($L$ and $U$ have no gap between them)</li>
</ol>
</li>
</ul>
<p>If you haven’t seen this before, we think of $r = (L,U)$ as pinning down a
real number by saying how it compares to every rational. If
$q \in L$, we say $q \lt r$, and if $q \in U$ we say $q \gt r$. See
the <a href="https://ncatlab.org/nlab/show/Dedekind+cut#idea">nlab page</a> for more.
Recall also<sup id="fnref:10" role="doc-noteref"><a href="#fn:10" class="footnote" rel="footnote">10</a></sup> that, a real number in $\text{Sh}(X)$ is a continuous
function $X \to \mathbb{R}$. The lower/upper cuts are also useful separately,
and externalize to lower/upper <a href="https://en.wikipedia.org/wiki/Semi-continuity">semicontinuous functions</a> on $X$.</p>
<p>Now, finally, for the proof idea:</p>
<p>$\ulcorner$
Say $f : K \to \mathbb{R}$ is a map from a positive, overt, compact
locale $K$. First we’ll use positive overtness to build</p>
\[L = \{ q \in \mathbb{Q} \mid \exists k \in K . q \lt k \}.\]
<p>Then, we’ll use positive compactness to build</p>
\[U = \{ q \in \mathbb{Q} \mid \forall k \in K . k \lt q \}.\]
<p>Lastly, we need to show
that the $L$ and $U$ we just built are compatible. It’s easy to
show they don’t overlap, but showing they “have no gap” requires a
small argument (which you can find on Manuell’s slide 8).
<span style="float:right">$\lrcorner$</span></p>
<p><br /></p>
<p>Note how (after externalizing) this is <em>really</em> the same argument that
Sangchul Lee gave in the accepted answer on <a href="https://math.stackexchange.com/q/4870971/655547">mse</a>!</p>
<p>First we show that $g(x) = \max_K f(k,x)$ is lower semicontinuous
(that is, we show that it’s a lower real). This doesn’t use any
facts about $K$, since it’s only using positive overtness of $K \times X$,
which is <em>always</em> true!</p>
<p>Then we show that $g(x)$ is upper semicontinuous
(that is, we show it’s an upper real). This is where we crucially use
compactness, both externally and internally.</p>
<p>The compatibility conditions basically amount to checking your upper and
lower semicontinuous functions are the same, but since Sangchul’s answer
is working with a single function the whole time there’s no need to verify
that.</p>
<hr />
<p>So now we have this constructive theorem. What does it <em>actually</em> tell us
after we externalize?</p>
<p>Well, you can chase through the definitions of compact, overt, and positive
inside (say) a sheaf topos $\text{Sh}(X)$ and see what you get!</p>
<p>First, as we alluded to in the introduction to this post,
a locale $K$ internal to $\text{Sh}(X)$ is exactly a locale map<sup id="fnref:11" role="doc-noteref"><a href="#fn:11" class="footnote" rel="footnote">11</a></sup>
$\pi : \Gamma(K) \to X$ where $\Gamma$ is the usual <a href="https://ncatlab.org/nlab/show/global+section">global sections map</a>.</p>
<p>From here, it’s not (too) hard to see that $K$ is compact if and only if
$\pi$ is <a href="https://ncatlab.org/nlab/show/proper+map">proper</a>, that $K$ is overt if and only if $\pi$ is
<a href="https://ncatlab.org/nlab/show/open+map">open</a>, and that $K$ is positive if and only if $\pi$ is surjective<sup id="fnref:12" role="doc-noteref"><a href="#fn:12" class="footnote" rel="footnote">12</a></sup>.</p>
<p>So altogether we learn that</p>
<div class="boxed">
<p>If $\pi : A \to X$ is a proper, open, surjection and we have
$f : A \to \mathbb{R}$, then</p>
\[x \mapsto \max_{k \in \pi^{-1}(x)} f(k)\]
<p>is continuous.</p>
</div>
<p>In particular, we answer the OP’s question! Taking $\pi : K \times X \to X$
to be the usual projection map
(which is open and surjective, plus proper since $K$ is compact) we learn that</p>
\[x \mapsto \max_{(k,x) \in \pi^{-1}(x)} f(k,x)\]
<p>is continuous. As desired!</p>
<hr />
<p>Ok! Thanks for reading, all! This felt like it took forever for what a short
post it was, but I had a great time writing it. I’m flying home from the
AMS Sectional today, where I gave a talk at the special session on
<a href="https://www.ams.org/meetings/sectional/2313_program_ss13.html">Homotopy Theory and Category Theory in Interaction</a>. I had a <em>great</em>
time, and met a lot of really awesome people. It was a small group, which
means we had lots of time to hang out and get to know each other.</p>
<p>I’ll write up some stuff about the conference (and my talk) soon, but for
now I need to get ready to go to the airport! Stay safe ^_^.</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:4" role="doc-endnote">
<p>I really don’t like Goldblatt’s <em>Topoi</em> as a book, but his section on the
relationship between bundles over $X$ and sets continuously “indexed” by $X$
is super good. It’s chapter 4 section 5, and it has some really helpful
pictures and examples! <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:1" role="doc-endnote">
<p>Note that it’s possible to have constant fibres, <em>without</em> being the
trivial bundle! In this case, even though each fibre is the same as
every other, we <em>glue them together</em> in an interesting way! To be the
trivial bundle, you need to know the fibres are all the same, <em>and</em> that
we glued them together in the most naive way possible. For instance,
the trivial $\mathbb{R}$-bundle over the circle $S^1$ looks like a cylinder,
since we glue the copies of $\mathbb{R}$ together in the simplest possible way.
However, we could slowly “twist” our copies of $\mathbb{R}$ as we move around
the circle as we glue them together to get a moebius strip!
This is still a continuously varying family of copies of $\mathbb{R}$,
but now the bundle is nontrivial! Here’s a picture from wikipedia:</p>
<p style="text-align:center;">
<img src="/assets/images/continuous-max-function/mobius-bundle.png" width="75%" />
</p>
<p>As a cute exercise, can you come up with two bundles over $S^1$ where
each fibre has two elements? One should be a trivial bundle, and the
other shouldn’t be. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>Any type theorists in the room are probably screaming
<a href="https://en.wikipedia.org/wiki/Dependent_type#%CE%A3_type">Dependent Sum</a> right around now! That’s extremely fair, and I almost
put something in the main post about this, but I ended up editing it out. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>As witnessed (pun intended) by the fact that, interpreted in suitable topoi,
a constructive existence proof gives rise to free theorems saying
there’s an algorithm that produces the desired object, or that the
desired object can be defined continuously in a parameter, etc. This is
exactly the phenomenon we’re trying to exploit, and we have to do work
somewhere! <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>I still haven’t taken the time to <em>really</em> familiarize myself with the
various notions of finiteness, and how they “feel”. One day soon I want
to, though. <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:7" role="doc-endnote">
<p>Recall a partial order $(D,\leq)$ is called <span class="defn">directed</span>
if it’s inhabited and for any $x,y \in D$ <del>their join $x \lor y$ is
in $D$ too</del> <strong>Edit:</strong> There’s a mutual uppoer bound $x,y \leq z$ also
in $D$. Thanks to <a href="https://tdejong.com/">Tom de Jong</a> for this correction!</p>
<p>This is really hiding kuratowski-finiteness again, since directedness
guarantees that for any kuratowski-finite subset $F \subseteq D$ that
$\bigvee F \in D$. This is the usual argument that binary joins
imply finite (nonempty) joins. <a href="#fnref:7" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:8" role="doc-endnote">
<p>I was curious about this, and <a href="https://pedromarun.github.io/">Pedro</a> pointed out that one
direction is basically the classical <a href="https://en.wikipedia.org/wiki/Tube_lemma">tube lemma</a>. I don’t
actually see how to do the other direction (at least quickly)
and I don’t really have time to think about it right now. If
someone figures it out I’d love to hear about it in the comments! <a href="#fnref:8" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:9" role="doc-endnote">
<p>Constructively it’s still true that every locale with enough points is
automatically overt (see the <a href="https://ncatlab.org/nlab/show/overt+space">nlab</a>). It’s a very mild
condition, see the discussion <a href="https://mathoverflow.net/questions/405866/what-does-overtness-mean-for-metric-spaces">here</a>, for instance,
or Paul Taylor’s <a href="http://www.paultaylor.eu/ASD/overtrn/overtrn.pdf"><em>Overt Subspaces of $\mathbb{R}^n$</em></a>. <a href="#fnref:9" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>He, in turn, mentions was based on the treatment in Paul Taylor’s
<a href="http://logicandanalysis.org/index.php/jla/article/view/63/25"><em>A Lambda-Calculus for Real Analysis</em></a>. I actually have this paper
saved, but it’s long and I wasn’t sure how easy it would be to translate
Taylor’s results into language I’m more familiar with. Now that I’ve seen
Manuell do it, though, I have plans to read this paper pretty soon! <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:10" role="doc-endnote">
<p>I’ve always gotten slightly annoyed, or at least laughed quietly to
myself, when authors ask the reader to “recall” some fact that they
quite possibly don’t know.</p>
<p>I really want this post to be done, though
(I’ve been working on it for almost a month) and if I have to explain
why upper/lower reals correspond to upper/lower semicontinuous functions
I’ll never finish… I know, I tried.</p>
<p>You can find an <em>extremely</em> detailed treatment in Mac Lane and Moerdijk’s
<em>Sheaves in Geometry and Logic</em> Chapter VI.8. Understanding this well
is probably enough to work out that upper/lower reals correspond to
upper/lower semicontinuous functions yourself
(which will make a great exercise!). Depending on your experience,
you might be helped by my <a href="/2022/12/13/internal-logic-examples.html">old post</a> on externalizing formulas
inside a topos.</p>
<p>There’s also a great treatment in Johnstone’s
<em>Sketches of an Elephant</em>, Chapter D4.7. This works out the case of
lower reals and lower semicontinuous functions explicitly, but does so
quite quickly. <a href="#fnref:10" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:11" role="doc-endnote">
<p>In fact we can say exactly <em>which</em> map it is! We want a locale map
from $\Gamma(K) \to X$, which means we want a frame homomorphism
from $\mathcal{O}(X) \to \mathcal{O}(\Gamma(K)) = \Gamma(\mathcal{O}(K))$.</p>
<p>But given an open set $U \subseteq X$, we can look at the local sections
$\Gamma(\mathcal{O}(K),U)$. This is again a frame, and the restriction
map $\rho^X_U : \Gamma(\mathcal{O}(K)) \to \Gamma(\mathcal{O}(K),U)$
has a left adjoint
$\sigma_U : \Gamma(\mathcal{O}(K),U) \to \Gamma(\mathcal{O}(K))$.</p>
<p>The desired map from $\mathcal{O}(X) \to \mathcal{O}(\Gamma(K))$ sends
$U \subseteq X$ to $\sigma_U(\top)$, where $\top$ is the top element
of $\Gamma(\mathcal{O}(K),U)$. <a href="#fnref:11" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:12" role="doc-endnote">
<p>I feel kind of bad not proving these facts, since they’re not <em>so</em>
hard? But I really am trying to finish this post quickly.</p>
<p>You can find a lot of this in Johnstone’s <em>Elephant</em>. In particular,</p>
<ul>
<li>Getting a locale map $\pi : \Gamma(K) \to X$ from an internal locale is
proposition chapter C1.6.2</li>
<li>Compactness of $K$ agrees with properness of $\pi$ is theorem C3.2.8</li>
<li>Overtness of $K$ agrees with openness of $\pi$ is lemma C3.1.17</li>
<li>We’ve already talked about why positivity means $\pi$ is surjective</li>
</ul>
<p><a href="#fnref:12" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Mon, 25 Mar 2024 00:00:00 +0000
https://grossack.site/2024/03/25/continuous-max-function.html
https://grossack.site/2024/03/25/continuous-max-function.htmlInternal Group Actions as Enriched Functors<p>Earlier <del>today</del> this month on the <a href="https://categorytheory.zulipchat.com/">Category Theory Zulip</a>, Bernd Losert asked an
extremely natural question about how we might study topological group
actions via the functorial approach beloved by category theorists.
The usual story is to treat a group $G$ as a one-object category $\mathsf{B}G$.
Then an action $G \curvearrowright X$ is the same data as a functor
$\mathsf{B}G \to \mathsf{Set}$ sending the unique object of $\mathsf{B}G$ to $X$.
Is there some version of this story that works for topological groups and
continuous group actions?</p>
<p>I wouldn’t be writing this post if the answer were “no”, so let’s get into it!
This is a great case study in the ideas behind both <a href="https://ncatlab.org/nlab/show/internalization">internalization</a> and
<a href="https://ncatlab.org/nlab/show/enriched+category">enrichment</a>, and I think it’ll make a great learning tool for future
mathematicians wondering why you might care about such things.</p>
<p>Hopefully people find this helpful ^_^.</p>
<p>(Also, I’m especially sorry for the wait on this one, since I know at least
one person has been waiting on it for two weeks now! Life got busy, but I’m
excited to finally get this posted.)</p>
<hr />
<p>First, let’s take a second to talk about <span class="defn">Internalization</span>.</p>
<p>The idea here is to take a construction that’s usually defined for sets, and
interpret it inside some other category. For instance, a group $G$ is usually</p>
<ul>
<li>a set $G$</li>
<li>a function $m : G \times G \to G$ (the multiplication)</li>
<li>a function $i : G \to G$ (the inversion)</li>
<li>a function $e : 1 \to G$ (the unit)</li>
</ul>
<p>satisfying some axioms.</p>
<p>We can <em>internalize</em> this definition into the category $\mathsf{Top}$
of topological spaces by looking at</p>
<ul>
<li>a topological space $G$</li>
<li>a continuous function $m : G \times G \to G$</li>
<li>a continuous function $i : G \to G$</li>
<li>a continuous function $e : 1 \to G$</li>
</ul>
<p>satisfying the usual axioms.
This recovers the usual definition of a <a href="https://en.wikipedia.org/wiki/Topological_group">topological group</a>.</p>
<p>Similarly we could ask for a manifold $G$ with smooth maps $m,i,e$, and
this would recover the definition of a <a href="https://en.wikipedia.org/wiki/Lie_group">lie group</a>. At the most general,
we ask for a <span class="defn">Group Object Internal to $\mathcal{C}$</span>.
This is the data of:</p>
<div class="boxed">
<ul>
<li>a $\mathcal{C}$-object $G$</li>
<li>a $\mathcal{C}$-arrow $m : G \times G \to G$</li>
<li>a $\mathcal{C}$-arrow $i : G \to G$</li>
<li>a $\mathcal{C}$-arrow $e : 1 \to G$</li>
</ul>
<p>satisfying the usual axioms<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>.</p>
</div>
<p>As a quick aside, notice the crucial use of the terminal object $1$ and the
product $G \times G$ in the above definition. This tells us that we can only
define groups internal to a category with finite products<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup>.</p>
<p>Now just like we can internalize a group object, we can also internalize a
group <em>action</em>! If $G$ is a group object internal to $\mathcal{C}$ and $X$
is some object of $\mathcal{C}$ (if you like, $X$ is a “set internal to $\mathcal{C}$”)
then an <span class="defn">Internal Group Action</span> is a $\mathcal{C}$-arrow
$\alpha : G \times X \to X$ satisfying the usual axioms.</p>
<p>So then a group action internal to $\mathsf{Top}$ is the usual notion of a
<a href="https://en.wikipedia.org/wiki/Continuous_group_action">continuous group action</a>, and a group action internal to manifolds is a
<a href="https://en.wikipedia.org/wiki/Lie_group_action">lie group action</a>, etc.</p>
<hr />
<p>Let’s change tack for a second and talk about the other half of the story.</p>
<p>Now we start with a <a href="https://ncatlab.org/nlab/show/closed+monoidal+category">(symmetric) monoidal closed category</a>. Roughly speaking, this is
a category where the set of arrows $\text{Hom}_{\mathcal{C}}(X,Y)$ can be
represented by an object of $\mathcal{C}$!</p>
<p>For instance, the category of vector spaces $\mathsf{Vect}$ is monoidal closed
since the homset $\text{Hom}(V,W)$ of linear maps is <em>itself</em> a vector space,
which we’ll write as $[V,W]$.</p>
<p>Another example is the category of (nice<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>) topological spaces. The
set of continuous functions $\text{Hom}(X,Y)$ can be given the
<a href="https://en.wikipedia.org/wiki/Compact-open_topology">compact-open topology</a>, so that it is <em>itself</em> a topological space
$[X,Y]$.</p>
<p><br /></p>
<p>The fact that these categories can “talk about their own homsets” might
make you wonder about other categories with structured homsets.</p>
<p>For instance, there are <em>lots</em> of categories in the wild whose homsets
are vector spaces! If $R$ is any $k$-algebra, then for $R$-modules $M$
and $N$ the homset $\text{Hom}_{R\text{-mod}}(M,N)$ is a vector space.
Similarly, if $G$ is any group, then the homset between any two
$G$-representations is actually a vector space! We say that the categories
$R\text{-mod}$ and $G\text{-rep}$ are <span class="defn">Enriched</span> over
$\mathsf{Vect}$.</p>
<p>Similarly, you can ask about categories where each homset is a
topological space. It turns out that these give a <em>fantastic</em>
first-order approximation<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup> to the theory of <a href="https://ncatlab.org/nlab/show/%28infinity%2C1%29-category">$\infty$-categories</a>!</p>
<p>More generally, we can define a
<span class="defn">$\mathcal{C}$-Enriched Category</span>
to be the data of</p>
<div class="boxed">
<ul>
<li>A set of objects</li>
<li>For each pair of objects $x,y$, a $\mathcal{C}$-object $\text{Hom}(x,y)$</li>
<li>For each triple of objects, a composition map in $\mathcal{C}$,
$\circ : \text{Hom}(y,z) \otimes \text{Hom}(x,y) \to \text{Hom}(x,z)$</li>
<li>For each object $x$, a distinguished element<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup> $\text{id}_x \in \text{Hom}(x,x)$</li>
<li>Satisfying the usual axioms.</li>
</ul>
</div>
<p>And what will be relevant for us, a $\mathcal{C}$-enriched <em>groupoid</em>,
which moreover has an inverse map $i : \text{Hom}(x,y) \to \text{Hom}(y,x)$
showing that every arrow is an isomorphism.</p>
<p>Note that every (symmetric monoidal closed) $\mathcal{C}$ is enriched over
itself in a canonical way. We take the $\mathcal{C}$-category whose
objects are objects of $\mathcal{C}$, and define
$\text{Hom}(x,y)$ to be the $\mathcal{C}$-object $[x,y]$. This specializes to
the right notion for vector spaces and topological spaces which were examples
earlier in this section.</p>
<p>We’ll also need the notion of a $\mathcal{C}$-enriched functor, which is
exactly what you might expect given the above definition.</p>
<div class="boxed">
<p>Given two $\mathcal{C}$-enriched categories $\mathbf{A}$ and $\mathbf{B}$, an
<span class="defn">Enriched Functor</span> $F : \mathbf{A} \to \mathbf{B}$ sends
objects of $\mathbf{A}$ to objects of $\mathbf{B}$. Moreover, for every pair
of objects in $\mathbf{A}$ there should be a $\mathcal{C}$-arrow
\(F_{x,y} : \text{Hom}_{\mathbf{A}}(x,y) \to \text{Hom}_{\mathbf{B}}(Fx,Fy)\)
which are compatible with identities and composition.</p>
</div>
<p>For example, a $\mathsf{Vect}$-enriched functor is just a functor so that
the map $\text{Hom}(x,y) \to \text{Hom}(Fx,Fy)$ is moreover a linear map
(recall our homsets are vector spaces). Similarly, a $\mathsf{Top}$-enriched
functor is a functor so that the maps on homsets
$\text{Hom}(x,y) \to \text{Hom}(Fx,Fy)$ are continuous.</p>
<hr />
<p>Now we have all the pieces we’ll need to prove</p>
<div class="boxed">
<p><strong>Theorem</strong>: Fix a <a href="https://en.wikipedia.org/wiki/Cartesian_closed_category">cartesian closed</a> category $\mathcal{C}$.</p>
<p>There is a natural bijection between group objects $G$ internal to $\mathcal{C}$
and $1$-object groupoids $\mathsf{B}G$ enriched over $\mathcal{C}$.</p>
<p>Moreover, for a fixed group object $G$, there is a bijection between
internal $G$-actions and enriched functors $\mathsf{B}G \to \mathcal{C}$.</p>
</div>
<p>$\ulcorner$
Say that we have a group object $G$ internal to a (cartesian closed)
category $\mathcal{C}$. Then let’s build a $\mathcal{C}$-enriched category,
$\mathsf{B}G$ with a single object $\star$, where $\text{Hom}(\star,\star) = G$.
Of course, we write $\text{id}_\star = e$, and composition is multiplication.</p>
<p>Note that $G$ is an object of $\mathcal{C}$, and the identity/composition/inverse
maps are $\mathcal{C}$-arrows. So this really is a $\mathcal{C}$-enriched
groupoid with one object!</p>
<p>Conversely, say we have a one-object $\mathcal{C}$-enriched groupoid
$\mathcal{G}$. Then $\text{Hom}_\mathcal{G}(\star,\star)$ had better be an
object of $\mathcal{C}$, and it’s easy to check that composition and inverse
in $\mathcal{G}$ gives this object an internal group structure!</p>
<p>So the data of an enriched $1$-object groupoid is <em>exactly</em> the data of an
internal group!</p>
<p><br /></p>
<p>Now, what is a $\mathcal{C}$-enriched functor $F : \mathsf{B}G \to \mathcal{C}$?</p>
<p>We have to send $\star$ to some object of $\mathcal{C}$, say $X$. Then we need
a $\mathcal{C}$-morphism $\text{Hom}(\star,\star) \to \text{Hom}(X,X)$. But by
the definitions of $\mathsf{B}G$ and $\mathcal{C}$ (enriched over itself)
this is the data of a $\mathcal{C}$-arrow $G \to [X,X]$.</p>
<p>Now we use cartesian closedness! This arrow transposes (uncurries) to
a $\mathcal{C}$-arrow $G \times X \to X$, and one can check that the identity
and composition preservation for the functor corresponds exactly to the
axioms for $G \times X \to X$ to be a group action internal to $\mathcal{C}$.</p>
<p>Of course, walking backwards through the above discussion shows that an
internal group action $G \times X \to X$ in $\mathcal{C}$ is exactly the
data of a $\mathcal{C}$-enriched functor $\mathsf{B}G \to \mathcal{C}$
sending $\star \mapsto X$!
<span style="float:right">$\lrcorner$</span></p>
<div class="boxed">
<p>Your category-theorist senses should be tingling after reading the
statement of the previous theorem!</p>
<p>Sure there’s a bijection of group/group actions, but <em>what about the arrows!?</em></p>
<p>As a cute exercise, prove that this theorem upgrades to an
equivalence<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">6</a></sup> of categories between</p>
\[\left \{
\begin{array}{c}
\text{group objects internal to $\mathcal{C}$ with} \\
\text{internal group homs as arrows}
\end{array}
\right \}
\simeq
\left \{
\begin{array}{c}
\text{$1$-object groupoids enriched over $\mathcal{C}$ with} \\
\text{enriched functors as arrows}
\end{array}
\right \}\]
<p>and for fixed $G$</p>
\[\left \{
\begin{array}{c}
\text{Internal actions $G \times X \to X$ in $\mathcal{C}$ with} \\
\text{internal $G$-equivariant arrows}
\end{array}
\right \}
\simeq
\left \{
\begin{array}{c}
\text{Enriched functors $\mathsf{B}G \to \mathcal{C}$ with} \\
\text{enriched natural transformations as arrows}
\end{array}
\right \}\]
<p>Part of the puzzle is how to define some of these notions
(such as “internal $G$-equivariant arrows”). You might find it helpful
to read the preexisting definition of an <a href="https://ncatlab.org/nlab/show/enriched+natural+transformation">enriched natural transformation</a>.</p>
</div>
<hr />
<p>Let’s take a second to meditate on the difference between “internalization”
and “enrichment”. This difference is usually invisible, since for “ordinary”
categories we’re always working both internal to $\mathsf{Set}$<sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">7</a></sup> and
enriched over $\mathsf{Set}$. That is, our categories are always sets with
some structure, and our homsets are always… well, sets!</p>
<p>When you have some gadget and you think
“Gee! I sure wish this gadget automatically had the structure of a
$\mathcal{C}$-object!”<sup id="fnref:9" role="doc-noteref"><a href="#fn:9" class="footnote" rel="footnote">8</a></sup>, you want to work <em>internally</em> to $\mathcal{C}$.
Doing this means that pretending that $\mathcal{C}$ <em>is</em> the
universe of sets, and the $\mathcal{C}$-arrows <em>are</em> the universe of
functions, and then just doing whatever we usually do but “inside $\mathcal{C}$”.</p>
<p>Figuring out exactly how to do this is the purview of much of
<a href="https://en.wikipedia.org/wiki/Categorical_logic">categorical logic</a>. We can construct standard ways of interpreting
set theoretic constructions
(such as “${x \in \mathbb{N} \mid \exists y. y^2 = x}$”, etc.)
inside a (sufficiently structured) category $\mathcal{C}$. Then there’s a
routine, but slightly annoying<sup id="fnref:10" role="doc-noteref"><a href="#fn:10" class="footnote" rel="footnote">9</a></sup>, method for cashing out these
set theoretic constructions for an “internal” version in $\mathcal{C}$!
You can read all about this <a href="https://ncatlab.org/nlab/show/internal+logic">here</a> or <a href="https://github.com/awodey/CatLogNotes/blob/master/2019/catlog.pdf">here</a>. One of the reasons
so many people care about <a href="https://en.wikipedia.org/wiki/Topos">topos theory</a> is because a topos is
a category with <em>so much</em> structure that we can actually internalize
<em>any concept we want</em> inside it!</p>
<p><br /></p>
<p>What about enrichment? This is useful when you have an otherwise “normal”
category, but your homsets have ~bonus structure~ that you want to respect.
For instance, your homsets might be abelian groups, or vector spaces,
topological spaces, or chain complexes! Then <em>enriched</em> category theory tells
you that, say, yoneda’s lemma <a href="https://ncatlab.org/nlab/show/enriched+Yoneda+lemma">still works</a> when you ask that everything
in sight respects this ~bonus structure~. This turns out to be the start
of an incredibly interesting subject called <a href="https://ncatlab.org/nlab/show/formal+category+theory">formal category theory</a><sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">10</a></sup>.</p>
<div class="boxed">
<p>To see how well you understand internal versus enriched things, here’s a cute
exercise:</p>
<p>Write out, in some detail, the definition of a category <em>internal</em> to
$\mathsf{Cat}$ (the category of categories).
Then write out, in some detail, the definition of a category <em>enriched</em> over
$\mathsf{Cat}$ (with $\times$ as its monoidal structure).</p>
<p>Both of these concepts are extremely useful in lots of ongoing research in
algebra, logic, and applied category theory!
A category internal to $\mathsf{Cat}$ is a <a href="https://ncatlab.org/nlab/show/double+category">double category</a> (See
Evan Patterson’s <a href="https://www.epatters.org/post/why-double-categories-1/">excellent blog post</a> on the subject).
A category enriched over $\mathsf{Cat}$ is a <a href="https://ncatlab.org/nlab/show/2-category">2-category</a>, these show
up very naturally, as I’ll hopefully show in an upcoming blog post!</p>
</div>
<hr />
<p>Ok, this blog post became something much longer than I originally intended
(to nobody’s surprise), but let’s have one more cute puzzle before we go.</p>
<p>Another common way group actions get treated is as a group homomoprhism
$G \to \text{Aut}(X)$, where $\text{Aut}(X)$ is the group of automorphisms
of $X$. Is there some way to make this perspective fit in with the
internal/enriched perspectives we’ve been working with so far?</p>
<p>Again, the answer is <em>yes</em>, but now we need to work with a
cartesian closed category <em>with all finite limits</em>.</p>
<div class="boxed">
<p>Given a cartesian closed category with finite limits $\mathcal{C}$,
and an object $X \in \mathcal{C}$, can you build a group object
$\underline{\text{Aut}}(X)$ internal to $\mathcal{C}$ so that the
global elements $1 \to \underline{\text{Aut}}(X)$ are in bijection with
the usual automorphism group $\text{Aut}(X)$ (which is just a set)?</p>
<p>Then, once you’ve defined $\underline{\text{Aut}}(X)$, can you show that an
internal group action $G \times X \to X$ is the same data as an internal
group hom $G \to \underline{\text{Aut}}(X)$?</p>
</div>
<p>If you find this exercise hard, maybe that’s incentive to learn some
categorical logic! The category $\mathcal{C}$ has enough structure<sup id="fnref:11" role="doc-noteref"><a href="#fn:11" class="footnote" rel="footnote">11</a></sup> for
its internal language to support a definition</p>
\[\{ f : X \to X \mid \exists g : X \to X . fg = \text{id}_X \land gf = \text{id}_X \}\]
<p>which we can then cash out for an honest object $\underline{\text{Aut}}(X)$
in $\mathcal{C}$.</p>
<p>Since the usual proof that this set is a group is constructive, we get
<em>for free</em> that any object $\underline{\text{Aut}}(X)$ in any $\mathcal{C}$
is actually a group object in $\mathcal{C}$! Moreover, the usual proof that
an action $G \curvearrowright X$ is a group hom $G \to \text{Aut}(X)$ is
constructive. So we learn, for free, that in $\mathcal{C}$ an internal group
action is the same thing as an internal group hom
$G \to \underline{\text{Aut}}(X)$!</p>
<hr />
<p>Thanks for sticking around! This was a super fun post to write since it
touches on a LOT of aspects of “more advanced” category theory that people
might struggle with at first. I would normally give more of an outro, but I
have some friends coming over in a half hour and I <em>really</em> want to get
this posted!</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>Note that the “usual axioms” can all be expressed as equalities between
composites of these functions. For instance, the inverse law says that
the composite</p>
\[\begin{array}{ccccccc}
G
& \overset{\Delta}{\longrightarrow} & G \times G
& \overset{1_G \times i}{\longrightarrow} & G \times G
& \overset{m}{\longrightarrow} & G\\
g
& \mapsto & (g,g)
& \mapsto & (g, g^{-1})
& \mapsto & g \cdot g^{-1}
\end{array}\]
<p>is the same arrow as</p>
\[\begin{array}{ccccc}
G & \overset{!}{\longrightarrow} & 1 & \overset{e}{\longrightarrow} & G \\
g & \mapsto & \star & \mapsto & e
\end{array}\]
<p>The elementwise definitions in the lower lines are primarily for clarity
in showing what these composites “are really doing”, but they can be made
precise using the language of “<a href="https://ncatlab.org/nlab/show/generalized+element">generalized elements</a>”. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>There turns out to be a deep connection between “algebraic theories”
(like groups, rings, etc) and categories with finite products, which I want
to write about someday. This is the start of the story of <a href="https://en.wikipedia.org/wiki/Categorical_logic">categorical logic</a>,
which is near and dear to my heart.</p>
<p>One can view this whole game of “internalization” as a subfield of
categorical logic, where we focus in on the things we normally do to sets,
and precisely say</p>
<ol>
<li>what categories can interpret various set-theoretic constructions</li>
<li>how to figure out what the “right way” to internalize a given
construction is. This turns out to be totally algorithmic!</li>
</ol>
<p><a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>There’s a couple things I could mean by “nice” here. See <a href="https://ncatlab.org/nlab/show/convenient+category+of+topological+spaces">here</a>
for some options, but if pressed I’d probably say
<a href="https://ncatlab.org/nlab/show/compactly+generated+topological+space">compactly generated spaces</a>. Keep in mind that this makes
the compact-open topology I linked to incorrect in some edge cases,
but morally what I’ve said is right, and I think it’s literally true
for compactly generated hausdorff spaces. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>In fact, every $\infty$-category is equivalent (in the appropriate sense)
to a category enriched in <a href="https://en.wikipedia.org/wiki/Simplicial_set">simplicial sets</a>. See <a href="https://ncatlab.org/nlab/show/relation+between+quasi-categories+and+simplicial+categories">here</a>, for instance.</p>
<p>The claim then follows from the fact that the category of
simplicial sets (up to homotopy) is equivalent
(again, in an appropriate sense) to the category of
topological spaces (up to homotopy). <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>Of course, by “element” here I mean a global element. That is, a
map from the monoidal unit $\text{id}_x : I \to \text{Hom}(x,x)$. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:7" role="doc-endnote">
<p>Isomorphism? <a href="#fnref:7" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:8" role="doc-endnote">
<p>Ignoring size issues <a href="#fnref:8" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:9" role="doc-endnote">
<p>Which for some reason I’m hearing in
<a href="https://youtu.be/GCm4r0F0tts?si=C-Ib3E5NbugEg0el&t=145">Tom Mullica’s voice</a> <a href="#fnref:9" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:10" role="doc-endnote">
<p>In exactly the same way that, say, gaussian elimination,
is routine but annoying. <a href="#fnref:10" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>Of course, there’s other more exotic ways to use enriched categories where
the hom-objects <em>aren’t</em> structured sets! See, for instance, the famous
<a href="https://ncatlab.org/nlab/show/metric+space#LawvereMetricSpace">Lawvere Metric Spaces</a>. These are still extremely interesting, but
are of a different flavor to the enriched categories that fit into the
story I’m trying to tell. <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:11" role="doc-endnote">
<p>Notice that, in this definition, the $g$ in the existential quantifier
is provably unique. This is <em>super</em> important because it means we can
make this definition using only finite limits. More complicted
existential quantifiers require more structure on our category, namely
<a href="https://ncatlab.org/nlab/show/regular+category">regularity</a>. For more information see the nlab pages on
<a href="https://ncatlab.org/nlab/show/cartesian+logic">cartesian logic</a> and <a href="https://ncatlab.org/nlab/show/regular+logic">regular logic</a>. <a href="#fnref:11" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Sun, 18 Feb 2024 00:00:00 +0000
https://grossack.site/2024/02/18/internal-enriched-groupoids.html
https://grossack.site/2024/02/18/internal-enriched-groupoids.htmlTalk -- 2-Categorical Descent and (Essentially) Algebraic Theories<p>A few weeks ago I gave a talk at the <a href="https://richardblute.ca/octoberfest-2023/">CT Octoberfest 2023</a> about some
work I did over the summer that I’m really proud of. Unfortunately, while
writing up the result I found a 1999 paper by Pedicchio and Wood that
proves the same theorem (with roughly the same proof), so I wasn’t able to
publish. Thankfully, the work is still extremely interesting, and I was more
than happy to talk about it at a little online conference for other
category theorists ^_^.</p>
<hr />
<p>Recall an <a href="https://ncatlab.org/nlab/show/algebraic+theory">algebraic theory</a> is something like groups, rings, modules,
etc. It’s a structure that can be defined as a set (or possibly multiple sets)
with some operations defined on it (allowing constants as $0$-ary operations)
and equations specifying the behavior of those operations.</p>
<p>An <a href="https://ncatlab.org/nlab/show/essentially+algebraic+theory">essentially algebraic theory</a> is something like categories. It’s a
structure that can be defined as a set (or possibly multiple sets) with some
operations defined on it, etc. The main superpower we get in the <em>essentially</em>
algebraic world over the algebraic one is <em>partially defined functions</em>.
Now our operations don’t have to be defined everywhere, they are allowed
to be defined on subsets of the sorts. As long as those subsets are definable
by equations!</p>
<p>For instance, the theory of categories is essentially algebraic since we have</p>
<ul>
<li>Sets $O$ and $A$ (the sets of objects and arrows)</li>
<li>operations $\text{dom}, \text{cod} : A \to O$ taking an arrow to its domain/codomain</li>
<li>an operation $\text{id} : O \to A$ taking an object to the identity arrow at that object</li>
<li>an operation \(\circ : \{ (f,g) \in A \times A \mid \text{dom}(f) = \text{cod}(g) \}\)</li>
<li>satisfying certain equational axioms, like $\text{dom}(\text{id}(x)) = x = \text{cod}(\text{id}(x))$,
$(f \circ g) \circ h = f \circ (g \circ h)$, etc.</li>
</ul>
<p>Notice that composition <em>isn’t</em> defined on the whole set $A \times A$. It’s
only <em>partially</em> defined! But the set where it’s defined is easy to understand
– it’s defined by an equation in the other functions ($\text{dom}(f) = \text{cod}(g)$).</p>
<p>Contrast this with fields, which have a partially defined inverse operation
\((-)^{-1} : \{ x \in k \mid x \neq 0 \} \to k\). There is no way to write
the domain of inversion as an <em>equation</em><sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>.</p>
<p><br /></p>
<p>Now, essentially algebraic theories are <em>extremely</em> nice, for lots of reasons
I outlined in my talk (and mentioned on the nlab page I linked earlier),
but they’re not <em>quite</em> as nice as honest algebraic theories.</p>
<p>For instance, the underlying set of a quotient of groups is a quotient
of the underlying set. If we have a surjection $G \twoheadrightarrow H$,
then there’s an equivalence relation<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup> $\theta$ on $UG$ (the underlying set of $G$)
so that $UH \cong (UG) \big / \theta$.</p>
<p>This is no longer the case for models of an <em>essentially</em> algebraic theory!
That is, the underlying set of a quotient might not be a quotient of the underlying set<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>.</p>
<p>For example, consider the following category:</p>
<p style="text-align:center;">
<img src="/assets/images/ctoctoberfest2023/cat-before-quotient.png" width="50%" />
</p>
<p>Notice its set of arrows (ignoring identities) is ${ f, g }$.</p>
<p>Now if we quotient to set $Y_1 = Y_2$, we get a new category</p>
<p style="text-align:center;">
<img src="/assets/images/ctoctoberfest2023/category-after-quotient-partial.png" width="50%" />
</p>
<p>But now that $Y_1 = Y_2$, $f$ and $g$ are composable! So we had better add a
composite!</p>
<p style="text-align:center;">
<img src="/assets/images/ctoctoberfest2023/cat-after-quotienting-new-arrow.png" width="50%" />
</p>
<p>So after quotienting, our underlying set of arrows (again, ignoring identities) is
${ f, g, gf }$, which <em>isn’t a quotient</em> of the set we started with! Also,
note the role that partial operations played in this. The reason we got
~bonus elements~ in our underlying set is because after quotienting the
domain for the partial operation got bigger, so we had to freely add stuff
to make sure we were closed under composition.</p>
<p>Another reason to care about algebraic theories over essentially algebraic
ones is that algebraic theories can be interpreted in any <em>finite product</em>
category, while essentailly algebraic theories make use of all finite <em>limts</em>!
This shows up even for “real mathematicians”, since the category $\mathsf{Diff}$
of smooth manifolds doesn’t have finite limits! So we can define a lie group
as a group object in $\mathsf{Diff}$ (since the theory of groups is algebraic)
but we <em>can’t</em> define a lie groupoid as a groupoid object in $\mathsf{Diff}$
(since the theory of groupoids is merely <em>essentially</em> algebraic)<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup>!</p>
<p>With this in mind, it’s natural to ask when we can recognize an
algebraic theory amongst the essentially algebraic ones. It turns out
we <em>can</em>, and the process requires a fair amount of category theory!</p>
<hr />
<p>We’ve already touched on the relationship between</p>
<ul>
<li>
\[\{ \text{algebraic theories} \}
\leftrightsquigarrow
\{ \text{finite product categories} \}\]
</li>
<li>
\[\{ \text{essentially algebraic theories} \}
\leftrightsquigarrow
\{ \text{finite limit categories} \}\]
</li>
</ul>
<p>But it turns out the relationship goes <em>much</em> deeper! Indeed, one can show
that the “sets” in the above bullets actually represent $2$-categories,
and that the correspondences are (contravariant) bi-equivalences!</p>
<p>Given a finite product (resp. finite limit) category $\mathcal{C}$,
we treat it as an (essentially) algebraic theory, and say its
<span class="defn">category of models</span> is the
category of finite product (resp. finite limit) functors
$\mathcal{C} \to \mathsf{Set}$.</p>
<p>In fact, we can go further! Given a finite product (resp. finite limit) categories
$\mathcal{C}$ and $\mathcal{V}$, we say that the cateogry of
<span class="defn">$\mathcal{C}$ models in $\mathcal{V}$</span> is the category
of finite product (resp. finite limit) functors $\mathcal{C} \to \mathcal{V}$.</p>
<p>Conversely, given a category of models for some (essentially) algebraic theory,
its category of ($\mathsf{Set}$-valued) finitely generated free algebras<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">5</a></sup>
(resp. finitely presented algebras) has finite coproducts
(resp. finite colimits). So if we take the opposite category of this, we get
a category with finite products (resp. finite limits)!</p>
<p>It’s then not <em>so</em> hard to show that these operations are mutually inverse<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">6</a></sup>!</p>
<p><br /><br /></p>
<p>Now if we have an algebraic theory $\mathbb{A}$, that corresponds to a
finite product category $\mathcal{A}$ where the category of
$\mathbb{A}$-models is the functor category
$\mathsf{FinProd}(\mathcal{A}, \mathsf{Set})$.</p>
<p>To view this as an essentially algebraic theory, we want to find a
finite limit category $\mathcal{E}$ which has the same models. That is,
so that for every finite limit category $\mathcal{V}$:</p>
\[\mathsf{FinLim}(\mathcal{E}, \mathcal{V}) \cong
\mathsf{FindProd}(\mathcal{A}, U \mathcal{V})\]
<p>where $U$ is the forgetful functor from finite limit categories to
finite product categories.</p>
<p>This makes it clear that $\mathcal{E}$ should be the free finite
limit completion of the finite product category $\mathcal{A}$ we
started with! Since we already have products, all we have to do is
freely add equalizers!</p>
<p>With this in mind, we see how to rephrase our problem of recognizing
the algebraic theories among the essentially algebraic ones!</p>
<div class="boxed">
<p>Fix an essentially algebraic theory $\mathbb{E}$, with
(finite limit) classifying category $\mathcal{E}$.</p>
<p>Then $\mathbb{E}$ is actually algebraic if and only if
$\mathcal{E}$ is equivalent to the
<span class="defn">free equalizer completion</span> of a
finite product category $\mathcal{A}$!</p>
<p>This means if we want to recognize the algebraic theories,
we just need a way to recognize the essential image of
the equalizer completion functor!</p>
</div>
<p>Thankfully, there’s a very heavy hammer we can use to understand
the image of a left adjoint: <a href="https://ncatlab.org/nlab/show/monadic+descent">Comonadic Descent</a>!</p>
<hr />
<p>I don’t want to say too much about (co)monadic descent here, mainly because
I’m going to a friend’s concert tonight and I’ve already written quite a lot
about it in my <a href="/2023/10/05/descent-for-raags">recent preprint</a>. But here’s the short story. We have a
diagram of categories</p>
<p style="text-align:center;">
<img src="/assets/images/ctoctoberfest2023/descent.png" width="50%" />
</p>
<p>where $\mathsf{FinLim}_{\mathsf{Eq} \ U}$ is the category of <a href="https://ncatlab.org/nlab/show/coalgebra">coalgebras</a>
for the $\mathsf{Eq}\ U$ comonad, and the usual Barr-Beck yoga shows that
everything in the image of $\mathsf{Eq}$ has a canonical coalgebra structure,
which is where the top map (which I’m abusively also calling $\mathsf{Eq}$)
comes from.</p>
<p>The adjunction $\mathsf{Eq} \dashv U$ is called
<span class="defn">comonadic</span> exactly when this top map is an equivalence.
In particular, this means we can recognize the image of $\mathsf{Eq}$
in $\mathsf{FinLim}$ as those categories admitting an $\mathsf{Eq} \ U$
coalgebra structure!</p>
<p>It turns out to not be too hard to prove that this adjunction <em>is</em> comonadic
by using Beck’s famed <a href="https://ncatlab.org/nlab/show/monadicity+theorem">(Co)monadicity Theorem</a>! This comes down to
some combinatorics<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">7</a></sup> involving Pitt’s explicit construction of the
equalizer completion, first published in Bunge and Carboni’s
<a href="https://www.sciencedirect.com/science/article/pii/002240499400157X"><em>The Symmetric Topos</em></a>, which solves our problem!</p>
<p>Pedicchio and Wood, in their ‘99 paper
<a href="https://www.sciencedirect.com/science/article/pii/S0021869300984473"><em>A Simple Characterization of Theories of Varieties</em></a>, give a nice
characterization of the image of $\mathsf{Eq}$ as those categories with
enough “effective projectives”<sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">8</a></sup>.</p>
<hr />
<p>Let me say a quick word about the “2-categorical” in the title. In the
last section, to make use of the descent machinery, we had to work with
1-categories $\mathsf{FinLim}$ and $\mathsf{FinProd}$. That is, with
<em>stict</em> such categories. Of course, this result should really be
2-categorical in nature, working with <em>all</em> such categories, and we should
be using a 2-categorical version of comonadic descent to prove the theorem…
Unfortunately I don’t know of one!</p>
<p>I was kind of hoping that someone would ask about this during the talk –
after all I put “2-categorical” in the title, but didn’t mention 2-categories
at all! But my talk was the first talk of the day<sup id="fnref:9" role="doc-noteref"><a href="#fn:9" class="footnote" rel="footnote">9</a></sup>, so it makes sense
that people would have been nice and not asked that.</p>
<p>Regardless, I’m pretty sure an australian would have a reference for this
kind of descent
(and I might ask about it in the category theory zulip after posting this),
because there’s no way I’m the first person to want to use it!</p>
<p>All in all, I’m happy with how the talk went. It was one of the shorter
talks I’ve given, and I wanted to assume the audience didn’t know a ton
of logic. I think I did a good job giving the flavor of the theorem,
and some reasons to care about it, without necessarily getting bogged
down in the details of the proof. Hopefully I didn’t come off as too
upset that I was 24 years late to publish it myself!</p>
<p>As usual, here’s a copy of the slides, abstract, and recording.
I’ll also encourage people to take a look at some of the other
talks from the conference (which you can find <a href="https://richardblute.ca/octoberfest-2023/">here</a>). There
were a <em>ton</em> of interesting ones<sup id="fnref:10" role="doc-noteref"><a href="#fn:10" class="footnote" rel="footnote">10</a></sup> and if you like category theory
I’m sure you’ll find something you enjoy!</p>
<p>Thanks again for reading. Stay warm, and try not to let the November
darkness weigh on you too much! Talk soon ^_^</p>
<hr />
<p>$2$-Categorical Descent and (Essentially) Algebraic Theories</p>
<p>An essentially algebraic theory is an algebraic theory that moreover allows
certain partially defined operations. Since algebraic theories enjoy
certain nice properties that essentially algebraic theories don’t,
it’s natural to ask if we can recognize when an essentially algebraic theory
is actually algebraic. In the language of functorial semantics, this amounts
to recognizing when a finite limit category is the free completion of a
finite product category, and the problem can be solved by considering a
2-categorical descent theory. This was independent work, but writing it up
I learned that the same result can already be found in a 1999 paper of
Pedicchio and Wood. This seems to be less well known than it should be,
and I hope this talk brings attention to this fascinating subject.</p>
<p>The slides are <a href="/assets/docs/ctoctoberfest2023/talk.pdf">here</a>, and a recording is below:</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/T-VVF30NiQA?si=OFGAvXfAe7U4eUtg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></iframe>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>In fact, we can prove this with category theory! It’s a theorem that
the category of all models for an essentially algebraic theory has
an initial object. But there isn’t an initial object in the category
of fields! So no matter how clever we are, there won’t be an
essentially algebraic axiomatization of fields. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>In fact there’s much more to be said here. The equivalence relation
$\theta$ will be a <a href="https://en.wikipedia.org/wiki/Congruence_relation">congruence</a> (meaning it’s compatible with the
algebraic structure), and the study of such congruences is historically
one of the biggest topics in <a href="https://en.wikipedia.org/wiki/Universal_algebra">universal algebra</a>. I won’t say more
here, but trust me that there’s <em>much</em> more to say. If you’re interested,
I recommend Burris and Sankappanavar’s book, freely available
<a href="https://math.hawaii.edu/~ralph/Classes/619/univ-algebra.pdf">here</a>. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>This should be believable for a few reasons. Indeed, the “underlying set”
functor is a <em>right</em> adjoint, so we shouldn’t expect it to play nicely
with any kind of colimit (like a quotient).</p>
<p>Moreover, $U$ playing nicely with congruences is
<em>one of the defining features</em> of an <em>algebraic</em> theory!
This is the key criterion for <a href="https://ncatlab.org/nlab/show/monadicity+theorem">monadicity</a>! <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>If you haven’t seen them before, it may come as a surprise that
“real mathematicians” care about lie groupoids, since they sound
quite abstract. But they’re really not esoteric at all! They model
<a href="https://en.wikipedia.org/wiki/Orbifold">orbifolds</a>, which are manifolds with certain mild singularities.
They arise incredibly naturally when studying, say, manifolds with
a group action. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>This is the <em>slightest</em> of fibs. The situation for finite product
categories is actually slightly more sublte than I’m letting on,
basically because a finite product category might not be
<a href="https://ncatlab.org/nlab/show/Cauchy+complete+category">cauchy complete</a>. If you know you know, if you don’t, then trust
me that it doesn’t really matter. If you’re interested in the details,
you can find them in Adámek, Vitale, and Rosický’s book
<em>Algebraic Theories</em>. <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>But they’re only mutually inverse up to equivalence! If we start with a
finite limit category $\mathcal{C}$, and then look at the
opposite of the finitely presented objects in the functor category
$[\mathcal{C},\mathsf{Set}]$, then we merely get something <em>equivalent</em>
to $\mathcal{C}$!</p>
<p>In particular, we don’t get something isomorphic to $\mathcal{C}$,
and we <em>definitely</em> don’t get something equal to $\mathcal{C}$!
Some readers will likely say that concepts of “isomorphism” and
“equality” aren’t even defined in a 2-category (they would say
bicategory, of course), but that’s not a quibble I want to have right now.</p>
<p>What matters is that there’s something honestly 2-categorical happening
here, and we need that language to make this notion of “sameness” precise
in the same way we need 1-categories to make the notion of “isomorphism”
precise. I’m literally so close to finishing a blog post on
“2-categories and why you should care” that goes into this in more depth,
but I wanted to say a word about it here. After all, rambling footnotes
are a feature of this blog! <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:7" role="doc-endnote">
<p>As many theorems do, at the end of the day. Thankfully our combinatorics
is also pretty polite. <a href="#fnref:7" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:8" role="doc-endnote">
<p>Though they work with the opposite of the categories we work with,
so for us they’re more likely to be “effective injectives” after
dualizing. <a href="#fnref:8" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:9" role="doc-endnote">
<p>Which put it at 6am my time… Thankfully I’ve recently become a
morning person, so I only had to wake up an hour earlier than usual. <a href="#fnref:9" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:10" role="doc-endnote">
<p>And I haven’t even had time to watch them all yet! <a href="#fnref:10" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Tue, 14 Nov 2023 00:00:00 +0000
https://grossack.site/2023/11/14/ctoctoberfest2023.html
https://grossack.site/2023/11/14/ctoctoberfest2023.htmlA truly incredible fact about the number 37<p>So I was on math stackexchange the other day, and I saw <a href="https://math.stackexchange.com/questions/4767549/the-book-youll-need-when-someone-came-up-with-a-random-car-plate-number/4790221#4790221">a cute post</a>
looking for a book which lists, for many many integers, facts that Ramanujan
could have told Hardy if he’d taken a cab other than <a href="https://en.wikipedia.org/wiki/1729_(number)">1729</a>. A few days ago
OP answered their own question, saying that the book in question was
<a href="https://bookstore.ams.org/mbk-64"><em>Those Fascinating Numbers</em></a> by Jean-Marie De Koninck. I decided to take
a glance through it to see what kinds of facts lie inside
(and also to see <em>just</em> how many integers are covered!). Not only was I
overwhelmed by the number of integers and the number of facts about them,
the <em>preface</em> already includes one of the single wildest facts I’ve ever heard,
and I have to talk about it here! Here’s a direct quote from the preface:</p>
<blockquote>
<p>37, the median value for the second prime factor of an integer;
thus the probability that the second prime factor of an integer
chosen at random is smaller than 37 is approximately $\frac{1}{2}$;</p>
</blockquote>
<p>My jaw was on the floor when I read this, haha. First it sounded totally
unbelievable, since 37 is a tiny number in the grand scheme of things. Then
it started to sound slightly more plausible… After all, about half of all
integers have $2$ as their smallest prime factor. It makes sense that smaller
primes should be more frequent among the smallest factors of numbers! But then
I thought “how can you possibly <em>prove</em> this!?”. I’m not much of an analytic
number theorist<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>, but I know that they have good estimates on a lot of
facts like this. I decided it would be fun to try and find and understand a
proof of this fact, and also write some <a href="https://sagemath.org">sage</a> code to test it!</p>
<p>So then let’s go ahead and do it ^_^</p>
<hr />
<p>First, I think, the sage code. I want to know if this really works!</p>
<p>“Obvoiusly” there’s no uniform distribution on the natural numbers, so
what does it even mean to choose a “random” one? The way the number theorists
usually solve this problem is by fixing a large number $N$ and looking at
the probabilities when you pick a random number between $1$ and $N$. Then you
look at the $N \to \infty$ limit of these probabilities.</p>
<p>So for us, we’ll want to first fix a large number $N$ and then work with
numbers $\leq N$. For $N$ kind of small, we can just find the second prime
factor of each number $\leq N$ and <em>check</em> the median!</p>
<div class="auto">
<script type="text/x-sage">
def getSecondSmallestFactors(N):
data = []
for n in range(1, N):
fs = factor(n)
if len(fs) > 1:
second_smallest = fs[1][0]
data += [second_smallest]
else:
# If there's only one prime factor
# say the second prime factor is infinity
data += [oo]
return data
@interact
def _(N=input_box(10^5, width=10, label="$N$")):
data = getSecondSmallestFactors(N)
med = numpy.median(data)
show("median second prime: ")
show(med)
show("")
below37 = len([d for d in data if d <= 37]) / N
show("fraction of numbers whose second prime is at most 37: ")
show(below37.n())
show("")
</script>
</div>
<p>When I first ran this code, it honestly felt like magic, haha. What the
<em>hell</em> is going on here!?</p>
<hr />
<p>The key idea, found in a paper of De Koninck and Tenenbaum<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup>,
is that we can compute the density of numbers whose second prime is $p$
(which the authors denote $\lambda_2(p)$) by cleverly using the ideas in the
<a href="https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes">Sieve of Eratosthenes</a>!</p>
<p>Let’s do a simple example to start. What fraction of numbers have $5$ as
their second prime? In the language of the paper, what is $\lambda_2(5)$?</p>
<p>Well it’s not hard to see that the numbers whose second prime is $5$ are
those numbers whose prime factorization looks like</p>
\[2^a 3^0 5^b \cdots\]
<p>or</p>
\[2^0 3^a 5^b \cdots\]
<p>so we need to count the density of numbers of these forms.</p>
<p>But a number is of the first form ($2^a 3^0 5^b \cdots$) if and only if
it has a factor of $2$, a factor of $5$, and <em>no</em> factors of $3$.</p>
<p>To bring this back to elementary school<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">3</a></sup>, we can highlight all of
our numbers with a factor of $2$</p>
<p style="text-align:center;">
<img src="/assets/images/37-median/number-grid-evens.png" width="50%" />
</p>
<p>numbers with no factors of $3$</p>
<p style="text-align:center;">
<img src="/assets/images/37-median/number-grid-no-threes.png" width="50%" />
</p>
<p>and numbers with a factor of $5$</p>
<p style="text-align:center;">
<img src="/assets/images/37-median/number-grid-fives.png" width="50%" />
</p>
<p>Then the numbers whose prime factorization starts $2^a 3^0 5^b \cdots$ are
exactly the numbers highlighted by all three of these colors!</p>
<p style="text-align:center;">
<img src="/assets/images/37-median/number-grid-intersection.png" width="50%" />
</p>
<p>It’s intuitively clear that $\frac{1}{2}$ the numbers are blue,
$\frac{2}{3}$ are orange, and $\frac{1}{5}$ are pink.
So taken together,
$\frac{1}{2} \cdot \frac{1}{5} \cdot \frac{2}{3} = \frac{1}{15}$ of numbers
are of this form!</p>
<p>So now we have our hands on the density of numbers of the form $2^a 3^0 5^b$,
but this is only one of two ways that $5$ can be the second smallest prime.
A similar computation shows that
$\left ( 1 - \frac{1}{2} \right ) \cdot \frac{1}{3} \cdot \frac{1}{5} = \frac{1}{30}$
of numbers are of the form $2^0 3^a 5^b$.</p>
<p>It’s easy to see that these sets are disjoint, so their densities add, and
$\frac{1}{15} + \frac{1}{30} = \frac{1}{10}$ numbers have $5$ as their
second smallest factor!</p>
<p><br /><br /></p>
<p>Now with the warm-up out of the way, let’s see how we can compute
$\lambda_2(p)$ for our favorite prime $p$!</p>
<p>We’ll play exactly the same game. How can $p$ be the second smallest prime?
Exactly if the prime factorization looks like</p>
\[p^b q^a \prod_{q \neq r \lt p} r^0\]
<p>for some $q \lt p$.</p>
<p>But we can count these densities as before! For each choice of $q$, we know
that $\frac{1}{p}$ numbers are multiples of $p$, $\frac{1}{q}$ are
multiples of $q$, and for each $r$ we know $\left (1 - \frac{1}{r} \right )$
numbers are <em>not</em> multiples of $r$! For each $q$, then, we want to land
in the intersection of all of these sets, then we want to sum over our
choices of $q$. Taken together, we see that</p>
<div class="boxed">
<p>The density of numbers whose second prime is $p$ is</p>
\[\lambda_2(p) =
\sum_{q \lt p}
\frac{1}{p}
\frac{1}{q}
\prod_{q \neq r \lt p} \left ( 1 - \frac{1}{r} \right )\]
<p>We can rearrange this to</p>
<p>\(\displaystyle
\lambda_2(p) =
\frac{1}{p}
\left [ \prod_{q \lt p} \left ( 1 - \frac{1}{q} \right ) \right ]
\sum_{q \lt p} \frac{1}{q} \left ( 1 - \frac{1}{q} \right )^{-1}\)</p>
</div>
<div class="boxed">
<p>As a cute exercise, write $\lambda_k(p)$ for the density of numbers
whose $k$th prime is $p$.</p>
<p>De Koninck and Tenenbaum mention in passing that</p>
\[\displaystyle
\lambda_k(p) =
\frac{1}{p}
\left [ \prod_{k \lt p} \left ( 1 - \frac{1}{q} \right ) \right ]
s_{k-1}(p)\]
<p>where
$s_j(p) = \sum \frac{1}{m}$
is a sum over all $m$ who have exactly $j$ prime factors, all of which are $\lt p$.</p>
<p>Can you prove that this formula is correct<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">4</a></sup>?</p>
</div>
<hr />
<p>But remember the goal of all this! We want to know the prime \(p^*\) so that
half of all numbers have their second prime \(\leq p^*\). That is, so that
the sum of densities</p>
\[\lambda_2(2) + \lambda_2(3) + \lambda_2(5) + \ldots + \lambda_2(p^*)
\approx
\frac{1}{2}.\]
<p>But we can implement $\lambda_2(-)$ and just <em>check</em> for which prime this
happens!</p>
<div class="auto">
<script type="text/x-sage">
def lambda2(p):
"""
Compute the density of the set of n whose 2nd prime is p.
See equation (1.3) in Koninck and Tenenbaum, 2002
"""
s = 0
out = 1
for q in Primes():
if q >= p:
break
out *= (1 - (1/q))
for q in Primes():
if q >= p:
break
s += (1/q) * (1 - (1/q))^(-1)
out *= s
out *= 1/p
return out
total = 0
for p in Primes():
if total > 0.5: break
l = lambda2(p)
total += l
show("{} of numbers have {} as their second prime".format(l.n(),p))
show("so {} of numbers have second prime at most {}".format(total.n(), p))
show("")
</script>
</div>
<p>Again we see that $37$ is the prime where roughly half of all numbers
have something $\leq 37$ as their first prime! So we’ve proven that
$37$ is the median second prime!</p>
<p>Also, this shows that we expect the actual density to be $\approx .5002$.
If we set $N = 10^7$ in the code from the first half<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">5</a></sup>
to get a better approximation, we get $.5002501$, which is <em>remarkably</em>
close to the truth!</p>
<div class="boxed">
<p>As another cute exercise – using the ideas in this post,
can you compute the median <em>third</em> prime?</p>
<p>As a (much) harder exercise<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">6</a></sup>, can you get asymptotics for how
the median $k$th prime grows as a function of $k$?</p>
</div>
<hr />
<p>Thanks for hanging out, all! This was a really fun post to write up,
and I’m really excited to share it with everybody!
This fact about $37$ was all I could think about for like a week, haha.</p>
<p>I have more blog posts coming, of course, so I’ll see you all soon!</p>
<p>Stay safe, and stay warm ^_^</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>Absolutely the understatement of the year <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p><a href="https://doi.org/10.1017/S0305004102005972"><em>Sur la loi de répartition du k-ième facteur premier d’un entier</em></a></p>
<p>Yes, this paper is in french, but it’s really not <em>so</em> hard to read,
especially with liberal use of google translate. Though if you want to
avoid reading it, I’ve done the hard work for you, and everything in this
blog post is in english.</p>
<p>It also wasn’t <em>too</em> hard to find this paper, thankfully. It’s
mentioned in a footnote in the entry for $37$ in
<em>Those Fascinating Numbers</em>, so I had a decent starting point. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>I literaly got the base image by googling “grid of numbers high res”
and clicking <a href="https://www.pinterest.com/pin/free-printable-number-grid-from-numbers-150--343118065371861593/">the first result</a>, which was for elementary schoolers <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>It might be helpful to remember a generating function trick that
shows up fairly often (for instance in <a href="https://en.wikipedia.org/wiki/Partition_function_(number_theory)">partitions</a> and the
<a href="https://en.wikipedia.org/wiki/Riemann_zeta_function">riemann zeta function</a>):</p>
\[\sum \frac{1}{n} = \prod_p \left ( 1 - \frac{1}{p} \right )^{-1}\]
<p>Don’t worry that this sum diverges for now. Just take note of <em>why</em>
these two sides are equal. You should expand each term of the right hand
side as a geometric series, then check what happens when you foil. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>(and run it locally, since factoring numbers that big takes so long
that the online sagecell times out) <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>If you read french, the De Koninck and Tenenbaum paper we’ve been
referencing all post
(<a href="https://doi.org/10.1017/S0305004102005972"><em>Sur la loi de répartition du k-ième facteur premier d’un entier</em></a>)
is <em>actually</em> all about analyzing these asymptotics!</p>
<p>If we write \(p_k^*\) for the median $k$th prime, then they show:</p>
\[\log \log p_k^* = k - b + O \left ( \frac{1}{\sqrt{k}} \right )\]
<p>where $b = \frac{1}{3} + \gamma - \sum_p \left ( \log ((1-1/p)^{-1}) - 1/p \right )$
and $\gamma$ is the <a href="https://en.wikipedia.org/wiki/Euler%27s_constant">Euler-Mascheroni Constant</a>. <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Wed, 08 Nov 2023 00:00:00 +0000
https://grossack.site/2023/11/08/37-median.html
https://grossack.site/2023/11/08/37-median.htmlPreprint -- The RAAG Functor as a Categorical Embedding<p>After almost a <em>year</em> of sitting on my hard drive, I finally had time in
August to finish revising my <a href="https://arxiv.org/abs/2309.06614">new preprint</a> on
<a href="https://en.wikipedia.org/wiki/Artin%E2%80%93Tits_group#Right-angled_Artin_groups">Right Angled Artin Groups</a> (Raags). And in September I had time to put
it on the arxiv for people to see! Within 24 hours I had an email from
somebody who had read it, and was interested in reading it closely!
It’s super exciting to see that people are
actually <em>reading</em> something I wrote, and it’s really validating to feel like
the math I did last year was worth it ^_^. In this post, I’d love to give a
quick informal description of what’s going on in that paper.</p>
<hr />
<p>First, what’s a right angled artin group? We’ve actually talked about them
before in <a href="/2020/08/16/raag-defn">the second ever post</a> on this blog (!) but here’s a quick tl;dr.</p>
<div class="boxed">
<p>Fix a (simple, undirected) graph $\Gamma$ with underlying vertex set $V$.</p>
<p>The <span class="defn">Right Angled Artin Group</span> $A\Gamma$ is the group</p>
\[\langle v \in V \mid [v_1, v_2] \text{ for } \{v_1, v_2\} \in \Gamma \rangle\]
<p>freely generated by the vertices, where two vertices commute if and only if
they’re adjacent in $\Gamma$.</p>
</div>
<p>For example, in case $\Gamma$ is a complete graph on $n$ vertices, $A\Gamma$
is a free abelian group of rank $n$. If $\Gamma$ has no edges, then $A \Gamma$
is a free group of rank $n$. As a quick exercise, can you convince yourself
that for $\Gamma$ as below, we have $A \Gamma \cong F_2 \times F_2$ is a
direct product of free groups?</p>
<p style="text-align:center;">
<img src="/assets/images/descent-for-raags/square.png" width="30%" />
</p>
<p>Now, it’s not hard to see that the right angle artin group construction $A$
is actually a functor $A : \mathsf{Gph} \to \mathsf{Grp}$ from the category
of graphs to the category of groups. After all, if
$\varphi : \Gamma \to \Delta$ is a graph homomorphism<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> then we get a
group homomorphism $A \varphi : A \Gamma \to A \Delta$ given by sending each
generator $v \in A \Gamma$ to the generator $\varphi v \in A \Delta$.</p>
<p>Moreover, $A : \mathsf{Gph} \to \mathsf{Grp}$ admits a right adjoint! This
makes precise the idea that the raag on $\Gamma$ is a kind of “free group”
associated to $\Gamma$. Given a group $G$, we define its
<span class="defn">Commutation Graph</span> $CG$ to be the graph<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup> whose
vertices are elements of $G$ where ${g_1, g_2} \in CG$ is an edge if
and only if $g_1$ and $g_2$ commuted in $G$.</p>
<p>This allows us to bring much more powerful category theory to the table.
In particular, it lets us use the machinery of <a href="https://ncatlab.org/nlab/show/monadic+descent">comonadic descent</a> to
characterize the essential image of $A$. That is, to understand which groups
are raags, and to understand which homomorphisms between raags are $A \varphi$
for some graph homomorphism! In fact, we show that $A$ is a categorical
embedding, so that $\mathsf{Gph}$ is a (non-full) subcategory of
$\mathsf{Grp}$!</p>
<p>Moreover, the characterization is something we can really calculate with!</p>
<div class="boxed">
<p>The main theorem of the paper states that there is a coalgebra structure we can
put on groups so that</p>
<ol>
<li>The coalgebra structures on a group $G$ are in bijection with the graphs
$\Gamma$ so that $G \cong A\Gamma$</li>
<li>A homomorphism $f : G \to H$ respects this coalgebra structure if and
only if $f = A \varphi$ for a graph homomorphism.</li>
</ol>
<p>In particular, the raags are exactly the groups admitting such a coalgebra structure.</p>
</div>
<hr />
<p>One thing that I wish more mathematicians would talk about is the kind of
meandering nature of research. When you see a paper written in
defnition-theorem-proof style, it’s hard to imagine what the discovery
process must have looked like. It’s almost always <em>much</em> messier than the
final paper would lead you to believe, so I want to take a minute to talk
about the history of this paper.</p>
<h3 id="why-was-i-thinking-about-all-this">Why was I thinking about all this?</h3>
<p>There’s an important open question in the theory of raags about the
“nonstandard” embeddings between two raags.</p>
<p>Obviously if $\Gamma$ is a (full) subgraph of $\Delta$, then $A\Gamma$
is a subgroup of $A \Delta$ in a canonical way.
But it turns out we can have pairs so that $A \Gamma$ embeds into $A \Delta$,
but $\Gamma$ is <em>not</em> a subgraph of $\Delta$! Motivated by questions in
geometric group theory, it’s natural to want to understand when these
“nonstandard” embeddings are possible.</p>
<p>Now the adjunction comes into play. If we have an embedding
$A \Gamma \to A \Delta$, then our adjunction gives us a map of graphs
$\Gamma \to CA \Delta$. Since $CA : \mathsf{Gph} \to \mathsf{Gph}$ is
a <a href="https://en.wikipedia.org/wiki/Monad_(category_theory)">monad</a> on the category of graphs, we (not very creatively)
call this construction the <span class="defn">Monad Graph</span> of $\Delta$.</p>
<p>It would be nice to have a combinatorial characterization of when a map
$\Gamma \to CA \Delta$ transposes to an embedding $A \Gamma \to A \Delta$.
But such a characterization is as yet unknown<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>.</p>
<p>I actually had most of these thoughts back in 2020 when I was first thinking
about raags, but they didn’t really go anywhere. Especially since I was focused
on life things like passing my quals and finding an advisor. But that all
changed in 2022 when I started really trying to understand stacks…</p>
<p>One way to understand stacks<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup> is as “categories satisfying descent”.
In the same way that a sheaf on $X$ assigns a set to each open in a way that
elements of the set glue along open covers, a stack on $X$ assigns a <em>category</em>
to each open in a way that objects and arrows of the category glue along
open covers!</p>
<p>This story is closely tied up with the story of <a href="https://en.wikipedia.org/wiki/Descent_(mathematics)">descent theory</a>, so I took
a detour through understanding <em>that</em><sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup>. Along the way I found out about
<em>comonadic descent</em> which (among other things) lets you characterize the
image of a left adjoint. I remembered this raags adjunction that I worked on,
and knew that its image was pretty easy to understand. Maybe the adjunction
was comonadic and I could use this to attack the nonstandard embedding problem!</p>
<p>Once I knew the right question to ask, the proof itself was surprisingly
simple, and I had a rough draft within a day or two<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">6</a></sup>.</p>
<p>Next came the process of writing everything up in a way that doesn’t require
a ton of category theoretic background. Working out the exposition for the
paper was <em>super</em> enlightening for me<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">7</a></sup>. Hopefully it also makes it more
accessible for people new to the subject!</p>
<hr />
<p>Ok, with the history out of the way, let’s talk about</p>
<h3 id="whats-in-the-paper">What’s in the paper</h3>
<p>This is pretty quick to outline, since I’m assuming a category theory
background of my blog readers that I wasn’t assuming of my paper readers.
That said, if it ever gets too heavy, feel free to read the first few
sections of <a href="https://arxiv.org/abs/2309.06614">the paper</a>, since I go into much more detail there.</p>
<p>The main result is implied by the categorical statement that the adjunction
$A \dashv C$ is <span class="defn">Comonadic</span>. This says that
$\mathsf{Gph}$ is equivalent to the category of $AC$-coalgebras on
$\mathsf{Grp}$, and moreover that the equivalence intertwice the
adjunctions $A \dashv C$ (on the $\mathsf{Gph}$ side)
and the co-free/forgetful adjunction (on the $\mathsf{Grp}_{AC}$ side).</p>
<p>That is, we have a situation as below:</p>
<p style="text-align:center;">
<img src="/assets/images/descent-for-raags/comonadic-triangle.png" width="50%" />
</p>
<p>Really the equivalence $A$ sends a graph $\Gamma$ to the group $A\Gamma$
with the coalgebra structure $A \eta_\Gamma : A \Gamma \to ACA \Gamma$, so
that after forgetting this structure we get $A : \mathsf{Gph} \to \mathsf{Grp}$.</p>
<p>How do we show that this really is an equivalence? The answer is
<a href="https://ncatlab.org/nlab/show/monadicity+theorem">Beck’s (Co)monadicity Theorem</a>! It says that for <em>any</em> adjunction $A \dashv C$
the base of that triangle is an equivalence if and only if $A$ reflects
isomorphisms and preserves equalizers of “$A$-split parallel pairs”.</p>
<p>In the paper we use a different version of the comonadicity theorem which is
easier to check, but it boils down to the same proof.</p>
<p>It’s “well known” in raag circles that $A$ is conservative (this can already
be found in a 1987 paper of Droms), so we need to check that $A$ preserves
certain equalizers. We can do this with a slightly technical argument of
combinatorics on words. The key fact is that we have a good understanding
of normal forms for the elements in $A\Gamma$<sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">8</a></sup>.</p>
<p>The last section of this paper was a small application of this machinery. We’re
able to reprove a result that we can effectively recover $\Gamma$ from the
isomorphism type of $G \cong A \Gamma$, as long as we’re promised that $G$
really is a raag<sup id="fnref:9" role="doc-noteref"><a href="#fn:9" class="footnote" rel="footnote">9</a></sup>. We also show that if we have any concrete examples of
groups $G$ with $AC$-coalgebra structures, we can really do all the
computations that we would want to do!</p>
<hr />
<p>I think I like this format of blog posts putting more emphasis on the things
that were on my mind when I was working on a paper, rather than the contents
of the paper itself. Maybe if I write a more detailed paper I can say some
informal words about what’s in it, but I think the historical perspective
might help younger mathematicians see how messy research can be, and how
incidental things can all blend together into a result. I just <em>happened</em>
to be thinking about raags a few years before I <em>happened</em> to learn about
stacks and descent, which opened the door to a result on descent for raags.
Hopefully you all also like the historical perspective ^_^.</p>
<p>I’m also going to try to keep these paper announcement posts a bit less
polished. It’s easy to get paralysis and revise posts forever and never
finish them (ask me how I know…) I want to make sure that these actually
get out, so I’ll try to keep them light on the revision. That shouldn’t
be hard if the main point is the history!</p>
<hr />
<p>Anyways, thanks for hanging out, all. I’m super excited to have a
result, and I’ll be submitting to journals in the near future. Stay warm,
and we’ll talk soon ^_^.</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>In the sense that $\varphi : V \to W$ is a function on the underlying
vertices preserving the edge relation. So
${v_1, v_2} \in \Gamma$ implies ${ \varphi v_1, \varphi v_2 } \in \Delta$. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>In order to make this an honest adjunction, we need to require every
vertex of our graph have a self loop. That is, we actually work with
<em>reflexive</em> simple undirected graphs. This is a kind of technical point,
since if every vertex has a self loop we don’t need to draw them! So the
combinatorics remains basically unchanged. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>There’s reason to suspect this is a good idea, though! Not only is it
category-theoretically natural, but (as far as I know) the best
characterization of raag embeddings we have is due to Kim and Koberda,
which shows that whenever $\Gamma$ embeds into their <em>extension graph</em>
$\Delta^e$ that $A\Gamma$ embeds into $A\Delta$. The interesting
relationship is that $\Delta^e$ is the full subgraph of $CA\Delta$ on the
conjugates of the generators!</p>
<p>In fact, Kim and Koberda conjectured that the converse is true too, so
that $\Delta^e$ is the right graph to consider to understand the
nonstandard embeddings, but this was disproven in a 2013 paper of
Casals-Ruiz, Duncan, and Kazachov.
(Many thanks to <a href="https://sites.google.com/view/cf-nb/">Carl-Fredrik Nyberg-Brodda</a> for telling me about this)</p>
<p>This is actually good news for my paper, since it means that we’ll want to
understand more of the monad graph in order to better understand the
embeddings, instead of being satisfied understanding a subgraph. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>And there are many! I want to write a blog post about them sometime soon. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>I was especially drawn to this because I learned that descent is closely
related to monads. Even though objectively I’m <em>very</em> comfortable with
monads nowadays, deep inside me there’s still a teenage programmer
fascinated and confused by monads while learning haskell. It’s kind
of wild to think that almost 10 years ago haskell launched me on my
category theory journey. It’s even wilder to think of how far I’ve
come since then! <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>I once heard some advice that once you’ve climbed a high mathematical
mountain (like geting some comfort with descent theory) it’s worth
looking around to see if there’s anything else to do while you’re up there.</p>
<p>This led me to another question about understanding which essentially
algebraic theories are secretly algebraic. This amounts to understanding
the image of the left (2-)adjoint from finite product categories to
finite limit categories.</p>
<p>I was actually able to work this out as well during <a href="https://sites.uclouvain.be/ct2023/">CT2023</a>, but
unfortunately I learned while writing it up that Pedicciho and Wood
had published the same result in ‘99. I was sad, of course, but I learned
a TON while working on that project, about essentailly algebraic
theories, locally finitely presentable categories, 2-categories, and
lots more! That’s actually coming in super handy with my thesis project,
since locally presentable categories are the target for
<a href="https://ncatlab.org/nlab/show/factorization+homology">factorization homology</a>!</p>
<p>Again, research is a messy and winding road. <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:7" role="doc-endnote">
<p>For much the same reason that writing these blog posts is often good for me!
Teaching is a great way to learn, and to make sure you really understand
a subject. <a href="#fnref:7" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:8" role="doc-endnote">
<p>In fact, in multiple of these comonadicity proofs I’ve done, the key
to checking this equalizer condition is an understanding of normal forms
for the free objects!</p>
<p>This is yet another reason that the search for “normal form” theorems
for various algebras is an incredibly useful pursuit! <a href="#fnref:8" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:9" role="doc-endnote">
<p>Determining whether or not a group $G$ is a raag, without being promised
that it is one, is undecidable. <a href="#fnref:9" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Thu, 05 Oct 2023 00:00:00 +0000
https://grossack.site/2023/10/05/descent-for-raags.html
https://grossack.site/2023/10/05/descent-for-raags.htmlEstimating 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.html