Chris Grossack's Blog
https://grossack.site
Internal 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.htmlExternalizing Some Simple Topos Statements<p>Hey all! It’s been a minute. I’ve been super busy with
<a href="https://www.fairucnow.org/">the UC strike</a> and honestly I haven’t done math in any
serious capacity for almost the past month. It’s been a
lot of hard work trying to get fair contracts out of the UC,
but I had a lot of travel plans this December to see my friends,
so I’ve taken a step back from the picket line until January.
Right now I’m in Chicago, so here’s an obligatory bean pic:</p>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/bean.jpg" width="50%" />
</p>
<p>This means I have time to do math again, and it’s been really good
for me to get back into it! I’ve started working with <a href="https://sites.google.com/view/petersamuelson/home?pli=1">Peter Samuelson</a>
on some really cool work involving skein algebras, and I can’t wait to
chat about it once I spend more time with it.</p>
<p>I also spent some time trying to understand manifolds in a topos of $G$-sets.
I gave a (fairly informal) talk in Dave Weisbart’s seminar, where I tried to
pitch him topos theory as a method of studying $G$-invariant constructions<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>,
and I thought I remembered a result that we can get our hands on a
<a href="https://ncatlab.org/nlab/show/global+quotient+orbifold">global quotient orbifold</a> $M // G$ by working with a manifold internal to
$G$-set… I couldn’t find a reference for this, so I set about trying to
prove it myself, and (to nobody’s surprise) it’s false, haha.</p>
<p>So my last couple weeks, when I had the energy to do math after picketing,
looked eerily like Julia Robinson’s famous description of her week:</p>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/robinson.png" width="50%" />
</p>
<p>I learned a <em>ton</em> while doing this, though, and I wanted to share some
insights with everyone. It’s really hard to find examples of
people taking statements in the internal logic of a topos and externalizing
them to get “classical” statements, so I had to work out a bunch of small
examples myself.</p>
<p>Let’s go over a few together, and hopefully make things easier for the
next round of topos theorists looking to do this ^_^</p>
<hr />
\[\lvert X \rvert = 3\]
<p>Let’s start small. What does it mean to say that \(\lvert X \rvert = 3\)?
This is really an abbreviation saying “there’s a bijection between $X$ and $3$”,
which we expand out to</p>
\[\exists \alpha : 3^X . \exists \beta : X^3 .
\alpha \beta = \text{id}_3 \land \beta \alpha = \text{id}_X\]
<p>Here, of course, we’re writing $A^B$ for the <a href="https://en.wikipedia.org/wiki/Exponential_object">exponential object</a> of the
topos.</p>
<p>So we’re saying that \(\mathcal{E} \models \lvert X \rvert = 3\). If we switch over
to the forcing language, we’re saying that \(1 \Vdash \lvert X \rvert = 3\), and from
here we can follow the instructions in section VI.6 of Mac Lane and Moerdijk’s
<em>Sheaves in Geometry and Logic</em>. In fact, since we’ll be working exclusively
with grothendieck topoi in this post, we can work with the slightly simpler
sheaf semantics outlined in section VI.7.</p>
<p>First, let’s look at the case $\mathcal{E} = G\text{-}\mathsf{Set}$.</p>
<p>We start with</p>
\[1 \Vdash \exists \alpha : 3^X . \exists \beta : X^3 .
\alpha \beta = \text{id}_3 \land \beta \alpha = \text{id}_X\]
<p>Next we cash out our existential quantifiers for honest (generalized)
elements $f$ in $3^X$ and $g$ in $X^3$. The “local” nature of existential
quantification, though, means that our generalized elements no longer have
domain $1$ (which would make them <em>global</em> elements). Instead, they have
domain $V$ for some epi $V \twoheadrightarrow 1$.</p>
<p>Of course, in a topos of $G$-sets, every nonempty object admits a unique
epi to $1$, and every nonempty object is a disjoint union of $G$-orbits.
So it’s not hard to see we can restrict attention to the connected epis
(transitive $G$-sets). But we <em>also</em> know that truth is local. So we can pull
back some transitive $G$-set along a further epimorphism to assume that our
connected object is actually $G$ itself!</p>
<p>So we end up with elements $\alpha : G \to 3^X$ and $\beta : G \to X^3$
so that</p>
\[G \Vdash \alpha \beta = \text{id}_3 \land \beta \alpha = \text{id}_X\]
<p>But what does this mean? Well, in $G$-set, the exponential $A^B$ is the set of
<em>all</em> functions ${\varphi : B \to A}$ equipped with the conjugation action:</p>
\[(g \cdot_{A^B} \varphi)(x) = g \cdot_A \varphi (g^{-1} \cdot_B x)\]
<p>Notice that the <em>global</em> elements of $A^B$ are the maps $1 \to A^B$,
which are thus the fixed points of $A^B$. But to say $\varphi = g \cdot \varphi$
for all $g$ is to say that $\varphi$ is $G$-equivariant. However generalized
elements give us access to other maps. In particular:</p>
<div class="boxed">
<p>Exercise: Show that the $G$-elements of $A^B$ (that is, the maps $G \to A^B$)
are in natural bijection with ordinary functions $B \to A$ that ignore the
$G$-structure entirely.</p>
<p>Hint: Look at what happens to the identity element of the group</p>
</div>
<p>So then we have two ordinary functions $\alpha : X \to 3$ and $\beta : 3 \to X$
which are mutually inverse. This means exactly that the underlying set of $X$
has $3$ elements.</p>
<p>This brings us to an important observation about $G$-sets:</p>
<p>Something is “locally” true in $G\text{-}\mathsf{Set}$ exactly when it’s
true for the underlying sets. This is basically because each $G$-set $X$
is covered by $G \times X$, but this is isomorphic to $G \times UX$ where
$UX$ (the underlying set of $X$) is equipped with the trivial $G$-action!</p>
<p>So if we want a statement in $G\text{-}\mathsf{Set}$ to externalize to
something $G$-equivariant, we’ll want to avoid existential quantifiers
and disjunctions (since these are only true up to a cover)<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">2</a></sup>.</p>
<div class="boxed">
<p>Can you find a formula $\psi(X)$ (which will use $G$ as a parameter) so that
$G\text{-}\mathsf{Set} \models \psi(X)$ if and only if $X$ has finitely many
$G$-orbits<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">3</a></sup>?</p>
</div>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/hand-raise.gif" width="50%" />
</p>
<p>Great question! I’m glad you asked!</p>
<p>Say that instead of $G$-sets, we work inside a topos $\mathcal{E} = \mathsf{Sh}(S)$
for some topological space $S$<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup>.
What does it mean if \(\mathcal{E} \models \lvert X \rvert = 3\)?</p>
<p>Well again, we see that</p>
\[1 \Vdash \exists \alpha : 3^X . \exists \beta : X^3 .
\alpha \beta = \text{id}_3 \land \beta \alpha = \text{id}_X\]
<p>and we cash out our existential quantifiers for <em>local</em> witnesses. That is,
there’s an open cover ${ U_i }$ of $S$ with elements
$\alpha_i : U_i \to 3^X$ and $\beta_i : U_i \to X^3$ so that, for each $U_i$,</p>
\[U_i \Vdash \alpha_i \beta_i = \text{id}_3 \land \beta_i \alpha_i = \text{id}_X\]
<p>Now (by yoneda), an element $U_i \to A^B$ is “just” a function $B \to A$ defined over $U_i$.
So altogether we see that $\lvert X \rvert = 3$ if and only if there’s an open
cover \(\{U_i\}\) of $S$ so that
\(X \! \upharpoonright_{U_i} \cong 3 \! \upharpoonright_{U_i}\)
for each $i$.</p>
<p>This means $X$ is <em>locally isomorphic</em> to $3$, the disjoint union of three
copies of $S$. It’s not hard to see that this means $X$ is a 3-sheeted
covering space of $S$.</p>
<p>Notice that these local isomorphisms do <em>not</em> have to glue into a global
isomorphism! The simplest thing to do is to give a picture. If $S = S^1$
is a circle, and $X$ is a triple cover as shown below:</p>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/triple-cover.png" width="25%" />
</p>
<p>then $X$ is locally isomorphic to the trivial triple cover $3$:</p>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/triple-cover-trivial.png" width="25%" />
</p>
<p>despite the fact that they <em>aren’t</em> globally isomorphic!</p>
<p>From the perspective of the internal logic, the point is that the isomorphisms
over each $U_i$ need not be compatible in the sense that
\(\alpha_i \! \upharpoonright_{U_i \cap U_j} \neq \alpha_j \! \upharpoonright_{U_i \cap U_j}\).</p>
<div class="boxed">
<p>If you’ve never done it before, it’s worth going through this in detail!</p>
<p>Cover $S^1$ by open sets (so that each intersection is connected,
for simplicity) and show that the two triple covers are isomorphic on
each open set, but these isomorphisms aren’t compatible on intersections.</p>
</div>
<p>Note, as an aside, that we’ve been working with an explicit choice of
finite cardinality: $\lvert X \rvert = 3$. Say instead we wanted the
weaker “$\lvert X \rvert \text{ is finite}$”. There’s nothing to worry about
in $G\text{-}\mathsf{Set}$ because this topos is boolean, satisfies AC, etc.
However for topoi without LEM, there are multiple inequivalent notions of
finiteness. See <a href="https://ncatlab.org/nlab/show/finite+set">here</a> for a discussion<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup>.</p>
<hr />
\[\forall x,y : X . x = y \lor x \neq y\]
<p>This says that $X$ is <a href="https://ncatlab.org/nlab/show/decidable+object"><em>decidable</em></a>, which is language coming from a
computability theoretic interpretation of our logic that I’ll save for a
different post<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">6</a></sup>.</p>
<p>Let’s start with the externalization. If
$\mathcal{E} \models \forall x, y : X . x = y \lor x \neq y$,
then in the forcing notation we have</p>
\[1 \Vdash \forall x, y : X . x = y \lor x \neq y\]
<p>which we can cash out (again, see chapter VI in Mac Lane and Moerdijk) for</p>
\[X \times X \Vdash \pi_1 = \pi_2 \lor \pi_1 \neq \pi_2\]
<p>where $\pi_1$ and $\pi_2$ are the projections $X \times X \to X$.</p>
<p>Now, just like existential quantifiers, disjunctions need only be true
locally. So in the case $\mathcal{E} = G\text{-}\mathsf{Set}$ we want to
find $G$-sets $V$ and $W$, with maps $p: V \to X^2$ and $q : W \to X^2$
so that</p>
<ol>
<li>$V \Vdash \pi_1 p = \pi_2 p$</li>
<li>$W \Vdash \pi_1 q \neq \pi_2 q$</li>
<li>$p+q : V + W \to X^2$ is an epi</li>
</ol>
<p>Of course, this isn’t hard to do! Let’s take
\(V = \{ (x,x) \mid x \in X \}\) (equipped with the diagonal $G$-action)
and \(W = X^2 \setminus V\) (also equipped with the diagonal $G$-action).</p>
<div class="boxed">
<p>If it’s not obvious, prove that $W$ really is a $G$-set.</p>
</div>
<p>Then it’s easy to see that by taking $p$ and $q$ to be the relevant inclusion
maps we can satisfy our 3 conditions. Thus <em>every</em> $G$-set $X$ is decidable!<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">7</a></sup></p>
<p><br /><br /></p>
<p>Next, let’s look at $\mathsf{Sh}(S)$.</p>
<p>Again, we’ll take an object $X$ and look at the statement
$\forall x,y : X . x = y \lor x \neq y$.</p>
<p>The flow of the computation is hopefully becoming familiar now.
For variety, since we’re working in a sheaf topos, let’s do this
computation with the sheaf semantics (Maclane and Moerdijk VI.7).
This lets us restrict attention to open subsets of $S$, which is
sometimes useful.</p>
<p>We start with $1 \Vdash \forall x,y : X . x = y \lor x \neq y$,
that is, $S \Vdash \forall x,y : X . x = y \lor x \neq y$.</p>
<p>Now the universal quantifiers represent true statements for any local section.
That is, for each $U$ open in $S$, and for each generalized element
$x,y : U \to X$
(that is, by yoneda, local sections $x,y \in X(U)$ of the sheaf $X$ over $U$)</p>
\[U \Vdash x = y \lor x \neq y\]
<p>Then since disjunctions need only be true locally, this is true exactly when
we can over $U$ by opens $V_i$ so that, on each $V_i$, either</p>
\[V_i \Vdash x = y\]
<p>or</p>
\[V_i \Vdash x \neq y\]
<p>That is, on each $V_i$ in the cover, either the sections
$x \upharpoonright_{V_i}$ and $y \upharpoonright_{V_i}$ are everywhere equal
or they’re nowhere equal.</p>
<p>So an object $X$ in $\mathsf{Sh}(S)$ is decidable exactly when, for
any connected open $U \subseteq S$, any two local sections of $X$ are either
everywhere equal or nowhere equal<sup id="fnref:10" role="doc-noteref"><a href="#fn:10" class="footnote" rel="footnote">8</a></sup>.</p>
<p>For a <em>super</em> concrete example, let’s look at $S = [-1,1]$ and
$X$ the sheaf of continuous
functions on $S$. Then if we look at $x = s$ and $y = \lvert s \rvert$, we
can ask about the truth values $x=y$ and $x \neq y$.</p>
<p>Here $x=y$ is the largest open subset of $S = [-1,1]$ on which
$s = \lvert s \rvert$. This is, of course, $(0,1]$. Similarly,
$x \neq y$ is the largest open subset on which $s \neq \lvert s \rvert$,
but her friends call her $[-1,0)$.</p>
<p>Notice the truth values are open subsets of $S$. We’re keeping track of
<em>where</em> something is true, which is a finer (and more useful!) tool
than just a simple boolean true/false.</p>
<p>But of course, this means that $x=y \lor x \neq y$ is the
union \((0,1] \cup [-1,0) = [-1,1] \setminus \{0\}\). Which
is <em>not</em> the top element of the lattice of opens, and thus is not “true”!
Even though $0 = \lvert 0 \rvert$, this truth is not local – No matter how slightly
we wiggle $0$, this truth value can change, and this instability is exactly what
keeps $0$ from being in the set \([-1,0) \cup (0,1] = [ \! [ s = |s| \lor s \neq |s| ] \! ]\)</p>
<p><br /><br /></p>
<p>Let’s give a bonus example as well, since this is a fairly subtle concept.</p>
<p>We’ll work in the arrow topos $\mathsf{Set}^{\to}$ whose objects are triples
$(a,f,b)$ where $f : a \to b$ in $\mathsf{Set}$. An arrow
$(\varphi_0, \varphi_1) : (a,f,b) \to (c,g,d)$ is a pair of arrows in $\mathsf{Set}$
making the obvious square commute:</p>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/arrow-arrow.png" width="50%" />
</p>
<p>I’ll leave much of this example as a fun exercise, since it’s important to
get practice working these things out for yourself! If you want to check
your work, though, I’ll leave brief solutions in a fold!</p>
<div class="boxed">
<p>First, can you compute the object of truth values $\Omega$?</p>
</div>
<details>
<summary>solution</summary>
<p>This is worked out in detail in chapter I of Mac Lane and Moerdijk
(pages 35 and 36 of my edition) but briefly, we get</p>
\[\Omega = \{ \top, \bot', \bot \} \overset{\sigma}{\to} \{ \top, \bot \}\]
<p>with $\sigma(\top) = \top$, $\sigma(\bot’) = \top$, $\sigma(\bot) = \bot$.</p>
<p>Remember that a subobject of $X_0 \overset{f}{\to} X_1$ is a pair of subsets
$A_0 \subseteq X_0$, $A_1 \subseteq X_1$ so that $f[A_0] \subseteq A_1$.
This is exactly a <em>restriction</em> of $f$!</p>
<p>Then any $x_1 \in X_1$ is either in $A_1$ or it isn’t. That’s why the
target of $\sigma$ is \(\{ \top, \bot \}\). But an $x_0 \in X_0$ has more
options. Either</p>
<ul>
<li>$x_0 \in A_0$ and, necessarily, $f x_0 \in A_1$</li>
<li>$x_0 \not \in A_0$ but $f x_0 \in A_1$ anyways</li>
<li>$x_0 \not \in A_0$ and $f x_0 \not \in A_1$</li>
</ul>
<p>these correspond to the truth values $\top$, $\bot’$, and $\bot$ in the
domain of $\sigma$.</p>
</details>
<div class="boxed">
<p>Next, can you figure out what it means for an object $a \overset{f}{\to} b$
to be decidable?</p>
</div>
<details>
<summary>solution</summary>
<p>Let’s compute.</p>
<p>We quickly get to $f^2 \Vdash x=y \lor x \neq y$, where (as usual)
$x$ and $y$ are the projection maps from $f^2 \to f$.</p>
<p>Another, smaller, computation shows that $f^2 : a^2 \to b^2$ is just the
map sending $(x,y) \mapsto (fx,fy)$. Moreover, an epi</p>
\[(\tilde{a} \overset{\tilde{f}}{\to} \tilde{b}) \twoheadrightarrow (a \overset{f}{\to} b)\]
<p>is a pair of surjections $\tilde{a} \to a$ and $\tilde{b} \to b$ making the square commute.</p>
<p>With this in mind, when we unwind the disjunction to a pair of maps
$V \to f^2$ and $W \to f^2$ so that</p>
<ul>
<li>$V \Vdash x=y$</li>
<li>$W \Vdash x \neq y$</li>
<li>$V+W \to f^2$ is epi</li>
</ul>
<p>it’s enough to look at the images of the maps $V \to f^2$ and $W \to f^2$.
That is, it’s enough to look at $V$ and $W$ <em>subobjects</em> of $f^2$
and ask that the union $V \cup W$ is all of $f^2$.</p>
<p>To have our best chance at covering $f^2$, we should take $V$ and $W$ to be
as big as possible under the restrictions that $V \Vdash x=y$ and
$W \Vdash x \neq y$.</p>
<p>Unwinding $V \Vdash x=y$, the best we can do is to take $V$ to be the diagonal
\(\{ (x,y) \in a^2 \mid x=y \} \overset{f^2}{\to} \{ (x,y) \in b^2 \mid x=y \}\).</p>
<p>Then unwinding $W \Vdash x \neq y$, the best we can do is
\(\{ (x,y) \in a^2 \mid x \neq y \land fx \neq fy \} \overset{f^2}{\to} \{ (x,y) \in b^2 \mid x \neq y \}\).</p>
<p>Notice we have to restrict the domain to those elements who <em>stay</em> separated
after we apply $f^2$! After all, if $x \neq y$ but $fx = fy$, then we wouldn’t
land in the right codomain<sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">9</a></sup>.</p>
<p>So if we want the union of $V$ and $W$ to be all of $f$, we need to know that
each pair $(x,y)$ with $x \neq y$ gets sent to a pair with $fx \neq fy$,
and this happens exactly when $f$ is a monomorphism!</p>
<p>So the decidable objects of $\mathsf{Set}^\to$ are the monos.</p>
<p>Hopefully this also makes clear, in a more discrete way than the $\mathsf{Sh}(S)$
example, how decidability can fail! For a super concrete example<sup id="fnref:9" role="doc-noteref"><a href="#fn:9" class="footnote" rel="footnote">10</a></sup>,
consider the ring object in $\mathsf{Set}^\to$ given by</p>
\[\mathbb{Z}[\epsilon] / \epsilon^2
\overset{\epsilon \mapsto 0}{\longrightarrow}
\mathbb{Z}\]
<p>This ring is not decidable since $\epsilon = 0$ is neither true nor false!</p>
</details>
<hr />
<p>This was a lot of fun, and hopefully you feel more comfortable externalizing
some simple statements after reading through these. It’s all about
practice practice practice, though, so I encourage everyone to come up with
their own easy examples and try externalizing them! I learned a <em>ton</em> while
writing this blog post, and that’s on top of everything I learned trying
to work out what a manifold inside $G\text{-}\mathsf{Set}$ should be!</p>
<p>I won’t make promises, but I would love to write another post of this flavor
sometime soon, where we can talk about something simple like linear algebra
or basic analysis inside a topos. Of course, I have lots of ideas, and
comparatively little time to write them all, so things will happen when they do
^_^.</p>
<p>Stay warm and stay safe, all! We’ll talk soon 💖</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>In particular, we’re planning to think about $G$-equivariant brownian
motion. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>Something like this is probably true for more general <a href="https://ncatlab.org/nlab/show/%C3%A9tendue">etendues</a>,
which (up to a cover) look like $\mathsf{Sh}(X)$. The case of $G$-sets
is particularly easy, since locally they look like
$\mathsf{Set} = \mathsf{Sh}(\star)$. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>Try
$\exists n : \mathbb{N} . \exists f : X^{G \times n} .
\ulcorner f \text{ is surjective} \urcorner$ <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>Nothing at all changes if we instead take $S$ to be a <a href="https://ncatlab.org/nlab/show/locale">locale</a> <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>Also note that the existential quantifier really impacts things. Essentially
we asked for
$\mathcal{E} \models \exists \alpha : X \cong 3 . \top$.
If we had instead asked for an actual (global) element,
$\mathcal{E} \models \alpha : X \cong 3$, we would have actual isomorphism
instead of mere local isomorphism. This is what the previous nlab link
calls “(bishop) finite”, and it’s a stronger condition than what we’ve been
working with. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:7" role="doc-endnote">
<p>Briefly, a property is called <em>decidable</em> if a computer can check if the
answer is yes or no.</p>
<p>A property is called <em>semidecidable</em> if a computer can check if the answer
is “yes”, but we don’t know how long it’ll take. What’s worse, the code
is allowed to loop forever if the answer is “no”! So really we get a “yes”
or “maybe”.</p>
<p>Dually, we say a property is <em>co-semidecidable</em> if a computer can answer
“no” or “maybe”. If you run it long enough and the answer is “no”,
it will always say so. But if the answer is “yes” the code might loop forever.</p>
<div class="boxed">
<p>As a (fairly easy?) exercise, show that something is decidable
if and only if it’s both semidecidable and co-semidecidable.</p>
</div>
<p>To finish the brief explanation, equality is <em>such</em> an important
predicate that we say $X$ is decidable exactly when equality on $X$
is, and this is the definition we ported to topos theory. <a href="#fnref:7" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>This should make intuitive sense. A topos of $G$-sets is boolean, and
even satisfies AC. So it looks almost exactly like $\mathsf{Set}$!
In particular, we can see that every object in $G\text{-}\mathsf{Set}$
is decidable by appeal to LEM, rather than by building the witnesses directly.</p>
<p>Yet another way to see this (which I’m 80% sure is true) is by working
in the slice topos. I’m pretty sure that</p>
\[X^2 \Vdash \pi_1 = \pi_2 \lor \lnot \pi_1 = \pi_2\]
<p>is the same thing as asking for</p>
\[\pi_1 = \pi_2 \lor \lnot \pi_1 = \pi_2\]
<p>to name $\top$ in the slice topos $\mathcal{E} /_{ X^2}$.</p>
<p>Here the truth values are subobjects of $X^2$ in $\mathcal{E}$,
with $\pi_1 = \pi_2$ naming the truth value</p>
\[\{ (x,y) \mid x = y \}\]
<p>and $\lnot \pi_1 = \pi_2$ naming the truth value</p>
\[\text{``the biggest sub-$G$-set disjoint from } \{ (x,y) \mid x = y \} \text{''}\]
<p>of course, since the complement of the diagonal is a sub-$G$-set,
these two sets union to the whole of $X^2$. That is, the truth value of
their disjunction is $\top$, as desired.</p>
<p>Note this is <em>not</em> the case for $M$-sets for a monoid $M$!</p>
<p>If we work with the monoid $\mathbb{N}$, let’s consider the
$\mathbb{N}$-set $X = {a,b}$ with $1a = 1b = b$. That is,</p>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/arrow.png" width="25%" />
</p>
<p>(plus a self loop at $b$ that q.uiver won’t draw for me… I’d make it
myself but it’s getting late and I don’t feel like it, haha)</p>
<p>Then the product $X^2$ is</p>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/square.png" width="25%" />
</p>
<p>(again, with a secret self loop at $(b,b)$).</p>
<p>The diagonal, of course, is a sub-$M$-set:</p>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/diagonal.png" width="25%" />
</p>
<p>But now the off-diagonal is <em>not</em> a sub-$M$-set. It’s not closed under
the $M$-action:</p>
<p style="text-align:center;">
<img src="/assets/images/internal-logic-examples/off-diagonal.png" width="25%" />
</p>
<p>So the complement \(\{ (x,y) \mid x \neq y \}\) will be the largest
sub-$M$-set contained inside the off-diagonal. But in this example
that’s empty!</p>
<p>In particular, \(\{ (x,y) \mid x=y \} \lor \{ (x,y) \mid x \neq y \}\),
a subobject of $X^2$, and thus a truth value in
\(M\text{-}\mathsf{Set} \big /_{\! X^2}\),
is <em>not</em> $X^2$. So $M\text{-}\mathsf{Set}$ thinks
$\forall x,y : X . x = y \lor x \neq y$ is not true.</p>
<div class="boxed">
<p>It also thinks it’s not false, for what that’s worth.</p>
<p>As a nice (slightly more challenging) exercise, figure out
what the truth value of that statement actually is!</p>
</div>
<p>It’s still not fully clear to me what truth values in
$M\text{-}\mathsf{Set} /_{X^2}$ should look like…
In $M\text{-}\mathsf{Set}$ there are only two global truth values,
even though externally we can see that $\Omega$ is the set of all
(left) ideals of $M$.</p>
<p>Presumably in $M\text{-}\mathsf{Set} /_{X^2}$ the global truth values
are the sub-$M$-sets of $X^2$… But I’m not sure about what exactly
$\Omega$ looks like.</p>
<p>If someone wants to work this out, I’d love to hear your thoughts in the
comments! This footnote is already getting <em>super</em> long, though, and I
have the rest of the post to work on! <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:10" role="doc-endnote">
<p>This is obviously an <em>extremely</em> strict condition! If we think about the sheaf
of real-valued continuous functions on $S$, it’s hard to imagine the case that
two functions which agree on a point automatically agree everywhere! <a href="#fnref:10" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:8" role="doc-endnote">
<p>This is worth some meditation. There’s something model-theoretic
happening here, where truth is <em>preserved</em> as we move from the
domain to the codomain. But falsity does <em>not</em> need to be preserved
(said another way, truth does not need to be <em>reflected</em> from the codomain
to the domain).</p>
<p>So true things stay true, but false things can <em>become</em> true later on.</p>
<p>It’s possible for $x$ and $y$ to start different and end the same, but
if they start the same they have to stay that way.</p>
<p>Somehow the logic of the topos handles all of this for us, which doesn’t
seem so impressive when we only have one arrow, but you can imagine as
we increase the complexity of the category $\mathcal{C}$ in the
topos $\mathsf{Set}^\mathcal{C}$ that it becomes more annoying to do this
bookkeeping by hand.</p>
<p>Regardless, it’s not lost on me that $f$ is decidable in
$\mathsf{Set}^\to$ exactly when it’s a monomorphism in $\mathsf{Set}$…
This has something to do with the fact that, model theoretically,
monos <em>do</em> reflect the truth of atomic questions (like equality). I’m seeing
some connection here, but I can’t quite make it precise. <a href="#fnref:8" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:9" role="doc-endnote">
<p>taken from Johnstone’s <em>Rings, Fields, and Spectra</em>, which should
really be required reading for anyone interested in applications
of topos theory! <a href="#fnref:9" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Tue, 13 Dec 2022 00:00:00 +0000
https://grossack.site/2022/12/13/internal-logic-examples.html
https://grossack.site/2022/12/13/internal-logic-examples.htmlTalk - Where Are The Open Sets?<p>I was invited to give a talk at <a href="https://www.uwo.ca/math/faculty/kapulkin/seminars/hottest.html">HoTTEST 2022</a>, and was more than
happy to accept! Ever since I was first learning <a href="https://en.wikipedia.org/wiki/Homotopy_type_theory">HoTT</a> I was curious how
we could be sure that theorems in HoTT give us corresponding theorems in
“classical” homotopy theory. Earlier this summer I spent a lot of
time wrestling wtih $\infty$-categories (culminating in a series of
<a href="/tags/homotopy-theories/">blog posts</a>) and I realized I was quite close to finally understanding
the connection between HoTT and classical topology. I think this is a
question that should have a more accessible answer
(the machinery is fairly intense, but that shouldn’t prevent a high level overview)
and I’m happy I was able to help fill this gap!</p>
<p>All in all, I think the talk went quite well! I think I did a good job
making the broad ideas involved in the semantics accessible to an audience
without much background, though my actual delivery was a bit jittery –
I had to wake up at 7.30 to give the talk and I was basically being held up
by willpower and caffeine, haha.</p>
<!-- As a secret life update, I got prescribed my hormones today as well! -->
<p>Now that I’ve napped, let’s write up a quick summary of the talk ^_^</p>
<hr />
<p>The basic idea is to interpret the syntax of HoTT in the model category
of <a href="https://en.wikipedia.org/wiki/Simplicial_set">simplicial sets</a> $s\mathsf{Set}$. This means that anything we do in
HoTT externalizes to a statement about $s\mathsf{Set}$.
Then we use the quillen equivalence of $s\mathsf{Set}$ with $\mathsf{Top}$<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> in
order to transfer our statement in $s\mathsf{Set}$ to a statement about
$\mathsf{Top}$ (up to homotopy).</p>
<p>First, I spent some time discussing (<em>very</em> roughly) what a model structure
on a category is. As a reference for a less rough idea, I mentioned a famous
paper <a href="https://math.jhu.edu/~eriehl/616-s16/DwyerSpalinski.pdf"><em>Homotopy Theories and Model Categories</em></a> by Dwyer and Spalinski.
Next, I gave some intuition for what a simplicial set might be, and outlined how
they combinatorially encode topological spaces. For more detailed references
I mentioned Friedman’s <a href="https://arxiv.org/pdf/0809.4221.pdf"><em>An Elementary Illustrated Introduction to Simplicial Sets</em></a>
as well as Singh’s thesis <a href="https://www.abdn.ac.uk/staffpages/uploads/r01gs19/Gyan_Singh_sSet.pdf"><em>A Survey of Simplicial Sets</em></a>.</p>
<p>Then came a discussion of the functors converting back and forth between
$s\mathsf{Set}$ and $\mathsf{Top}$:</p>
<ul>
<li><a href="https://kerodon.net/tag/001X">geometric realization</a>, $\lvert \cdot \rvert : s\mathsf{Set} \to \mathsf{Top}$</li>
<li><a href="https://kerodon.net/tag/001Q">singular chains</a>, $\text{Sing}(\cdot) : \mathsf{Top} \to s\mathsf{Set}$</li>
</ul>
<p>these form an adjunction ($\lvert \cdot \rvert \ \dashv \ \text{Sing}(\cdot)$)
which respects the model structure on both categories in the sense that they
form a <a href="https://ncatlab.org/nlab/show/Quillen+equivalence">quillen equivalence</a>:</p>
<div class="boxed">
<ol>
<li>They induce functors on the homotopy categories
<ul>
<li>$\mathbb{L} \lvert \cdot \rvert : s\mathsf{Set}[\mathcal{W}^{-1}] \to \mathsf{Top}[\mathcal{W}^{-1}]$</li>
<li>$\mathbb{R}\text{Sing}(\cdot) : \mathsf{Top}[\mathcal{W}^{-1}] \to s\mathsf{Set}[\mathcal{W}^{-1}]$</li>
</ul>
</li>
<li>$\mathbb{L} \lvert \cdot \rvert$ and $\mathbb{R} \text{Sing}(\cdot)$
form an adjoint equivalence $s\mathsf{Set}[\mathcal{W}^{-1}] \simeq \mathsf{Top}[\mathcal{W}^{-1}]$</li>
</ol>
</div>
<p>The punchline is that <em>any</em> question<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup> we have about the homotopy theory of
topological spaces can be answered by transporting to $s\mathsf{Set}$ and
answering the question there<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>!</p>
<p>This is great news for two reasons:</p>
<ul>
<li>
<p>Concretely, simplicial sets are combinatorial, so we can describe many
interesting simplicial sets to a computer with only a finite amount of data.
This is the backbone of most implementations of algebraic topology –
see <a href="https://doc.sagemath.org/html/en/reference/topology/index.html">here</a>, for instance.</p>
</li>
<li>
<p>Abstractly, simplicial sets assemble into a (grothendieck) <a href="https://en.wikipedia.org/wiki/Topos">topos</a>,
which gives us access to lots of heavy duty category theoretic machinery
when working with them.</p>
</li>
</ul>
<p>Speaking of heavy duty category theoretic machinery, this marked the end of
section $1$ of the talk. Section $2$ is about the interpretation of HoTT
in $s\mathsf{Set}$, and there’s a notable spike in vagueness here.
Unfortunately the math becomes quite a bit more technical
(and involves a lot of category theory I didn’t want to assume of the
audience) but I still wanted to give a flavor for externalizing
HoTT statements into statements about $s\mathsf{Set}$. That means I
wasn’t able to give many details at all<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup>, but I still tried to
roughly sketch the ideas involved.</p>
<p>Again, I pointed to the literature for those who want to see things
more precisely. There’s an excellent set of three talks by <a href="https://math.jhu.edu/~eriehl/">Emily Riehl</a>,
<em>On the $\infty$-Topos Semantics for Homotopy Type Theory</em>
(lectures <a href="https://www.youtube.com/watch?v=PejZfl5kOlU">1</a>, <a href="https://www.youtube.com/watch?v=m2_ObHxDcQs">2</a>, and <a href="https://www.youtube.com/watch?v=hcGKmEuJJMY">3</a>), as well as associated
<a href="https://emilyriehl.github.io/files/semantics.pdf">lecture notes</a>. They do a good job motivating the semantics
in any $\infty$-topos (as the title suggests) at the cost of being
somewhat more abstract. There’s also a paper
(<a href="https://arxiv.org/pdf/1211.2851.pdf"><em>The Simplicial Model of Univalent Foundations (After Voevodsky)</em></a>,
by Kapulkin and Lumsdaine) which works only for $s\mathsf{Set}$,
but is much more concrete. I forgot to mention it during the talk,
but <a href="https://www.youtube.com/watch?v=NpzqeZd4Yw0">Subramaniam’s talk</a> in the HoTTEST Summer School Colloquium is
another fantastic resource.</p>
<p>Morally, the idea is that types in HoTT are <a href="https://ncatlab.org/nlab/show/Kan+complex">kan complexes</a>
(that is, simplicial sets which are “honestly geometric” in some sense).
Then constructions on types externalize to (categorical) constructions
on kan complexes, and terms inhabiting a type correspond to global points
of the associated kan complex.</p>
<p>This is a bit of a fib, since the syntax of HoTT is strict on-the-nose
whereas the categorical constructions we do in $s\mathsf{Set}$ are only
defined up to isomorphism. It turns out that this is a serious technical
obstruction, since we need to <em>choose</em> a particular object from each
isomorphism class in order to interpret the syntax. But we need to do this
in a way that the constructions are all compatible.</p>
<p>For instance, say $P$ is a dependent type over $B$ and $f : A \to B$
is a function. Then if $a : A$ we could first evaluate $f(a)$ then
consider the type $P(f(a))$, <em>or</em> we could first compose $P$ with $f$
to get a type family $P(f(-))$ over $A$, then take the fibre at $a:A$.</p>
<p>No matter what, we end up with the syntax $P(f(a))$<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup>, so we get
literal equality at the level of syntax.</p>
<p>However, in $s\mathsf{Set}$ if we <em>choose</em> a representative for each
isomorphism class, and define our constructions to manipulate those
specific objects, it’s possible that we chose poorly so that we end up
with <em>different objects</em> depending on which order we choose to perform
the above substitutions
(they’ll be isomorphic of course, but this is not good enough).</p>
<p>The key to solving this issue is to somehow make <em>one</em> really hard
choice, then define all of our other choices in terms of it! This is
the idea behind Voevodsky’s <em>(weak) universal fibration</em>, which you can
read all about in the linked paper of Kapulkin and Lumsdaine.</p>
<p>Lastly, I mentioned a good exercise to keep in mind when trying to learn
this material:</p>
<div class="boxed">
<p>Can you show that if HoTT proves $\mathtt{isContr}(A)$ is
inhabited, then \([ \! [ A ] \! ]\) (the kan complex that $A$ denotes) is
contractible in the sense of simplicial sets?</p>
<p>After this, can you show that
the geometric realization \(\lvert [ \! [ A ] \! ] \rvert\) is contractible too?</p>
<p>If you can do both of the above exercises, you’ll have successfully proven
a fact about an honest topological space by proving some theorem in HoTT!</p>
</div>
<hr />
<p>All in all, I was pleased with how the talk went, and I learned a <em>ton</em>
while writing it! I still have to work through the details of the
semantics to fully feel comfortable externalizing HoTT statements,
but I have a much more nuanced appreciation for the issue of
strictness.</p>
<p>As usual, here’s the title, abstract, and recording.</p>
<p>Take care, all ^_^</p>
<hr />
<p>Where Are The Open Sets? – Comparing HoTT with Classical Topology</p>
<p>It’s often said that Homotopy Type Theory is a synthetic description of
homotopy theory, but how do we know that the theorems we prove in HoTT are true
for mathematicians working classically? In this expository talk we will outline
the relationship between HoTT and classical homotopy theory by first using the
simplicial set semantics and then transporting along a certain equivalence
between (the homotopy categories of) simplicial sets and topological spaces.
We will assume no background besides some basic knowledge of HoTT and
classical topology.</p>
<p>You can find the slides <a href="/assets/docs/where-are-the-open-sets/slides.pdf">here</a>, and I’ll post the recording as
soon as it’s up.</p>
<p><strong>Edit:</strong></p>
<p>Here’s the recording ^_^</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/syftUuf5Hpk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>With their usual model structures <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>Well, any question that transports along categorical equivalences…
But that means every question we can phrase categorically!</p>
<p>This is part of the reason so many category theorists get a bit
obsessive about phrasing everything in terms of category theoretic
jargon. It’s not <em>just</em> to make life hard for people who don’t
know the lingo (even though it might feel that way), nor is it
<em>just</em> to help us organize our own thoughts and relate different
constructions to each other (though that’s a big part of it).
One big reason to go through with the endeavor is to be able to
transport as many things as possible across an equivalence of categories,
and things phrased in a categorical language are <em>automatically</em>
invariant under these equivalences! <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>In the questions and discussion after the talk, <a href="https://jdc.math.uwo.ca/">Dan Christensen</a>
mentioned an important point: This equivalence goes much deeper than
just the homotopy categories. In fact, we get an equivalence of
$\infty$-categories between the <a href="https://ncatlab.org/nlab/show/simplicial+localization">simplicial localizations</a>
of $\mathsf{Top}$ and $s\mathsf{Set}$ at their weak equivalences,
which tells us that much more homotopical structure is preserved by
this translation! For instance, the <em>mapping spaces</em>.</p>
<p>On the one hand, this is great (since it means our translation is
<em>even better</em> than my talk lets on) and necessary (since this higher
structure is useful when working with the semantics of HoTT in
$s\mathsf{Set}$).</p>
<p>On the other hand, it requires one to say the words “$\infty$-category”,
which I was trying to avoid for concreteness reasons
(and because I’m less comfortable with them).</p>
<p>I figured I would mention it here, though, since it’s a lot easier to
have footnotes and asides in a blog post than in a talk ^_^. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>Though this ended up being good for time-management reasons as well.
My talk was basically 30 minutes on-the-nose, which I’m pretty pleased
with to be honest. It was pretty ambitious, and I’m glad I managed to
stay on time!</p>
<p>This was also good because I’m less comfortable with the
translation from HoTT into $s\mathsf{Set}$, and glossing over details
saved me from accidentally saying something false. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>Or, if you want to be <em>extremely</em> precise, $P([f[a/x]/b])$. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Thu, 06 Oct 2022 00:00:00 +0000
https://grossack.site/2022/10/06/where-are-the-open-sets.html
https://grossack.site/2022/10/06/where-are-the-open-sets.html