Chris Grossack's Blog
https://grossack.site
Life in Johnstone's Topological Topos 3 -- Bonus Axioms<p>In the <a href="/2024/07/03/life-in-johnstones-topological-topos.html">first post</a> of the series, we talked about what the topological
topos is, and how we can think about its objects (and, importantly,
how we can relate computations in the topos $\mathcal{T}$ to
computations with topological spaces in “the real world”). In <a href="/2024/07/03/topological-topos-2-algebras.html">part two</a>,
we talked about algebraic structures, and how (for example)
groups in $\mathcal{T}$ are related to topological groups.</p>
<p>In that post we alluded to the presence of ~bonus axioms~ that allow us
to reason in $\mathcal{T}$ more freely than in many other topoi. For instance,
we have access to a certain amount of choice. We also have access to a
powerful principle saying that every function between metric spaces is
$\delta$-$\epsilon$ continuous!</p>
<p>In this post we’ll spend some time talking about these bonus axioms, and
proving that they’re true (since a lot of these facts are basically folklore).</p>
<p>Let’s get to it!</p>
<hr />
<p>First, let’s take a second to recall the definition of the grothendieck
topology $J$ for $\mathcal{T}$. We’re going to be externalizing a lot
of theorems, and it’ll be good to have the open cover condition on hand.
Here’s what we wrote back in <a href="/2024/07/03/life-in-johnstones-topological-topos.html">the first post</a>, but you can of course
read more in Section 3 of Johnstone’s original paper.</p>
<blockquote>
<p>For the site with two objects, \(\{1, \mathbb{N}_\infty\}\),
every (nonempty) family of arrows \(\{X_\alpha \to 1 \}\) is covering.
So the interesting question is what a covering family of \(\mathbb{N}_\infty\)
looks like.</p>
<p>If $S$ is an infinite subset of $\mathbb{N}$, we write $f_S$ for the unique
monotone map \(\mathbb{N}_\infty \to \mathbb{N}_\infty\) whose image is
\(S \cup \{ \infty \}\).</p>
<div class="boxed">
<p>A family \(\{X_\alpha \to \mathbb{N}_\infty\}\) is covering if and only if
both</p>
<ol>
<li>It contains every constant map \(1 \to \mathbb{N}_\infty\)</li>
<li>For every infinite $T \subseteq \mathbb{N}$, there is a further
infinite subset $S \subseteq T$ with
\(f_S : \mathbb{N}_\infty \to \mathbb{N}_\infty\) in the family</li>
</ol>
<p>In particular, if a family contains every constant map
\(1 \to \mathbb{N}_\infty\) and a “tail of an infinite sequence”
\(f_{\{x \geq N\}}\) for some $N$, then that family is covering.</p>
</div>
<p>So, roughly, to prove that something “merely exists” in $\mathcal{T}$, we
have to provide a witness for every finite $n$, and these witnesses should
converge to the witness for $\infty$.</p>
<p><br /><br /></p>
<p>If we want to use the site with one object \(\{ \mathbb{N}_\infty \}\),
the condition is almost exactly the same. A family of maps is covering
if and only if both</p>
<ol>
<li>every constant map \(\mathbb{N}_\infty \to \mathbb{N}_\infty\) is in the family</li>
<li>For each infinite $T \subseteq \mathbb{N}$, there’s a further infinite
$S \subseteq T$ so that $f_S$ is in the family.</li>
</ol>
<p>This, unsurprisingly, doesn’t make too much difference.</p>
</blockquote>
<hr />
<h2 id="dependent-choice">Dependent Choice</h2>
<p>To start, $\mathcal{T}$ models <a href="https://en.wikipedia.org/wiki/Axiom_of_dependent_choice">Dependent Choice</a>.
You can find a proof in Shulman and Simpson’s aptly named note
<a href="https://ncatlab.org/nlab/files/DCTopTopos.pdf"><em>Dependent Choice in Johnstone’s Topological Topos</em></a>.</p>
<p>Say you have a relation $R \subseteq X \times X$ which is
<span class="defn">total</span> in the sense that
$\forall x . \exists y . R(x,y)$.</p>
<p>Then DC says for each $x_0 : X$, there’s a function
$f : \mathbb{N} \to X$ so that $f(0) = x_0$ and for each $n$,
$R(f(n), f(n+1))$.</p>
<p>This is intuitively obvious. After all, we start with $x_0$, then
by totality the set \(\{ y \mid R(x_0,y) \}\) is inhabited. So we
can choose an element $x_1$ from this set. Similarly we can choose
an $x_2$ from \(\{y \mid R(x_1,y) \}\), and so on. Notice that the
<em>choices</em> we make are allowed to <em>depend</em> on the choices that came before.
After all, it’s possible that for two different choices
\(x_1,x_1' \in \{ y \mid R(x_0,y) \}\) the sets \(\{ y \mid R(x_1,y) \}\) and
\(\{ y \mid R(x_1',y) \}\) might be different, leading to different
allowable choices of $x_2$!</p>
<p>Thus, DC basically tells us that recursive definitions work, even if we
don’t have a canonical way to choose one of many options at each
recursive stage. Indeed, most recursive definitions work by first choosing
an $x_0$, and then arguing that the set of “allowable” next steps is
always inhabited<sup id="fnref:16" role="doc-noteref"><a href="#fn:16" class="footnote" rel="footnote">1</a></sup>. For more information about DC and how to think
about it, I recommend Karagila’s excellent <a href="https://arxiv.org/pdf/2010.15632">paper</a> on the subject.</p>
<div class="boxed">
<p>For those who like type theory,
DC says that for every binary relation $R$ on a type $X$,</p>
\[\displaystyle
\mathtt{dc} :
\left (
\prod_{x:X} \left \lVert \sum_{y:X} R(x,y) \right \rVert
\right )
\to
\prod_{x_0 : X}
\left \lVert
\sum_{f : \mathbb{N} \to X} (f(0) = x_0) \times \left ( \prod_{n:\mathbb{N}} R(f(n), f(n+1)) \right )
\right \rVert\]
<p>or, cashing out these \(\lVert \Sigma \rVert\)s for \(\exists\)s,</p>
<p>\(\left ( \forall (x:X) . \exists (y:X) . R(x,y) \right )
\to
\forall (x_0 : X) . \exists (f : \mathbb{N} \to X) . f(0) = x_0 \land \forall n . R(f(n), f(n+1))\)</p>
</div>
<p>Here’s an idiomatic example of dependent choice in action: The
<a href="https://en.wikipedia.org/wiki/Baire_category_theorem">Baire Category Theorem</a> for complete metric spaces.</p>
<div class="boxed">
<p>Let $(X,d)$ be a (cauchy) complete metric space<sup id="fnref:14" role="doc-noteref"><a href="#fn:14" class="footnote" rel="footnote">2</a></sup> with inhabited
(strongly<sup id="fnref:15" role="doc-noteref"><a href="#fn:15" class="footnote" rel="footnote">3</a></sup>) dense open sets $U_1, U_2, U_3, \ldots$.</p>
<p>Then the countable intersection $\bigcap_n U_n$ is still (strongly) dense.</p>
</div>
<p>The usual proof (say, from Karagila’s notes) doesn’t use LEM,
so it goes through unchanged.
We’ll present it here paying special attention to the
use of DC.</p>
<p>$\ulcorner$
Let $V$ be open in $X$. We need to show that $V \cap \bigcap_n U_n$ is
inhabited.</p>
<p>Since $U_1$ is strongly dense, we know that $V \cap U_1$ is inhabited,
say by $x_1$. Now since $U_1 \cap V$ is open, we can find a radius
$r_1$ so that</p>
<ol>
<li>$0 \lt r_1 \lt 2^{-1}$</li>
<li>the (strongly closed) ball
\(\overline{B(x_1,r_1)} = \{ y \mid d(x_1,y) \leq r_1 \}\) is contained in $V \cap U_1$</li>
</ol>
<p>By dependent choice (and strong density of each $U_k$),
we may recursively build a sequence of pairs $(x_n,r_n)$ so that</p>
<ol>
<li>$0 \lt r_{n+1} \lt 2^{-(n+1)}$</li>
<li>the (strongly closed) ball $\overline{B(x_{n+1},r_{n+1})}$
is contained in $B(x_n,r_n) \cap U_{n+1}$.</li>
</ol>
<p>By construction, then, the $x_n$s assemble into a cauchy sequence whose
limit $x_\infty$ lies in each $B(x_n,r_n)$. Therefore
$x_\infty \in \bigcap_n B(x_n,r_n) \subseteq V \cap \bigcap_n U_n$,
so that $\bigcap_n U_n$ is dense, as desired.
<span style="float:right">$\lrcorner$</span></p>
<div class="boxed">
<p>Can you build a relation $R$ on
$(X \times \mathbb{R}_{\gt 0} \times \mathbb{N})$ so that
$R \big ( (x,r,n), \ (y,s,m) \big )$ holds exactly when
$m=n+1$ and $(y,s)$ satisfy the above conditions compared to $(x,r)$?</p>
<p>This will let you see <em>precisely</em> how dependent choice is used above.</p>
</div>
<p>Dependent Choice implies <a href="https://ncatlab.org/nlab/show/countable+choice">Countable Choice</a>, which itself implies
<a href="https://ncatlab.org/nlab/show/countable+choice#ACN2">Weak Countable Choice</a>. But WCC<sup id="fnref:21" role="doc-noteref"><a href="#fn:21" class="footnote" rel="footnote">4</a></sup> implies that the
<a href="https://ncatlab.org/nlab/show/Dedekind+cut">dedekind reals</a> and the <a href="https://ncatlab.org/nlab/show/Cauchy+real+number">cauchy reals</a> agree. And indeed one
can show directly that in $\mathcal{T}$ both the dedekind and cauchy reals
are given by $よ\mathbb{R}$.</p>
<p><br /></p>
<h2 id="brouwers-principle">Brouwer’s Principle</h2>
<p>The next ~bonus axiom~ we’ll talk about is
Brouwer’s Continuity Principle that
“Every function $f : \mathbb{R} \to \mathbb{R}$ is continuous”!</p>
<p>Precisely<sup id="fnref:11" role="doc-noteref"><a href="#fn:11" class="footnote" rel="footnote">5</a></sup>:</p>
<div class="boxed">
<p>\(\mathcal{T} \vDash
\forall f : \mathbb{R}^\mathbb{R} . \
\forall \epsilon : \mathbb{R}_{\gt 0} . \
\forall a : \mathbb{R} . \
\exists \delta : \mathbb{R}_{\gt 0} . \
\forall b : \mathbb{R} . \
d(a,b) \lt \delta \to d(fa,fb) \lt \epsilon\)</p>
</div>
<p>In fact, this is true for any (external) metric spaces $X$ and $Y$
where $X$ is (externally) locally compact! In particular, it’s also
true that every function $\mathbb{N}^\mathbb{N} \to \mathbb{N}$ is
$\epsilon$-$\delta$ continuous.</p>
<p>Note that it’s crucial here that we use the truncated $\exists$
rather than the untruncated $\Sigma$ in the statement of this theorem.
Martín Escardó and Chuangjie Xu have <a href="https://doi.org/10.4230/LIPIcs.TLCA.2015.153">shown</a> that the untruncated
version of this theorem isn’t just false in $\mathcal{T}$, it’s
<em>provably false</em> in every topos!</p>
<p>Regardless, it’s shockingly hard to find this continuity principle
written down anywhere, but it’s
cited in lots of places! It’s definitely part of the folklore,
and I’m happy to share a full proof! It’s a bit long, though, so I’m leaving
it as an “appendix” at
the bottom of this post. If you know of a reference, or of a
slicker proof than the one I found, I would REALLY love to hear
about it<sup id="fnref:13" role="doc-noteref"><a href="#fn:13" class="footnote" rel="footnote">6</a></sup>!</p>
<p>Regardless, the truth of Brouwer’s principle tells us that
$\mathcal{T}$ is a rather stronger version of <a href="https://en.wikipedia.org/wiki/Solovay_model">Solovay’s Model</a>.
Solovay’s model validates
\(\mathsf{LEM}+\mathsf{DC}+\)“every function $\mathbb{R} \to \mathbb{R}$ is measurable”.</p>
<p>In $\mathcal{T}$, we have $\mathsf{DC}$ and the stronger
“every function $\mathbb{R} \to \mathbb{R}$ is continuous”. But the price
we pay is LEM.</p>
<p><br /></p>
<h2 id="omniscience-principles">Omniscience Principles</h2>
<p>We can ask about other nonconstructive principles too. For instance,
Bishop’s <a href="https://ncatlab.org/nlab/show/principle+of+omniscience">Principles of Omniscience</a>!</p>
<p>First, let’s look at the Limited Principle of Omniscience (LPO):</p>
<div class="boxed">
<p>The <span class="defn">Limited Principle of Omniscience</span>:
says that every sequence of bits is either $0^\omega$ or
contains a $1$. That is:</p>
\[\forall s : 2^\mathbb{N} . (\forall n . s(n) = 0) \lor (\exists n . s(n) = 1)\]
<p>In the presence of countable choice (which we have in $\mathcal{T}$),
this is equivalent to the <em>analytic</em> LPO, which says:</p>
\[\forall x : \mathbb{R} . (x \lt 0) \lor (x = 0) \lor (x \gt 0)\]
<p>and is further equivalent to the type-theoretic condition that
the obvious embedding</p>
\[\mathbb{N} + \{ \infty \} \hookrightarrow \mathbb{N}_\infty\]
<p>is an isomorphism.</p>
</div>
<p>It’s clear from the last condition that LPO is false in $\mathcal{T}$.
Since both \(\mathbb{N} + \{ \infty \}\) and \(\mathbb{N}_\infty\) are
sequential, these internal types correspond to the expected spaces externally,
where this is obviously not an isomorphism. After all, one space is
discrete and the other isn’t.</p>
<p>That said, it can be hard to find example computations of people
statements internal to a topos to statements in the real world,
so just for fun let’s prove this again in a more complicated way:</p>
<p>$\ulcorner$
If it were true, then we would know $1 \Vdash \text{LPO}$. Now
cashing out the universal quantifier, we would know that
for every \(s \in 2^\mathbb{N}(\mathbb{N}_\infty)\)</p>
\[\mathbb{N}_\infty \Vdash (\forall n . s_k(n) = 0_k) \lor (\exists n . s_k(n) = 1_k)\]
<p>Here \(s_k : \mathbb{N}_\infty \to 2^\mathbb{N}\) is allowed to be any
convergent sequence in cantor space, and we interpret $0_k$ and $1_k$ as
constant sequences.</p>
<p>Let’s take $s_k$ to be the sequence $0^k 1^\omega$.
That is, the $k$th element of this sequence, $s_k$, should be the point in
cantor space with $k$ many $0$s followed by an infinite tail of $1$s.
Note this sequence converges to $0^\omega$.</p>
<p>Now what would it mean to have $(\forall n . s(n) = 0) \lor (\exists n . s(n) = 1)$?
We would have an open cover of \(\mathbb{N}_\infty\) where each element of
that cover thinks that one of these disjuncts is true. But every covering
seive of \(\mathbb{N}_\infty\) contains a function $f_U$ for $U$ an infinite
subset of $\mathbb{N}$.</p>
<p>Now restricting $s$ to this member of the cover amounts to restricting $s$
to a subsequence, $s_{r_k}$.</p>
<p>Is it possible that \(\mathbb{N}_\infty \Vdash \forall n . s_{r_k}(n) = 0_{r_k}\)?
This says for every convergent sequence
\(n_k \in \mathbb{N}(\mathbb{N}_\infty)\), we must have \(s_{r_k}(n_k) = 0_{r_k}\)
for all $k$. Of course, it’s easy to find a convergent sequence where this
is false! We can just choose \(n_1 \gt r_1\) to make \(s_{r_1}(n_1) = 1 \neq 0\).</p>
<p>Is it possible for \(\mathbb{N}_\infty \Vdash \exists n . s_{r_k}(n) = 1_{r_k}\)?
This says we can pass to a further subsequence \(s_{\ell_{r_k}}\) so that
for some convergent sequence \(n_k \in \mathbb{N}(\mathbb{N}_\infty)\) we
have \(s_{\ell_{r_k}}(n_k) = 1_k\) for all $k$. But of course this is false too!
Every convergent sequence of naturals is eventually constant, say $n_k = N$
for $k \gg 1$. Then for $k$ large enough, we’ll have both $n_k = N$ and
\(\ell_{r_k} \gt N\), in which case \(s_{\ell_{r_k}}(n_k) = 0 \neq 1\).</p>
<p>So we see that LPO externalizes to a false claim, and thus is not validated
by $\mathcal{T}$.
<span style="float:right">$\lrcorner$</span></p>
<div class="boxed">
<p>As an easy exercise, can you use LPO to build a function
$\mathbb{R} \to \mathbb{R}$ which is <em>not</em> $\epsilon$-$\delta$
continuous? This provides <em>another</em> proof that $\mathcal{T} \not \models \text{LPO}$,
since it contradicts Brouwer’s principle.</p>
<p>In fact, we don’t even need Bouwer’s principle to contradict! By yoneda,
$\text{Hom}(\mathbb{R}, \mathbb{R})$ is the set of continuous functions
on $\mathbb{R}$, but if you build a function in $\mathcal{T}$ you know what
that function does externally on points! In particular, you can contradict
with continuity “in the real world”.</p>
</div>
<p><br /></p>
<p>Next, let’s look at the <em>Lesser</em> Limited Principle of Omniscience (LLPO):</p>
<div class="boxed">
<p>The <span class="defn">Lesser Limited Principle of Omniscience</span>
says that</p>
\[\forall s : 2^\mathbb{N} . \exists ! n . s(n) = 1 .
(\forall k . s(2k) = 0) \lor (\forall k . s(2k+1) = 0)\]
<p>This is equivalent to a kind of de Morgan’s law</p>
\[\forall s, t : 2^\mathbb{N} .
\lnot (\exists n . s(n) = 1 \land \exists m . t(m) = 1) \to
(\forall n . s(n) = 0 \lor \forall m . t(m) = 0)\]
<p>and, as before, under countable choice this is equivalent to the <em>analytic</em> LLPO,</p>
<p>\(\forall x : \mathbb{R}. (x \geq 0) \lor (x \leq 0)\)</p>
</div>
<p>This turns out to be true<sup id="fnref:17" role="doc-noteref"><a href="#fn:17" class="footnote" rel="footnote">7</a></sup>! Just to show more ways to reason about the
internal logic of topoi, we’ll prove this one by working with the category
$\mathcal{T}$ directly. Since type theoretic functions externalize to
arrows in $\mathcal{T}$, though, we’ll use type theory to label our arrows.</p>
<p>$\ulcorner$
Proposition 6.2 in Johnstone’s original paper implies that $\mathbb{R}$
is the pushout of the closed cover</p>
<p style="text-align:center;">
<img src="/assets/images/life-in-johnstones-topological-topos/closed-pushout.png" width="25%" />
</p>
<p>Now showing $\forall x : \mathbb{R} . (x \geq 0) \lor (x \leq 0)$ amounts
to building a section of the projection
$\pi : \sum_{x : \mathbb{R}} \lVert (x \geq 0) + (x \leq 0) \rVert$.
Here I’ve also cashed out the $\lor$ for a <a href="https://planetmath.org/37propositionaltruncation">propositional truncation</a>
of a coproduct.</p>
<p>But by the universal property of the pushout, we get a map
$s : \mathbb{R} \to \sum_{x : \mathbb{R}} \lVert (x \geq 0) + (x \leq 0) \rVert$
as below. Note the truncation \(\lVert (x \geq 0) + (x \leq 0) \rVert\)
is <em>crucial</em> for making the middle square commute!</p>
<p style="text-align:center;">
<img src="/assets/images/life-in-johnstones-topological-topos/llpo-universal-property.png" width="100%" />
</p>
<p>Moreover, since both $\pi s$ and $\text{id}_\mathbb{R}$ make the outer
square commute, they must be equal by uniqueness in the universal property.
So $s$ is the desired section of $\pi$, and $\mathcal{T}$ models LLPO.
<span style="float:right">$\lrcorner$</span></p>
<div class="boxed">
<p>As a nice exercise, check that internal to $\mathcal{T}$ the type
$\mathbb{R}$ is equivalent to the quotient type<sup id="fnref:19" role="doc-noteref"><a href="#fn:19" class="footnote" rel="footnote">8</a></sup></p>
\[\mathbb{R}_{\geq 0} + \mathbb{R}_{\leq 0} \big / \mathtt{inl}(0) \sim \mathtt{inr}(0)\]
<p>and use this fact to give a purely type theoretic proof of that LLPO
holds in $\mathcal{T}$.</p>
<p><br /></p>
<p>As another nice (but quite tricky!) exercise, try externalizing
the statement of LLPO and proving it “directly” by seeing that it
externalizes to something true!</p>
</div>
<p><br /><br /></p>
<p>Next on this list is Markov’s Principle (MP):</p>
<div class="boxed">
<p><span class="defn">Markov’s Principle</span> says that</p>
\[\forall s : 2^\mathbb{N} .
(\lnot \forall n . s(n) = 0) \to (\exists n . s(n) = 1)\]
<p>Again this is equivalent (under CC) to an <em>analytic</em> version<sup id="fnref:20" role="doc-noteref"><a href="#fn:20" class="footnote" rel="footnote">9</a></sup></p>
\[\forall x : \mathbb{R}. \lnot (x=0) \to x \# 0\]
<p>Here \(\#\) means that $x$ is <a href="https://en.wikipedia.org/wiki/Apartness_relation">apart</a> from $0$. That is,
$\exists q : \mathbb{Q} . (x \lt q \lt 0) \lor (0 \lt q \lt x)$.</p>
</div>
<p>MP is true in $\mathcal{T}$, and this is not so hard to show.
We’ll write this proof in a slightly more conversational style, but we
encourage the reader interested in learning topos theory to check all
the details with the forcing language.</p>
<p>$\ulcorner$
We want to show</p>
\[1 \Vdash
\forall s : 2^\mathbb{N} .
(\lnot \forall n . s(n) = 0) \to (\exists n . s(n) = 1)\]
<p>so we fix a convergent sequence \(s_k : \mathbb{N}_\infty \to 2^\mathbb{N}\).
We want to show that if, for all
\(f : \mathbb{N}_\infty \to \mathbb{N}_\infty\)</p>
\[\mathbb{N}_\infty \not \Vdash \forall n . s_{fk}(n) = 0 \quad \quad (\star)\]
<p>then we must have</p>
\[\mathbb{N}_\infty \Vdash \exists n . s_k(n) = 1.\]
<p>To show this existential claim, we need to provide a conergent sequence
$n_k$ so that each $s_k(n_k) = 1$. But taking $f$ to be a constant function
in $(\star)$, we learn that such an $n_k$ exists for each $k$. Moreover,
since \(s_k \to s_\infty\), there is a $k \gg 1$ so that $s_k$ and
$s_\infty$ agree on the first $n_\infty + 1$ many bits, so that we may take
$n_k = n_\infty$ when $k$ is large enough. Thus the sequence converges,
as desired.
<span style="float:right">$\lrcorner$</span></p>
<p><br /><br /></p>
<p>Now WLPO is easy:</p>
<div class="boxed">
<p>The <span class="defn">Weak Limited Principle of Omniscience</span> says that</p>
\[\forall s : 2^\mathbb{N}. (\forall n . s(n) = 0) \lor (\lnot \forall n . s(n) = 0)\]
<p>This is equivalent to a kind of excluded middle, and as expected there’s an
analytic version (equivalent in the presence of CC):</p>
<p>\(\forall x : \mathbb{R} . (x = 0) \lor \lnot (x=0)\)</p>
</div>
<p>Now, it’s easy to see that MP + WLPO $\implies$ LPO
(look at the analytic versions). So we learn indirectly that
$\mathcal{T}$ cannot satisfy WLPO. Of course, here’s a more direct proof
that the analytic version can’t work:</p>
<p>$\ulcorner$
Consider the sequence $x_n = \frac{1}{n}$, converging to $0$, as an
element of \(\mathbb{R}(\mathbb{N}_\infty)\).</p>
<p>If $\mathcal{T}$ were to model WLPO, it would mean (among other things)
that some subsequence of $x_n$ would be either everywhere $0$ or everywhere
nonzero. But no subsequence has this property, since $x_n$ is nonzero
for each finite $n$, but zero at $n=\infty$.</p>
<p>So $\mathcal{T}$ does not model WLPO.
<span style="float:right">$\lrcorner$</span></p>
<p><br /><br /></p>
<p>As an aside, in all of these statements we’re using the “truncated”
$\lor$ and $\exists$, and it’s natural to ask what happens if we change
these to their “untruncated” versions $+$ and $\Sigma$.</p>
<p>It’s a theorem of Martín Escardó that</p>
<ul>
<li>truncated and untruncated LPO are equivalent</li>
<li>truncated and untruncated WLPO are equivalent, and are equivalent to untruncated LLPO</li>
<li>truncated LLPO is weaker than untruncated LLPO</li>
</ul>
<p>In fact, in his <a href="https://www.cs.bham.ac.uk/~mhe/agda/Taboos.LLPO.html">agda files</a>, Martín wonders if there’s a place in the
literature where untruncated LLPO and WLPO are shown to be inequivalent.</p>
<p>He mentions that $\mathcal{T}$ should be an example, and here
we’ve shown that in fact it is! After all, $\mathcal{T} \models \text{LLPO}$
but $\mathcal{T} \not \models \text{WLPO}$!</p>
<hr />
<h2 id="bar-and-fan-theorems">Bar and Fan Theorems</h2>
<p>The Bar and Fan theorems are closely related to the nice properties of
baire space and cantor space (respectively) as <em>spaces</em> rather than as
locales. The locales are always well behaved, but in some topoi these
locales fail to have enough points, so that the baire space and cantor space
as sets of points may be lacking.</p>
<p>Since we showed in <a href="/2024/07/03/life-in-johnstones-topological-topos.html">part 1</a> that spatial sequential regular locales always have
enough points in $\mathcal{T}$, we see that baire space and cantor space
both have enough points! By Propositions 3.12 and 3.13 in van den Berg and
Moerdijk’s
<a href="https://www.sciencedirect.com/science/article/pii/S0168007212000292"><em>Derived rules for predicative set theory: An application of sheaves</em></a>
we see that the Monotone Bar Theorem and the Full Fan Theorem hold in
$\mathcal{T}$.</p>
<p>This is also the <em>best we can do</em>. Since the Full Bar Theorem is known to
imply LPO, and $\mathcal{T} \not \models \mathsf{LPO}$ we know that
we can’t improve the monotone bar theorem to the full bar theorem in $\mathcal{T}$.</p>
<div class="boxed">
<p>As a not-so-hard exercise, verify the <em>decidable</em> fan theorem by hand!
That is, prove</p>
\[\mathcal{T} \models
\forall (B : 2^{\lt \mathbb{N}} \to 2) .
\ulcorner B \text{ is a monotone bar} \urcorner
\to
\ulcorner B \text{ is uniform} \urcorner\]
<p>Or, entirely in symbols, prove</p>
\[\mathcal{T} \models
\forall (B : 2^{\lt \mathbb{N}} \to 2) .
\left (
\begin{array}{c}
\underbrace
{
\forall s : 2^{\lt \mathbb{N}} . s \in B \to (s0 \in B \land s1 \in B)
}_{\text{$B$ is monotone}} \\
\land \quad
\underbrace
{
\forall \alpha : 2^\mathbb{N} . \exists n : \mathbb{N} .
\alpha \! \upharpoonright_n \in B
}_{\text{$B$ is a bar}}
\end{array}
\right )
\to
\Big (
\underbrace
{
\exists N : \mathbb{N} . \forall \alpha : 2^\mathbb{N} .
\alpha \! \upharpoonright_N \in B
}_{\text{$B$ is a uniform bar}}
\Big )\]
<p>Note that $B : 2^{\lt \mathbb{N}} \to 2$ is a <em>decidable</em> subset of
$2^{\lt \mathbb{N}}$. To prove the <em>full</em> bar theorem you would want to
prove the same theorem for all subsets of $2^{\lt \mathbb{N}}$. That is,
for $B : 2^{\lt \mathbb{N}} \to \Omega$.</p>
<p>As a ~bonus exercise~, use what you know about
discrete topological spaces and subobjects in $\mathcal{T}$ to argue that a
semantic proof of this theorem is easily modified to give a proof of
the full bar theorem.</p>
</div>
<details>
<summary>discussion of the ~bonus exercise~</summary>
The idea here is that a general subobject of a sequential space X is a
subset of the points of X equipped with some topology making the inclusion
continuous.
A decidable subobject is a clopen subset of the points of $X$ equipped with the
induced topology (do you see why?).
Of course, since $2^{\lt \mathbb{N}}$ is discrete, it's not hard to see that
_every_ subobject is decidable! This means in proving the theorem for
decidable subobjects you've actually proven the theorem for _all_ subobjects!
</details>
<hr />
<h2 id="de-morgan-and-lem">De Morgan and LEM</h2>
<p>Obviously LEM fails, since $\Omega \not \cong 1+1$. But what about
De Morgan’s Laws?</p>
<p>It turns out that $\mathcal{T}$ is not de Morgan. In another paper
(the aptly named <em>Conditions Related to de Morgan’s Law</em>) Johnstone gives a
slew of conditions equivalent to a topos being de Morgan. In particular,
de Morgan-ness is equivalent to</p>
<ol>
<li>$[\top,\bot] : 1+1 \to \Omega_{\lnot \lnot}$ being an isomorphism</li>
<li>$1+1$ being <a href="https://ncatlab.org/nlab/show/injective+object">injective</a></li>
</ol>
<p>But we can show both of these are false
(thus giving two proofs that $\mathcal{T}$ is not de Morgan).</p>
<p>For $1$, we can compute that \(\mathcal{T}_{\lnot \lnot}\) is equivalent to
$\mathsf{Set}$, where the equivalence sends a set $X$ the space $X$ equipped
with the indiscrete topology. This is stated at the end of Section 3 of
Johnstone’s original paper. In particular, $1+1$, which has the discrete
topology, is <em>not</em> isomorphic to \(\Omega_{\lnot \lnot}\) (which is indiscrete).</p>
<p>For $2$, we know that in $\mathsf{Seq}$ there’s a map
$(0,1) + (2,3) \to 1+1$ which doesn’t extend to a map $(0,3) \to 1+1$.
Since monos in $\mathsf{Seq}$ are still monos in $\mathcal{T}$
(since the inclusion is a right adjoint), we’re done.</p>
<hr />
<p>This was a <em>long one</em>! Multiple months in the making, and easily the most
research I’ve ever done for a blog post (both in terms of reading done
and original proofs). It was super rewarding, though, and I feel way better
about the topological topos and its internal logic, as well as about
topos theory more broadly ^_^.</p>
<p>Hopefully I was able to explain it clearly enough to be useful to all
of you too! I know it’s a TON of information, and in the process of revising
this I really struggled to tell if it’s well exposited or not since it
kind of feels like this</p>
<p style="text-align:center;">
<img src="/assets/images/life-in-johnstones-topological-topos/fire-hose.gif" width="50%" />
</p>
<p>But even though it’s a <em>ton</em> of information, hopefully each section is
digestible!</p>
<p>Thanks again for reading all. I have other posts planned, about my thesis work
for a change, but I think I’m going to take a break from writing after this, haha.</p>
<p>Stay safe, and talk soon! 💖</p>
<hr />
<h2 id="appendix-a-proof-that-johnstones-topos-models-brouwers-continuity-principle">Appendix: A Proof that Johnstone’s Topos Models Brouwer’s Continuity Principle</h2>
<p>If you’re not super familiar with externalizing formulas, you
might want to read my <a href="/2022/12/13/internal-logic-examples.html">old blog post</a> with a bunch of simpler
examples before trying to tackle this one!</p>
<p>We’ll be doing this computation using the site with one object \(\mathbb{N}_\infty\).</p>
<div class="boxed">
<p>We’ll prove a kind of “theorem schema”. Every metric space is sequential,
so for any metric spaces $X$ and $Y$ in “the real world” we can think of
$X$ and $Y$ as objects of $\mathcal{T}$. Now if $X$ is moreover locally
compact, we’ll prove that $\mathcal{T}$ models</p>
\[\ulcorner
\text{every function $X \to Y$ is $\epsilon$-$\delta$ continuous}
\urcorner\]
<p>Precisely:</p>
<p>\(\mathcal{T} \vDash
\forall f : Y^X . \
\forall \epsilon : \mathbb{R}_{\gt 0} . \
\forall a : X . \
\exists \delta : \mathbb{R}_{\gt 0} . \
\forall b : X . \
d(a,b) \lt \delta \to d(fa,fb) \lt \epsilon\)</p>
</div>
<p>$\ulcorner$
We want to show that</p>
\[\mathbb{N}_\infty \Vdash
\ulcorner
\text{every function $X \to Y$ is $\epsilon$-$\delta$ continuous}
\urcorner\]
<p>Cashing out the universal quantifiers, we want to show that
for any continuous functions
\(f : \mathbb{N}_\infty \times X \to Y\),
\(\epsilon : \mathbb{N}_\infty \to \mathbb{R}_{\gt 0}\),
and
\(a : \mathbb{N}_\infty \to X\) in “the real world” we have</p>
\[\mathbb{N}_\infty \Vdash
\exists \delta : \mathbb{R}_{\gt 0} . \
\forall b : X . \
d(a,b) \lt \delta \to d(fa,fb) \lt \epsilon\]
<p>To witness the existential quantifier, we need to find a cover
of \(\mathbb{N}_\infty\), and produce a real-world $\delta$ defined on
each member of the cover.</p>
<p>Finding a cover basically amounts to finding a cofinite subset of
$\mathbb{N}$, and passing to a tail of all the sequences in sight.
With this in mind, we choose a compact neighborhood $K$ of $a_\infty$
(using local compactness of $X$), and choose \(\delta^*\) so that
\(B(a_\infty, \delta^*)\) is contained in $K$ and for every
$x \in B(a_\infty, \delta^*)$ we have
$d(f_\infty a_\infty, f_\infty x) \lt \frac{\epsilon_\infty}{6}$
(using continuity of $f_\infty$).</p>
<p>Then, let $N$ be large enough that for all $n \gt N$:</p>
<ol>
<li>$\epsilon_n \gt \frac{\epsilon_\infty}{2}$</li>
<li>$d(f_n a_n, f_\infty a_\infty) \lt \frac{\epsilon_\infty}{6}$</li>
<li>For all $x \in K$, we have $d(f_\infty x, f_n x) \lt \frac{\epsilon_\infty}{6}$</li>
<li>$d(a_n, a_\infty) \lt \delta^*$</li>
</ol>
<p>In condition (3) we’ve used the fact that $f_n$ converges to $f_\infty$
<em>uniformly</em> on the compact set $K$.</p>
<p>Now we take as our covering familiy</p>
<ul>
<li>the constant functions \(k : \mathbb{N}_\infty \to \mathbb{N}_\infty\)</li>
<li>\(i_S : \mathbb{N}_\infty \to \mathbb{N}_\infty\) for any infinite subset
\(S \subseteq \{ n \gt N \} \subseteq \mathbb{N}\).</li>
</ul>
<p>As a reminder, the function $i_S$ is the unique monotone function
\(\mathbb{N}_\infty \to \mathbb{N}_\infty\) whose image is \(S \cup \{\infty\}\).</p>
<p>Now on each member $g$ of this family, we need to produce a function
\(\delta : \mathbb{N}_\infty \to \mathbb{R}_{\gt 0}\) which witnesses</p>
\[\mathbb{N}_\infty \Vdash
\forall b : X . \
d(a_{g(-)}, b) \lt \delta \to d(f_{g(-)}(a_{g(-)}), f_{g(-)}(b)) \lt \epsilon_{g(-)}\]
<p>Cashing out the last universal quantifier, we need to know that for all
\(h : \mathbb{N}_\infty \to \mathbb{N}_\infty\) and for all
continuous \(b : \mathbb{N}_\infty \to X\),</p>
<p>If \(\mathbb{N}_\infty \Vdash d(a_{gh(-)},b) \lt \delta_{h(-)}\)
then we must have
\(\mathbb{N}_\infty \Vdash d(f_{gh(-)}(a_{gh(-)}), f_{gh(-)}(b)) \lt \epsilon_{gh(-)}.\)</p>
<p>So let’s build such a $\delta$ for the two cases in our cover!</p>
<p><br /></p>
<p>First, if $g$ is the constant $k$ function. Then we need a convergent sequence
$\delta_n$ so that for any function \(h : \mathbb{N}_\infty \to \mathbb{N}_\infty\)
and any convergent sequence $b_n$ in $X$,</p>
<p>If $d(a_k,b_n) \lt \delta_{hn}$ for all $n$,
then $d(f_k(a_k), f_k(b_n)) \lt \epsilon_k$ for all $n$ too.</p>
<p>Of course, this is easy to arrange by taking $\delta_n$ to be the
constant sequence witnessing continuity of $f_k$ at $a_k$.</p>
<p><br /></p>
<p>Second, if $g = i_S$ is the unique monotone function whose image is
\(S \cup \{ \infty \}\). Recall also that every member of $S$ is at least $N$.</p>
<p>Then we define $\delta_n$ to be \(\delta^* - d(a_{i_S n}, a_\infty)\).
Note this <em>is</em> convergent, with limit \(\delta^*\). Now we must show
for any function \(h : \mathbb{N}_\infty \to \mathbb{N}_\infty\) and
for any convergent sequence \(b_n\) in $X$ that</p>
<p>If $d(a_{i_S h n}, b_n) \lt \delta_{hn}$ for all $n$,
then $d(f_{i_S h n}(a_{i_S h n}), f_{i_S h n}(b_n)) \lt \epsilon_{i_S h n}$.</p>
<p>But since $i_S h n \gt N$ and
\(d(b_n, a_\infty) \leq d(b_n, a_{i_S h n}) + d(a_{i_S h n}, a_\infty) \lt \delta^*\)
we see that</p>
<ol>
<li>$\epsilon_{i_S h n} \gt \frac{\epsilon_\infty}{2}$</li>
<li>$d(f_{i_S h n}(a_{i_S h n}), f_{\infty}(a_\infty)) \lt \frac{\epsilon_\infty}{6}$</li>
<li>$d(f_\infty b_n, f_{i_S h n} b_n) \lt \frac{\epsilon_\infty}{6}$</li>
</ol>
<p>so that we can compute</p>
\[\begin{aligned}
d(f_{i_S h n}(a_{i_S h n}), f_{i_S h n}(b(n)))
&\leq
d(f_{i_S h n}(a_{i_S h n}), f_\infty(a_\infty)) +
d(f_\infty(a_\infty), f_\infty(b_n)) +
d(f_\infty(b_n), f_{i_S h n}(b_n)) \\
&\leq
\frac{\epsilon_\infty}{6} +
\frac{\epsilon_\infty}{6} +
\frac{\epsilon_\infty}{6} \\
&=
\frac{\epsilon_\infty}{2} \\
&\lt
\epsilon_{i_S h n}
\end{aligned}\]
<p>As desired.
<span style="float:right">$\lrcorner$</span></p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:16" role="doc-endnote">
<p>You might wonder why we need a “nonconstructive” axiom to do this. Why
can’t we use induction on $\mathbb{N}$?</p>
<p>After all, we can prove (constructively, in type theory) that</p>
\[\left (
\prod_{x:X} \sum_{y:X} R(x,y)
\right )
\to
\left (
\prod_{x_0 : X }
\sum_{f : \mathbb{N} \to X}
f(0) = x_0 \land \prod_{n:\mathbb{N}} R(f(n), f(n+1))
\right )\]
<p>(and this makes a nice exercise!)</p>
<p>The difference lies in $\sum$ vs $\exists$! To build a term
of type $\prod_x \sum_y R(x,y)$ is to build a function that
eats an $x$ and returns a $y$ alongside a proof that $R(x,y)$.
This gives us a <em>canonical</em> choice in \(\{ y \mid R(x,y) \}\) –
just use the one this function gave us!</p>
<p>Dependent choice works with something much weaker. It says we can build
such a function even when there <em>merely exists</em> such a $y$, without
being handed a witness! (Of course, the function we’re given only
merely exists too)</p>
<p>Think about the semantics in $\mathsf{Sh}(B)$ for a moment.
Here, to say that $\exists y . R(x,y)$ is to say that there’s an
open cover of $B$ and a local witness $y$ on each element of the
cover. But it’s entirely possible for these witnesses to not glue
into a global witness! <a href="#fnref:16" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:14" role="doc-endnote">
<p>I don’t know if there are constructive subtleties with the notion of
cauchy completeness which might be relevant here, and since I really
want to get this blog post out I don’t want to read a bunch of literature
on constructive metric spaces to try and figure it out…</p>
<p>If anyone happens to know some facts about constructive metric spaces, though,
I would love to hear about them! But for now, treat this example as being
more to showcase how dependent choie works than to say anything profound
about the topological topos. <a href="#fnref:14" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:15" role="doc-endnote">
<p>A set $D \subseteq X$ is called <span class="defn">Strongly Dense</span>
if for any inhabited open set $V$ we know that $D \cap V$ is inhabited. <a href="#fnref:15" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:21" role="doc-endnote">
<p>Thanks to Madeleine Birchfield for pointing out that I originally
linked the wrong “Weak Countable Choice” here. I didn’t realize that
there are <em>two</em> things, both called “weak countable choice”, and
<em>both</em> implied by either CC or LEM!
The one that proves the
dedekind and cauchy reals agree is unambiguously called
\(\mathsf{AC}_{\mathbb{N},2}\). At time of writing it’s listed as
“another weak countable choice” on nlab, and it means that every
$\mathbb{N}$-indexed sequence of inhabited subsets of \(\{0,1\}\)
has a choice function. <a href="#fnref:21" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:11" role="doc-endnote">
<p>This is the first time in a while I’ve actually written down the definition of
(metric space) continuity in full! No wonder students struggle with
this, haha. I’ve forgotten what a mouthful it is! <a href="#fnref:11" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:13" role="doc-endnote">
<p>Here we have to refer to external metric spaces, and we prove a
kind of “theorem schema”. I suspect something like this is true
purely internally, if we can find the right definition of a
“metric space” in $\mathcal{T}$. Obviously we want a distance
function \(d : X \times X \to \mathbb{R}_{\geq 0}\) satsifying the
usual axioms. But we also need to know that the topology $d$
puts in $X$ agrees with the <em>intrinsic</em> topology on $X$!</p>
<p>Since $d$ is externally continuous we know that metric-open balls will
always be open in $X$, so I think the condition is something like
“every open of $X$ contains an open ball” or maybe
“every open of $X$ is the union of the open balls inside it”.</p>
<p>This should be expressible in the internal logic since the opens of
$X$ are exactly the inhabitants of $\Sigma^X$ where $\Sigma$ is the
sierpinski space.</p>
<p>I know that Davorin Lešnik has <a href="http://arxiv.org/abs/2104.10399">thought about this</a>, but
I really want to get this post out (and ideally turn it into a paper)
so unfortunately I won’t be pursuing this any further… for now! <a href="#fnref:13" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:17" role="doc-endnote">
<p>This realization has probably been made by many people, but it was
added to the nlab by Mike Shulman. <a href="#fnref:17" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:19" role="doc-endnote">
<p>This is the quotient type in the sense of Li’s <a href="https://core.ac.uk/download/33573841.pdf">PhD thesis</a>,
<em>not</em> the (higher!) quotient type in the sense of HoTT…
Though the quotient type I mean is almost certainly the $0$-truncation
of the higher inductive quotient type.</p>
<p>I’ve been meaning to spend some time thinking about how you can prove
theorems about a 1-topos by working in HoTT and truncating everything
at the end, but I haven’t had the time. <a href="#fnref:19" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:20" role="doc-endnote">
<p>Actually, I think I remember reading somewhere that the analytic
omniscience principles are always statements about the cauchy reals.
The reason countable choice makes them properties of the dedekind reals
is because under CC the dedekind and cauchy reals agree.</p>
<p>If an expert sees this and happens to know offhand if that’s true,
I would love to know for sure!</p>
<p><strong>Edit (July 10, 2024)</strong>: Thanks again to Madeleine Birchfield for
clarifying on zulip that the omniscience principles for $\mathbb{N}$
are probably equivalent to the analytic omniscience principles for the
cauchy reals. I would still love a proper reference if someone has one,
but at least there’s now a <a href="https://mathoverflow.net/questions/474578/equivalence-of-omniscience-principles-for-natural-numbers-and-analytic-omniscien">mathoverflow question</a> with a proof
in the LPO case. <a href="#fnref:20" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Wed, 03 Jul 2024 00:00:00 +0000
https://grossack.site/2024/07/03/topological-topos-3-bonus-axioms.html
https://grossack.site/2024/07/03/topological-topos-3-bonus-axioms.htmlLife in Johnstone's Topological Topos 2 -- Topological Algebras<p>In the <a href="/2024/07/03/life-in-johnstones-topological-topos.html">first post</a>, we introduced Johnstone’s topological topos $\mathcal{T}$
and talked about what its objects look like. We showed how the interpretation
of type theory in $\mathcal{T}$ gives us an “intrinsic topology” on any
type we construct. We also alluded to the fact that, by working in $\mathcal{T}$
as a universe of sets, we’re able to interact with <em>topological</em> gadgets
by forgetting about the topology entirely and just manipulating them naively
as we would sets!</p>
<p>In this post, we’ll talk about how that works in the special case of
algebraic gadgets, like groups, rings, etc., and use this to prove some
interesting theorems about topological groups!</p>
<hr />
<p>Recall Lawvere’s notion of <a href="https://ncatlab.org/nlab/show/categorical+semantics">Functorial Semantics</a>.
An <span class="defn">Algebraic Theory</span> is presented by some
function symbols and equational axioms
(we allow constant symbols as 0-ary functions), and this is probably best
given through a “definition by examples”.</p>
<p>The usual presentation of the theory of groups is</p>
<div class="boxed">
<p>A set $G$ equipped with function symbols</p>
<ul>
<li>$e : G^0 \to G$</li>
<li>$(-)^{-1} : G^1 \to G$</li>
<li>$\cdot : G^2 \to G$</li>
</ul>
<p>satisfying the equational axioms</p>
<ul>
<li>$(x \cdot y) \cdot z = x \cdot (y \cdot z)$</li>
<li>$x \cdot e = x = e \cdot x$</li>
<li>$x \cdot x^{-1} = e = x^{-1} \cdot x$</li>
</ul>
</div>
<p>Notice that the theory of posets is <em>not</em> algebraic<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> and indeed
the usual presentation involves a <em>relation</em> symbol $\leq$ (which is not allowed)
rather than only function symbols. Similarly, the theory of fields is not
algebraic<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup> and the usual presentation requires an axiom that’s <em>much</em>
more complicated than just an equation: $(x = 0) \lor \exists y . xy = 1$.</p>
<p>However, these presentations by functions and equational axioms should really
be thought of as <em>presentations</em>. There are superficially quite different
presentations which still present the same theory. For instance, here is
another presentation of the theory of groups<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>:</p>
<div class="boxed">
<p>A set $G$ equipped with a function symbol</p>
<ul>
<li>$/ : G^2 \to G$</li>
</ul>
<p>satisfying the equational axiom</p>
<ul>
<li>$x / \big ( ((x/x)/y)/z) / ((x/x)/x)/z \big ) = y$</li>
</ul>
</div>
<p>With this in mind it’s natural to want an abstract characterization of
an algebraic theory, that is <em>independent</em> of the choice of presentation.
In his PhD thesis, Lawvere set this in motion by showing that for any
algebraic theory $\mathbb{T}$, there’s a Classifying Category
$\mathcal{C}_\mathbb{T}$ so that</p>
\[\{ \mathbb{T}\text{-algebras} \}
\simeq
\{ \text{finite product functors } \mathcal{C}_\mathbb{T} \to \mathsf{Set} \}\]
<p>If we have a good understanding of $\mathbb{T}$, then we can get our
hands on $\mathbb{C}_\mathbb{T}$ concretely since it’s (opposite)
the full subcategory of finitely generated free models!</p>
<p>Important for us is the related result that models of $\mathbb{T}$ in
some other finite product category are given exactly by finite product
functors from $\mathcal{C}_\mathbb{T}$ into that category!</p>
<p>So, for example, a topological group is the same data is a finite product
functor \(\mathcal{C}_\mathsf{Grp} \to \mathsf{Top}\), while a lie group is
the data of a finite product functor \(\mathcal{C}_\mathsf{Grp} \to \mathsf{Diff}\).</p>
<p>This is what’s going to give us the ability to relate algebras
in $\mathcal{T}$ to topological algebras! Let’s see how it works!</p>
<hr />
<p>First, say we have a group object in $\mathcal{T}$. This is the data
of a finite product preserving functor
$\mathcal{C}_\mathsf{Grp} \to \mathcal{T}$. But we know from part 1
that the reflector $r : \mathcal{T} \to \mathsf{Seq}$ preserves finite products
too! So composing these gives a finite product functor</p>
\[\mathcal{C}_\mathsf{Grp} \to \mathcal{T} \to \mathsf{Seq}\]
<p>which is a group object in $\mathsf{Seq}$. That is, a (sequential)
topological group<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup>!</p>
<p>Conversely, say we have a sequential topological group. Then the
embedding $e : \mathsf{Seq} \to \mathcal{T}$ is a right adjoint,
and in particular preserves finite products. So again we get a
group object in $\mathcal{T}$!</p>
<p>In fact, the adjunction $r \dashv e$ gives us an adjunction
\(r_* \dashv e_*\) between the functor categories, and since
$r \circ e \cong \text{id}_\mathsf{Seq}$, this is true at the
level of functor categories too!</p>
<p>So the category of sequential topological groups is a reflective
subcategory of the category of groups in $\mathcal{T}$, and the
reflector is exactly what you expect: Just take the topological
reflection of the underlying object of $G$!</p>
<p>There’s nothing special about groups here, and so we learn that
for <em>any</em> algebraic theory, the category of sequential models
is a reflective subcategory of the category of models in $\mathcal{T}$.
Thus, any question we have about (sequential) topological models can
be answered in $\mathcal{T}$ without losing information, and anything
we prove about models in $\mathcal{T}$ immediately gives us results about
topological models by reflecting (though in this direction we possibly
lose information about the proofs of convergence).</p>
<p>This is all kind of abstract right now, so let’s do a very down-to-earth
example:</p>
<p>In $\mathcal{T}$, a subset of $G$ is any monic $X \hookrightarrow G$
(that is, any continuous injection). In particular, $X$ does <em>not</em>
need to have the subspace topology!</p>
<p>With this in mind, a subgroup of $G$ is just a continuous injection
$H \hookrightarrow G$ whose image is a subgroup in the usual sense.
Of course, this pulls back (by injectivity) to a unique
group structure on $H$ rendering the inclusion a homomorphism.</p>
<p>Now here’s a typical (very easy!) theorem/construction:</p>
<div class="boxed">
<p>Let $X$ be any subset of $G$, a group. Then there’s a smallest subgroup
$\langle X \rangle \leq G$ containing $X$.</p>
</div>
<p>$\ulcorner$
If $X$ is any subset, we define</p>
\[\langle X \rangle = \bigcap \{ H \leq G \mid X \subseteq H \}.\]
<p>This is a subgroup containing $X$, and any other subgroup containing $X$
is part of the intersection, rendering this the smallest such subgroup.
<span style="float:right">$\lrcorner$</span></p>
<p>Notice that this proof is <em>constructive</em> in the sense that it doesn’t use
LEM or Choice<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup>. In particular, this proof works in every topos, and
thus in $\mathcal{T}$.</p>
<p>But what does this exceptionally simple proof tell us about
topological groups? Well subsets and subgroups are continuous
injections, so this tells us that<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">6</a></sup></p>
<div class="boxed">
<p>Let $X \hookrightarrow G$ be any continuous injection into a
topological group $G$. Then there’s a topological group $\langle X \rangle$
with a continuous injection $\langle X \rangle \hookrightarrow G$ so that</p>
<ol>
<li>$X \hookrightarrow G$ factors through $\langle X \rangle$</li>
<li>$\langle X \rangle$ is initial with this property</li>
</ol>
</div>
<p>We can actually build such an $H$ by externalizing the proof of this
theorem too! Subsets are interpreted as general monics into $G$, and
the “intersection” of two monics externalizes to their pullback.
So the desired $\langle X \rangle$ is exactly the pullback of the family
of all continuous injections $H \hookrightarrow G$ factoring the
inclusion from $X$<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">7</a></sup>.</p>
<p>In case $G$ is sequentially hausdorff, this is on-the-nose correct. In
case $G$ isn’t, then $\langle X \rangle$ might live in $\mathsf{Kur}$
instead of $\mathsf{Seq}$. But that’s ok! We can just hit it with the
reflector to get an “honest” topological group with the same universal
property (among the continuous injections whose domain is also “honest”).</p>
<p>Now, it’s entirely possible that you would have come up with such a theorem
yourself. After all, a moment’s thought shows that $\langle X \rangle$ is
“just” the usual subgroup generated by $X$, equipped with the finest
topology rendering $X \hookrightarrow \langle X \rangle$ continuous.</p>
<p>The utility of the topos theoretic language is in doing more complicated
constructions, where we’re still allowed to manipulate everything as though
they’re sets, and we can be safe in the knowledge that, at the end of the
day, we can cash out our theorem for one about topological spaces!
It frees us from the burden of carrying around topologies all the time.</p>
<p><br /></p>
<p>For a more complicated example, one can show that the category of
abelian groups in a (grothendieck) topos is always AB5. In particular,
the category of abelian groups in $\mathcal{T}$ is abelian and has
enough injectives, so we can do homological algebra to it! Contrast this
with the category of abelian groups in $\mathsf{Top}$, which is famously
<em>not</em> abelian!</p>
<p>This is one of the big motivations for <a href="https://en.wikipedia.org/wiki/Condensed_mathematics">Condensed Mathematics</a>.
Indeed, in $\mathsf{Top}$, the continuous bijection of abelian groups
$(\mathbb{R},\text{discrete}) \to (\mathbb{R},\text{euclidean})$
is not an isomorphism. Yet the kernel and cokernel are both trivial!
In both condensed mathematics and the topological topos, this is
remedied by a more complicated cokernel. Remember that
the colimits preserved by the embedding $\mathsf{Seq} \to \mathcal{T}$
are only those that look like covers.</p>
<p>In fact, we can compute the cokernel as the coequalizer of the inclusion
map and the constant $0$ map. In the topos, this is the sheafififcation
of the colimit of presheaves, which are computed pointwise. So
the underlying set of the cokernel is the colimit of the underlying sets
is ${ 0 }$. But the convergent sequences is the colimit of</p>
\[\{
\text{eventually constant sequences} \}
\rightrightarrows
\{ \text{convergent sequences} \}\]
<p>where one map is just the inclusion, and the other sends every eventually constant
sequence to the constant $0$ sequence.</p>
<p>So the cokernel has a single point ${ 0 }$, but there’s a proof that
the constant $0$ sequence converges for every equivalence class of
convergent sequences differing by an eventually constant sequence!</p>
<p>Keeping track of these proofs (which themselves form an abelian group)
is exactly what we need to do to algebraically detect that
$(\mathbb{R}, \text{discrete}) \to (\mathbb{R}, \text{euclidean})$ isn’t
an isomorphism!</p>
<p>As an aside, I don’t understand condensed mathematics well enough to
know how it differs from math in the topological topos. Just looking at
definitions, I know it’s based on test maps from all compact hausdorff spaces
instead of test maps from only \(\mathbb{N}_\infty\). This probably
means it’s closely related to compactly generated spaces in much the
way that $\mathcal{T}$ is related to sequential spaces.
I’m sure there’s a reason to prefer this, but I don’t know what it is<sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">8</a></sup>.
The moral to keep in mind is that the power of doing algebra in a topos
that handles the topology for you is currently being used to great effect
in applying homological algebra to analytic situations where it previously
couldn’t go!</p>
<hr />
<p>Alright, I told you this one was going to be more leisurely than the last one!
Now that we’ve seen some applications of $\mathcal{T}$ to topological
algebra, and we’ve seen some basic externalization, let’s move on to <a href="/2024/07/03/topological-topos-3-bonus-axioms.html">part 3</a>
and <em>really</em> get familiar with the internal logic and how it relates to
the real world!</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>You can show this with categorical techniques. For instance,
the category of models of any algebraic theory is always <a href="https://ncatlab.org/nlab/show/regular+category">regular</a>,
while the category of posets isn’t <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>The category of models for any algebraic theory always has an initial
object, yet the category of fields doesn’t! <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>See McCune’s <em>Single Axioms for Groups and Abelian Groups with Various
Operations</em>.</p>
<p>This operaetion is related to the “usual” operations by $x / y = x \cdot y^{-1}$. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>Remember, though, that the product on $\mathsf{Seq}$ is different
from the product on $\mathsf{Top}$. This never matters in practice,
and the $\mathsf{Seq}$ product agrees with the product in the
“convenient category” of compactly generated spaces, but if you want
an honest group object in $\mathsf{Top}$, you’ll want $G$ to be
locally compact. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>It’s not <a href="https://ncatlab.org/nlab/show/predicative+mathematics">predicative</a>, but that’s fine for a topos. And regardless,
if you know enough to complain about predicativity, you know enough to
give a predicative version of this proof :P. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>Indeed, it says something slightly stronger than this! In the case of
non (sequentially) hausdorff spaces, there might be extra subsets
that are merely kuratowski limit spaces! The theorem says we’re actually
allowed to take $X$ to be such a subspace as well! <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:7" role="doc-endnote">
<p>The diligent reader will note there are a proper class of such arrows,
so this pullback as written isn’t defined. Of course, the domain
of any such arrow has at most $|G|$ many elements, and there’s only a
set worth of topologies we can put on one of these domains. So up to
isomorphism there’s only a set worth of arrows, and we’re good to go! <a href="#fnref:7" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:8" role="doc-endnote">
<p>Peter Scholze actually says a few words about why condensed sets
are easier to work with than objects of $\mathcal{T}$ in a comment
to his answer to <a href="https://mathoverflow.net/questions/441610/properties-of-pyknotic-sets">this MO question</a>. I still don’t <em>really</em> see it,
but that’s probably because I haven’t spent a lot of time (or any time)
working with condensed sets. <a href="#fnref:8" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Wed, 03 Jul 2024 00:00:00 +0000
https://grossack.site/2024/07/03/topological-topos-2-algebras.html
https://grossack.site/2024/07/03/topological-topos-2-algebras.htmlLife in Johnstone's Topological Topos 1 -- Fundamentals<p>I’ve been thinking a lot about the internal logic of topoi again, and I
want to have more examples of topoi that I understand well enough to
externalize some statements. There’s more to life than just a localic
$\mathsf{Sh}(B)$, and since I’m starting to feel like I understand
that example pretty well, it’s time to push myself to understand
other important examples too!</p>
<p>In particular, it would be nice to throw some <a href="https://ncatlab.org/nlab/show/big+and+little+toposes">gros topoi</a> into
the mix, and where better to start than Johnstone’s <a href="https://ncatlab.org/nlab/show/Johnstone%27s+topological+topos">topological topos</a>?
This topos is fairly small (which makes explicit computation easy) and is
very well studied (which makes finding references and examples merely annoying
instead of totally impossible).
Eventually I’ll want to learn about the effective topos<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> (and other
<a href="https://ncatlab.org/nlab/show/realizability+topos">realizability topoi</a> more generally), various <a href="https://ncatlab.org/nlab/show/Models+for+Smooth+Infinitesimal+Analysis">smooth topoi</a>, etc.
but let’s take them on one-at-a-time!</p>
<p>The topological topos $\mathcal{T}$ is a world where every set is
<em>intrinsically</em> a space. What does this mean?</p>
<p>Well, if we’re working in $\mathsf{Set}$, then a space
is a set $X$ equipped with some ~bonus structure~. This structure can take a
lot of forms, but one ubiquitous example is that of a <em>topology</em>
$\tau \subseteq \mathcal{P}(X)$.</p>
<p>Then if you want to work with spaces, you have to constantly keep track of
what topology you’re working with. For example, there’s <em>lots</em> of topologies
you can put on $X \times Y$, and we need to make sure we choose the
<em>right one</em> to act like the product of the <em>spaces</em> $(X,\tau)$ and $(Y,\sigma)$.</p>
<p>Nowadays the “right” topology is usually “obvious<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">2</a></sup>”, but this is only because
we’re able to stand on the shoulders of countless 20th century mathematicians!
I think most people would be hard-pressed to come up with, say, the
<a href="https://en.wikipedia.org/wiki/Compact-open_topology">compact-open topology</a> if they hadn’t seen it before!</p>
<p>Of course, carrying around this ~bonus structure~ becomes most pronounced
when working with continuous maps! Now, instead of just defining a function
and moving on with your life, we’re constantly burdened to check that our
function $X \to Y$ actually respects the topologies involved! Otherwise it
isn’t a <em>continuous</em> function $(X,\tau) \to (Y, \sigma)$! There are some friends
of mine who are constantly complaining that algebraic topologists never check
that things are continuous, and honestly I’m sympathetic. But it can be
a real hassle to check these things all the time…</p>
<p>Thankfully there’s a better way!</p>
<p>Every set in $\mathcal{T}$ is, by its very nature, a space!
There’s no need to choose the “right” topology, or to check that your
function is “continuous”. Inside $\mathcal{T}$, it’s <em>literally impossible</em>
to write down a function that isn’t continuous, because there’s no
~bonus structure~ to respect! This is what we mean when we say the
topology is <em>intrinsic</em>.</p>
<p style="text-align:center;">
<img src="/assets/images/life-in-johnstones-topological-topos/dont-try.gif" width="50%" />
</p>
<p>This is great for a couple reasons. First, say you build a type $X$ in
Martin-Löf Type Theory (<a href="https://en.wikipedia.org/wiki/Intuitionistic_type_theory">MLTT</a>).
We know how to interpret MLTT in any topos, so by interpreting
$X$ in $\mathcal{T}$ we learn that our type $X$ is automatically a space!
Understanding this relationship between types and
topology has been a staple in many people’s careers, but I want to single
out <a href="https://www.cs.bham.ac.uk/~mhe/">Martín Escardó</a> as someone whose papers I’ve been reading lately
(and who I talk to fairly often on <a href="https://mathstodon.xyz/@MartinEscardo">mastodon</a>). These conversations were
a big part of the reason I decided to spend some time trying to understand $\mathcal{T}$.</p>
<p>Second, by the same logic, any theorem we’re able to prove <a href="https://ncatlab.org/nlab/show/constructive+mathematics">constructively</a>
is automatically true in $\mathcal{T}$. That is, any constructive theorem
is automatically true “continuously”, giving us a theorem for
<em>topological</em> structures! Of course, in order to <em>use</em> these theorems, we
need to understand how objects inside the topological topos $\mathcal{T}$
relate to honest topological spaces in “the real world”<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">3</a></sup>.</p>
<p>In the process of learning about $\mathcal{T}$, I had to
work out a bunch of examples, which I’d love to share! Even though all of this
is probably “well known to experts”, I found a lot of it pretty hard to find,
so hopefully this blog post is still useful for people ^_^.</p>
<p>Let’s get started!</p>
<hr />
<h2 id="what-is-mathcalt">What Is $\mathcal{T}$?</h2>
<p><br /></p>
<p>First, what even <em>is</em> the topological topos? It’s sheaves on some site,
of course, but which one?</p>
<div class="boxed">
<p>Write \(\mathbb{N}_\infty\) for the <a href="https://en.wikipedia.org/wiki/Alexandroff_extension">one point compactification</a> of
$\mathbb{N}$. This is the space \(\{0,1,2,3,\ldots,\infty\}\) topologized
so that a convergent sequence $(x_n) \to x_\infty$ in $X$ is exactly a
continuous map $\mathbb{N}_\infty \to X$<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">4</a></sup>.</p>
<p>Then let’s look at the full subcategory of $\mathsf{Top}$ spanned by
\(\{1, \mathbb{N}_\infty \}\). This becomes a site if we give it the
<a href="https://ncatlab.org/nlab/show/canonical+topology">canonical topology</a> $J$, and we define the topological topos
$\mathcal{T}$ to be sheaves on this site.</p>
</div>
<p>We’ll say more about this definition in a
minute, but first let’s see how we can picture objects of $\mathcal{T}$.</p>
<p>A presheaf on this site is a pair of sets $X(1)$ and $X(\mathbb{N}_\infty)$
with a bunch of maps connecting them:</p>
<ul>
<li>There’s a map \(n^* : X(\mathbb{N}_\infty) \to X(1)\) for each $n$, plus a map
\(\infty^* : X(\mathbb{N}_\infty) \to X(1)\)</li>
<li>There’s a unique map \(!^* : X(1) \to X(\mathbb{N}_\infty)\)</li>
<li>For every continuous function \(f : \mathbb{N}_\infty \to \mathbb{N}_\infty\)
there’s a map \(f^* : X(\mathbb{N}_\infty) \to X(\mathbb{N}_\infty)\).</li>
</ul>
<p>You should think of elements of $X(1)$ as the <em>points</em> of $X$, and
the elements of \(X(\mathbb{N}_\infty)\) as (witnesses to) convergent
sequences in $X(1)$.
Indeed, if \(p \in X(\mathbb{N}_\infty)\), then we’ll write
$p_n$ for \(n^*(p)\) (resp. $p_\infty$ for \(\infty^* p\)) and $p$
should be thought of as a <em>witness</em> or <em>proof</em> that the sequence
$p_n$ converges to $p_\infty$ in $X(1)$<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup>.</p>
<p>The unique map \(!^*\) sends a point $x \in X(1)$ to a distinguished proof
that the constant $x$ sequence converges to $x$, and the functions \(f^*\)
“reindex” a convergent sequence. So if $p$ is a proof that $x_n \to x_\infty$,
then $f^* p$ is a proof that $x_{fn} \to x_{f \infty}$ too.</p>
<p>The sheaf condition for the canonical topology guarantees that
if every subsequence of $x_n$ converges to $x_\infty$,
the whole sequence $x_n$ converges to $x_\infty$ too<sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">6</a></sup>.</p>
<div class="boxed">
<p>Can you prove that this is reasonable?</p>
<p>If \(x_n \to x\) in some topological space \(X\), and
\(f : \mathbb{N}_\infty \to \mathbb{N}_\infty\) is continuous,
why must \(x_{fn} \to x_{f \infty}\)?</p>
<p>You might find it helpful to case on whether \(f(\infty) = \infty\) or not.</p>
</div>
<div class="boxed">
<p>As a cute exercise can you find a simple description of the
arrows in $\mathcal{T}$? That is, for a natural transformation between
two sheaves?</p>
</div>
<details>
<summary>solution</summary>
A natural transformation between $X$ and $Y$ is a pair of functions
$$f_1 : X(1) \to Y(1)$$
$$f_{\mathbb{N}_\infty} : X(\mathbb{N}_\infty) \to Y(\mathbb{N}_\infty)$$
So that whenever $p$ is a proof that $x_n \to x_\infty$,
$f_{\mathbb{N}_\infty}(p)$ is a proof that
$f_1(x_n) \to f_1(x_\infty)$.
Moreover, $f_{\mathbb{N}_\infty}$ should respect the distinguished proofs
that constant sequences converge
(so $f_{\mathbb{N}_\infty}(!^* x) = !^* f_1(x)$) as well as reindexing
(so $f_{\mathbb{N}_\infty}(g^* p) = g^* (f_{\mathbb{N}_\infty} p)$)
</details>
<p><br /></p>
<p>Now every topological space $X$ gives an object
$よX = \mathsf{Top}(-,X)$ in the topos<sup id="fnref:10" role="doc-noteref"><a href="#fn:10" class="footnote" rel="footnote">7</a></sup>, where
$よX(1) = X$ and
\(よX(\mathbb{N}_\infty) =
\{ \text{continuous functions } f : \mathbb{N}_\infty \to X \}\).
That is, the underlying set of $よX$ is exactly the underlying set of $X$,
and for every convergent sequence in $X$ there is a unique proof that that
sequence converges (represented by the sequence itself).</p>
<p>If we restrict attention to the full subcategory of <a href="https://en.wikipedia.org/wiki/Sequential_space">sequential spaces</a>,
then $よ$ is a fully faithful embedding into $\mathcal{T}$. This shouldn’t be
too surprising, since the sequential spaces are exactly those spaces whose
topologies are determined by a knowledge of which sequences converge!</p>
<p>Importantly, you should think of this is a <em>super</em> mild condition, since lots of
natural spaces of interest are sequential. Just to name a few:</p>
<ul>
<li>all metric spaces</li>
<li>more generally, all <a href="https://en.wikipedia.org/wiki/First-countable_space">first countable</a> spaces</li>
<li>every <a href="https://en.wikipedia.org/wiki/CW_complex">CW-complex</a></li>
<li>every noetherian <a href="https://en.wikipedia.org/wiki/Spectrum_of_a_ring">ring spectrum</a></li>
</ul>
<p>This tells us that a <em>huge</em> subcategory of topological spaces embeds fully
faithfully into $\mathcal{T}$! Later we’ll say more about how computations in
$\mathcal{T}$ translate to computations in the real world, but this is a good
first indication that they should be closely related!</p>
<p><br /><br /></p>
<p>There’s another definition of $\mathcal{T}$ which you’re also likely to see.</p>
<p>Having $X(1)$ around explicitly as a set of points is helpful for
exposition and intuition, but it turns out to not change the topos if we
work without it! Intuitively, we can recover the points from the constant maps
\(n : \mathbb{N}_\infty \to \mathbb{N}_\infty\).</p>
<p>With this in mind, some authors define $\mathcal{T}$ to be the sheaves
on <em>just</em> the full subcategory of $\mathsf{Top}$ spanned by
\(\{ \mathbb{N}_\infty \}\). That is, they define it to be sheaves on the
monoid of continuous endomorphisms of \(\mathbb{N}_\infty\). See, for instance,
The Elephant (A2.1.11(j)).</p>
<p>This gives a different informal justification for the close connection between
$\mathcal{T}$ and sequential spaces.
Indeed, objects of a sheaf topos can be thought of as being glued together
from objects of the underlying site. In case you’re working with a presheaf
topos, we take <em>all</em> the ways to glue things together, but in general a
grothendieck topology forces us to restrict attention to those gluings
which are “nice” in some sense.</p>
<p>So, with this smaller site in hand, one way to think about objects in
$\mathcal{T}$ is as copies of \(\mathbb{N}_\infty\) that are
“glued together nicely”. And one can show that the sequential spaces
are <em>exactly</em> the quotients of disjoint unions of copies of \(\mathbb{N}_\infty\)!
This also tells us that, in some sense, the other objects of $\mathcal{T}$ are
just copies of \(\mathbb{N}_\infty\) glued together in more exotic ways,
for instance by gluing two copies of \(\mathbb{N}_\infty\) literally on
top of each other to get multiple witnesses to the convergence of the
same sequence!</p>
<p><br /></p>
<p>But how do we <em>know</em> that these two definitions agree? I wasn’t
able to find this written down anywhere, but it’s easy to check
for ourselves!</p>
<p>The key observation is that \(\{ \mathbb{N}_\infty \}\) is a
<a href="https://ncatlab.org/nlab/show/dense+sub-site">dense subsite</a> of \(\{ \mathbb{N}_\infty, 1 \}\). Here
I’m using set-builder notation to mean a full subcategory of $\mathsf{Top}$ equipped
with the canonical topology.</p>
<p>$\ulcorner$
Indeed, to check this, we only need to show that every object in
\(\{ \mathbb{N}_\infty, 1 \}\) is covered by maps with domain in
\(\{ \mathbb{N}_\infty \}\). But the identity function
\(\mathbb{N}_\infty \to \mathbb{N}_\infty\) covers, and the unique map
\(\mathbb{N}_\infty \to 1\) covers too.</p>
<p>Since \(\{ \mathbb{N}_\infty \}\) is a <em>full</em> subcategory of
\(\{ \mathbb{N}_\infty, 1 \}\), the second condition of the
<a href="https://ncatlab.org/nlab/show/dense+sub-site">comparison lemma</a> is trivial, and we learn that the geometric map
induced by the inclusion is an equivalence.</p>
<p>In particular, the two common definitions really <em>do</em> give equivalent topoi!
<span style="float:right">$\lrcorner$</span></p>
<p><br /></p>
<p>So, finally, what <em>is</em> the <span class="defn">Canonical Topology</span>?</p>
<p>For the site with two objects, \(\{1, \mathbb{N}_\infty\}\),
every (nonempty) family of arrows \(\{X_\alpha \to 1 \}\) is covering.
So the interesting question is what a covering family of \(\mathbb{N}_\infty\)
looks like.</p>
<p>If $S$ is an infinite subset of $\mathbb{N}$, we write $f_S$ for the unique
monotone map \(\mathbb{N}_\infty \to \mathbb{N}_\infty\) whose image is
\(S \cup \{ \infty \}\).</p>
<div class="boxed">
<p>A family \(\{X_\alpha \to \mathbb{N}_\infty\}\) is covering if and only if
both</p>
<ol>
<li>It contains every constant map \(1 \to \mathbb{N}_\infty\)</li>
<li>For every infinite $T \subseteq \mathbb{N}$, there is a further
infinite subset $S \subseteq T$ with
\(f_S : \mathbb{N}_\infty \to \mathbb{N}_\infty\) in the family</li>
</ol>
<p>In particular, if a family contains every constant map
\(1 \to \mathbb{N}_\infty\) and a “tail of an infinite sequence”
\(f_{\{x \geq N\}}\) for some $N$, then that family is covering.</p>
</div>
<p>So, roughly, to prove that something “merely exists” in $\mathcal{T}$, we
have to provide a witness for every finite $n$, and these witnesses should
converge to the witness for $\infty$.</p>
<p>If we want to use the site with one object \(\{ \mathbb{N}_\infty \}\),
the condition is almost exactly the same. A family of maps is covering
if and only if both</p>
<ol>
<li>every constant map \(\mathbb{N}_\infty \to \mathbb{N}_\infty\) is in the family</li>
<li>For each infinite $T \subseteq \mathbb{N}$, there’s a further infinite
$S \subseteq T$ so that $f_S$ is in the family.</li>
</ol>
<p>This, unsurprisingly, doesn’t make too much difference. But note that
the site with two objects is obviously <a href="https://ncatlab.org/nlab/show/local+site">local</a> in the sense of
<em>The Elephant</em> (C3.6.3(d)). So we learn that the global sections functor
$\Gamma : \mathcal{T} \to \mathsf{Set}$ which takes an object $X$ to its
set of points $X(1)$ admits the usual left adjoint characteristic of
geometric morphisms (giving a set $X$ the discrete topology) but also
a further right adjoint (giving a set $X$ the indiscrete topology).</p>
<p style="text-align:center;">
<img src="/assets/images/life-in-johnstones-topological-topos/local-morphism.png" width="50%" />
</p>
<p>In the original paper, Johnstone moreoever shows that the essential point
$\mathsf{Set} \to \mathcal{T}$ given by this indiscrete arrow is the unique
global point of $\mathcal{T}$.</p>
<hr />
<h2 id="how-does-mathcalt-relate-to-mathsftop">How Does $\mathcal{T}$ Relate to $\mathsf{Top}$?</h2>
<p><br /></p>
<div class="boxed">
<p>Here’s the tl;dr for this section, for ease of reference.</p>
<p>We have a sequence of fully-faithful embeddings of bicartesian closed categories,
each of which admits a left adjoint, as shown below:</p>
<p style="text-align:center;">
<img src="/assets/images/life-in-johnstones-topological-topos/relationship-adjoints.png" width="75%" />
</p>
<p>The embeddings preserve all limits (as right adjoints) but moreover preserve
the cartesian closed structure, as well
as certain “nice” colimits (in particular, all colimits involved in the
creation of CW-complexes). The exact definition of “nice” here is
explained in Johnstone’s original paper, but includes the coproduct. Additionally, the
image of a map $X \to Y$ of sequential spaces (with $Y$ sequentially hausdorff)
as computed in $\mathcal{T}$ is just the set theoretic image equipped with
the quotient topology (Corollary 6.4 in the original paper).</p>
<p>The left adjoints preserve all colimits, and moreover preserve finite products
(and thus, in particular, models of algebraic theories).</p>
<p>Lastly, in case we restrict to the full subcategory of
“sequentially hausdorff spaces”, in the sense that every convergent sequence
has a unique limit, then the adjunction
$\text{Seq} \leftrightarrows \text{Kur}$ is an adjoint equivalence!</p>
<p><br /></p>
<p>Here $\text{Seq}$ is bicartesian closed,
$\text{Kur}$ is locally cartesian closed,
$\mathcal{T}$ is a topos, and the embeddings preserve all of
this structure. Thus one can say that at each level we add new
“type constructors”, as shown in the following diagram
(stolen from Martín Escardó):</p>
<p style="text-align:center;">
<img src="/assets/images/life-in-johnstones-topological-topos/venn-diagram.png" width="50%" />
</p>
<p>Colimits in $\text{Seq}$ are computed as in $\mathsf{Top}$, so
in particular the “nice colimits” that get preserved between
$\text{Seq}$ and $\mathcal{T}$ agree with colimits in $\mathsf{Top}$.</p>
<p>The relationship of limits in $\text{Seq}$ to limits in
$\mathsf{Top}$ is more subtle. If you only care about (quotients of)
<a href="https://en.wikipedia.org/wiki/Second-countable_space">second countable</a> spaces, then the bicartesian closed structure
on $\text{Seq}$ (and thus in $\mathcal{T}$) agrees with the usual
bicartesian closed structure on the “convenient category” of
<a href="https://en.wikipedia.org/wiki/Compactly_generated_space">compactly generated spaces</a>. In particular, function spaces
get the <a href="https://en.wikipedia.org/wiki/Compact-open_topology">compact-open topology</a>.</p>
<p>If your spaces are <a href="https://en.wikipedia.org/wiki/Locally_compact_space">locally compact</a>, then the (finite)
product in $\text{Seq}$ (and thus in $\mathcal{T}$) agrees with
the product in $\mathsf{Top}$.</p>
</div>
<hr />
<p>That’s a <em>lot</em>, so let’s go more in depth into what all of this means, haha.</p>
<p>We’ll start with the definition of a <a href="https://ncatlab.org/nlab/show/subsequential+space">Kuratowski Limit Space</a>
(also called a subsequential space):</p>
<div class="boxed">
<p>A <span class="defn">Kuratowski Limit Space</span> is a set $X$
equipped with a set of <span class="defn">Convergent Sequences</span> in $X$
subject to the following axioms:</p>
<ol>
<li>For every $x \in X$, the constant sequence $(x)$ converges to $x$</li>
<li>If $(x_n)$ converges to $x$, then every subsequence of $(x_n)$ converges to
$x$ too</li>
<li>If, for some $x$, every subsequence of $(x_n)$ contains a further subsequence
converging to $x$, then the whole sequence $(x_n)$ already converges to $x$.</li>
</ol>
<p>We moreover call $X$ <span class="defn">Sequentially Hausdorff</span> if it
satisfies the bonus axiom</p>
<ol start="4">
<li>If $(x_n)$ converges to $x$ and $(x_n)$ converges to $y$, then $x=y$.</li>
</ol>
<p><br /></p>
<p>A function $f : X \to Y$ between limit spaces is called
<span class="defn">continuous</span> if whenever $x_n \to x$,
we have $fx_n \to fx$.</p>
</div>
<p>Every sequential topological space is automatically a limit space, where we
just let the convergent sequences be the (topologically) convergent sequences.
Moreover, there’s a fully faithful embedding of limit spaces into $\mathcal{T}$
where we let $X(1) = X$ and \(X(\mathbb{N}_\infty)\) be the set of convergent
sequences in $X$.</p>
<div class="boxed">
<p>As a (not so tricky) exercise, you might want to verify that this
map from $\mathsf{Kur}$ to presheaves is actually always a <em>sheaf</em>.</p>
<p>This basically amounts to comparing axiom (3) for limit spaces to
the definition of a cover of \(\mathbb{N}_\infty\).</p>
</div>
<p>Taken together, we have fully faithful embeddings</p>
\[\mathsf{Seq} \hookrightarrow \mathsf{Kur} \hookrightarrow \mathcal{T}\]
<p>In fact, Johnstone’s original paper shows that $\mathsf{Kur}$ is the
quasitopos of $\lnot \lnot$-separated sheaves in $\mathcal{T}$! Thus
the embedding $\mathsf{Kur} \hookrightarrow \mathcal{T}$ admits a
finite product preserving left adjoint, and the locally cartesian closed
structure of $\mathsf{Kur}$ agrees with that of $\mathcal{T}$
(see A1.5.9 in the elephant).</p>
<p>Concretely, this left adjoint takes an object of $\mathcal{T}$ and
fogets <em>how</em> a sequence converges, only remembering <em>that</em> it converges!
Said another way, it identifies any proofs $p$ and $q$ with
$p_n = q_n$ for all \(n \in \mathbb{N}_\infty\).</p>
<p>Moreover, the embedding
$\mathsf{Seq} \hookrightarrow \mathsf{Kur}$ <em>also</em> admits a finite product
preserving left adjoint!</p>
<p>We say a subset $U \subseteq X$ is
<span class="defn">Sequentially Open</span> if whenever \(x_n \to a \in U\),
some tail of $x_n$ is entirely contained in $U$. It’s easy to see that the
set of sequential open subsets forms a topology on $X$, and indeed our
reflector sends a limit space \((X,\{\text{convergent sequences}\})\) to
the sequential space \((X,\{\text{sequential opens}\})\).
This functor moreover preserves finite products<sup id="fnref:21" role="doc-noteref"><a href="#fn:21" class="footnote" rel="footnote">8</a></sup>, which is
Proposition 3.1 in Menni and Simpson’s
<a href="https://doi.org/10.1017/S0960129502003699"><em>Topological and limit-space subcategories of countably-based equilogical spaces</em></a><sup id="fnref:18" role="doc-noteref"><a href="#fn:18" class="footnote" rel="footnote">9</a></sup>.</p>
<p>Also, notice that this reflection possibly adds new convergent sequences.
Maybe our limit space $X$ knows about some convergent sequences, but once
we actually build a topology to make these sequences converge in the
usual sense, there might accidentally be <em>more</em> convergent sequences
than we started with!</p>
<p>Conversely, the subobjects of a space $X \in \mathcal{T}$ come from taking
a subset of the points and a subset of the convergent sequences. So we
see this is exactly what the kuratowski limit spaces <em>are</em>! They’re the
subobjects of sequential spaces, where we may have forgotten about
certain sequences that “would converge” if we still had our open sets.</p>
<p>In general, we can think of objects in $\mathsf{Seq}$ as honest spaces,
with points and all the convergent sequences that should exist. Objects in
$\mathsf{Kur}$ are almost honest spaces, we just might have forgotten
about a few convergent sequences that “should” be there if we remembered
the whole topology. But there’s still only “one way” for any given sequence
to converge. Objects in $\mathcal{T}$ are like spaces which might have
forgotten some convergent sequences, <em>and</em> which have ~bonus data~ attached
to them giving multiple inequivalent proofs that these sequences converge!</p>
<p>But this intuitive picture tells us how to get an honest space from your
favorite object $X \in \mathcal{T}$! We take $X(1)$ as our set of points,
and a subset of $X(1)$ is open exactly when it’s sequentially open, forgetting
the data of the multiple proofs of convergence.</p>
<p>The fact that the reflectors preserve finite products tells us that the
$\mathsf{Seq}$ and $\mathsf{Kur}$ are <a href="https://ncatlab.org/nlab/show/exponential+ideal">exponential ideals</a> in $\mathcal{T}$.
Thus they’re both cartesian closed, and the embeddings preserve the cartesian
closed structure!
It’s not hard to see the embeddings $\mathsf{Seq} \hookrightarrow \mathsf{Kur}$
and $\mathsf{Kur} \hookrightarrow \mathcal{T}$ preserve coproducts, so that
we get the promised embeddings of bicartesian closed categories.</p>
<p>Lastly, the cartesian closed structure on $\mathsf{Seq}$ is the one you
would expect from viewing it as a “convenient category of spaces”. The
exponential is (usually) the compact-open topology! You can read more
about the subtleties in Escardó, Lawson, and Simpson’s
<a href="https://www.sciencedirect.com/science/article/pii/S0166864104000550"><em>Comparing Cartesian closed categories of (core) compactly generated spaces</em></a>,
but the gist is that you get the compact-open topology whenever you’re
working with (quotients of) second countable spaces!</p>
<p><br /></p>
<p>From this information, there’s a few simple corollaries that I want to
mention explicitly, since they give more relationships between
$\mathsf{Top}$, $\mathsf{Seq}$, and $\mathcal{T}$.</p>
<p>First, fully faithful functors reflect isomorphisms, so if we can prove
in $\mathcal{T}$ that two spaces are isomorphic, it means they must
be isomorphic in $\mathsf{Seq}$ too. But then <em>all</em> functors preserve
isomorphisms, so that we get an isomorphism in $\mathsf{Top}$ too!
Thus, we can show two sequential spaces are homeomorphic by working
entirely in $\mathcal{T}$!
The converse argument (using the fully faithful embedding
$\mathsf{Seq} \hookrightarrow \mathsf{Top}$) shows that two homeomorphic
sequential spaces are also isomorphic in $\mathcal{T}$, so that we can
detect every homeomorphism just by working in $\mathcal{T}$.</p>
<p>Similarly, if $A$ and $B$ are both sequential, then
a map $A \to B$ is monic in $\mathsf{Top}$,
if and only if it’s monic in $\mathsf{Seq}$ if and only if
it’s monic in $\mathcal{T}$! In all cases, the monics are exactly
the continuous injections<sup id="fnref:25" role="doc-noteref"><a href="#fn:25" class="footnote" rel="footnote">10</a></sup>. This tells us that anything we “expect”
to be a subobject in $\mathcal{T}$ actually is. But note that in
$\mathsf{Top}$ we might have nonsequential subspaces of a sequential
space (any non-frechet sequential space will do. see <a href="https://dantopology.wordpress.com/2010/06/21/sequential-spaces-i/">here</a>) and
similarly in $\mathcal{T}$ we might have nonsequential subspaces of a
sequential space (indeed, every kuratowski limit space is a subobject
in $\mathcal{T}$ of a sequential space). Nonetheless, open/closed
subspaces of a sequential space <em>will</em> be sequential in both
$\mathsf{Top}$ and in $\mathcal{T}$.</p>
<p>Dually, if $A \to B$ is an epi in $\mathcal{T}$, then it’s an epi in
$\mathsf{Seq}$, and thus an epi in $\mathsf{Top}$
(since the inclusion $\mathsf{Seq} \to \mathsf{Top}$ is a left adjoint, and
preserves epis).
But there’s no reason to suspect an epi in $\mathsf{Top}$ to remain
an epi in $\mathcal{T}$.</p>
<hr />
<p>This is great and all, but the only way to <em>really</em> get some intuition for
how computations in $\mathcal{T}$ relate to computations in $\mathsf{Top}$
is to actually <em>do some computation and check</em>! So let’s do that!
Let’s start with a few important types representing various kinds of
proposition. These will be important for building new types later, and
for understanding how to externalize them.</p>
<p><br />
$2$</p>
<p>This is the discrete space with two points \(\{\top,\bot\}\). This is
sequential (every finite space is, and so is every discrete space), so behaves
exactly as you would expect.
Note that the convergent sequences are all eventually constant!</p>
<p>We think of $2$ as the space of <span class="defn">Decidable Propositions</span>,
so that maps $X \to 2$ classify <em>decidable properties</em> of $X$.
These are the same as clopen subsets of $X$, and thus might be quite rare. Notice
that, in $\mathcal{T}$, $2$ doesn’t form a complete lattice! It has finite
joins and meets, of course, and we can can build the continuous functions
$\land, \lor : 2 \times 2 \to 2$ quite easily. Thinking of $2$ as classifying
clopen subobjects, this corresponds to the fact that a finite union/intersection
of clopen sets is clopen. Indeed, if $A,B \subset X$ are clopen, classified
by maps $\chi_A, \chi_B : X \to 2$, then the map
$\lambda (x:X). \chi_A(x) \land \chi_B(x) \ : X \to 2$ classifies exactly
$A \cap B$.</p>
<p>This tells us immediately that $2$ cannot have countable joins/meets. We can
see this via continuity, since the map $\bigwedge : 2^\mathbb{N} \to 2$ with
\(\bigwedge \alpha =
\begin{cases}
\top & \forall n . \alpha(n) = \top \\
\bot & \text{otherwise} \end{cases}\)
is not continuous! (and neither is $\bigvee$. In both cases, do you see why?)</p>
<p>We can instead see this by thinking of $2$ as classifying clopen subsets,
since if $\bigwedge$ or $\bigvee$ existed, we could use them with
classfiying maps to show the countable intersection/union of clopen sets is
clopen. But of course we know this is false!</p>
<p>As a last aside, it’s not hard to see that $2$ being countably complete
corresponds exactly to the <em>Weak Limited Principle of Omniscience</em> (WLPO),
so that this shows $\mathcal{T} \not \models \text{WLPO}$. We’ll talk more
about omniscience principles in <a href="/2024/07/03/topological-topos-3-bonus-axioms.html">part 3</a>, but it’s nice to mention.</p>
<p><br />
$\Sigma$</p>
<p>This is the sierpinski space, which also has two points \(\{\top,\bot\}\),
but with the topology \(\{\emptyset, \{\top\}, \Sigma \}\). This is
sequential (every finite space is), where <em>every</em> sequence converges to
$\bot$ and the sequences converging to $\top$ are only the eventually
constantly $\top$ ones.</p>
<p>We think of $\Sigma$ as the space of <span class="defn">Open Propositions</span>,
since maps $X \to \Sigma$ classify the open subspaces of $X$. By the same
logic as before, it’s easy to show that $\Sigma$ is a lattice with
finite meets and joins (indeed, we can build the maps $\lor$ and $\land$
using the yoneda lemma in $\mathsf{Seq}$ knowing that open subspaces
are closed under finite unions and intersections).</p>
<p>A similar yoneda argument shows that $\Sigma$ is a complete lattice,
since homs into $\Sigma$ are open subspaces, and arbitrary unions of
opens are open, so these operations must be represented by joins $\bigvee$
on $\Sigma$. But it’s kind of fun to show directly that
$\bigvee : \Sigma^\mathbb{N} \to \Sigma$ is continuous
(and more generally so is $\bigvee : \Sigma^\kappa \to \Sigma$ for any cardinal $\kappa$).</p>
<p>As a cute aside, this tells us that $\Sigma$ must be closed under arbitrary
meets as well… But of course, the arbitrary intersection of open subspaces
isn’t open. Do you see what’s going on there?</p>
<p><br />
$\Sigma^c$</p>
<p>This is the “co-sierpinski space”. It has two points \(\{\top, \bot\}\) but
the topology is \(\{\emptyset, \{\bot\}, \Sigma^c\}\). Again it’s sequential,
but now we see that every sequence converges to $\top$, while only the
eventually constant $\bot$ sequences converge to $\bot$.</p>
<p>Unsurprisingly, this is the space of <span class="defn">Closed Propositions</span>,
and maps into $\Sigma^c$ classify closed subspaces of $X$. The same logic as
before shows $\Sigma^c$ is a complete lattice, but now we have direct access
to $\bigwedge$, since closed subspaces are closed under arbitrary intersection!</p>
<p><br />
$\nabla 2 = \Omega_{\lnot \lnot}$</p>
<p>At this point you know what’s going on. This space has two points,
\(\{\top, \bot\}\) with the indiscrete topology (the only opens are
$\emptyset$ and $\nabla 2$), so here every sequence coverges to both
$\top$ and $\bot$.
We think of this as the space of all “classical” propositions, since a
map $X \to \nabla 2$ is exactly the same thing as a “classical” subspace
of $X$. That is, a subset of the points equipped with the induced topology.</p>
<p>This interpretation also makes it more believable that it should correspond
to $\Omega_{\lnot \lnot}$, the double-negation closed propositions, as this
does represent the “classical” propositions, where we really care about
subsets of points (which are complemented, so satisfy LEM), and then take
whatever topology makes the universal propety work (which happens to be the
subspace topology).</p>
<p>Notice that this is again a complete lattice. We can see this either
because $\nabla 2$ is indiscrete, so every function into it is continuous
(in particular, the arbitrary join/meet functions are continuous), or by
using yoneda again (since arbitrary unions/intersection of subsets of points
are again subsets of points).</p>
<p><br />
$\Omega$</p>
<p>This is the subobject classifier, or the space of <em>all</em> propositions!
Maps $X \to \Omega$ classify <em>all</em> subspaces, even the possibly
nonclassical ones. That is, this is the first time we’re able to build
a limit space, rather than an “honest” sequential space!</p>
<p>Notice that, for $2$ (resp. for $\Sigma$, $\Sigma^c$, and $\nabla 2$) if we start with
a sequential space $X$ and a decidable (resp. open or closed or classical) proposition
$\varphi : X \to 2$ (resp. $\Sigma$, $\Sigma^c$, $\nabla 2$), then the pullback</p>
<p style="text-align:center;">
<img src="/assets/images/life-in-johnstones-topological-topos/decidable-classifier.png" width="25%" />
</p>
<p>exists in $\mathsf{Seq}$, and is an honest clopen (resp. open, closed, classical)
subspace of $X$.</p>
<div class="boxed">
<p>Note that this $A_\varphi$ is an object above $X$, so
if we want to access it in the type theory we have to compose with
the map from $X \to 1$. That is, in the type theory $A_\varphi$
(the subspace classified by $\varphi$) is represented by
$\Sigma_{x:X} \varphi$, as we would expect.</p>
</div>
<p>Now, what does the space of <em>all</em> propositions look like in $\mathcal{T}$?
Well, we know that $2$, $\Sigma$, $\Sigma^c$, and $\nabla 2$ are all
sequential spaces. So there’s a unique convergence proof for each sequence.
It turns out the ability to “remember” only some convergent sequences
(which puts is into the world of kuratowski limit spaces) can be coded up
by more interesting proofs of convergence! Let’s see how!</p>
<p><br /></p>
<p>Johnstone shows that $\Omega$ has two points $\top$ and $\bot$,
and for any sequence $x_n$ of $\top$s and $\bot$s</p>
<ul>
<li>there’s exactly one proof that $x_n \to \bot$</li>
<li>there’s one proof that $x_n \to \top$ for each
“closed ideal of subsets of $\mathbb{N}$” whose “extent” is \(\{n \mid x_n = \top \}\).</li>
</ul>
<p>Here a “closed ideal of subsets of $\mathbb{N}$” is a pair
$(E,I)$ where $E \subseteq \mathbb{N}$ is called the <em>extent</em> of
the closed ideal of subsets.</p>
<p>In the above, $I$ is a family of infinite subsets of $E$, so that</p>
<ol>
<li>if $S$ is an infinite subset of $T$ and $T \in I$, then $S \in I$ too</li>
<li>if every infinite subset of $T$ has a further infinite subset in $I$,
then $T \in I$ too.</li>
</ol>
<p>These correspond, basically, to axioms (2) and (3) for limit spaces.
This will make sense once we understand how this subobject classifier
actually classifies subobjects!</p>
<p>Say that we have a subobject $A \hookrightarrow X$. That is, we remember
only some of the points of $X$, and we only remember some of the (proofs of)
convergent sequences. This had better be classified by a unique map
(read: natural transformation) $\ulcorner A \urcorner : X \to \Omega$.</p>
<p>On points, we have
\(\ulcorner A \urcorner(x) = \begin{cases} \top & x \in A \\ \bot & x \not \in A \end{cases}\),
but what do we do for a proof $p$ that $x_n \to x_\infty$?</p>
<p>Well, to what <em>extent</em> is $(x_n) \in A$? Each point of the
sequence is either in $A$ or isn’t, so a sequence $x_n$ in $X$ produces a
sequence of $\top$s and $\bot$s given by $\omega_n = \ulcorner A \urcorner(x_n)$.</p>
<p>If $x_\infty \not \in A$ (that is, if $\omega_\infty = \bot$),
then life is easy. We send $p$ to the unique proof that $\omega_n \to \bot$.
If instead $x_\infty \in A$, then there are lots of proofs that
$\omega_n \to \top$, indexed by these closed ideals of subsets.
So to decide where $p$ should go, we need a natural choice of
$(E,I)$ associated to our sequence $x_n$.</p>
<p>We’ll let \(E = \{ n \mid x_n \in A \}\) be the <em>extent</em> to which
$x_n \in A$. Next, we have to say which infinite subsets of $E$
live in $I$. Given any infinite subset $T \subseteq E$, we can restrict
$x_n$ to a subsequence of indices in $T$. Since $E$ is exactly the
indices where $x_n \in A$, this restriction $x_n \upharpoonright T$
is a sequence in $A$. Now we say that $T \in I$ if and only if
the restriction $p \upharpoonright T$ proving that
$x_n \upharpoonright T \to x_\infty$ in $X$ is one of the proofs we kept
in $A$.</p>
<p>This shows where these conditions on “closed ideals of subsets” come from!
If $T \in I$, that means that
$p \upharpoonright T : x_n \upharpoonright T \to x_\infty$ is a
convergence proof in $A$. So every subsequence of this
(read: every infinite subset of $T$) must also converge in $A$.
Also, if every subsequence has a further convergent subsequence
(if every infinite subset of $T$ has a further infinite subset in $I$),
then $p \upharpoonright T$ must also be a convergence proof in $A$!</p>
<p><br /></p>
<p>For example, say $X = \mathbb{R}$ with the usual topology, and
$A = \mathbb{R}$ with the discrete topology. Then the identity
$A \hookrightarrow X$ is monic, so should be a subobject, but
in order to classify this we need to only remember <em>some</em> convergent
sequences (the eventually constant ones). Note that <em>every</em> sequence
in $X$ gets sent to the constant $\top$ sequence in $\Omega$, since $A$
and $X$ agree on points. But thankfully now there’s multiple proofs
available that the constant $\top$ sequence converges to $\top$! We send a
sequence $(x_n)$ to the proof indexed by $(\mathbb{N},I)$ where a subset
$S$ is in $I$ if and only if $S$ is the set of indices of an eventually
constant subsequence of $(x_n)$.</p>
<p>Lastly, note that if we reflect $\Omega$ into $\mathsf{Seq}$, it becomes
the humble indiscrete space $\nabla 2$. All of its power comes from the
ability to carry <em>extremely</em> detailed information inside its multiple
proofs of convergence. Storing “extra information” in the convergence
proofs will come up again in <a href="/2024/07/03/topological-topos-2-algebras.html">part 2</a> when we look at quotients
of topological algebras.</p>
<p><br />
$\mathbb{R}$</p>
<p>There’s an object $よ\mathbb{R} = \text{Hom}_\mathsf{Top}(-,\mathbb{R})$
in $\mathcal{T}$ since $\mathbb{R}$ is a separable space. But usually when
people talk about a “real numbers object” in a topos, they mean the object
of dedekind reals (points of a certain locale).</p>
<p>It turns out that in $\mathcal{T}$ this distinction doesn’t matter!
Johnstone’s original paper computes that the object of points of
the theory of dedekind reals is exactly the object $よ\mathbb{R}$!</p>
<p>We won’t show this here because we’ll show something more general
in just a few bullets!</p>
<p><br />
$2^\mathbb{N}$</p>
<p>Since $2$ and $\mathbb{N}$ are both sequential, their exponential in
$\mathcal{T}$ agrees with their exponential in $\mathsf{Seq}$. Since
$2$ and $\mathbb{N}$ are moreover second countable, $2^\mathbb{N}$ gets
the compact open topology.</p>
<p>Now, in the realm of classical topology, since $\mathbb{N}$ is discrete
the compact open topology on $2^\mathbb{N}$ is just the product topology,
and we get cantor space (as expected!)</p>
<p>Again, one can also ask about the points of the locale object
“cantor space”. And again, we find that the points of this locale
are represented by $よ2^\mathbb{N}$, which is the same thing as
the internal $2^\mathbb{N}$ we just computed!</p>
<p><br />
\(\sum_{\alpha : 2^\mathbb{N}} \forall {n : \mathbb{N}} \ \alpha(n+1) \leq \alpha(n)\)</p>
<p>For each $n$, the proposition $\alpha(n+1) \leq \alpha(n)$ is decidable
(said another way, the subset
\(A_n = \{ \alpha \mid \alpha(n+1) \leq \alpha(n) \} \subseteq 2^\mathbb{N}\)
is clopen for each $n$), but once we ask for this quantifier
(which we interpret as an infinite meet), we’re forced to work in $\Sigma^c$.</p>
<p>So “$\forall n : \mathbb{N} . \alpha(n+1) \leq \alpha(n)$” is a closed proposition,
and \(\sum_{\alpha : 2^\mathbb{N}} \forall {n : \mathbb{N}} \ \alpha(n+1) \leq \alpha(n)\)
is just the closed subspace it classifies.</p>
<p>So this space, externally, is the closed subspace of cantor space corresponding
to the decreasing binary sequences. This space is homeomorphic to \(\mathbb{N}_\infty\),
so we see these spaces are also isomorphic in $\mathcal{T}$.</p>
<p><br />
Regular Locales</p>
<div class="boxed">
<p>Let $X$ be a <a href="https://ncatlab.org/nlab/show/regular+space">regular locale</a>. Then the object of $X$ models in
$\mathcal{T}$ is represented by $\text{pt}(X)$, the topological space of
models of $X$ in $\mathsf{Set}$.</p>
<p>In particular, if $X$ is a regular topological space, then the object of
$X$-models in $\mathcal{T}$ is just $よX$, as we might hope!</p>
<p>In particular again, the dedekind reals object is
$よ\mathbb{R}$, the cantor space object is $よ2^\mathbb{N}$, and
any regular locale with enough points classically has enough points
in $\mathcal{T}$.</p>
</div>
<p>$\ulcorner$
Write $X^\mathcal{E}$ for the object of $X$-models in some topos $\mathcal{E}$.
The points of $X^\mathcal{E}$ are in bijection with the geometric maps
$\mathcal{E} \to \mathsf{Sh}(X)$, and from here it’s a nice exercise to
check that the $A$ valued points of $X^\mathcal{E}$ are in bijection with
geometric maps $\mathcal{E} \big / A \to \mathsf{Sh}(X)$ for any object
$A \in \mathcal{E}$. Moreover, since $X$ is a locale, the geometric maps
$\mathcal{E} \to \mathsf{Sh}(X)$ are in bijection with continuous maps
from the <a href="https://ncatlab.org/nlab/show/locale#RelationToToposes">localic reflection</a> of $\mathcal{E}$ to $X$.</p>
<p>Putting these facts together (in the special case of $\mathcal{T}$), we
see that $X^\mathcal{T}(1) = \mathsf{Locale}(\Omega(1), X)$ and
\(X^\mathcal{T}(\mathbb{N}_\infty) = \mathsf{Locale}(\Omega(\mathbb{N}_\infty), X)\).</p>
<p>We know that \(\Omega(1) = \{ \top, \bot \}\), so locale maps from
$\Omega(1)$ to $X$ are just the ordinary set valued points of $X$. That is,
$X^\mathcal{T}(1) = X^\mathsf{Set} = \text{pt}(X)$.</p>
<p>Now let’s look at \(\mathsf{Locale}(\Omega(\mathbb{N}_\infty), X)\),
that is, frame homomorphisms $X$ to \(\Omega(\mathbb{N}_\infty)\).
Since $X$ is regular, we know that every $a \in X$ satisfies<sup id="fnref:26" role="doc-noteref"><a href="#fn:26" class="footnote" rel="footnote">11</a></sup></p>
\[a = \bigvee \{x \mid x \prec a \}\]
<p>where $x \prec a$ (read as “$x$ is rather below $a$”) means that $\lnot x \lor a = \top$.</p>
<p>Then if \(f : X \to \Omega(\mathbb{N}_\infty)\) is a frame hom we see that
each $fa$ satisfies this same property. Indeed</p>
\[\begin{align}
fa
&= f \left ( \bigvee \{ x \mid x \prec a \} \right ) \\
&= \bigvee \{ fx \mid fx \prec fa \} \\
&\leq \bigvee \{ y \mid y \prec fa \} \\
&\leq fa
\end{align}\]
<p>But it’s not hard to see the only elements in \(\Omega(\mathbb{N}_\infty)\)
that satisfy this property are the proofs $(\omega_n) \to \bot$ and the
proofs $(\omega_n) \to \top$ indexed by $(E,I)$ where $E$ is cofinite and
$I$ is the maximal ideal of all infinite subsets of $E$<sup id="fnref:23" role="doc-noteref"><a href="#fn:23" class="footnote" rel="footnote">12</a></sup>. Since these
are precisely the open subspaces of \(\mathbb{N}_\infty\)
(respectively, they’re any subset of $\mathbb{N}$ and any cofinite subset of
$\mathbb{N}$ including \(\{\infty\}\)), we see that every frame map
\(X \to \Omega(\mathbb{N}_\infty)\) factors through the inclusion of the frame
of opens of \(\mathbb{N}_\infty\). Of course, frame maps
$X$ to the opens of \(\mathbb{N}_\infty\) are exactly locale maps
\(\mathbb{N}_\infty \to X\). Since \(\mathbb{N}_\infty\) is spatial, these
are exactly the same thing as maps of topological spaces from
\(\mathbb{N}_\infty\) to $\text{pt}(X)$.</p>
<p>So where did we start, and where did we end? We see that
$X^\mathcal{T}(1) \cong \text{pt}(X) \cong \mathsf{Top}(1,\text{pt}(X))$ and
\(X^\mathcal{T}(\mathbb{N}_\infty) \cong \mathsf{Top}(\mathbb{N}_\infty, \text{pt}(X))\)
so that $X^\mathcal{T} \cong よ\text{pt}(X)$, as claimed.
<span style="float:right">$\lrcorner$</span></p>
<p><br /></p>
<p>Note that in this proof regularity was only used to check that the
convergent sequences in $X^\mathcal{T}$ are what we expected. Showing
that global points of $X^\mathcal{T}$ agree with the points of $X$ in
$\mathsf{Set}$ is easy, and true for <em>every</em> locale $X$! In particular,
if $X$ has enough points in $\mathsf{Set}$, it also has enough points in
$\mathcal{T}$!</p>
<div class="boxed">
<p>This result tells us that <a href="https://ncatlab.org/nlab/show/coherent+space">coherent locales</a> (as defined in $\mathsf{Set}$)
have enough points in $\mathcal{T}$, which I’m <em>pretty sure</em> is equivalent to
the <a href="https://en.wikipedia.org/wiki/Boolean_prime_ideal_theorem">prime ideal theorem</a>… But I would expect this to be false in
$\mathcal{T}$ since it’s quite close to full AC, so we should be able to
use it to build a discontinuous function (but I don’t know how).</p>
<p>Is there a flaw in this proof? Maybe we get out of this problem if the
prime ideal theorem in $\mathcal{T}$ is actually equivalent to all coherent
locales <em>internal to $\mathcal{T}$</em> having enough points? There are locales
internal to $\mathcal{T}$ which don’t exist in $\mathsf{Set}$ at all, so
maybe that’s a stronger statement than what this theorem gets us…</p>
<p>I would be SUPER grateful if some experts chimed in! Feel free to
leave a comment on this post, email me, or say something on mastodon.</p>
</div>
<hr />
<h2 id="how-does-mathcalt-relate-to-sheaf-topoi-mathsfshx">How does $\mathcal{T}$ relate to sheaf topoi $\mathsf{Sh}(X)$?</h2>
<p>Like we said in the introduction, the topological topos $\mathcal{T}$
is a <a href="https://ncatlab.org/nlab/show/big+and+little+toposes">gros topos</a> in the sense that it’s <em>objects</em> are productively
thought of as spaces. However, to any <em>individual</em> topological space, we can
associate a “petit topos” $\mathsf{Sh}(X)$ which should be thought of as a
(generalized) space in its own right. Oftentimes, if $\mathcal{B}$ is a
gros topos and $X$ is a topological space which lives in $\mathcal{B}$,
there is a close connection between $\mathsf{Sh}(X)$ and the
slice topos $\mathcal{B} \big / X$.</p>
<p>For instance some authors<sup id="fnref:24" role="doc-noteref"><a href="#fn:24" class="footnote" rel="footnote">13</a></sup> say that “a” topological topos is a category
of sheaves on a subcategory $\mathcal{C}$ of $\mathsf{Top}$ closed under
finite limits and open subspaces. The grothendieck topology is the natural one
where a covering family is an open cover in the usual sense.
Then if $X \in \mathcal{C}$, the usual sheaf topos $\mathsf{Sh}(X)$ is
“homotopy equivalent” to the slice topos $\mathsf{Sh}(\mathcal{C},J) \big / X$.
This is made precise at the end of Mac Lane and Moerdijk, Chapter VI.10.</p>
<p>It’s natural to ask for a similar relationship between $\mathsf{Sh}(X)$
and $\mathcal{T} \big / X$ for a sequential space $X$. This is the subject of
Section 9 in Johnstone’s original paper, where it’s shown that there <em>is</em>
a geometric morphism $\mathcal{T} \big / X \to \mathsf{Sh}(X)$, but this
relationship is somewhat less compelling than in the case of a more
traditional gros topos. For instance, the direct image half of this morphism
isn’t exact, so that cohomology of $\mathcal{T} \big / X$ does not agree
with the cohomology of $\mathsf{Sh}(X)$. In particular, even for the (closed)
unit interval $I$ and a finite abelian group $A$ Johnstone shows that
$H^1(\mathcal{T} \big / I; A)$ is not trivial!</p>
<p>Johnstone decides to not say anything more about the geometric morphisms
$\mathsf{Sh}(X) \to \mathcal{T}$, and we’ll follow suit.</p>
<div class="boxed">
<p>⚠ From this discussion, though, we learn that “the” topological topos
$\mathcal{T}$ is <em>not</em> “a” topological topos in the sense of
Moerdijk and Reyes (and other papers). In particular, we have to be careful
when reading the literature which version of “topological topos” the
author is talking about.</p>
</div>
<hr />
<h2 id="characterizing-honest-spaces-internally">Characterizing “Honest Spaces” Internally</h2>
<p>We saw earlier how every type we construct represents some space by
interpreting that type in $\mathcal{T}$ and then reflecting back into
$\mathsf{Seq}$. This remains true even if we use certain principles that
aren’t always true in type theory, but happen to be true in $\mathcal{T}$
(we’ll discuss this in Part 3).</p>
<p>From this point of view it’s natural to ask when a type we’ve constructed
is <em>already</em> a space, without needing to do any reflection. Is there a
way to internally characterize the “honest spaces” amongst all the objects
in $\mathcal{T}$?</p>
<p>The first step in this process is to recognize $\mathsf{Kur}$ as the
$\lnot \lnot$-separated objects. That is, an object $X \in \mathcal{T}$
is actually in $\mathsf{Kur}$ if and only if the internal logic thinks</p>
\[\mathtt{is-}\lnot\lnot\mathtt{-Separated}(X) \triangleq
\prod_{x,y : X} \lnot \lnot(x=y) \to (x=y)\]
<p>This is implicit in Propositions 3.6 and 4.3 of Johnstone’s original
paper.</p>
<p>Then, we use the fact that the full subcategory of sequentially hausdorff
sequential spaces is equivalent to the full subcategory of sequentially
hausdorff limit spaces! With this in mind, we define</p>
\[\mathtt{isSeqHaus}(X) \triangleq
\prod_{f,g : \mathbb{N}_\infty \to X}
\left (
\Big ( \prod_{n : \mathbb{N}} f(n) = g(n) \Big ) \to f(\infty) = g(\infty)
\right )\]
<p>and it’s easy to show that $\mathcal{T}$ thinks, internally, that
$\mathtt{isSeqHaus}(X)$ if and only if $X$ is sequentially hausdorff
in the real world.</p>
<p>In particular, this means that we can show an object of $\mathcal{T}$
represents an honest topological space by internally showing that it’s
$\lnot\lnot$-separated and sequentially hausdorff<sup id="fnref:19" role="doc-noteref"><a href="#fn:19" class="footnote" rel="footnote">14</a></sup>!</p>
<hr />
<p>Ok! That’s plenty for this post, where we’ve learned a lot of fundamentals
about what $\mathcal{T}$ is, how we can think about its objects,
how we can <em>build new objects</em> using type theory and various proposition
classifiers, and most importantly we’ve learned how the things we build
in $\mathcal{T}$ relate to topological spaces in “the real world”!</p>
<p><a href="/2024/07/03/topological-topos-2-algebras.html">Next up</a> we’ll talk about topological algebras, and learn how
we can use the topological topos to reason smoothly about these things.
This is a shorter palate cleanser between this post (which is <em>quite</em> long)
and the <a href="/2024/07/03/topological-topos-3-bonus-axioms.html">third post</a> on ~bonus axioms~ validated by $\mathcal{T}$
(which is slightly less long than this one, but with much heavier math).</p>
<p>Thanks for hanging in there, and for all the encouragement while I
was writing this! It’s been really exciting to know how many people
are interested in reading this series ^_^.</p>
<p>As a last request, I’ll be turning this series into a paper in the
very near future. If you have any suggestions for other examples to add,
or axioms to check, or if you notice any typos or outright mistakes,
definitely let me know! Also, experts, if you have any additional context
you think would fit well in what’s shaping up to be quite a long survey
of the topological topos that you want to get into the literature, please
let me know that too! It’ll be nice for future mathematicians to have this
all in one place!</p>
<p>As always, thanks for reading all! Stay safe, and talk soon 💖</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>I spent some time a few years ago (Feb of 2022, according to my Zotero)
thinking hard about the effective topos. I think I was going
to write a blog post about it, but I never got around to it.</p>
<p>I think I should be able to remind myself what was going on, and
in a perfect world I would understand it much better now that I know
more things, so hopefully I’ll finally write that post. This is
particularly relevant now that Andrej Bauer and James Hanson have posted
their <a href="https://arxiv.org/abs/2404.01256">preprint</a> constructing a realizability topos where the
reals are countable. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>And even then, it might not be obvious when you’re learning! I remember
when I first learned pointset topology the idea of a “cylinder set”
and the product topology made no sense to me! Honestly without the
framework of <a href="/2021/12/16/topological-categories.html">topological categories</a> or something similar, I could
see people <em>still</em> being surprised that the <a href="https://en.wikipedia.org/wiki/Box_topology">box topology</a> isn’t
the “right” topology on an infinite product space! See, for instance,
this old and highly upvoted <a href="https://math.stackexchange.com/questions/871610/why-are-box-topology-and-product-topology-different-on-infinite-products-of-topo">mse question</a>. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>After my <a href="/2024/03/25/continuous-max-function">last post</a> on a constructive extreme value theorem, I wanted to
see how it externalizes in topoi other than $\mathsf{Sh}(B)$. I’m pretty sure
in the effective topos we’ll get something that looks like an algorithm
eating a function on a compact space and returning its max… But it’s
super unclear what we should get interpreting this in $\mathcal{T}$!
After all, a <a href="https://ncatlab.org/nlab/show/frame">frame</a> in $\mathcal{T}$ is a topological lattice $L$. So
a locale in $L$ is a space whose frame of opens is <em>itself</em> a space…</p>
<p>I still haven’t totally figured out this story
(though I’m much less weirded out by the idea since I remembered that
<a href="https://en.wikipedia.org/wiki/Scott_continuity">scott topologies</a> exist as a natural topology on the frame of opens),
so I won’t say anything
more in <em>this</em> post, but trying to understand $\mathcal{T}$ well enough to
externalize the constructive extreme value theorem was the second big
motivator for this post. Of course, understanding $\mathcal{T}$ was so fun
and interesting that I got distracted from my original goal, but that’s how
these things tend to go for me, haha. <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:7" role="doc-endnote">
<p>If you want a <em>super</em> concrete description, it’s equivalent to</p>
\[\left \{
1, \frac{1}{2}, \frac{1}{3}, \frac{1}{4}, \ldots, \frac{1}{n}, \ldots, 0
\right \}
\subseteq \mathbb{R}\]
<p>with the subspace topology. <a href="#fnref:7" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>Note that it’s entirely possible for two different elements
\(p \neq q \in X(\mathbb{N}_\infty)\) to witness convergence of
the same sequence (so $p_n = q_n$ for all $n$ and $\infty$)!</p>
<p>Indeed, this will be crucial later, for instance in our discussion
of the <a href="https://en.wikipedia.org/wiki/Subobject_classifier">subobject classifier</a> $\Omega$. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:8" role="doc-endnote">
<p>This is spelled out quite clearly in Johnstone’s original paper
<a href="https://londmathsoc.onlinelibrary.wiley.com/doi/abs/10.1112/plms/s3-38.2.237"><em>On a Topological Topos</em></a>. Indeed, Johnstone computes the
covering sieves <em>very</em> explicitly, and I highly recommend reading
about it there. Of course, I’ll say a few words about it in this post too! <a href="#fnref:8" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:10" role="doc-endnote">
<p>It’s not <em>immediately</em> obvious that this presheaf is actually a sheaf,
but it turns out to be. This is a nice exercise. <a href="#fnref:10" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:21" role="doc-endnote">
<p>But we must remember that products in $\mathsf{Seq}$ are <em>not</em>
products in $\mathsf{Top}$ in general! Indeed, for <em>most</em>
“convenient categories of spaces” the product is not the product in
$\mathsf{Top}$. We can get the product in $\mathsf{Seq}$ by taking
the product in $\mathsf{Top}$ and coreflecting back into $\mathsf{Seq}$,
but there’s also a convenient description:</p>
<p>A sequence of pairs $(a_n,b_n)$ in $A \times B$ converges to
$(a_\infty, b_\infty)$ if and only if separately $a_n \to a_\infty$ in
$A$ and $b_n \to b_\infty$ in $B$. <a href="#fnref:21" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:18" role="doc-endnote">
<p>If you want to understand how to compute (co)limits in $\mathsf{Seq}$
or $\mathsf{Kur}$, I highly recommend reading Section 3 of this paper.
It’s really great, and has a lot of information!</p>
<p>Particularly helpful is the observation that $\mathsf{Kur}$ is
<span class="defn">Topologically Concrete</span>. See my old blog
post <a href="/2021/12/16/topological-categories.html">here</a>, and especially Adámek, Herrlich, and Strecker’s
<em>The Joy of Cats</em>. This book writes $\mathbf{Conv}$ where we write
$\mathsf{Kur}$, and shows that it’s topologically concrete and
concretely cartesian closed! This tells us very explicitly how
we can compute (co)limits and exponentials in $\mathsf{Kur}$,
on top of the great description in Section 3 of Menni and Simpson. <a href="#fnref:18" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:25" role="doc-endnote">
<p>Thanks to Morgan Rogers for letting me know that monics actually
agree in all cases, which simplies the exposition of this section quite a lot. <a href="#fnref:25" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:26" role="doc-endnote">
<p>Thanks to Graham Manuell for letting me know that there’s standard
notation for this (which the post now uses) besides what’s shown in
Johnstone’s “Stone Spaces”. <a href="#fnref:26" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:23" role="doc-endnote">
<p>First, say we have a proof \((\omega_n) \to \bot\). That is a subset $A$ of
$\mathbb{N}$. Then to have $x \prec A$ means that
$\lnot x \lor A = \top$, which is the proof \((\omega_n) \to \top\) indexed by
\((\mathbb{N}, \text{max}_\mathbb{N})\), the ideal indexed by all infinite
subsets of $\mathbb{N}$. Since $x \leq A$, it’s also just a subset of
$\mathbb{N}$ (indeed, a subset of $A$), and its pseudocomplement $\lnot x$
is indexed by \((x^c, \text{max}_{x^c})\), the ideal of all infinite subsets of
\(x^c\). So asking $\lnot x \lor A = \top$ means asking for the closure of
\((\mathbb{N},\text{max}_{x^c})\) to equal
\((\mathbb{N}, \text{max}_\mathbb{N})\). Expanding this out
via the axioms for one of these “closed ideals of subsets” means that
every subset of $\mathbb{N}$ should have a further subset inside
\(\text{max}_{x^c}\). But this happens exactly when \(x^c\) is cofinite!
So asking for \(A = \bigvee \{ x \prec A \}\) means asking for $A$ to be
the union of the finite subsets of $A$, which is always true.</p>
<p>Now let’s look at the more complicated case of a proof \((\omega_n) \to \top\).
We see $x \prec (E,I)$ if and only if
\(\lnot x \lor (E,I) = \top = (\mathbb{N}, \text{max}_\mathbb{N})\), so that
if $x = (F,J)$ we must have $F \subseteq E$ and the closure of $I$ should be
\(\text{max}_\mathbb{N}\) so that $E$ must be cofinite! Since it’s not possible
for a join of proofs \((\omega_n) \to \bot\) to equal a proof $(E,I)$ that
\((\omega_n) \to \top\), this tells us that the only proofs with this property
are those indexed by \((E, \text{max}_E)\) with $E$ cofinite! And, of course,
it’s easy to see that \((E, \text{max}_E) \prec (E, \text{max}_E)\) when $E$ is
cofinite, so that moreover every maximal cofinite ideal is possible. <a href="#fnref:23" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:24" role="doc-endnote">
<p>eg, Moerdijk and Reyes in their
<a href="https://www.sciencedirect.com/science/article/pii/0022404984900495"><em>Smooth spaces versus continuous spaces in models for synthetic differential geometry</em></a> <a href="#fnref:24" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:19" role="doc-endnote">
<p>You might ask if there’s a way to characterize the whole of
$\mathsf{Seq}$ inside $\mathcal{T}$, rather than only the sequentially
hausdorff spaces.</p>
<p>I suspect there’s a way to do this, by defining the sequentially
open subsets of $X$ and demanding that every sequence that converges
with respect to this topology already converges…</p>
<p>But this sounds rather complicated, and I’m really looking to get this
blog post done, haha. Especially since I still have to convert it
into a paper! <a href="#fnref:19" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Wed, 03 Jul 2024 00:00:00 +0000
https://grossack.site/2024/07/03/life-in-johnstones-topological-topos.html
https://grossack.site/2024/07/03/life-in-johnstones-topological-topos.htmlTalk -- What is Factorization Homology?<p>I was recently invited to speak at the <a href="https://www.ams.org/meetings/sectional/2313_program_ss13.html">AMS Sectional</a> in
Tallahassee, Florida. In particular, at the special session on
<em>Homotopy Theory and Category Theory in Interaction</em>. The
conference was this weekend, and I’m typing this up on my
plane ride home. I had a great time, and met a lot of great
people! The special session was pretty small, so we all
got to talk to each other, and I got surprisingly close
with the people I went out for lunch (and later, drinks) with!</p>
<p>I was nervous at first, since Florida… isn’t politically friendly
towards trans people. Thankfully everybody that I interacted
with was lovely, and I didn’t have any issues at all. What’s more,
the campus was <em>beautiful</em>, and the surrounding area was
surprisingly walkable. We had a <em>4 hour</em> lunch break on the first
day (which is part of how I got so close with my lunch group),
and after we ate some great barbecue we all hung out under
some fantastic trees.</p>
<p>I also felt safer because I was hanging out with <a href="https://kayaarro.site/">Kaya Arro</a>,
a postdoc at UCR, for basically the whole time. They were great
company, and also helped a ton with silly homotopy questions
while I was making my slides (on the day before the talk…).</p>
<p>Anyways here are some of the trees <em>right</em> outside the conference building<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">1</a></sup>!</p>
<p style="text-align:center;">
<img src="/assets/images/ams-sectional-talk-fh/fsu-trees.jpg" width="50%" />
</p>
<p>It was like $400 cheaper to fly out on Monday evening, even
though the conference ended on Sunday, so Kaya and I had
almost a whole day to ourselves. We went to the FSU
<a href="https://mofa.fsu.edu/">Museum of Fine Arts</a> and walked around until it was
airport time.</p>
<p>It was the <em>perfect</em> size museum for the amount of time we had, with
some amazing installation pieces, and a whole section dedicated to
book making! That was particularly exciting for me, since one of my
best friends, <a href="https://www.ashleyjchan.com/stories">Ashley Chan</a>, is a super talented book maker!</p>
<p>These first few paragraphs were a bit bloggier than usual,
but I had a <em>great</em> time and wanted to talk about it!
Now that we’ve had a chance to catch up, though, let’s
get to the math ^_^.</p>
<hr />
<p>My talk was on <a href="https://ncatlab.org/nlab/show/factorization+homology">Factorization Homology</a>, and I
split it up into three sections:</p>
<ul>
<li>Why?</li>
<li>What?</li>
<li>How?</li>
</ul>
<p>In the first section, I wanted to provide some motivation for
the technology, and to explain why it deserves to be called
“homology”.</p>
<p>The second section was all about what factorization
homology <em>is</em>, at least in broad strokes. I left out a bunch of
details about orientation and framings since the talk was only
20 minutes and I wanted to stay light on my feet. This was
also the section I got to express myself the most, since I
view factorization homology through the lens of categorical logic<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">2</a></sup>,
and I was able to spend some time on that perspective.</p>
<p>The third section was on actually <em>doing things</em> with factorization
homology. That is, on how we can really compute it, and how we can
interpret what these computations mean. I wasn’t able to spend
<em>too</em> much time on the interpretation, but I said a few words,
and it was worth it for the extra time spent on a
(sketchy version of a) simple example computation.</p>
<p>There were some great questions after the talk, including one
from <a href="http://phck.net/">Philip Hackney</a>
(one of the organizers, and the person who invited me) which
gave me the chance to talk about what factorization homology
has to do with my research.</p>
<p>All in all, I think the talk went super well. I don’t think I
came off as particularly manic, which can happen when I give
short talks, and it seems like people were able to take some
intuition away, which is everything I wanted! It helps that
everyone at the conference was super nice, so I didn’t have to
worry at all about being judged or grilled. I think people were
in a <em>particularly</em> good mood, since I was the first talk after
lunch, so everyone was full and happy, haha.</p>
<hr />
<p>So then, in more detail, what all did we talk about?
In what follows, I’ll always mean $\infty$-category,
$\infty$-functor, etc. whenever I write “category”,
“functor”, etc.</p>
<p>First, the <em>why</em>.</p>
<p>We recall that “classical” cohomology $H^n(X,A)$ can be
seen as $\pi_0 \text{Map}(X, K(n,A))$. Unraveling these
hieroglyphics says that the cohomology of $X$ with
coefficients in $A$ can be computed as the connected
components of the <a href="https://ncatlab.org/nlab/show/compact-open+topology">space of maps</a> from $X$ to the
<a href="https://en.wikipedia.org/wiki/Eilenberg%E2%80%93MacLane_space">eilenberg-mac lane space</a> $K(A,n)$<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">3</a></sup>. That is,
with the set of maps up-to-homotopy $X \to K(A,n)$.</p>
<p>This encourages a rather broad perspective, which says
that we can think of $\pi_0 \text{Map}(X,Y)$ as the
“cohomology of the space $X$ with coefficients in the space $Y$”.
This is sometimes called <a href="https://ncatlab.org/nlab/show/nonabelian+cohomology#NonabelianSheafCohomology">nonabelian cohomology</a>, and
many cohomology theories can be subsumed by this one
(basically because lots of algebraic and topological things
can be seen as spaces! See <a href="https://ncatlab.org/nlab/show/Dold-Kan+correspondence">here</a>, for instance).</p>
<p>If we’re calling this thing cohomology, it’s natural to ask
which “classical” theorems in cohomology are true in this
setting. And one natural theorem to want is <a href="https://en.wikipedia.org/wiki/Poincar%C3%A9_duality">Poincaré Duality</a>.</p>
<p>One motivation for factorization homology is that it’s the
right homology theory to make this “Nonabelian Poincaré Duality”
true!</p>
<p>In the talk I said some words about this, but online there’s no
need for me to say anything. If you’re interested, you should
just go read <a href="https://www.math.ias.edu/~lurie/282ynotes/LectureVIII-Poincare.pdf">Lurie’s notes on the topic</a> instead. After all,
I basically just paraphrased them in the talk!</p>
<p>If you insist on sticking around here, though, the idea is this:</p>
<p>To prove the “classical” poincaré duality $H_i(X,A) \cong H^{n - i}_c(X,A)$,
one can show</p>
<ol>
<li>The functors $C_\bullet(-,A)$ and $C_c^\bullet(-,A)$ from
the category of $n$-manifolds and smooth embeddings to the
category of chain complexes are both <a href="https://en.wikipedia.org/wiki/Cosheaf">cosheaves</a>.</li>
<li><em>Just check</em> that
$C_\bullet(\mathbb{R}^n,A) \simeq C_c^\bullet(\mathbb{R}^n,A)$</li>
<li>Conclude that, since every manifold $\mathbb{R}^n$ is a bunch of
$\mathbb{R}^n$s in a trenchcoat, this equivalence is actually
true for all manifolds.</li>
<li>Taking homology of both sides to get the claim.</li>
</ol>
<p>Basically, a cosheaf is something we can compute for a big thing
by gluing together the computations for small things
(you should have something like <a href="https://en.wikipedia.org/wiki/Mayer%E2%80%93Vietoris_sequence#Basic_versions_for_singular_homology">Mayer-Veitoris</a> in mind).
In particular, since every manifold is glued from copies of
$\mathbb{R}^n$, a cosheaf is <em>totally determined</em> by what it
does to $\mathbb{R}^n$! So once we check that
$C_\bullet(-,A)$ and $C_c^\bullet(-,A)$ agree on $\mathbb{R}^n$,
we get for free that they must agree <em>for every manifold</em><sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">4</a></sup>!</p>
<p>Now, if we <em>wanted</em> to cook up a homology theory making
some kind of “nonabelian poincaré duality” true, we might
try something like this:</p>
<ol>
<li>Show $\text{Map}_c(-,Y) : \mathcal{M}\text{an} \to \mathcal{S}$
is a cosheaf</li>
<li>Define the “nonabelian homology” of $\mathbb{R}^n$ to be
$\text{Map}_c(\mathbb{R}^n,Y)$</li>
<li>Use the cosheaf-ness to extend this definition to all manifolds by
“doing what you have to do”.</li>
</ol>
<p>This turns out to not <em>quite</em> work, but if we define “nonabelian homology”
for all <em>disjoint unions</em></p>
\[\emptyset, \quad
\mathbb{R}^n, \quad
\mathbb{R}^n \coprod \mathbb{R}^n, \quad
\mathbb{R}^n \coprod \mathbb{R}^n \coprod \mathbb{R}^n, \quad \ldots\]
<p>we’re able to get the job done<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">5</a></sup>!</p>
<p>So then, we’ve found ourselves with a functor defined on
\(\mathcal{D}_n\) – the category of disjoint unions of $\mathbb{R}^n$s
with smooth embeddings. Then we <em>freely extend</em> this functor
to the whole category of manifolds $\mathcal{M}\text{an}_n$ by
defining the functor to be “compatible with gluing”. The keyword
here is <a href="https://en.wikipedia.org/wiki/Kan_extension">left kan extension</a>.</p>
<p>If you’re me, this feels a <em>whole</em> lot like a familiar story
from categorical logic!</p>
<p>This, of course, is all part of the <em>what</em>!</p>
<p>At this point in the talk I took a quick diversion to remind
people about <a href="https://ncatlab.org/nlab/show/Lawvere+theory">Functorial Semantics</a>. This was extra easy
since in the morning session <a href="https://math.virginia.edu/people/vz6an/">Valentina Zapata Castro</a> spent some time
talking about the lawvere theory for monoids!</p>
<p><br /></p>
<p>In (1-categorical) functorial semantics, we have <em>classifying categories</em>
associated to algebraic theories. Then a model of that
theory is “just” a functor from the classifying category to
$\mathsf{Set}$. For instance, the classifying category $\mathcal{A}$
for abelian groups looks like this<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">6</a></sup>:</p>
<p style="text-align:center;">
<img src="/assets/images/ams-sectional-talk-fh/A-cat.png" width="50%" />
</p>
<p>and the classifying category for rings $\mathcal{R}$ is:</p>
<p style="text-align:center;">
<img src="/assets/images/ams-sectional-talk-fh/R-cat.png" width="50%" />
</p>
<p>Indeed, a finite product functor $\mathcal{A} \to \mathsf{Set}$
has to send $1$ to some set $A$. Then, since it’s product preserving,
it has to send $2$ to $A^2$, and $0$ to $A^0 = { \star }$. Then
the indicated maps get sent to honest operations on $A$, which give us
the desired abelian group structure on $A$.</p>
<p>Note that we have an embedding $j : \mathcal{A} \hookrightarrow \mathcal{R}$.</p>
<p>Now any ring $R$ is a (finite product) functor
$\mathcal{R} \to \mathsf{Set}$, and if we <em>restrict</em> along $j$
we get a new finite product functor $\mathcal{A} \to \mathsf{Set}$.
That is, we get an abelian group! It should be believable that this is
the underlying abelian group of the ring we started with!</p>
<p style="text-align:center;">
<img src="/assets/images/ams-sectional-talk-fh/res.png" width="50%" />
</p>
<p>More excitingly, can we go the other way? Given a functor
$\mathcal{A} \to \mathsf{Set}$ (that is, an abelian group)
is there a way to freely <em>extend</em> this functor to one defined
on all of $\mathcal{R}$?</p>
<p style="text-align:center;">
<img src="/assets/images/ams-sectional-talk-fh/exn.png" width="50%" />
</p>
<p>The answer, of course, is <em>yes</em> and it’s given by
left kan extension! This recovers the usual free ring on an
abelian group $A$.</p>
<p><br /></p>
<p>Primed with this context, let’s look at our definition of
factorization homology again:</p>
<p>We have a (symmetric monoidal) functor \(\mathcal{D}_n \to \mathcal{C}\).
This data is actually quite well studied, since it’s a model for
<a href="https://ncatlab.org/nlab/show/En-algebra">$E_n$-algebras</a> in $\mathcal{C}$. These are monoids in $\mathcal{C}$
that are “commutative up-to-homotopy living in dimension $n$”<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">7</a></sup>.</p>
<p>So we have something that looks like some kind of algebra, which is
given by a functor out of \(\mathcal{D}_n\). Then we want to <em>freely extend</em>
this data to a new kind of algebra, given by a functor out of
$\mathcal{M}\text{an}_n$…</p>
<p>Doesn’t this setup sound familiar?</p>
<p>If \(A : \mathcal{D}_n \to \mathcal{C}\) is our $E_n$-algebra,
We define $\int_{(-)} A : \mathcal{M}\text{an}_n \to \mathcal{C}$,
the <span class="defn">Factorization Homology</span> to be the
left kan extension of $A$ along $j$. We can think of this as a kind of
“algebra” which is graded by connected manifolds. Moreover, we have
operations between these graded pieces corresponding to smooth embeddings!</p>
<p>For instance, if $i : M_1 \coprod M_2 \to N$ is a smooth embedding, then
we get an operation $\int_{M_1} A \otimes \int_{M_2} A \to \int_N A$.</p>
<p>In particular, for a <span class="defn">Collared Manifold</span>
(that is, a manifold of the form $M = M_0 \times \mathbb{R}$) we get
an algebra structure $\int_M A \otimes \int_M A \to \int_M A$
from the embedding</p>
<p style="text-align:center;">
<img src="/assets/images/ams-sectional-talk-fh/algebra.png" width="50%" />
</p>
<p>Similarly, if $M$ embeds into $N$, then we get a $\int_M A$-module structure on
$\int_N A$:</p>
<p style="text-align:center;">
<img src="/assets/images/ams-sectional-talk-fh/module.png" width="50%" />
</p>
<p>This brings us to the most important part of the <em>How</em>:</p>
<p>We can actually compute factorization homology by using “collared excision”:</p>
<p style="text-align:center;">
<img src="/assets/images/ams-sectional-talk-fh/excision.png" width="50%" />
</p>
<p>If you want to read more about all of this, I <em>highly</em> recommend
the relevant section in <a href="https://julietcooke.net/">Juliet Cooke</a>’s <a href="https://julietcooke.net/CookeThesis.pdf">Thesis</a>. If you want to
really understand it well, there’s also Alaya and Francis’s
<a href="https://www3.nd.edu/~stolz/2021S_Math80440/2019_Ayala_Francis.pdf"><em>Factorization Homology Primer</em></a> and <a href="https://www.hiroleetanaka.com/">Hiro Lee Tanaka</a>’s
excellent lectures on the subject, which are available on <a href="https://www.youtube.com/watch?v=yeTngpqaAmk">youtube</a>.</p>
<hr />
<p>Thanks again for reading, all! I’m really pleased with how this talk went,
and I’m happy to have made as many friends as I did at the conference.</p>
<p>It was great to be invited to speak in person somewhere for the first time,
and to feel super welcomed in the homotopy theory world
(which I’m only tangentially a part of… at least for now).</p>
<p>Stay safe, all, and we’ll talk soon!</p>
<hr />
<p>What is Factorization Homology?</p>
<p>Ayala, Francis, and Rozenblyum introduced Factorization Homology in order to
compare category theory and (topological quantum) field theory. It has since
grown into a useful invariant of surfaces and algebras which,
through excision, is often computable in practice. In this survey talk we
will discuss the basics of factorization homology, emphasizing its connections
to both homotopy theory and category theory (via infinity categories).
Given time, we will also discuss some applications to the speaker’s ongoing
dissertation work in skein theory.</p>
<p>The talk wasn’t recorded, but you can find the slides <a href="/assets/docs/ams-sectional-talk-fh/slides.pdf">here</a>.</p>
<p style="text-align:center;">
<img src="/assets/images/ams-sectional-talk-fh/me.jpg" width="50%" />
</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:7" role="doc-endnote">
<p>The hilariously named “HCB” (Huge Classroom Building). <a href="#fnref:7" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:1" role="doc-endnote">
<p>Though honestly, I view <em>most</em> things through the lens of either
categories or logic. So this should come as no surprise, haha. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>If you haven’t seen this before, it’s a <em>super</em> useful perspective
to have on hand! For example, <a href="https://ncatlab.org/nlab/show/complex+projective+space">$\mathbb{C}P^\infty$</a> is both
a model for $K(\mathbb{Z},2)$ and $BU(1)$.</p>
<p>Now (homotopy classes of) maps $X \to K(\mathbb{Z},2)$ are the same
thing as elements of $H^2(X,\mathbb{Z})$ by the fact from the main
post.</p>
<p>But homotopy classes of maps $X \to BU(1)$ are the same thing as
complex line bundles on $X$!</p>
<p>So, since these spaces are the same, we learn that complex line
bundles on $X$ are classified by $H^2(X,\mathbb{Z})$!</p>
<p>You can read more about this <a href="https://mathoverflow.net/questions/308253/classification-of-line-bundles-by-second-cohomology-of-a-manifold">here</a>, for instance. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>This is one <em>killer</em> example of why people care about this kind
of abstract nonsense. Not only do we need to know stuff about
(co)sheaves, we also have to care about $\infty$-categories!</p>
<p>This is basically because $\infty$-categorical things tend to
glue more nicely than $1$-categorical things. <em>This</em>, in turn,
is related to the idea that “Chain Complex: Good. Homology: Bad”,
as talked about in many places. (for instance, <a href="https://arxiv.org/abs/math/0501094">here</a> and
<a href="https://mathoverflow.net/questions/450835/what-is-the-motivation-for-infinity-category-theory">here</a>) <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>This is basically because checking the cosheaf condition requires
some version of Mayer-Veitoris. But the “usual” version of
Mayer-Veitoris crucially uses the ability to add functions
(since $A$ is an abelian group). Now that $Y$ is any old space,
we lose addition.</p>
<p>But by working with disjoint unions of $\mathbb{R}^n$s, we can
get a notion of “addition” back by taking the disjoint union of the
functions!</p>
<p>You can read more about precisely what’s going on in
<a href="https://www.math.ias.edu/~lurie/282ynotes/LectureVIII-Poincare.pdf">Lurie’s notes</a>. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>Precisely, the classifying category for the models of any
<a href="https://ncatlab.org/nlab/show/algebraic+theory">algebraic theory</a> is always the opposite of the
category of the finitely generated free models.</p>
<p>So, for instance, $\mathcal{A}^\text{op}$ is the full
subcategory of abelian groups spanned by</p>
\[\{1, \mathbb{Z}, \mathbb{Z}^2, \mathbb{Z}^3, \ldots \}\]
<p>and $\mathcal{R}^\text{op}$ is the full subcategory of
(let’s say commutative) rings spanned by</p>
\[\{1, \mathbb{Z}[x], \mathbb{Z}[x,y], \mathbb{Z}[x,y,z], \ldots \}\]
<p>There’s a similar version of this story that works for
<a href="https://ncatlab.org/nlab/show/essentially+algebraic+theory">essentially algebraic theories</a> where we use the
finitely <em>presented</em> models instead.</p>
<p>We’ve talked a bit about this on the blog <a href="/2023/11/14/ctoctoberfest2023.html">before</a>, and I
have plans to talk quite a bit about it sometime in the future. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>I’m not going to tell you what that means, but here’s an illustrative
example:</p>
<p>An $E_1$-algebra in $\mathfrak{Cat}$ is a monoidal category.</p>
<p>An $E_2$-algebra in $\mathfrak{Cat}$ is a <a href="https://en.wikipedia.org/wiki/Braided_monoidal_category"><em>braided</em></a> monoidal category.
That is, the multiplicative structure is commutative… but only up to a
homotopy (the braiding).</p>
<p>An $E_3$-algebra in $\mathfrak{Cat}$ is a <a href="https://en.wikipedia.org/wiki/Symmetric_monoidal_category">symmetric</a> monoidal category.
That is, a category whose multiplicative structure is <em>genuinely</em>
commutative (at least, up to isomorphism, which is the best we ever
want to do in a category).</p>
<p>All $E_n$-algebras for $n \geq 3$ are the same, since $\mathfrak{Cat}$
is a $2$-category. There <em>aren’t any</em> interesting (read: nonidentity)
homotopies in dimension $\geq 3$, so if you’re commutative up to a
higher homotopy, the only choice for that higher homotopy is the identity!
Which means you’re just commutative without further qualification!</p>
<p>But you can imagine that, for $\infty$-categories that do have higher
homotopies, we can have monoids that are commutative up to the data
of an $n$-homotopy, and that’s exactly an $E_n$-algebra. In case you
want something that really is commutative, you can take $n=\infty$ here. <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Wed, 27 Mar 2024 00:00:00 +0000
https://grossack.site/2024/03/27/ams-sectional-talk-fh.html
https://grossack.site/2024/03/27/ams-sectional-talk-fh.htmlProving Another "Real Theorem" with Topos Theory<p>Another day, another post that starts with “So I was on mse…”, lol.
Somebody <a href="https://math.stackexchange.com/q/4870971/655547">asked</a> whether maximizing over a compact set is a continuous thing
to do. That is, given a continuous function $f : K \times X \to \mathbb{R}$ is the
function $x \mapsto \max_{k \in K} f(k,x)$ continuous?</p>
<p>If you’re me, this looks an awful lot like the usual
<a href="https://en.wikipedia.org/wiki/Extreme_value_theorem#Generalization_to_metric_and_topological_spaces">extreme value theorem</a>, but where
“everything in sight depends continuously on a parameter from $X$”. Indeed,
say we had a family of compact sets $K_x$ depending on a parameter from $X$,
and a family of functions $f_x : K_x \to \mathbb{R}$ which is continuous both
in the choice of $x$ and in the choice of $k \in K_x$. Then the usual extreme
value theorem tells us that we have pointwise maxima
$m_x = \max_{k \in K_x} f_x(k)$, and it’s natural to ask whether these
maxima <em>also</em> vary continuously in the parameter $x$.</p>
<p>Depending on your experience with <a href="https://en.wikipedia.org/wiki/Fiber_bundle">bundles</a>, you might be aware that
the usual way to encode a “family of sets $A_x$ continuously depending on $x \in X$”
is with a single space $A$
(usually called the <span class="defn">total space</span>)
equipped with a map $\pi : A \to X$. Then the fibres of $\pi$ give us the
desired family of sets $A_x = \pi^{-1}(x)$<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">1</a></sup>. As a super concrete example,
say we want to represent the constant family $A_x = \mathbb{R}$. Then
we should use the <span class="defn">trivial bundle</span>
$\mathbb{R} \times X$ with the obvious projection map
$\pi : \mathbb{R} \times X \to X$<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">2</a></sup>.</p>
<div class="boxed">
<p>I bet you weren’t expecting a cute exercise this early in the post!</p>
<p>Can you show that a family of functions $f_x : A_x \to B_x$ over $X$
is the same thing as a single function $f : A \to B$ making the following
diagram commute:</p>
<p style="text-align:center;">
<img src="/assets/images/continuous-max-function/bundle-map.png" width="50%" />
</p>
<p>Recall we’re thinking of the sets $A_x$ and $B_x$ as being the fibres
$\pi_A^{-1}(x)$ and $\pi_B^{-1}(x)$.</p>
<p>To go from the family $f_x$ to a single function $f$ on the total spaces,
it might be worth remembering that the total space $A$ is just the
disjoint union of the fibres<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup> $\sum_{x \in X} A_x$ (suitably topologized).</p>
</div>
<p>So the constant family $K_x = K$ of compact sets is represented by the trivial
bundle $K \times X$, and (by the above exercise) a family of functions
$f_x : K_x \to \mathbb{R}$ is represented by a function
$f : K \times X \to \mathbb{R} \times X$ with $\pi_2 (f(k,x)) = x$. Since we
know what the second component <em>must</em> be, this is the same data as a function
$K \times X \to \mathbb{R}$! This tells us that, if we can prove some
“$X$-parameterized” version of the extreme value theorem
(where the resulting maxima also depend continuously on a parameter $x \in X$),
we can answer the OP’s question by looking at the special case where $K_x$
is a constant family!</p>
<p>If you’ve been exposed to some ideas in topos theory, you should be screaming
something to do with the “internal logic” right now! Indeed, a theorem inside
the topos of <a href="https://ncatlab.org/nlab/show/sheaf">sheaves</a> on $X$ externalizes to give a version of that
theorem where everything is automatically continuous in a parameter from $X$.
So if we have access to the extreme value theorem inside $\mathsf{Sh}(X)$
(that is, if we have a <a href="https://ncatlab.org/nlab/show/constructive+mathematics">constructive</a> proof of the extreme value theorem)
we would <em>immediately</em> get the parameterized version for free!</p>
<hr />
<p>So then, we want to get our hands on a constructive proof of the extreme
value theorem.
Typically constructive theorems which assert the <em>existence</em> of something
(in this case, a maximum) require some ~bonus assumptions~ which are invisible
in the classical case. This is because existence is a much stronger
phenomenon constructively<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">4</a></sup>.</p>
<p>To start, we probably want to be working with <a href="https://ncatlab.org/nlab/show/locale">locales</a> instead of
topological spaces. Since the person on mse was happy with $K$ and $X$
<em>metrizable</em>, they’ll certainly be ok with <a href="https://ncatlab.org/nlab/show/sober+topological+space">sobriety</a> since hausdorff-ness
already implies it! Since sober spaces and locales (with enough points) are
the same thing, we lose nothing by moving to the world of locales. There’s a
good notion of compactness for locales, and people have spent a lot of time
proving classical theorems constructively in this setting! So, optimistically,
we can google <code class="language-plaintext highlighter-rouge">"extreme value theorem"+"locale"</code> to see if someone has
already done what we’re looking for, and our optimism is quickly rewarded!
We find <a href="https://www.mat.uc.pt/~tacl2022/slides/GMlecture5.pdf">Graham Manuell’s slides</a> from <a href="https://www.mat.uc.pt/~tacl2022/">TACL 2022</a> which give a
constructive proof of the following:</p>
<div class="boxed">
<p>If $K$ is a compact, overt, positive locale, and $f : K \to \mathbb{R}$
is continuous, then $f$ has a maximum $\max_K f$ given by a dedekind real.</p>
</div>
<p>Let’s say a few words about what all these weird adjectives mean!</p>
<p>First, let’s handle the easiest one: <span class="defn">Compact</span>.</p>
<p>The most familiar definition of compactness is that every open cover
has a finite subcover. Precisely, if $\mathcal{U}$ is a family of open
subsets of $X$ with $X = \bigvee \mathcal{U}$, then there should be a
(<a href="https://ncatlab.org/nlab/show/finite+set">kuratowski-</a>)finite subfamily $\mathcal{U}_0 \subseteq \mathcal{U}$
so that actually $X = \bigvee \mathcal{U}_0$.</p>
<p>However, constructively it’s better to avoid saying the word “finite”
if you can. The notion of finiteness splits into different inequivalent
notions (kuratowski-finite, bishop-finite, dedekind-finite, etc) which makes
the whole thing a bit of a mess<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">5</a></sup>. For this reason, there’s a different,
equivalent definition of compactness which we often prefer:</p>
<p>We say $X$ is called compact if for every <em>directed</em> open cover $\mathcal{U}$<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">6</a></sup>
with $X = \bigvee \mathcal{U}$, we must actually have $X \in \mathcal{U}$!</p>
<div class="boxed">
<p>As a cute exercise, prove these two definitions are equivalent! Try your
hardest to make sure your proof is constructive!</p>
</div>
<p>There’s one last angle on compactness that I want to emphasize here as well:
We say a locale is compact if <em>universal quantification is open</em>. That is,
if $U \subseteq K \times X$ is open, we want to know if
\(\{ x \mid \forall k . (k,x) \in U \} \subseteq X\) is open.
This turns out to be true (for every $X$ and every $U$) if and only if $K$
is compact<sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">7</a></sup>!</p>
<p><br /></p>
<p>The next adjective on the list is <span class="defn">Overt</span>. This is
a kind of tricky notion to understand at first, since it’s invisible classically.
We say a locale $O$ is overt iff for any locale $X$ and open subset
$U \subseteq O \times X$, the projection
\(\{ x \mid \exists o \in O . (o,x) \} \subseteq X\) is open. Note how this is
dual to the universal quantifier present for compact sets. Also note that
this set is exactly the image of $U$ under $\pi_X : O \times X \to X$.
Since, classically, this projection map is always <a href="https://en.wikipedia.org/wiki/Open_and_closed_maps#Open_maps">open</a>, we learn that
classically <em>every</em> locale is overt<sup id="fnref:9" role="doc-noteref"><a href="#fn:9" class="footnote" rel="footnote">8</a></sup>.</p>
<p>There’s an equivalent characterization of overtness, which is often useful
in practice. We want to check that the unique map $X \overset{!}{\to} 1$
is open. Since open maps are preserved by pullbacks, this gives the
original definition for free. It also shows how this definition is classically
invisible, since every subset of the terminal locale is open when the terminal
locale is \(\{\star\}\).</p>
<p>However, recall that in a sheaf topos $\text{Sh}(X)$ the terminal locale is
$X$! Then a locale in $\text{Sh}(X)$ is just an external locale with a map
into $X$, and overtness of the internal locale corresponds to openness of the
external map! So there’s obviously no reason to expect every locale to be
overt constructively, since it’s easy to find continuous functions
that aren’t open.</p>
<p><br /></p>
<p>Lastly, we say that a locale is <span class="defn">Positive</span> iff every
open cover must be inhabited. That is, if $X = \bigvee \mathcal{U}$ for
$\mathcal{U}$ a family of open sets, the family $\mathcal{U}$ must be inhabited.</p>
<p>Recall we say $A$ is <em>inhabited</em> exactly when $\exists a \in A$ is true.
In $\text{Sh}(X)$, this means that there’s an open cover of $X$ so that $A$
has a section on every element of the cover. That is, exactly when the
structure map $A \to X$ is surjective<sup id="fnref:13" role="doc-noteref"><a href="#fn:13" class="footnote" rel="footnote">9</a></sup>.</p>
<hr />
<p>Now, let’s outline the proof from Manuell’s <a href="https://www.mat.uc.pt/~tacl2022/slides/GMlecture5.pdf">slides</a><sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">10</a></sup>. Recall a
<span class="defn">Dedekind Real</span> is a pair of cuts $(L,U)$ where</p>
<ul>
<li>$L \subseteq \mathbb{Q}$ is a <em>lower cut</em> of rational numbers in the sense that
<ol>
<li>$\exists p \in L$ ($L$ is inhabited)</li>
<li>if $p \lt q$ and $q \in L$, then $p \in L$ too ($L$ is downwards closed)</li>
<li>if $p \in L$, then $\exists q \in L . q \gt p$ ($L$ is upwards open)</li>
</ol>
</li>
<li>$U \subseteq \mathbb{Q}$ is an <em>upper cut</em> of rational numbers in the sense that
<ol>
<li>$\exists p \in U$ ($U$ is inhabited)</li>
<li>if $p \gt q$ and $q \in U$, then $p \in U$ too ($U$ is upwards closed)</li>
<li>if $p \in U$, then $\exists q \in U . q \lt p$ ($U$ is downwards open)</li>
</ol>
</li>
<li>$L$ and $U$ are <em>compatible</em> in the sense that
<ol>
<li>If $p \in L$ and $q \in U$, then $p \lt q$ ($L$ and $U$ don’t overlap)</li>
<li>If $p \lt q$ are any rationals, then $p \in L \lor q \in U$
($L$ and $U$ have no gap between them)</li>
</ol>
</li>
</ul>
<p>If you haven’t seen this before, we think of $r = (L,U)$ as pinning down a
real number by saying how it compares to every rational. If
$q \in L$, we say $q \lt r$, and if $q \in U$ we say $q \gt r$. See
the <a href="https://ncatlab.org/nlab/show/Dedekind+cut#idea">nlab page</a> for more.
Recall also<sup id="fnref:10" role="doc-noteref"><a href="#fn:10" class="footnote" rel="footnote">11</a></sup> that, a real number in $\text{Sh}(X)$ is a continuous
function $X \to \mathbb{R}$. The lower/upper cuts are also useful separately,
and externalize to lower/upper <a href="https://en.wikipedia.org/wiki/Semi-continuity">semicontinuous functions</a> on $X$.</p>
<p>Now, finally, for the proof idea:</p>
<p>$\ulcorner$
Say $f : K \to \mathbb{R}$ is a map from a positive, overt, compact
locale $K$. First we’ll use positive overtness to build</p>
\[L = \{ q \in \mathbb{Q} \mid \exists k \in K . q \lt k \}.\]
<p>Then, we’ll use positive compactness to build</p>
\[U = \{ q \in \mathbb{Q} \mid \forall k \in K . k \lt q \}.\]
<p>Lastly, we need to show
that the $L$ and $U$ we just built are compatible. It’s easy to
show they don’t overlap, but showing they “have no gap” requires a
small argument (which you can find on Manuell’s slide 8).
<span style="float:right">$\lrcorner$</span></p>
<p><br /></p>
<p>Note how (after externalizing) this is <em>really</em> the same argument that
Sangchul Lee gave in the accepted answer on <a href="https://math.stackexchange.com/q/4870971/655547">mse</a>!</p>
<p>First we show that $g(x) = \max_K f(k,x)$ is lower semicontinuous
(that is, we show that it’s a lower real). This doesn’t use any
facts about $K$, since it’s only using positive overtness of $K \times X$,
which is <em>always</em> true!</p>
<p>Then we show that $g(x)$ is upper semicontinuous
(that is, we show it’s an upper real). This is where we crucially use
compactness, both externally and internally.</p>
<p>The compatibility conditions basically amount to checking your upper and
lower semicontinuous functions are the same, but since Sangchul’s answer
is working with a single function the whole time there’s no need to verify
that.</p>
<hr />
<p>So now we have this constructive theorem. What does it <em>actually</em> tell us
after we externalize?</p>
<p>Well, you can chase through the definitions of compact, overt, and positive
inside (say) a sheaf topos $\text{Sh}(X)$ and see what you get!</p>
<p>First, as we alluded to in the introduction to this post,
a locale $K$ internal to $\text{Sh}(X)$ is exactly a locale map<sup id="fnref:11" role="doc-noteref"><a href="#fn:11" class="footnote" rel="footnote">12</a></sup>
$\pi : \Gamma(K) \to X$ where $\Gamma$ is the usual <a href="https://ncatlab.org/nlab/show/global+section">global sections map</a>.</p>
<p>From here, it’s not (too) hard to see that $K$ is compact if and only if
$\pi$ is <a href="https://ncatlab.org/nlab/show/proper+map">proper</a>, that $K$ is overt if and only if $\pi$ is
<a href="https://ncatlab.org/nlab/show/open+map">open</a>, and that $K$ is positive if and only if $\pi$ is surjective<sup id="fnref:12" role="doc-noteref"><a href="#fn:12" class="footnote" rel="footnote">13</a></sup>.</p>
<p>So altogether we learn that</p>
<div class="boxed">
<p>If $\pi : A \to X$ is a proper, open, surjection and we have
$f : A \to \mathbb{R}$, then</p>
\[x \mapsto \max_{k \in \pi^{-1}(x)} f(k)\]
<p>is continuous.</p>
</div>
<p>In particular, we answer the OP’s question! Taking $\pi : K \times X \to X$
to be the usual projection map
(which is open and surjective, plus proper since $K$ is compact) we learn that</p>
\[x \mapsto \max_{(k,x) \in \pi^{-1}(x)} f(k,x)\]
<p>is continuous. As desired!</p>
<hr />
<p>Ok! Thanks for reading, all! This felt like it took forever for what a short
post it was, but I had a great time writing it. I’m flying home from the
AMS Sectional today, where I gave a talk at the special session on
<a href="https://www.ams.org/meetings/sectional/2313_program_ss13.html">Homotopy Theory and Category Theory in Interaction</a>. I had a <em>great</em>
time, and met a lot of really awesome people. It was a small group, which
means we had lots of time to hang out and get to know each other.</p>
<p>I’ll write up some stuff about the conference (and my talk) soon, but for
now I need to get ready to go to the airport! Stay safe ^_^.</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:4" role="doc-endnote">
<p>I really don’t like Goldblatt’s <em>Topoi</em> as a book, but his section on the
relationship between bundles over $X$ and sets continuously “indexed” by $X$
is super good. It’s chapter 4 section 5, and it has some really helpful
pictures and examples! <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:1" role="doc-endnote">
<p>Note that it’s possible to have constant fibres, <em>without</em> being the
trivial bundle! In this case, even though each fibre is the same as
every other, we <em>glue them together</em> in an interesting way! To be the
trivial bundle, you need to know the fibres are all the same, <em>and</em> that
we glued them together in the most naive way possible. For instance,
the trivial $\mathbb{R}$-bundle over the circle $S^1$ looks like a cylinder,
since we glue the copies of $\mathbb{R}$ together in the simplest possible way.
However, we could slowly “twist” our copies of $\mathbb{R}$ as we move around
the circle as we glue them together to get a moebius strip!
This is still a continuously varying family of copies of $\mathbb{R}$,
but now the bundle is nontrivial! Here’s a picture from wikipedia:</p>
<p style="text-align:center;">
<img src="/assets/images/continuous-max-function/mobius-bundle.png" width="75%" />
</p>
<p>As a cute exercise, can you come up with two bundles over $S^1$ where
each fibre has two elements? One should be a trivial bundle, and the
other shouldn’t be. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>Any type theorists in the room are probably screaming
<a href="https://en.wikipedia.org/wiki/Dependent_type#%CE%A3_type">Dependent Sum</a> right around now! That’s extremely fair, and I almost
put something in the main post about this, but I ended up editing it out. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>As witnessed (pun intended) by the fact that, interpreted in suitable topoi,
a constructive existence proof gives rise to free theorems saying
there’s an algorithm that produces the desired object, or that the
desired object can be defined continuously in a parameter, etc. This is
exactly the phenomenon we’re trying to exploit, and we have to do work
somewhere! <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>I still haven’t taken the time to <em>really</em> familiarize myself with the
various notions of finiteness, and how they “feel”. One day soon I want
to, though. <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:7" role="doc-endnote">
<p>Recall a partial order $(D,\leq)$ is called <span class="defn">directed</span>
if it’s inhabited and for any $x,y \in D$ <del>their join $x \lor y$ is
in $D$ too</del> <strong>Edit:</strong> There’s a mutual uppoer bound $x,y \leq z$ also
in $D$. Thanks to <a href="https://tdejong.com/">Tom de Jong</a> for this correction!</p>
<p>This is really hiding kuratowski-finiteness again, since directedness
guarantees that for any kuratowski-finite subset $F \subseteq D$ that
$\bigvee F \in D$. This is the usual argument that binary joins
imply finite (nonempty) joins. <a href="#fnref:7" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:8" role="doc-endnote">
<p>I was curious about this, and <a href="https://pedromarun.github.io/">Pedro</a> pointed out that one
direction is basically the classical <a href="https://en.wikipedia.org/wiki/Tube_lemma">tube lemma</a>. I don’t
actually see how to do the other direction (at least quickly)
and I don’t really have time to think about it right now. If
someone figures it out I’d love to hear about it in the comments! <a href="#fnref:8" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:9" role="doc-endnote">
<p>Constructively it’s still true that every locale with enough points is
automatically overt (see the <a href="https://ncatlab.org/nlab/show/overt+space">nlab</a>). It’s a very mild
condition, see the discussion <a href="https://mathoverflow.net/questions/405866/what-does-overtness-mean-for-metric-spaces">here</a>, for instance,
or Paul Taylor’s <a href="http://www.paultaylor.eu/ASD/overtrn/overtrn.pdf"><em>Overt Subspaces of $\mathbb{R}^n$</em></a>. <a href="#fnref:9" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:13" role="doc-endnote">
<p><strong>Edit: July 7, 2024:</strong></p>
<p>Graham and I talked about this on the CT Zuip back in March, since it’s not
100% obvious how this works.</p>
<p>In Graham’s <a href="http://arxiv.org/abs/2304.06000">notes</a>, theorem 3.15 is a constructive proof that
$A$ is a positive locale if and only if the map
$! : A \to 1$ is epic in the category of locales.</p>
<p>So this tells us that, $A$ is a positive locale internal to
$\mathsf{Sh}(X)$ iff, in the internal category of locales in $\mathsf{Sh}(X)$,
the map $A \to 1$ is epic.</p>
<p>We would love to use the “well known” equivalence between
the category of internal locales in $\mathsf{Sh}(X)$ and the category
of external locales over $X$ here to say that $A \to 1$ is epic iff
externally the structure map $A \to X$ is epic, as claimed… But it’s
actually slightly more subtle than that! After all, Graham’s notes prove
a claim about the <em>internal</em> category of locales internal to $\mathsf{Sh}(X)$,
and I don’t see an obvious way to relate this to the <em>external</em> category
of locales internal to $\mathsf{Sh}(X)$. Morally the external category
should be a kind of “global section” of the internal category, but I’m
not sure how to make this precise… I think it’s something stacky.</p>
<p>That said, this particular situation is simple enough that we don’t need
to worry about such things! In his notes, Graham <em>actually</em> proves that
$!^* : \mathcal{O}(1) \to \mathcal{O}(A)$ is injective as a frame hom.
Injectivity in the internal logic gives us injectivity on global sections,
but we know the global sections of $\mathcal{O}(1)$ are just
$\mathcal{O}(X)$ externally, and global sections of $\mathcal{O}(A)$
are just $\mathcal{O}(\Gamma(A))$ externally! So we get injectivity externally,
thus the exeternal map $\Gamma(A) \to X$ is epic, as desired.</p>
<p>There’s almost certainly a cleaner approach using Caramello and
Zanfra’s recent machinery about relative topoi via stacks
(see <a href="https://arxiv.org/abs/2107.04417">here</a>), but I haven’t had time to learn any of these results. <a href="#fnref:13" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>He, in turn, mentions was based on the treatment in Paul Taylor’s
<a href="http://logicandanalysis.org/index.php/jla/article/view/63/25"><em>A Lambda-Calculus for Real Analysis</em></a>. I actually have this paper
saved, but it’s long and I wasn’t sure how easy it would be to translate
Taylor’s results into language I’m more familiar with. Now that I’ve seen
Manuell do it, though, I have plans to read this paper pretty soon! <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:10" role="doc-endnote">
<p>I’ve always gotten slightly annoyed, or at least laughed quietly to
myself, when authors ask the reader to “recall” some fact that they
quite possibly don’t know.</p>
<p>I really want this post to be done, though
(I’ve been working on it for almost a month) and if I have to explain
why upper/lower reals correspond to upper/lower semicontinuous functions
I’ll never finish… I know, I tried.</p>
<p>You can find an <em>extremely</em> detailed treatment in Mac Lane and Moerdijk’s
<em>Sheaves in Geometry and Logic</em> Chapter VI.8. Understanding this well
is probably enough to work out that upper/lower reals correspond to
upper/lower semicontinuous functions yourself
(which will make a great exercise!). Depending on your experience,
you might be helped by my <a href="/2022/12/13/internal-logic-examples.html">old post</a> on externalizing formulas
inside a topos.</p>
<p>There’s also a great treatment in Johnstone’s
<em>Sketches of an Elephant</em>, Chapter D4.7. This works out the case of
lower reals and lower semicontinuous functions explicitly, but does so
quite quickly. <a href="#fnref:10" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:11" role="doc-endnote">
<p>In fact we can say exactly <em>which</em> map it is! We want a locale map
from $\Gamma(K) \to X$, which means we want a frame homomorphism
from $\mathcal{O}(X) \to \mathcal{O}(\Gamma(K)) = \Gamma(\mathcal{O}(K))$.</p>
<p>But given an open set $U \subseteq X$, we can look at the local sections
$\Gamma(\mathcal{O}(K),U)$. This is again a frame, and the restriction
map $\rho^X_U : \Gamma(\mathcal{O}(K)) \to \Gamma(\mathcal{O}(K),U)$
has a left adjoint
$\sigma_U : \Gamma(\mathcal{O}(K),U) \to \Gamma(\mathcal{O}(K))$.</p>
<p>The desired map from $\mathcal{O}(X) \to \mathcal{O}(\Gamma(K))$ sends
$U \subseteq X$ to $\sigma_U(\top)$, where $\top$ is the top element
of $\Gamma(\mathcal{O}(K),U)$. <a href="#fnref:11" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:12" role="doc-endnote">
<p>I feel kind of bad not proving these facts, since they’re not <em>so</em>
hard? But I really am trying to finish this post quickly.</p>
<p>You can find a lot of this in Johnstone’s <em>Elephant</em>. In particular,</p>
<ul>
<li>Getting a locale map $\pi : \Gamma(K) \to X$ from an internal locale is
proposition chapter C1.6.2</li>
<li>Compactness of $K$ agrees with properness of $\pi$ is theorem C3.2.8</li>
<li>Overtness of $K$ agrees with openness of $\pi$ is lemma C3.1.17</li>
<li>We’ve already talked about why positivity means $\pi$ is surjective</li>
</ul>
<p><a href="#fnref:12" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Mon, 25 Mar 2024 00:00:00 +0000
https://grossack.site/2024/03/25/continuous-max-function.html
https://grossack.site/2024/03/25/continuous-max-function.htmlInternal Group Actions as Enriched Functors<p>Earlier <del>today</del> this month on the <a href="https://categorytheory.zulipchat.com/">Category Theory Zulip</a>, Bernd Losert asked an
extremely natural question about how we might study topological group
actions via the functorial approach beloved by category theorists.
The usual story is to treat a group $G$ as a one-object category $\mathsf{B}G$.
Then an action $G \curvearrowright X$ is the same data as a functor
$\mathsf{B}G \to \mathsf{Set}$ sending the unique object of $\mathsf{B}G$ to $X$.
Is there some version of this story that works for topological groups and
continuous group actions?</p>
<p>I wouldn’t be writing this post if the answer were “no”, so let’s get into it!
This is a great case study in the ideas behind both <a href="https://ncatlab.org/nlab/show/internalization">internalization</a> and
<a href="https://ncatlab.org/nlab/show/enriched+category">enrichment</a>, and I think it’ll make a great learning tool for future
mathematicians wondering why you might care about such things.</p>
<p>Hopefully people find this helpful ^_^.</p>
<p>(Also, I’m especially sorry for the wait on this one, since I know at least
one person has been waiting on it for two weeks now! Life got busy, but I’m
excited to finally get this posted.)</p>
<hr />
<p>First, let’s take a second to talk about <span class="defn">Internalization</span>.</p>
<p>The idea here is to take a construction that’s usually defined for sets, and
interpret it inside some other category. For instance, a group $G$ is usually</p>
<ul>
<li>a set $G$</li>
<li>a function $m : G \times G \to G$ (the multiplication)</li>
<li>a function $i : G \to G$ (the inversion)</li>
<li>a function $e : 1 \to G$ (the unit)</li>
</ul>
<p>satisfying some axioms.</p>
<p>We can <em>internalize</em> this definition into the category $\mathsf{Top}$
of topological spaces by looking at</p>
<ul>
<li>a topological space $G$</li>
<li>a continuous function $m : G \times G \to G$</li>
<li>a continuous function $i : G \to G$</li>
<li>a continuous function $e : 1 \to G$</li>
</ul>
<p>satisfying the usual axioms.
This recovers the usual definition of a <a href="https://en.wikipedia.org/wiki/Topological_group">topological group</a>.</p>
<p>Similarly we could ask for a manifold $G$ with smooth maps $m,i,e$, and
this would recover the definition of a <a href="https://en.wikipedia.org/wiki/Lie_group">lie group</a>. At the most general,
we ask for a <span class="defn">Group Object Internal to $\mathcal{C}$</span>.
This is the data of:</p>
<div class="boxed">
<ul>
<li>a $\mathcal{C}$-object $G$</li>
<li>a $\mathcal{C}$-arrow $m : G \times G \to G$</li>
<li>a $\mathcal{C}$-arrow $i : G \to G$</li>
<li>a $\mathcal{C}$-arrow $e : 1 \to G$</li>
</ul>
<p>satisfying the usual axioms<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>.</p>
</div>
<p>As a quick aside, notice the crucial use of the terminal object $1$ and the
product $G \times G$ in the above definition. This tells us that we can only
define groups internal to a category with finite products<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup>.</p>
<p>Now just like we can internalize a group object, we can also internalize a
group <em>action</em>! If $G$ is a group object internal to $\mathcal{C}$ and $X$
is some object of $\mathcal{C}$ (if you like, $X$ is a “set internal to $\mathcal{C}$”)
then an <span class="defn">Internal Group Action</span> is a $\mathcal{C}$-arrow
$\alpha : G \times X \to X$ satisfying the usual axioms.</p>
<p>So then a group action internal to $\mathsf{Top}$ is the usual notion of a
<a href="https://en.wikipedia.org/wiki/Continuous_group_action">continuous group action</a>, and a group action internal to manifolds is a
<a href="https://en.wikipedia.org/wiki/Lie_group_action">lie group action</a>, etc.</p>
<hr />
<p>Let’s change tack for a second and talk about the other half of the story.</p>
<p>Now we start with a <a href="https://ncatlab.org/nlab/show/closed+monoidal+category">(symmetric) monoidal closed category</a>. Roughly speaking, this is
a category where the set of arrows $\text{Hom}_{\mathcal{C}}(X,Y)$ can be
represented by an object of $\mathcal{C}$!</p>
<p>For instance, the category of vector spaces $\mathsf{Vect}$ is monoidal closed
since the homset $\text{Hom}(V,W)$ of linear maps is <em>itself</em> a vector space,
which we’ll write as $[V,W]$.</p>
<p>Another example is the category of (nice<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>) topological spaces. The
set of continuous functions $\text{Hom}(X,Y)$ can be given the
<a href="https://en.wikipedia.org/wiki/Compact-open_topology">compact-open topology</a>, so that it is <em>itself</em> a topological space
$[X,Y]$.</p>
<p><br /></p>
<p>The fact that these categories can “talk about their own homsets” might
make you wonder about other categories with structured homsets.</p>
<p>For instance, there are <em>lots</em> of categories in the wild whose homsets
are vector spaces! If $R$ is any $k$-algebra, then for $R$-modules $M$
and $N$ the homset $\text{Hom}_{R\text{-mod}}(M,N)$ is a vector space.
Similarly, if $G$ is any group, then the homset between any two
$G$-representations is actually a vector space! We say that the categories
$R\text{-mod}$ and $G\text{-rep}$ are <span class="defn">Enriched</span> over
$\mathsf{Vect}$.</p>
<p>Similarly, you can ask about categories where each homset is a
topological space. It turns out that these give a <em>fantastic</em>
first-order approximation<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup> to the theory of <a href="https://ncatlab.org/nlab/show/%28infinity%2C1%29-category">$\infty$-categories</a>!</p>
<p>More generally, we can define a
<span class="defn">$\mathcal{C}$-Enriched Category</span>
to be the data of</p>
<div class="boxed">
<ul>
<li>A set of objects</li>
<li>For each pair of objects $x,y$, a $\mathcal{C}$-object $\text{Hom}(x,y)$</li>
<li>For each triple of objects, a composition map in $\mathcal{C}$,
$\circ : \text{Hom}(y,z) \otimes \text{Hom}(x,y) \to \text{Hom}(x,z)$</li>
<li>For each object $x$, a distinguished element<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup> $\text{id}_x \in \text{Hom}(x,x)$</li>
<li>Satisfying the usual axioms.</li>
</ul>
</div>
<p>And what will be relevant for us, a $\mathcal{C}$-enriched <em>groupoid</em>,
which moreover has an inverse map $i : \text{Hom}(x,y) \to \text{Hom}(y,x)$
showing that every arrow is an isomorphism.</p>
<p>Note that every (symmetric monoidal closed) $\mathcal{C}$ is enriched over
itself in a canonical way. We take the $\mathcal{C}$-category whose
objects are objects of $\mathcal{C}$, and define
$\text{Hom}(x,y)$ to be the $\mathcal{C}$-object $[x,y]$. This specializes to
the right notion for vector spaces and topological spaces which were examples
earlier in this section.</p>
<p>We’ll also need the notion of a $\mathcal{C}$-enriched functor, which is
exactly what you might expect given the above definition.</p>
<div class="boxed">
<p>Given two $\mathcal{C}$-enriched categories $\mathbf{A}$ and $\mathbf{B}$, an
<span class="defn">Enriched Functor</span> $F : \mathbf{A} \to \mathbf{B}$ sends
objects of $\mathbf{A}$ to objects of $\mathbf{B}$. Moreover, for every pair
of objects in $\mathbf{A}$ there should be a $\mathcal{C}$-arrow
\(F_{x,y} : \text{Hom}_{\mathbf{A}}(x,y) \to \text{Hom}_{\mathbf{B}}(Fx,Fy)\)
which are compatible with identities and composition.</p>
</div>
<p>For example, a $\mathsf{Vect}$-enriched functor is just a functor so that
the map $\text{Hom}(x,y) \to \text{Hom}(Fx,Fy)$ is moreover a linear map
(recall our homsets are vector spaces). Similarly, a $\mathsf{Top}$-enriched
functor is a functor so that the maps on homsets
$\text{Hom}(x,y) \to \text{Hom}(Fx,Fy)$ are continuous.</p>
<hr />
<p>Now we have all the pieces we’ll need to prove</p>
<div class="boxed">
<p><strong>Theorem</strong>: Fix a <a href="https://en.wikipedia.org/wiki/Cartesian_closed_category">cartesian closed</a> category $\mathcal{C}$.</p>
<p>There is a natural bijection between group objects $G$ internal to $\mathcal{C}$
and $1$-object groupoids $\mathsf{B}G$ enriched over $\mathcal{C}$.</p>
<p>Moreover, for a fixed group object $G$, there is a bijection between
internal $G$-actions and enriched functors $\mathsf{B}G \to \mathcal{C}$.</p>
</div>
<p>$\ulcorner$
Say that we have a group object $G$ internal to a (cartesian closed)
category $\mathcal{C}$. Then let’s build a $\mathcal{C}$-enriched category,
$\mathsf{B}G$ with a single object $\star$, where $\text{Hom}(\star,\star) = G$.
Of course, we write $\text{id}_\star = e$, and composition is multiplication.</p>
<p>Note that $G$ is an object of $\mathcal{C}$, and the identity/composition/inverse
maps are $\mathcal{C}$-arrows. So this really is a $\mathcal{C}$-enriched
groupoid with one object!</p>
<p>Conversely, say we have a one-object $\mathcal{C}$-enriched groupoid
$\mathcal{G}$. Then $\text{Hom}_\mathcal{G}(\star,\star)$ had better be an
object of $\mathcal{C}$, and it’s easy to check that composition and inverse
in $\mathcal{G}$ gives this object an internal group structure!</p>
<p>So the data of an enriched $1$-object groupoid is <em>exactly</em> the data of an
internal group!</p>
<p><br /></p>
<p>Now, what is a $\mathcal{C}$-enriched functor $F : \mathsf{B}G \to \mathcal{C}$?</p>
<p>We have to send $\star$ to some object of $\mathcal{C}$, say $X$. Then we need
a $\mathcal{C}$-morphism $\text{Hom}(\star,\star) \to \text{Hom}(X,X)$. But by
the definitions of $\mathsf{B}G$ and $\mathcal{C}$ (enriched over itself)
this is the data of a $\mathcal{C}$-arrow $G \to [X,X]$.</p>
<p>Now we use cartesian closedness! This arrow transposes (uncurries) to
a $\mathcal{C}$-arrow $G \times X \to X$, and one can check that the identity
and composition preservation for the functor corresponds exactly to the
axioms for $G \times X \to X$ to be a group action internal to $\mathcal{C}$.</p>
<p>Of course, walking backwards through the above discussion shows that an
internal group action $G \times X \to X$ in $\mathcal{C}$ is exactly the
data of a $\mathcal{C}$-enriched functor $\mathsf{B}G \to \mathcal{C}$
sending $\star \mapsto X$!
<span style="float:right">$\lrcorner$</span></p>
<div class="boxed">
<p>Your category-theorist senses should be tingling after reading the
statement of the previous theorem!</p>
<p>Sure there’s a bijection of group/group actions, but <em>what about the arrows!?</em></p>
<p>As a cute exercise, prove that this theorem upgrades to an
equivalence<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">6</a></sup> of categories between</p>
\[\left \{
\begin{array}{c}
\text{group objects internal to $\mathcal{C}$ with} \\
\text{internal group homs as arrows}
\end{array}
\right \}
\simeq
\left \{
\begin{array}{c}
\text{$1$-object groupoids enriched over $\mathcal{C}$ with} \\
\text{enriched functors as arrows}
\end{array}
\right \}\]
<p>and for fixed $G$</p>
\[\left \{
\begin{array}{c}
\text{Internal actions $G \times X \to X$ in $\mathcal{C}$ with} \\
\text{internal $G$-equivariant arrows}
\end{array}
\right \}
\simeq
\left \{
\begin{array}{c}
\text{Enriched functors $\mathsf{B}G \to \mathcal{C}$ with} \\
\text{enriched natural transformations as arrows}
\end{array}
\right \}\]
<p>Part of the puzzle is how to define some of these notions
(such as “internal $G$-equivariant arrows”). You might find it helpful
to read the preexisting definition of an <a href="https://ncatlab.org/nlab/show/enriched+natural+transformation">enriched natural transformation</a>.</p>
</div>
<hr />
<p>Let’s take a second to meditate on the difference between “internalization”
and “enrichment”. This difference is usually invisible, since for “ordinary”
categories we’re always working both internal to $\mathsf{Set}$<sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">7</a></sup> and
enriched over $\mathsf{Set}$. That is, our categories are always sets with
some structure, and our homsets are always… well, sets!</p>
<p>When you have some gadget and you think
“Gee! I sure wish this gadget automatically had the structure of a
$\mathcal{C}$-object!”<sup id="fnref:9" role="doc-noteref"><a href="#fn:9" class="footnote" rel="footnote">8</a></sup>, you want to work <em>internally</em> to $\mathcal{C}$.
Doing this means that pretending that $\mathcal{C}$ <em>is</em> the
universe of sets, and the $\mathcal{C}$-arrows <em>are</em> the universe of
functions, and then just doing whatever we usually do but “inside $\mathcal{C}$”.</p>
<p>Figuring out exactly how to do this is the purview of much of
<a href="https://en.wikipedia.org/wiki/Categorical_logic">categorical logic</a>. We can construct standard ways of interpreting
set theoretic constructions
(such as “${x \in \mathbb{N} \mid \exists y. y^2 = x}$”, etc.)
inside a (sufficiently structured) category $\mathcal{C}$. Then there’s a
routine, but slightly annoying<sup id="fnref:10" role="doc-noteref"><a href="#fn:10" class="footnote" rel="footnote">9</a></sup>, method for cashing out these
set theoretic constructions for an “internal” version in $\mathcal{C}$!
You can read all about this <a href="https://ncatlab.org/nlab/show/internal+logic">here</a> or <a href="https://github.com/awodey/CatLogNotes/blob/master/2019/catlog.pdf">here</a>. One of the reasons
so many people care about <a href="https://en.wikipedia.org/wiki/Topos">topos theory</a> is because a topos is
a category with <em>so much</em> structure that we can actually internalize
<em>any concept we want</em> inside it!</p>
<p><br /></p>
<p>What about enrichment? This is useful when you have an otherwise “normal”
category, but your homsets have ~bonus structure~ that you want to respect.
For instance, your homsets might be abelian groups, or vector spaces,
topological spaces, or chain complexes! Then <em>enriched</em> category theory tells
you that, say, yoneda’s lemma <a href="https://ncatlab.org/nlab/show/enriched+Yoneda+lemma">still works</a> when you ask that everything
in sight respects this ~bonus structure~. This turns out to be the start
of an incredibly interesting subject called <a href="https://ncatlab.org/nlab/show/formal+category+theory">formal category theory</a><sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">10</a></sup>.</p>
<div class="boxed">
<p>To see how well you understand internal versus enriched things, here’s a cute
exercise:</p>
<p>Write out, in some detail, the definition of a category <em>internal</em> to
$\mathsf{Cat}$ (the category of categories).
Then write out, in some detail, the definition of a category <em>enriched</em> over
$\mathsf{Cat}$ (with $\times$ as its monoidal structure).</p>
<p>Both of these concepts are extremely useful in lots of ongoing research in
algebra, logic, and applied category theory!
A category internal to $\mathsf{Cat}$ is a <a href="https://ncatlab.org/nlab/show/double+category">double category</a> (See
Evan Patterson’s <a href="https://www.epatters.org/post/why-double-categories-1/">excellent blog post</a> on the subject).
A category enriched over $\mathsf{Cat}$ is a <a href="https://ncatlab.org/nlab/show/2-category">2-category</a>, these show
up very naturally, as I’ll hopefully show in an upcoming blog post!</p>
</div>
<hr />
<p>Ok, this blog post became something much longer than I originally intended
(to nobody’s surprise), but let’s have one more cute puzzle before we go.</p>
<p>Another common way group actions get treated is as a group homomoprhism
$G \to \text{Aut}(X)$, where $\text{Aut}(X)$ is the group of automorphisms
of $X$. Is there some way to make this perspective fit in with the
internal/enriched perspectives we’ve been working with so far?</p>
<p>Again, the answer is <em>yes</em>, but now we need to work with a
cartesian closed category <em>with all finite limits</em>.</p>
<div class="boxed">
<p>Given a cartesian closed category with finite limits $\mathcal{C}$,
and an object $X \in \mathcal{C}$, can you build a group object
$\underline{\text{Aut}}(X)$ internal to $\mathcal{C}$ so that the
global elements $1 \to \underline{\text{Aut}}(X)$ are in bijection with
the usual automorphism group $\text{Aut}(X)$ (which is just a set)?</p>
<p>Then, once you’ve defined $\underline{\text{Aut}}(X)$, can you show that an
internal group action $G \times X \to X$ is the same data as an internal
group hom $G \to \underline{\text{Aut}}(X)$?</p>
</div>
<p>If you find this exercise hard, maybe that’s incentive to learn some
categorical logic! The category $\mathcal{C}$ has enough structure<sup id="fnref:11" role="doc-noteref"><a href="#fn:11" class="footnote" rel="footnote">11</a></sup> for
its internal language to support a definition</p>
\[\{ f : X \to X \mid \exists g : X \to X . fg = \text{id}_X \land gf = \text{id}_X \}\]
<p>which we can then cash out for an honest object $\underline{\text{Aut}}(X)$
in $\mathcal{C}$.</p>
<p>Since the usual proof that this set is a group is constructive, we get
<em>for free</em> that any object $\underline{\text{Aut}}(X)$ in any $\mathcal{C}$
is actually a group object in $\mathcal{C}$! Moreover, the usual proof that
an action $G \curvearrowright X$ is a group hom $G \to \text{Aut}(X)$ is
constructive. So we learn, for free, that in $\mathcal{C}$ an internal group
action is the same thing as an internal group hom
$G \to \underline{\text{Aut}}(X)$!</p>
<hr />
<p>Thanks for sticking around! This was a super fun post to write since it
touches on a LOT of aspects of “more advanced” category theory that people
might struggle with at first. I would normally give more of an outro, but I
have some friends coming over in a half hour and I <em>really</em> want to get
this posted!</p>
<p>Stay warm, and stay safe, all! We’ll talk soon ^_^</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>Note that the “usual axioms” can all be expressed as equalities between
composites of these functions. For instance, the inverse law says that
the composite</p>
\[\begin{array}{ccccccc}
G
& \overset{\Delta}{\longrightarrow} & G \times G
& \overset{1_G \times i}{\longrightarrow} & G \times G
& \overset{m}{\longrightarrow} & G\\
g
& \mapsto & (g,g)
& \mapsto & (g, g^{-1})
& \mapsto & g \cdot g^{-1}
\end{array}\]
<p>is the same arrow as</p>
\[\begin{array}{ccccc}
G & \overset{!}{\longrightarrow} & 1 & \overset{e}{\longrightarrow} & G \\
g & \mapsto & \star & \mapsto & e
\end{array}\]
<p>The elementwise definitions in the lower lines are primarily for clarity
in showing what these composites “are really doing”, but they can be made
precise using the language of “<a href="https://ncatlab.org/nlab/show/generalized+element">generalized elements</a>”. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>There turns out to be a deep connection between “algebraic theories”
(like groups, rings, etc) and categories with finite products, which I want
to write about someday. This is the start of the story of <a href="https://en.wikipedia.org/wiki/Categorical_logic">categorical logic</a>,
which is near and dear to my heart.</p>
<p>One can view this whole game of “internalization” as a subfield of
categorical logic, where we focus in on the things we normally do to sets,
and precisely say</p>
<ol>
<li>what categories can interpret various set-theoretic constructions</li>
<li>how to figure out what the “right way” to internalize a given
construction is. This turns out to be totally algorithmic!</li>
</ol>
<p><a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>There’s a couple things I could mean by “nice” here. See <a href="https://ncatlab.org/nlab/show/convenient+category+of+topological+spaces">here</a>
for some options, but if pressed I’d probably say
<a href="https://ncatlab.org/nlab/show/compactly+generated+topological+space">compactly generated spaces</a>. Keep in mind that this makes
the compact-open topology I linked to incorrect in some edge cases,
but morally what I’ve said is right, and I think it’s literally true
for compactly generated hausdorff spaces. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>In fact, every $\infty$-category is equivalent (in the appropriate sense)
to a category enriched in <a href="https://en.wikipedia.org/wiki/Simplicial_set">simplicial sets</a>. See <a href="https://ncatlab.org/nlab/show/relation+between+quasi-categories+and+simplicial+categories">here</a>, for instance.</p>
<p>The claim then follows from the fact that the category of
simplicial sets (up to homotopy) is equivalent
(again, in an appropriate sense) to the category of
topological spaces (up to homotopy). <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>Of course, by “element” here I mean a global element. That is, a
map from the monoidal unit $\text{id}_x : I \to \text{Hom}(x,x)$. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:7" role="doc-endnote">
<p>Isomorphism? <a href="#fnref:7" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:8" role="doc-endnote">
<p>Ignoring size issues <a href="#fnref:8" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:9" role="doc-endnote">
<p>Which for some reason I’m hearing in
<a href="https://youtu.be/GCm4r0F0tts?si=C-Ib3E5NbugEg0el&t=145">Tom Mullica’s voice</a> <a href="#fnref:9" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:10" role="doc-endnote">
<p>In exactly the same way that, say, gaussian elimination,
is routine but annoying. <a href="#fnref:10" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>Of course, there’s other more exotic ways to use enriched categories where
the hom-objects <em>aren’t</em> structured sets! See, for instance, the famous
<a href="https://ncatlab.org/nlab/show/metric+space#LawvereMetricSpace">Lawvere Metric Spaces</a>. These are still extremely interesting, but
are of a different flavor to the enriched categories that fit into the
story I’m trying to tell. <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:11" role="doc-endnote">
<p>Notice that, in this definition, the $g$ in the existential quantifier
is provably unique. This is <em>super</em> important because it means we can
make this definition using only finite limits. More complicted
existential quantifiers require more structure on our category, namely
<a href="https://ncatlab.org/nlab/show/regular+category">regularity</a>. For more information see the nlab pages on
<a href="https://ncatlab.org/nlab/show/cartesian+logic">cartesian logic</a> and <a href="https://ncatlab.org/nlab/show/regular+logic">regular logic</a>. <a href="#fnref:11" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Sun, 18 Feb 2024 00:00:00 +0000
https://grossack.site/2024/02/18/internal-enriched-groupoids.html
https://grossack.site/2024/02/18/internal-enriched-groupoids.htmlTalk -- 2-Categorical Descent and (Essentially) Algebraic Theories<p>A few weeks ago I gave a talk at the <a href="https://richardblute.ca/octoberfest-2023/">CT Octoberfest 2023</a> about some
work I did over the summer that I’m really proud of. Unfortunately, while
writing up the result I found a 1999 paper by Pedicchio and Wood that
proves the same theorem (with roughly the same proof), so I wasn’t able to
publish. Thankfully, the work is still extremely interesting, and I was more
than happy to talk about it at a little online conference for other
category theorists ^_^.</p>
<hr />
<p>Recall an <a href="https://ncatlab.org/nlab/show/algebraic+theory">algebraic theory</a> is something like groups, rings, modules,
etc. It’s a structure that can be defined as a set (or possibly multiple sets)
with some operations defined on it (allowing constants as $0$-ary operations)
and equations specifying the behavior of those operations.</p>
<p>An <a href="https://ncatlab.org/nlab/show/essentially+algebraic+theory">essentially algebraic theory</a> is something like categories. It’s a
structure that can be defined as a set (or possibly multiple sets) with some
operations defined on it, etc. The main superpower we get in the <em>essentially</em>
algebraic world over the algebraic one is <em>partially defined functions</em>.
Now our operations don’t have to be defined everywhere, they are allowed
to be defined on subsets of the sorts. As long as those subsets are definable
by equations!</p>
<p>For instance, the theory of categories is essentially algebraic since we have</p>
<ul>
<li>Sets $O$ and $A$ (the sets of objects and arrows)</li>
<li>operations $\text{dom}, \text{cod} : A \to O$ taking an arrow to its domain/codomain</li>
<li>an operation $\text{id} : O \to A$ taking an object to the identity arrow at that object</li>
<li>an operation \(\circ : \{ (f,g) \in A \times A \mid \text{dom}(f) = \text{cod}(g) \}\)</li>
<li>satisfying certain equational axioms, like $\text{dom}(\text{id}(x)) = x = \text{cod}(\text{id}(x))$,
$(f \circ g) \circ h = f \circ (g \circ h)$, etc.</li>
</ul>
<p>Notice that composition <em>isn’t</em> defined on the whole set $A \times A$. It’s
only <em>partially</em> defined! But the set where it’s defined is easy to understand
– it’s defined by an equation in the other functions ($\text{dom}(f) = \text{cod}(g)$).</p>
<p>Contrast this with fields, which have a partially defined inverse operation
\((-)^{-1} : \{ x \in k \mid x \neq 0 \} \to k\). There is no way to write
the domain of inversion as an <em>equation</em><sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>.</p>
<p><br /></p>
<p>Now, essentially algebraic theories are <em>extremely</em> nice, for lots of reasons
I outlined in my talk (and mentioned on the nlab page I linked earlier),
but they’re not <em>quite</em> as nice as honest algebraic theories.</p>
<p>For instance, the underlying set of a quotient of groups is a quotient
of the underlying set. If we have a surjection $G \twoheadrightarrow H$,
then there’s an equivalence relation<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup> $\theta$ on $UG$ (the underlying set of $G$)
so that $UH \cong (UG) \big / \theta$.</p>
<p>This is no longer the case for models of an <em>essentially</em> algebraic theory!
That is, the underlying set of a quotient might not be a quotient of the underlying set<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>.</p>
<p>For example, consider the following category:</p>
<p style="text-align:center;">
<img src="/assets/images/ctoctoberfest2023/cat-before-quotient.png" width="50%" />
</p>
<p>Notice its set of arrows (ignoring identities) is ${ f, g }$.</p>
<p>Now if we quotient to set $Y_1 = Y_2$, we get a new category</p>
<p style="text-align:center;">
<img src="/assets/images/ctoctoberfest2023/category-after-quotient-partial.png" width="50%" />
</p>
<p>But now that $Y_1 = Y_2$, $f$ and $g$ are composable! So we had better add a
composite!</p>
<p style="text-align:center;">
<img src="/assets/images/ctoctoberfest2023/cat-after-quotienting-new-arrow.png" width="50%" />
</p>
<p>So after quotienting, our underlying set of arrows (again, ignoring identities) is
${ f, g, gf }$, which <em>isn’t a quotient</em> of the set we started with! Also,
note the role that partial operations played in this. The reason we got
~bonus elements~ in our underlying set is because after quotienting the
domain for the partial operation got bigger, so we had to freely add stuff
to make sure we were closed under composition.</p>
<p>Another reason to care about algebraic theories over essentially algebraic
ones is that algebraic theories can be interpreted in any <em>finite product</em>
category, while essentailly algebraic theories make use of all finite <em>limts</em>!
This shows up even for “real mathematicians”, since the category $\mathsf{Diff}$
of smooth manifolds doesn’t have finite limits! So we can define a lie group
as a group object in $\mathsf{Diff}$ (since the theory of groups is algebraic)
but we <em>can’t</em> define a lie groupoid as a groupoid object in $\mathsf{Diff}$
(since the theory of groupoids is merely <em>essentially</em> algebraic)<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup>!</p>
<p>With this in mind, it’s natural to ask when we can recognize an
algebraic theory amongst the essentially algebraic ones. It turns out
we <em>can</em>, and the process requires a fair amount of category theory!</p>
<hr />
<p>We’ve already touched on the relationship between</p>
<ul>
<li>
\[\{ \text{algebraic theories} \}
\leftrightsquigarrow
\{ \text{finite product categories} \}\]
</li>
<li>
\[\{ \text{essentially algebraic theories} \}
\leftrightsquigarrow
\{ \text{finite limit categories} \}\]
</li>
</ul>
<p>But it turns out the relationship goes <em>much</em> deeper! Indeed, one can show
that the “sets” in the above bullets actually represent $2$-categories,
and that the correspondences are (contravariant) bi-equivalences!</p>
<p>Given a finite product (resp. finite limit) category $\mathcal{C}$,
we treat it as an (essentially) algebraic theory, and say its
<span class="defn">category of models</span> is the
category of finite product (resp. finite limit) functors
$\mathcal{C} \to \mathsf{Set}$.</p>
<p>In fact, we can go further! Given a finite product (resp. finite limit) categories
$\mathcal{C}$ and $\mathcal{V}$, we say that the cateogry of
<span class="defn">$\mathcal{C}$ models in $\mathcal{V}$</span> is the category
of finite product (resp. finite limit) functors $\mathcal{C} \to \mathcal{V}$.</p>
<p>Conversely, given a category of models for some (essentially) algebraic theory,
its category of ($\mathsf{Set}$-valued) finitely generated free algebras<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">5</a></sup>
(resp. finitely presented algebras) has finite coproducts
(resp. finite colimits). So if we take the opposite category of this, we get
a category with finite products (resp. finite limits)!</p>
<p>It’s then not <em>so</em> hard to show that these operations are mutually inverse<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">6</a></sup>!</p>
<p><br /><br /></p>
<p>Now if we have an algebraic theory $\mathbb{A}$, that corresponds to a
finite product category $\mathcal{A}$ where the category of
$\mathbb{A}$-models is the functor category
$\mathsf{FinProd}(\mathcal{A}, \mathsf{Set})$.</p>
<p>To view this as an essentially algebraic theory, we want to find a
finite limit category $\mathcal{E}$ which has the same models. That is,
so that for every finite limit category $\mathcal{V}$:</p>
\[\mathsf{FinLim}(\mathcal{E}, \mathcal{V}) \cong
\mathsf{FindProd}(\mathcal{A}, U \mathcal{V})\]
<p>where $U$ is the forgetful functor from finite limit categories to
finite product categories.</p>
<p>This makes it clear that $\mathcal{E}$ should be the free finite
limit completion of the finite product category $\mathcal{A}$ we
started with! Since we already have products, all we have to do is
freely add equalizers!</p>
<p>With this in mind, we see how to rephrase our problem of recognizing
the algebraic theories among the essentially algebraic ones!</p>
<div class="boxed">
<p>Fix an essentially algebraic theory $\mathbb{E}$, with
(finite limit) classifying category $\mathcal{E}$.</p>
<p>Then $\mathbb{E}$ is actually algebraic if and only if
$\mathcal{E}$ is equivalent to the
<span class="defn">free equalizer completion</span> of a
finite product category $\mathcal{A}$!</p>
<p>This means if we want to recognize the algebraic theories,
we just need a way to recognize the essential image of
the equalizer completion functor!</p>
</div>
<p>Thankfully, there’s a very heavy hammer we can use to understand
the image of a left adjoint: <a href="https://ncatlab.org/nlab/show/monadic+descent">Comonadic Descent</a>!</p>
<hr />
<p>I don’t want to say too much about (co)monadic descent here, mainly because
I’m going to a friend’s concert tonight and I’ve already written quite a lot
about it in my <a href="/2023/10/05/descent-for-raags">recent preprint</a>. But here’s the short story. We have a
diagram of categories</p>
<p style="text-align:center;">
<img src="/assets/images/ctoctoberfest2023/descent.png" width="50%" />
</p>
<p>where $\mathsf{FinLim}_{\mathsf{Eq} \ U}$ is the category of <a href="https://ncatlab.org/nlab/show/coalgebra">coalgebras</a>
for the $\mathsf{Eq}\ U$ comonad, and the usual Barr-Beck yoga shows that
everything in the image of $\mathsf{Eq}$ has a canonical coalgebra structure,
which is where the top map (which I’m abusively also calling $\mathsf{Eq}$)
comes from.</p>
<p>The adjunction $\mathsf{Eq} \dashv U$ is called
<span class="defn">comonadic</span> exactly when this top map is an equivalence.
In particular, this means we can recognize the image of $\mathsf{Eq}$
in $\mathsf{FinLim}$ as those categories admitting an $\mathsf{Eq} \ U$
coalgebra structure!</p>
<p>It turns out to not be too hard to prove that this adjunction <em>is</em> comonadic
by using Beck’s famed <a href="https://ncatlab.org/nlab/show/monadicity+theorem">(Co)monadicity Theorem</a>! This comes down to
some combinatorics<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">7</a></sup> involving Pitt’s explicit construction of the
equalizer completion, first published in Bunge and Carboni’s
<a href="https://www.sciencedirect.com/science/article/pii/002240499400157X"><em>The Symmetric Topos</em></a>, which solves our problem!</p>
<p>Pedicchio and Wood, in their ‘99 paper
<a href="https://www.sciencedirect.com/science/article/pii/S0021869300984473"><em>A Simple Characterization of Theories of Varieties</em></a>, give a nice
characterization of the image of $\mathsf{Eq}$ as those categories with
enough “effective projectives”<sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">8</a></sup>.</p>
<hr />
<p>Let me say a quick word about the “2-categorical” in the title. In the
last section, to make use of the descent machinery, we had to work with
1-categories $\mathsf{FinLim}$ and $\mathsf{FinProd}$. That is, with
<em>stict</em> such categories. Of course, this result should really be
2-categorical in nature, working with <em>all</em> such categories, and we should
be using a 2-categorical version of comonadic descent to prove the theorem…
Unfortunately I don’t know of one!</p>
<p>I was kind of hoping that someone would ask about this during the talk –
after all I put “2-categorical” in the title, but didn’t mention 2-categories
at all! But my talk was the first talk of the day<sup id="fnref:9" role="doc-noteref"><a href="#fn:9" class="footnote" rel="footnote">9</a></sup>, so it makes sense
that people would have been nice and not asked that.</p>
<p>Regardless, I’m pretty sure an australian would have a reference for this
kind of descent
(and I might ask about it in the category theory zulip after posting this),
because there’s no way I’m the first person to want to use it!</p>
<p>All in all, I’m happy with how the talk went. It was one of the shorter
talks I’ve given, and I wanted to assume the audience didn’t know a ton
of logic. I think I did a good job giving the flavor of the theorem,
and some reasons to care about it, without necessarily getting bogged
down in the details of the proof. Hopefully I didn’t come off as too
upset that I was 24 years late to publish it myself!</p>
<p>As usual, here’s a copy of the slides, abstract, and recording.
I’ll also encourage people to take a look at some of the other
talks from the conference (which you can find <a href="https://richardblute.ca/octoberfest-2023/">here</a>). There
were a <em>ton</em> of interesting ones<sup id="fnref:10" role="doc-noteref"><a href="#fn:10" class="footnote" rel="footnote">10</a></sup> and if you like category theory
I’m sure you’ll find something you enjoy!</p>
<p>Thanks again for reading. Stay warm, and try not to let the November
darkness weigh on you too much! Talk soon ^_^</p>
<hr />
<p>$2$-Categorical Descent and (Essentially) Algebraic Theories</p>
<p>An essentially algebraic theory is an algebraic theory that moreover allows
certain partially defined operations. Since algebraic theories enjoy
certain nice properties that essentially algebraic theories don’t,
it’s natural to ask if we can recognize when an essentially algebraic theory
is actually algebraic. In the language of functorial semantics, this amounts
to recognizing when a finite limit category is the free completion of a
finite product category, and the problem can be solved by considering a
2-categorical descent theory. This was independent work, but writing it up
I learned that the same result can already be found in a 1999 paper of
Pedicchio and Wood. This seems to be less well known than it should be,
and I hope this talk brings attention to this fascinating subject.</p>
<p>The slides are <a href="/assets/docs/ctoctoberfest2023/talk.pdf">here</a>, and a recording is below:</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/T-VVF30NiQA?si=OFGAvXfAe7U4eUtg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></iframe>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>In fact, we can prove this with category theory! It’s a theorem that
the category of all models for an essentially algebraic theory has
an initial object. But there isn’t an initial object in the category
of fields! So no matter how clever we are, there won’t be an
essentially algebraic axiomatization of fields. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>In fact there’s much more to be said here. The equivalence relation
$\theta$ will be a <a href="https://en.wikipedia.org/wiki/Congruence_relation">congruence</a> (meaning it’s compatible with the
algebraic structure), and the study of such congruences is historically
one of the biggest topics in <a href="https://en.wikipedia.org/wiki/Universal_algebra">universal algebra</a>. I won’t say more
here, but trust me that there’s <em>much</em> more to say. If you’re interested,
I recommend Burris and Sankappanavar’s book, freely available
<a href="https://math.hawaii.edu/~ralph/Classes/619/univ-algebra.pdf">here</a>. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>This should be believable for a few reasons. Indeed, the “underlying set”
functor is a <em>right</em> adjoint, so we shouldn’t expect it to play nicely
with any kind of colimit (like a quotient).</p>
<p>Moreover, $U$ playing nicely with congruences is
<em>one of the defining features</em> of an <em>algebraic</em> theory!
This is the key criterion for <a href="https://ncatlab.org/nlab/show/monadicity+theorem">monadicity</a>! <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>If you haven’t seen them before, it may come as a surprise that
“real mathematicians” care about lie groupoids, since they sound
quite abstract. But they’re really not esoteric at all! They model
<a href="https://en.wikipedia.org/wiki/Orbifold">orbifolds</a>, which are manifolds with certain mild singularities.
They arise incredibly naturally when studying, say, manifolds with
a group action. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>This is the <em>slightest</em> of fibs. The situation for finite product
categories is actually slightly more sublte than I’m letting on,
basically because a finite product category might not be
<a href="https://ncatlab.org/nlab/show/Cauchy+complete+category">cauchy complete</a>. If you know you know, if you don’t, then trust
me that it doesn’t really matter. If you’re interested in the details,
you can find them in Adámek, Vitale, and Rosický’s book
<em>Algebraic Theories</em>. <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>But they’re only mutually inverse up to equivalence! If we start with a
finite limit category $\mathcal{C}$, and then look at the
opposite of the finitely presented objects in the functor category
$[\mathcal{C},\mathsf{Set}]$, then we merely get something <em>equivalent</em>
to $\mathcal{C}$!</p>
<p>In particular, we don’t get something isomorphic to $\mathcal{C}$,
and we <em>definitely</em> don’t get something equal to $\mathcal{C}$!
Some readers will likely say that concepts of “isomorphism” and
“equality” aren’t even defined in a 2-category (they would say
bicategory, of course), but that’s not a quibble I want to have right now.</p>
<p>What matters is that there’s something honestly 2-categorical happening
here, and we need that language to make this notion of “sameness” precise
in the same way we need 1-categories to make the notion of “isomorphism”
precise. I’m literally so close to finishing a blog post on
“2-categories and why you should care” that goes into this in more depth,
but I wanted to say a word about it here. After all, rambling footnotes
are a feature of this blog! <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:7" role="doc-endnote">
<p>As many theorems do, at the end of the day. Thankfully our combinatorics
is also pretty polite. <a href="#fnref:7" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:8" role="doc-endnote">
<p>Though they work with the opposite of the categories we work with,
so for us they’re more likely to be “effective injectives” after
dualizing. <a href="#fnref:8" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:9" role="doc-endnote">
<p>Which put it at 6am my time… Thankfully I’ve recently become a
morning person, so I only had to wake up an hour earlier than usual. <a href="#fnref:9" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:10" role="doc-endnote">
<p>And I haven’t even had time to watch them all yet! <a href="#fnref:10" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Tue, 14 Nov 2023 00:00:00 +0000
https://grossack.site/2023/11/14/ctoctoberfest2023.html
https://grossack.site/2023/11/14/ctoctoberfest2023.htmlA truly incredible fact about the number 37<p>So I was on math stackexchange the other day, and I saw <a href="https://math.stackexchange.com/questions/4767549/the-book-youll-need-when-someone-came-up-with-a-random-car-plate-number/4790221#4790221">a cute post</a>
looking for a book which lists, for many many integers, facts that Ramanujan
could have told Hardy if he’d taken a cab other than <a href="https://en.wikipedia.org/wiki/1729_(number)">1729</a>. A few days ago
OP answered their own question, saying that the book in question was
<a href="https://bookstore.ams.org/mbk-64"><em>Those Fascinating Numbers</em></a> by Jean-Marie De Koninck. I decided to take
a glance through it to see what kinds of facts lie inside
(and also to see <em>just</em> how many integers are covered!). Not only was I
overwhelmed by the number of integers and the number of facts about them,
the <em>preface</em> already includes one of the single wildest facts I’ve ever heard,
and I have to talk about it here! Here’s a direct quote from the preface:</p>
<blockquote>
<p>37, the median value for the second prime factor of an integer;
thus the probability that the second prime factor of an integer
chosen at random is smaller than 37 is approximately $\frac{1}{2}$;</p>
</blockquote>
<p>My jaw was on the floor when I read this, haha. First it sounded totally
unbelievable, since 37 is a tiny number in the grand scheme of things. Then
it started to sound slightly more plausible… After all, about half of all
integers have $2$ as their smallest prime factor. It makes sense that smaller
primes should be more frequent among the smallest factors of numbers! But then
I thought “how can you possibly <em>prove</em> this!?”. I’m not much of an analytic
number theorist<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>, but I know that they have good estimates on a lot of
facts like this. I decided it would be fun to try and find and understand a
proof of this fact, and also write some <a href="https://sagemath.org">sage</a> code to test it!</p>
<p>So then let’s go ahead and do it ^_^</p>
<hr />
<p>First, I think, the sage code. I want to know if this really works!</p>
<p>“Obvoiusly” there’s no uniform distribution on the natural numbers, so
what does it even mean to choose a “random” one? The way the number theorists
usually solve this problem is by fixing a large number $N$ and looking at
the probabilities when you pick a random number between $1$ and $N$. Then you
look at the $N \to \infty$ limit of these probabilities.</p>
<p>So for us, we’ll want to first fix a large number $N$ and then work with
numbers $\leq N$. For $N$ kind of small, we can just find the second prime
factor of each number $\leq N$ and <em>check</em> the median!</p>
<div class="auto">
<script type="text/x-sage">
def getSecondSmallestFactors(N):
data = []
for n in range(1, N):
fs = factor(n)
if len(fs) > 1:
second_smallest = fs[1][0]
data += [second_smallest]
else:
# If there's only one prime factor
# say the second prime factor is infinity
data += [oo]
return data
@interact
def _(N=input_box(10^5, width=10, label="$N$")):
data = getSecondSmallestFactors(N)
med = numpy.median(data)
show("median second prime: ")
show(med)
show("")
below37 = len([d for d in data if d <= 37]) / N
show("fraction of numbers whose second prime is at most 37: ")
show(below37.n())
show("")
</script>
</div>
<p>When I first ran this code, it honestly felt like magic, haha. What the
<em>hell</em> is going on here!?</p>
<hr />
<p>The key idea, found in a paper of De Koninck and Tenenbaum<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup>,
is that we can compute the density of numbers whose second prime is $p$
(which the authors denote $\lambda_2(p)$) by cleverly using the ideas in the
<a href="https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes">Sieve of Eratosthenes</a>!</p>
<p>Let’s do a simple example to start. What fraction of numbers have $5$ as
their second prime? In the language of the paper, what is $\lambda_2(5)$?</p>
<p>Well it’s not hard to see that the numbers whose second prime is $5$ are
those numbers whose prime factorization looks like</p>
\[2^a 3^0 5^b \cdots\]
<p>or</p>
\[2^0 3^a 5^b \cdots\]
<p>so we need to count the density of numbers of these forms.</p>
<p>But a number is of the first form ($2^a 3^0 5^b \cdots$) if and only if
it has a factor of $2$, a factor of $5$, and <em>no</em> factors of $3$.</p>
<p>To bring this back to elementary school<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">3</a></sup>, we can highlight all of
our numbers with a factor of $2$</p>
<p style="text-align:center;">
<img src="/assets/images/37-median/number-grid-evens.png" width="50%" />
</p>
<p>numbers with no factors of $3$</p>
<p style="text-align:center;">
<img src="/assets/images/37-median/number-grid-no-threes.png" width="50%" />
</p>
<p>and numbers with a factor of $5$</p>
<p style="text-align:center;">
<img src="/assets/images/37-median/number-grid-fives.png" width="50%" />
</p>
<p>Then the numbers whose prime factorization starts $2^a 3^0 5^b \cdots$ are
exactly the numbers highlighted by all three of these colors!</p>
<p style="text-align:center;">
<img src="/assets/images/37-median/number-grid-intersection.png" width="50%" />
</p>
<p>It’s intuitively clear that $\frac{1}{2}$ the numbers are blue,
$\frac{2}{3}$ are orange, and $\frac{1}{5}$ are pink.
So taken together,
$\frac{1}{2} \cdot \frac{1}{5} \cdot \frac{2}{3} = \frac{1}{15}$ of numbers
are of this form!</p>
<p>So now we have our hands on the density of numbers of the form $2^a 3^0 5^b$,
but this is only one of two ways that $5$ can be the second smallest prime.
A similar computation shows that
$\left ( 1 - \frac{1}{2} \right ) \cdot \frac{1}{3} \cdot \frac{1}{5} = \frac{1}{30}$
of numbers are of the form $2^0 3^a 5^b$.</p>
<p>It’s easy to see that these sets are disjoint, so their densities add, and
$\frac{1}{15} + \frac{1}{30} = \frac{1}{10}$ numbers have $5$ as their
second smallest factor!</p>
<p><br /><br /></p>
<p>Now with the warm-up out of the way, let’s see how we can compute
$\lambda_2(p)$ for our favorite prime $p$!</p>
<p>We’ll play exactly the same game. How can $p$ be the second smallest prime?
Exactly if the prime factorization looks like</p>
\[p^b q^a \prod_{q \neq r \lt p} r^0\]
<p>for some $q \lt p$.</p>
<p>But we can count these densities as before! For each choice of $q$, we know
that $\frac{1}{p}$ numbers are multiples of $p$, $\frac{1}{q}$ are
multiples of $q$, and for each $r$ we know $\left (1 - \frac{1}{r} \right )$
numbers are <em>not</em> multiples of $r$! For each $q$, then, we want to land
in the intersection of all of these sets, then we want to sum over our
choices of $q$. Taken together, we see that</p>
<div class="boxed">
<p>The density of numbers whose second prime is $p$ is</p>
\[\lambda_2(p) =
\sum_{q \lt p}
\frac{1}{p}
\frac{1}{q}
\prod_{q \neq r \lt p} \left ( 1 - \frac{1}{r} \right )\]
<p>We can rearrange this to</p>
<p>\(\displaystyle
\lambda_2(p) =
\frac{1}{p}
\left [ \prod_{q \lt p} \left ( 1 - \frac{1}{q} \right ) \right ]
\sum_{q \lt p} \frac{1}{q} \left ( 1 - \frac{1}{q} \right )^{-1}\)</p>
</div>
<div class="boxed">
<p>As a cute exercise, write $\lambda_k(p)$ for the density of numbers
whose $k$th prime is $p$.</p>
<p>De Koninck and Tenenbaum mention in passing that</p>
\[\displaystyle
\lambda_k(p) =
\frac{1}{p}
\left [ \prod_{k \lt p} \left ( 1 - \frac{1}{q} \right ) \right ]
s_{k-1}(p)\]
<p>where
$s_j(p) = \sum \frac{1}{m}$
is a sum over all $m$ who have exactly $j$ prime factors, all of which are $\lt p$.</p>
<p>Can you prove that this formula is correct<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">4</a></sup>?</p>
</div>
<hr />
<p>But remember the goal of all this! We want to know the prime \(p^*\) so that
half of all numbers have their second prime \(\leq p^*\). That is, so that
the sum of densities</p>
\[\lambda_2(2) + \lambda_2(3) + \lambda_2(5) + \ldots + \lambda_2(p^*)
\approx
\frac{1}{2}.\]
<p>But we can implement $\lambda_2(-)$ and just <em>check</em> for which prime this
happens!</p>
<div class="auto">
<script type="text/x-sage">
def lambda2(p):
"""
Compute the density of the set of n whose 2nd prime is p.
See equation (1.3) in Koninck and Tenenbaum, 2002
"""
s = 0
out = 1
for q in Primes():
if q >= p:
break
out *= (1 - (1/q))
for q in Primes():
if q >= p:
break
s += (1/q) * (1 - (1/q))^(-1)
out *= s
out *= 1/p
return out
total = 0
for p in Primes():
if total > 0.5: break
l = lambda2(p)
total += l
show("{} of numbers have {} as their second prime".format(l.n(),p))
show("so {} of numbers have second prime at most {}".format(total.n(), p))
show("")
</script>
</div>
<p>Again we see that $37$ is the prime where roughly half of all numbers
have something $\leq 37$ as their first prime! So we’ve proven that
$37$ is the median second prime!</p>
<p>Also, this shows that we expect the actual density to be $\approx .5002$.
If we set $N = 10^7$ in the code from the first half<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">5</a></sup>
to get a better approximation, we get $.5002501$, which is <em>remarkably</em>
close to the truth!</p>
<div class="boxed">
<p>As another cute exercise – using the ideas in this post,
can you compute the median <em>third</em> prime?</p>
<p>As a (much) harder exercise<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">6</a></sup>, can you get asymptotics for how
the median $k$th prime grows as a function of $k$?</p>
</div>
<hr />
<p>Thanks for hanging out, all! This was a really fun post to write up,
and I’m really excited to share it with everybody!
This fact about $37$ was all I could think about for like a week, haha.</p>
<p>I have more blog posts coming, of course, so I’ll see you all soon!</p>
<p>Stay safe, and stay warm ^_^</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>Absolutely the understatement of the year <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p><a href="https://doi.org/10.1017/S0305004102005972"><em>Sur la loi de répartition du k-ième facteur premier d’un entier</em></a></p>
<p>Yes, this paper is in french, but it’s really not <em>so</em> hard to read,
especially with liberal use of google translate. Though if you want to
avoid reading it, I’ve done the hard work for you, and everything in this
blog post is in english.</p>
<p>It also wasn’t <em>too</em> hard to find this paper, thankfully. It’s
mentioned in a footnote in the entry for $37$ in
<em>Those Fascinating Numbers</em>, so I had a decent starting point. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>I literaly got the base image by googling “grid of numbers high res”
and clicking <a href="https://www.pinterest.com/pin/free-printable-number-grid-from-numbers-150--343118065371861593/">the first result</a>, which was for elementary schoolers <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>It might be helpful to remember a generating function trick that
shows up fairly often (for instance in <a href="https://en.wikipedia.org/wiki/Partition_function_(number_theory)">partitions</a> and the
<a href="https://en.wikipedia.org/wiki/Riemann_zeta_function">riemann zeta function</a>):</p>
\[\sum \frac{1}{n} = \prod_p \left ( 1 - \frac{1}{p} \right )^{-1}\]
<p>Don’t worry that this sum diverges for now. Just take note of <em>why</em>
these two sides are equal. You should expand each term of the right hand
side as a geometric series, then check what happens when you foil. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>(and run it locally, since factoring numbers that big takes so long
that the online sagecell times out) <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>If you read french, the De Koninck and Tenenbaum paper we’ve been
referencing all post
(<a href="https://doi.org/10.1017/S0305004102005972"><em>Sur la loi de répartition du k-ième facteur premier d’un entier</em></a>)
is <em>actually</em> all about analyzing these asymptotics!</p>
<p>If we write \(p_k^*\) for the median $k$th prime, then they show:</p>
\[\log \log p_k^* = k - b + O \left ( \frac{1}{\sqrt{k}} \right )\]
<p>where $b = \frac{1}{3} + \gamma - \sum_p \left ( \log ((1-1/p)^{-1}) - 1/p \right )$
and $\gamma$ is the <a href="https://en.wikipedia.org/wiki/Euler%27s_constant">Euler-Mascheroni Constant</a>. <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Wed, 08 Nov 2023 00:00:00 +0000
https://grossack.site/2023/11/08/37-median.html
https://grossack.site/2023/11/08/37-median.htmlPreprint -- The RAAG Functor as a Categorical Embedding<p>After almost a <em>year</em> of sitting on my hard drive, I finally had time in
August to finish revising my <a href="https://arxiv.org/abs/2309.06614">new preprint</a> on
<a href="https://en.wikipedia.org/wiki/Artin%E2%80%93Tits_group#Right-angled_Artin_groups">Right Angled Artin Groups</a> (Raags). And in September I had time to put
it on the arxiv for people to see! Within 24 hours I had an email from
somebody who had read it, and was interested in reading it closely!
It’s super exciting to see that people are
actually <em>reading</em> something I wrote, and it’s really validating to feel like
the math I did last year was worth it ^_^. In this post, I’d love to give a
quick informal description of what’s going on in that paper.</p>
<hr />
<p>First, what’s a right angled artin group? We’ve actually talked about them
before in <a href="/2020/08/16/raag-defn">the second ever post</a> on this blog (!) but here’s a quick tl;dr.</p>
<div class="boxed">
<p>Fix a (simple, undirected) graph $\Gamma$ with underlying vertex set $V$.</p>
<p>The <span class="defn">Right Angled Artin Group</span> $A\Gamma$ is the group</p>
\[\langle v \in V \mid [v_1, v_2] \text{ for } \{v_1, v_2\} \in \Gamma \rangle\]
<p>freely generated by the vertices, where two vertices commute if and only if
they’re adjacent in $\Gamma$.</p>
</div>
<p>For example, in case $\Gamma$ is a complete graph on $n$ vertices, $A\Gamma$
is a free abelian group of rank $n$. If $\Gamma$ has no edges, then $A \Gamma$
is a free group of rank $n$. As a quick exercise, can you convince yourself
that for $\Gamma$ as below, we have $A \Gamma \cong F_2 \times F_2$ is a
direct product of free groups?</p>
<p style="text-align:center;">
<img src="/assets/images/descent-for-raags/square.png" width="30%" />
</p>
<p>Now, it’s not hard to see that the right angle artin group construction $A$
is actually a functor $A : \mathsf{Gph} \to \mathsf{Grp}$ from the category
of graphs to the category of groups. After all, if
$\varphi : \Gamma \to \Delta$ is a graph homomorphism<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> then we get a
group homomorphism $A \varphi : A \Gamma \to A \Delta$ given by sending each
generator $v \in A \Gamma$ to the generator $\varphi v \in A \Delta$.</p>
<p>Moreover, $A : \mathsf{Gph} \to \mathsf{Grp}$ admits a right adjoint! This
makes precise the idea that the raag on $\Gamma$ is a kind of “free group”
associated to $\Gamma$. Given a group $G$, we define its
<span class="defn">Commutation Graph</span> $CG$ to be the graph<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup> whose
vertices are elements of $G$ where ${g_1, g_2} \in CG$ is an edge if
and only if $g_1$ and $g_2$ commuted in $G$.</p>
<p>This allows us to bring much more powerful category theory to the table.
In particular, it lets us use the machinery of <a href="https://ncatlab.org/nlab/show/monadic+descent">comonadic descent</a> to
characterize the essential image of $A$. That is, to understand which groups
are raags, and to understand which homomorphisms between raags are $A \varphi$
for some graph homomorphism! In fact, we show that $A$ is a categorical
embedding, so that $\mathsf{Gph}$ is a (non-full) subcategory of
$\mathsf{Grp}$!</p>
<p>Moreover, the characterization is something we can really calculate with!</p>
<div class="boxed">
<p>The main theorem of the paper states that there is a coalgebra structure we can
put on groups so that</p>
<ol>
<li>The coalgebra structures on a group $G$ are in bijection with the graphs
$\Gamma$ so that $G \cong A\Gamma$</li>
<li>A homomorphism $f : G \to H$ respects this coalgebra structure if and
only if $f = A \varphi$ for a graph homomorphism.</li>
</ol>
<p>In particular, the raags are exactly the groups admitting such a coalgebra structure.</p>
</div>
<hr />
<p>One thing that I wish more mathematicians would talk about is the kind of
meandering nature of research. When you see a paper written in
defnition-theorem-proof style, it’s hard to imagine what the discovery
process must have looked like. It’s almost always <em>much</em> messier than the
final paper would lead you to believe, so I want to take a minute to talk
about the history of this paper.</p>
<h3 id="why-was-i-thinking-about-all-this">Why was I thinking about all this?</h3>
<p>There’s an important open question in the theory of raags about the
“nonstandard” embeddings between two raags.</p>
<p>Obviously if $\Gamma$ is a (full) subgraph of $\Delta$, then $A\Gamma$
is a subgroup of $A \Delta$ in a canonical way.
But it turns out we can have pairs so that $A \Gamma$ embeds into $A \Delta$,
but $\Gamma$ is <em>not</em> a subgraph of $\Delta$! Motivated by questions in
geometric group theory, it’s natural to want to understand when these
“nonstandard” embeddings are possible.</p>
<p>Now the adjunction comes into play. If we have an embedding
$A \Gamma \to A \Delta$, then our adjunction gives us a map of graphs
$\Gamma \to CA \Delta$. Since $CA : \mathsf{Gph} \to \mathsf{Gph}$ is
a <a href="https://en.wikipedia.org/wiki/Monad_(category_theory)">monad</a> on the category of graphs, we (not very creatively)
call this construction the <span class="defn">Monad Graph</span> of $\Delta$.</p>
<p>It would be nice to have a combinatorial characterization of when a map
$\Gamma \to CA \Delta$ transposes to an embedding $A \Gamma \to A \Delta$.
But such a characterization is as yet unknown<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>.</p>
<p>I actually had most of these thoughts back in 2020 when I was first thinking
about raags, but they didn’t really go anywhere. Especially since I was focused
on life things like passing my quals and finding an advisor. But that all
changed in 2022 when I started really trying to understand stacks…</p>
<p>One way to understand stacks<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup> is as “categories satisfying descent”.
In the same way that a sheaf on $X$ assigns a set to each open in a way that
elements of the set glue along open covers, a stack on $X$ assigns a <em>category</em>
to each open in a way that objects and arrows of the category glue along
open covers!</p>
<p>This story is closely tied up with the story of <a href="https://en.wikipedia.org/wiki/Descent_(mathematics)">descent theory</a>, so I took
a detour through understanding <em>that</em><sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup>. Along the way I found out about
<em>comonadic descent</em> which (among other things) lets you characterize the
image of a left adjoint. I remembered this raags adjunction that I worked on,
and knew that its image was pretty easy to understand. Maybe the adjunction
was comonadic and I could use this to attack the nonstandard embedding problem!</p>
<p>Once I knew the right question to ask, the proof itself was surprisingly
simple, and I had a rough draft within a day or two<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">6</a></sup>.</p>
<p>Next came the process of writing everything up in a way that doesn’t require
a ton of category theoretic background. Working out the exposition for the
paper was <em>super</em> enlightening for me<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">7</a></sup>. Hopefully it also makes it more
accessible for people new to the subject!</p>
<hr />
<p>Ok, with the history out of the way, let’s talk about</p>
<h3 id="whats-in-the-paper">What’s in the paper</h3>
<p>This is pretty quick to outline, since I’m assuming a category theory
background of my blog readers that I wasn’t assuming of my paper readers.
That said, if it ever gets too heavy, feel free to read the first few
sections of <a href="https://arxiv.org/abs/2309.06614">the paper</a>, since I go into much more detail there.</p>
<p>The main result is implied by the categorical statement that the adjunction
$A \dashv C$ is <span class="defn">Comonadic</span>. This says that
$\mathsf{Gph}$ is equivalent to the category of $AC$-coalgebras on
$\mathsf{Grp}$, and moreover that the equivalence intertwice the
adjunctions $A \dashv C$ (on the $\mathsf{Gph}$ side)
and the co-free/forgetful adjunction (on the $\mathsf{Grp}_{AC}$ side).</p>
<p>That is, we have a situation as below:</p>
<p style="text-align:center;">
<img src="/assets/images/descent-for-raags/comonadic-triangle.png" width="50%" />
</p>
<p>Really the equivalence $A$ sends a graph $\Gamma$ to the group $A\Gamma$
with the coalgebra structure $A \eta_\Gamma : A \Gamma \to ACA \Gamma$, so
that after forgetting this structure we get $A : \mathsf{Gph} \to \mathsf{Grp}$.</p>
<p>How do we show that this really is an equivalence? The answer is
<a href="https://ncatlab.org/nlab/show/monadicity+theorem">Beck’s (Co)monadicity Theorem</a>! It says that for <em>any</em> adjunction $A \dashv C$
the base of that triangle is an equivalence if and only if $A$ reflects
isomorphisms and preserves equalizers of “$A$-split parallel pairs”.</p>
<p>In the paper we use a different version of the comonadicity theorem which is
easier to check, but it boils down to the same proof.</p>
<p>It’s “well known” in raag circles that $A$ is conservative (this can already
be found in a 1987 paper of Droms), so we need to check that $A$ preserves
certain equalizers. We can do this with a slightly technical argument of
combinatorics on words. The key fact is that we have a good understanding
of normal forms for the elements in $A\Gamma$<sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">8</a></sup>.</p>
<p>The last section of this paper was a small application of this machinery. We’re
able to reprove a result that we can effectively recover $\Gamma$ from the
isomorphism type of $G \cong A \Gamma$, as long as we’re promised that $G$
really is a raag<sup id="fnref:9" role="doc-noteref"><a href="#fn:9" class="footnote" rel="footnote">9</a></sup>. We also show that if we have any concrete examples of
groups $G$ with $AC$-coalgebra structures, we can really do all the
computations that we would want to do!</p>
<hr />
<p>I think I like this format of blog posts putting more emphasis on the things
that were on my mind when I was working on a paper, rather than the contents
of the paper itself. Maybe if I write a more detailed paper I can say some
informal words about what’s in it, but I think the historical perspective
might help younger mathematicians see how messy research can be, and how
incidental things can all blend together into a result. I just <em>happened</em>
to be thinking about raags a few years before I <em>happened</em> to learn about
stacks and descent, which opened the door to a result on descent for raags.
Hopefully you all also like the historical perspective ^_^.</p>
<p>I’m also going to try to keep these paper announcement posts a bit less
polished. It’s easy to get paralysis and revise posts forever and never
finish them (ask me how I know…) I want to make sure that these actually
get out, so I’ll try to keep them light on the revision. That shouldn’t
be hard if the main point is the history!</p>
<hr />
<p>Anyways, thanks for hanging out, all. I’m super excited to have a
result, and I’ll be submitting to journals in the near future. Stay warm,
and we’ll talk soon ^_^.</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>In the sense that $\varphi : V \to W$ is a function on the underlying
vertices preserving the edge relation. So
${v_1, v_2} \in \Gamma$ implies ${ \varphi v_1, \varphi v_2 } \in \Delta$. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>In order to make this an honest adjunction, we need to require every
vertex of our graph have a self loop. That is, we actually work with
<em>reflexive</em> simple undirected graphs. This is a kind of technical point,
since if every vertex has a self loop we don’t need to draw them! So the
combinatorics remains basically unchanged. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>There’s reason to suspect this is a good idea, though! Not only is it
category-theoretically natural, but (as far as I know) the best
characterization of raag embeddings we have is due to Kim and Koberda,
which shows that whenever $\Gamma$ embeds into their <em>extension graph</em>
$\Delta^e$ that $A\Gamma$ embeds into $A\Delta$. The interesting
relationship is that $\Delta^e$ is the full subgraph of $CA\Delta$ on the
conjugates of the generators!</p>
<p>In fact, Kim and Koberda conjectured that the converse is true too, so
that $\Delta^e$ is the right graph to consider to understand the
nonstandard embeddings, but this was disproven in a 2013 paper of
Casals-Ruiz, Duncan, and Kazachov.
(Many thanks to <a href="https://sites.google.com/view/cf-nb/">Carl-Fredrik Nyberg-Brodda</a> for telling me about this)</p>
<p>This is actually good news for my paper, since it means that we’ll want to
understand more of the monad graph in order to better understand the
embeddings, instead of being satisfied understanding a subgraph. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>And there are many! I want to write a blog post about them sometime soon. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>I was especially drawn to this because I learned that descent is closely
related to monads. Even though objectively I’m <em>very</em> comfortable with
monads nowadays, deep inside me there’s still a teenage programmer
fascinated and confused by monads while learning haskell. It’s kind
of wild to think that almost 10 years ago haskell launched me on my
category theory journey. It’s even wilder to think of how far I’ve
come since then! <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>I once heard some advice that once you’ve climbed a high mathematical
mountain (like geting some comfort with descent theory) it’s worth
looking around to see if there’s anything else to do while you’re up there.</p>
<p>This led me to another question about understanding which essentially
algebraic theories are secretly algebraic. This amounts to understanding
the image of the left (2-)adjoint from finite product categories to
finite limit categories.</p>
<p>I was actually able to work this out as well during <a href="https://sites.uclouvain.be/ct2023/">CT2023</a>, but
unfortunately I learned while writing it up that Pedicciho and Wood
had published the same result in ‘99. I was sad, of course, but I learned
a TON while working on that project, about essentailly algebraic
theories, locally finitely presentable categories, 2-categories, and
lots more! That’s actually coming in super handy with my thesis project,
since locally presentable categories are the target for
<a href="https://ncatlab.org/nlab/show/factorization+homology">factorization homology</a>!</p>
<p>Again, research is a messy and winding road. <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:7" role="doc-endnote">
<p>For much the same reason that writing these blog posts is often good for me!
Teaching is a great way to learn, and to make sure you really understand
a subject. <a href="#fnref:7" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:8" role="doc-endnote">
<p>In fact, in multiple of these comonadicity proofs I’ve done, the key
to checking this equalizer condition is an understanding of normal forms
for the free objects!</p>
<p>This is yet another reason that the search for “normal form” theorems
for various algebras is an incredibly useful pursuit! <a href="#fnref:8" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:9" role="doc-endnote">
<p>Determining whether or not a group $G$ is a raag, without being promised
that it is one, is undecidable. <a href="#fnref:9" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Thu, 05 Oct 2023 00:00:00 +0000
https://grossack.site/2023/10/05/descent-for-raags.html
https://grossack.site/2023/10/05/descent-for-raags.htmlEstimating a Difference of Products<p>Wow, it’s been a long time! Both since my last blog post, and since my last
<a href="/tags/quick-analysis-tricks">quick analysis trick</a>. But I’ve been itching to
write more blog posts lately, and I thought that something quick and easy like
this would be a good way to get back into it without the kind of effort that
goes into some of my longer-form posts (which I’m still working on, of course).</p>
<p>I got back from a conference yesterday night, and gave myself the day off to
recover (and do some chores…) so I decided to do some low-energy math while
my laundry was going. I <em>love</em> watching lectures in computer-science-y and
combinatorics-y subjects that I don’t get to spend much time doing anymore.
It doesn’t take much effort to get the gist of the subject, learn
some surface level techniques, etc. that keep me feeling like I’m improving,
even though I don’t have the time to read papers and do serious research
in these areas right now.
This year I’ve been slowly been making progress in
Yufei Zhao’s phenomenal course on “Graph Theory and Combinatorics”, available
freely on <a href="https://www.youtube.com/playlist?list=PLUl4u3cNGP62qauV_CpT1zKaGG_Vj5igX">youtube</a>.</p>
<p>While talking about <a href="https://en.wikipedia.org/wiki/Graphon">graphons</a>, Zhao gives an
analytical argument that I can see being <em>extremely</em> applicable in other
settings, so I figured I would talk about it here<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>!</p>
<hr />
<p>Let’s get right into the trick, then I’ll give a few situations where it
might be helpful. Say you have two sequences $a_1, \ldots, a_n$
and $b_1, \ldots, b_n$ and you want to control the difference</p>
\[\prod_{i=1}^n a_i - \prod_{i=1}^n b_i.\]
<p>The quick-analysis-trick du jour is to rewrite this difference as</p>
\[\prod_1^n a_i - \prod_1^n b_i =
\sum_{j=1}^n \left ( \prod_{i \lt j} b_i \right ) (a_j - b_j) \left ( \prod_{i \gt j} a_i \right )\]
<p>This looks a bit unwieldy, but it follows a very easy pattern. Let’s see what
this looks like for a few small values of $n$:</p>
\[a_1 a_2 - b_1 b_2 =
(a_1 - b_1) a_2 + b_1 (a_2 - b_2)\]
<p><br /></p>
\[a_1 a_2 a_3 - b_1 b_2 b_3 =
(a_1 - b_1) a_2 a_3 + b_1 (a_2 - b_2) a_3 + b_1 b_2 (a_3 - b_3)\]
<p><br /></p>
\[\begin{align}
a_1 a_2 a_3 a_4 - b_1 b_2 b_3 b_4
&= (a_1 - b_1) a_2 a_3 a_4 \\
&+ b_1 (a_2 - b_2) a_3 a_4 \\
&+ b_1 b_2 (a_3 - b_3) a_4 \\
&+ b_1 b_2 b_3 (a_4 - b_4)
\end{align}\]
<p>You start with $(a_1 - b_1)$ and all the $a_i$s on the right. Then
to get from one term to the next you hop an $a_i$ over the difference,
turning it into a $b_i$ along the way. You finish when you’re left with
all the $b_i$s on the left.</p>
<p>This has a kind of “product rule” feeling to it, where we replace the
difference of products (analogous to the derivative of a product) with
a sum of products over all places we could “put” the difference
(analogous to the sum over all places we can “put” the derivative). Indeed,
we can <em>prove</em> the product rule using this trick!</p>
<div class="boxed">
<p>As a cute exercise, you might use this to prove the product rule formula</p>
\[\left ( \prod_{i=1}^n f_i \right )' =
\sum_j \left ( \prod_{i \lt j} f_i \right ) f_j' \left ( \prod_{i \gt j} f_i \right )\]
<p>If the $\prod$s are unwieldy, it’s worth doing the $n=3$ case without them
to see what’s going on.</p>
</div>
<p>Notice the key idea of this proof of the product formula is that we
controlled a <em>difference of products</em> by rewriting it as a sum where
each term only had a <em>single difference</em> in it! This is the main idea of
the technique. For instance, here’s another problem you might try:</p>
<div class="boxed">
<p>Say that each $\lvert a_i \rvert, \lvert b_i \rvert \leq 1$ for $1 \leq i \leq n$. Prove</p>
<p>\(\left \lvert \prod_{i=1}^n a_i - \prod_{i=1}^n b_i \right \rvert \leq
\sum_{i=1}^n \lvert a_i - b_i \rvert\)</p>
</div>
<p>In fact, this problem was exactly the flavor of the graphon application
from Zhao’s lectures! Say we have two graphons $W, U : [0,1]^2 \to [0,1]$
which are “close” in the sense that</p>
\[\iint_{[0,1]^2} \Big ( W(x,y) - U(x,y) \Big ) \phi(x) \psi(y) \ dy \ dx \quad \quad (\star)\]
<p>is small for each pair of weight functions $\phi$ and $\psi$.</p>
<p>The “number of triangles in $W$” is given by</p>
\[t(W) = \iiint_{[0,1]^3} W(x,y) W(y,z) W(z,x) \ dx \ dy \ dz\]
<p>since we think of $W(x,y)$ as being the “probability of an edge”
between $x$ and $y$.</p>
<p>Then if we want to know that $W$ and $U$ have a similar number of triangles,
we want to show the difference $\lvert t(W) - t(U) \rvert$ is small. Of course,
this expands to</p>
\[\left \lvert \iiint W(x,y) W(y,z) W(z,x) - U(x,y) U(y,z) U(z,x) \ dx \ dy \ dz \right \rvert\]
<p>which is bounded by</p>
\[\iiint \left \lvert W(x,y) W(y,z) W(z,x) - U(x,y) U(y,z) U(z,x) \right \rvert \ dx \ dy \ dz\]
<p>and thus, by our trick-du-jour, by the sum</p>
\[\begin{align}
\iiint (W_{x,y} - U_{x,y}) W_{y,z} W_{z,x} \ dx \ dy \ dz + \\
\iiint U_{x,y} (W_{y,z} - U_{y,z}) W_{z,x} \ dx \ dy \ dz + \\
\iiint U_{x,y} U_{y,z} (W_{z,x} - U_{z,x}) \ dx \ dy \ dz
\end{align}\]
<p>(where I’ve replaced $W(x,y)$ by $W_{x,y}$ and I’m eliding some absolute
values in order to improve readability).</p>
<p>But note if we fix $z$ in the first integral, then we get something that
$(\star)$ tells us how to control! We can then integrate over $z$ at the end
to get a bound. The story is similar, fixing $x$ in the second integral
and $y$ in the third. Taken together we’re able to get exactly the kind of
bound that we’re after<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup>!</p>
<hr />
<p>Ok, that one really <em>was</em> quick<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>! I’ve been traveling a TON lately
(I’ve been to way too many conferences this year…) but now I’m finally done and
I should have time to work on blog posts more regularly. I have a lot of
ideas, and a lot of drafts, and hopefully I’m able to get them out soon ^_^.</p>
<p>Thanks for hanging out, all. Stay safe, and we’ll talk soon!</p>
<hr />
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>He uses this trick in the service of <em>the counting lemma</em>.
If we fix a graph $H$, the counting lemma says that two “similar”
graphons have to contain a “similar” number of copies of $H$.
This is around the 16 minute mark of <a href="https://youtu.be/9gy-CAwx0Ls?si=E2ZFePCdidTBbKzk">Lecture 15</a> in that playlist,
if you’re interested in seeing more. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>Again, I’m glossing over a lot of details here. Thankfully they’re all in
<a href="https://youtu.be/9gy-CAwx0Ls?si=E2ZFePCdidTBbKzk">the relevant lecture</a>. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>I actually had a couple extra things I was considering saying in this
post, like a potential relationship with Abel’s <a href="https://en.wikipedia.org/wiki/Summation_by_parts">summation by parts</a>.
But I don’t actually know if that relationship exists, so I would need to
figure it out myself. I don’t know if that would be easy or hard,
but either way it goes against the low-effort spirit of quick-analysis-tricks,
haha. I ended up deciding not to think about that, because I have a fair
amount of stuff I have to do around the house today.</p>
<p>Though if any ambitious readers want to look for a connection between
this trick and abel summation, I would be super interested in hearing
about it! <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
Mon, 28 Aug 2023 00:00:00 +0000
https://grossack.site/2023/08/28/telescoping-graphons.html
https://grossack.site/2023/08/28/telescoping-graphons.html