Jekyll2021-05-19T23:37:06+02:00http://math.andrej.com/feed.xmlMathematics and ComputationA blog about mathematics for computersComputing an integer using a Grothendieck topos2021-05-18T00:00:00+02:002021-05-18T00:00:00+02:00http://math.andrej.com/2021/05/18/computing-an-integer-using-a-sheaf-topos<p>A while ago, my former student <a href="https://cj-xu.github.io/">Chuangjie Xu</a> and I computed an integer using a <a href="https://ncatlab.org/nlab/show/Grothendieck+topos">sheaf topos</a>. For that purpose,</p>
<ol>
<li>we developed our mathematics constructively,</li>
<li>we formalized our mathematics in Martin-Löf type theory, in <a href="https://wiki.portal.chalmers.se/agda/pmwiki.php">Agda</a> notation,</li>
<li>we pressed a button, and</li>
<li>after a few seconds we saw the integer we expected in front of us.</li>
</ol>
<p>Well, it was a few seconds for the computer in steps (3)-(4), but three years for us in steps (1)-(2).</p>
<!--more-->
<h4 id="why-formalize">Why formalize?</h4>
<p>Most people formalize mathematics (in Automath, NuPrl, Coq, Agda, Lean, ...) to get confidence in the correctness of mathematics - or so they claim. The reality is that formalizing mathematics is intellectually fun.</p>
<p>Entertaining considerations aside, my initial motivation for computer formalization, about 10 years ago, was to write algorithms derived from work on game theory with <a href="https://www.eecs.qmul.ac.uk/~pbo/">Paulo Oliva</a>. In particular, this had applications to proof theory, such as <a href="https://www.cs.bham.ac.uk/~mhe/pigeon/">getting programs from classical proofs</a>. Our first version of a (manually) extracted program from a classical proof was written in Haskell, in a train journey coming back from a visit to our collaborators <a href="https://www.swansea.ac.uk/staff/science/computer-science/m.seisenberger/">Monika Seisenberger</a> and <a href="http://www-compsci.swan.ac.uk/~csulrich/">Ulrich Berger</a> in Swansea. The train journey was long enough for us to be able to complete the program. But when we ran it, it didn't work. I had been learning Agda for about one year by then, and I told Paulo that it would be easier to write the mathematics in Agda, and hence be sure it will work before we ran it, than to debug the Haskell program. And that was the case.</p>
<p>Before then I was the kind of person who dismissed formalization, and would say so to people who did formalization (it is probably too late to apologize now). I trusted my own mathematics, and if I wanted to derive programs from my mathematical work, I would just write them manually. Since then, my attitude has changed considerably.</p>
<p>I now <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/">use Agda as a "blackboard"</a> to develop my work. For example, the following were conceived and developed directly in Agda before they were written in mathematical vernacular: <a href="https://www.cambridge.org/core/journals/mathematical-structures-in-computer-science/article/injective-types-in-univalent-mathematics/AFCBBABE47F29ED7AFB4C262929D8810">Injective types in univalent mathematics</a>, <a href="https://www.cs.bham.ac.uk/~mhe/papers/compact-ordinals-Types-2019-abstract.pdf">Compact, totally separated and well-ordered types in univalent mathematics</a>, <a href="https://arxiv.org/abs/2002.07079">The Cantor-Schröder-Bernstein Theorem for ∞-groupoids</a>, <a href="http://math.andrej.com/2021/02/22/burali-forti-in-hott-uf/">The Burali-Forti argument in HoTT/UF</a> and <a href="https://www.cs.bham.ac.uk/~mhe/dialogue/dialogue.pdf">Continuity of Gödel's system T functionals via effectful forcing</a>.</p>
<p>Other people will have different reasons to formalize. For example, wouldn't it be wonderful if the whole <a href="https://wwwf.imperial.ac.uk/~buzzard/xena/">undergraduate mathematical curriculum were formalized</a>? Wouldn't it be wonderful to archive all mathematical knowledge not just as text but in a more structured way, so that it can be used by both people and computers? Wouldn't it be wonderful if when we submit a paper, the referee didn't need to check correctness, but only novelty, significance and so on? Did you ever woke up in the middle of the night after you submitted a paper, with doubts about the crucial lemma? Or worse, after it was published?</p>
<p>But for the purposes of this post, I will concentrate on only one aspect of formalization: a formalized piece of constructive mathematics is automatically a computer program that you can run in practice.</p>
<h4 id="constructive-mathematics">Constructive mathematics</h4>
<p>Constructive mathematics begins by removing the principle of excluded middle, and therefore the axiom of choice, because choice implies excluded middle.
<a href="http://math.andrej.com/2016/10/10/five-stages-of-accepting-constructive-mathematics/">But why would anybody do such an outrageous thing?</a></p>
<p>I particularly like the analogy with <a href="https://en.wikipedia.org/wiki/Euclidean_geometry">Euclidean geometry</a>. If we remove the parallel postulate, we get <a href="https://en.wikipedia.org/wiki/Absolute_geometry">absolute geometry</a>, also known as <em>neutral</em> geometry. If after we remove the parallel postulate, we add a suitable axiom, we get <a href="https://en.wikipedia.org/wiki/Hyperbolic_geometry">hyperbolic geometry</a>, but if we instead add a different suitable axiom we get <a href="https://en.wikipedia.org/wiki/Elliptic_geometry">elliptic geometry</a>. Every theorem of neutral geometry is a theorem of these three geometries, and more geometries. So a neutral proof is more general.</p>
<p>When I say that I am interested in constructive mathematics, most of the time I mean that I am interested in <a href="http://logic.math.su.se/mloc-2019/">neutral mathematics</a>, so that we simply remove excluded middle and choice, and we don't add anything to replace them. So my constructive definitions and theorems are also definitions and theorems of classical mathematics.</p>
<p>Occasionally, I flirt with axioms that <em>contradict</em> the principle of excluded middle, such as Brouwerian intuitionistic axioms that imply that "all functions $(\mathbb{N} \to 2) → \mathbb{N}$ are uniformly continuous", when we equip the set $2$ with the discrete topology and $\mathbb{N} \to 2$ with the product topology, so that we get the Cantor space. The contradiction with classical logic, of course, is that using excluded middle we can define non-continuous functions by cases. Brouwerian intuitionistic mathematics is analogous to hyperbolic or elliptic geometry in this respect. The "constructive" mathematics I am talking about in this post is like neutral geometry, and I would rather call it "neutral mathematics", but then nobody would know what I am talking about. That's not to say that the majority of mathematicians will know what I am talking about if I just say "constructive mathematics".</p>
<p>But it is not (only) the generality of neutral mathematics that I find attractive. Somehow magically, constructions and proofs that don't use excluded middle or choice are <em>automatically</em> programs. The only way to define non-computable things is to use excluded middle or choice. There is no other way. At least not in the underlying type theories of proof assistants such as NuPrl, Coq, Agda and Lean. We don't need to consider Turing machines to establish computability. What is a computable sheaf, anyway? I don't want to pause to consider this question in order to use a sheaf topos to compute a number. We only need to consider sheaves in the usual mathematical sense.</p>
<p>Sometimes people ask me whether I <em>believe</em> in the principle of excluded middle. That would be like asking me whether I believe in the parallel postulate. It is clearly true in Euclidean geometry, clearly false in elliptic and in hyperbolic geometries, and deliberately undecided in neutral geometry. Not only that, in the same way as the parallel postulate <em>defines</em> Euclidean geometry, the principle of excluded middle and the axiom of choice <em>define</em> classical mathematics.</p>
<p>The undecidedness of excluded middle in my neutral mathematics allows me to prove, for example, "if excluded middle holds, then the Cantor-Schröder-Bernstein Theorem for ∞-groupoids <a href="https://arxiv.org/abs/2002.07079">holds</a>". If excluded middle were false, I would be proving a counter-factual - I would be proving that an implication is true simply because its premise is false. But this is not what I am doing. What I am really proving is that the CSB theorem holds for the objects of <em>boolean</em> ∞-toposes.
And why did I use excluded middle? Because somebody else showed that <a href="https://arxiv.org/abs/1904.09193">there is no other way</a>. But also sometimes I use excluded middle or choice when <em>I don't know</em> whether there is another way (in fact, I believe that more than half of my publications use classical logic).</p>
<p>So, am I a constructivist? There is only one mathematics, of which classical and constructive mathematics are particular branches. I enjoy exploring the whole landscape. I am particularly fond of constructive mathematics, and I wouldn't practice it, however useful it may be for applications, if I didn't enjoy it. But this is probably my bad taste.</p>
<h4 id="toposes-as-provinces-of-the-mathematical-world">Toposes as provinces of the mathematical world</h4>
<p>Toposes are generalized (sober) spaces. But also toposes can be considered as provinces of the mathematical world.</p>
<p>Hyland's <a href="https://ncatlab.org/nlab/show/effective+topos">effective topos</a> is a province where "everything is computable".
This is an elementary topos, which is not a Grothendieck topos, built from <em>classical</em> ingredients: we use excluded middle and choice, with Turing machines to talk about computability. But, as it turns out, although everybody agrees which functions $\mathbb{N} \to \mathbb{N}$ are computable and which ones aren't, there is disagreement among classical mathematicians working on computability theory about
<a href="https://www.springer.com/gp/book/9783662479919">what counts as "computable" for more general mathematical objects</a>, such as functions $(\mathbb{N} \to \mathbb{N}) \to \mathbb{N}$. No problem. Just consider other provinces, called <a href="https://ncatlab.org/nlab/show/realizability+topos">realizability toposes</a>, which include the effective topos as an example.</p>
<p>Johnstone's <a href="https://ncatlab.org/nlab/show/Johnstone%27s+topological+topos">topological topos</a> is a topos <em>of</em> spaces. It fully embeds a large category of topological spaces, where the objects outside the image of the embedding can be considered as generalized spaces (which include the <a href="https://ncatlab.org/nlab/show/subsequential+space">Kuratowski limit spaces</a> and more). In this province of the mathematical world, "all functions are continuous".</p>
<p>There are also provinces where <a href="https://ncatlab.org/nlab/show/synthetic+differential+geometry">there are infinitesimals</a> and "all functions are smooth".</p>
<p>A more boring, but important, province, is the topos of classical sets. This is where classical mathematics takes place.</p>
<p>These provinces of mathematics have an <em>internal language</em>. We use a certain <a href="https://ncatlab.org/nlab/show/subobject+classifier">subobject classifier</a> to collect the things that count as truth values in the province, and we devise a kind of type theory whose types are interpreted as objects and whose mathematical statements are interpreted as truth values in the province. Then a mathematical statement in this type theory is true in some toposes, false in other toposes, and undecided in yet other toposes. This internal language, or type theory, is very rich. Starting from natural numbers we can construct the integers, the rationals, the real numbers, free groups etc., and then do e.g. analysis and group theory and so on. The internal language of the <a href="https://ncatlab.org/nlab/show/free+topos">free topos</a> can be considered as a type theory for neutral mathematics: whatever we prove in the free type theory is true in all mathematical provinces, including classical set theory.</p>
<p>In the above first three provinces, the principle of excluded middle fails, but for different reasons, with respectively computability, continuity and infinitesimals to blame.</p>
<h4 id="our-topos">Our topos</h4>
<p>Now our plot has a twist: we work within <em>neutral</em> mathematics to build a province of "biased" constructive mathematics where Brouwerian principles hold, such as "all functions $(\mathbb{N} \to 2) → \mathbb{N}$ are uniformly continuous".</p>
<p><a href="https://academic.oup.com/plms/article-abstract/s3-38/2/237/1484548">Johnstone's topological topos (1979)</a> would do the job, except that it is built using classical ingredients. This topos has siblings by <a href="http://homepages.inf.ed.ac.uk/mfourman/research/publications/pdf/fourman82-notions-of-choice-sequence.pdf">Mike Fourman (1982)</a> and <a href="https://www.sciencedirect.com/science/article/pii/0168007284900356">van der Hoeven and Moerdijk (1984)</a> with aims similar to ours, as explained in our own <a href="https://cj-xu.github.io/papers/xu-escardo-model-uc.pdf">2013</a> and <a href="https://www.sciencedirect.com/science/article/pii/S0168007216300410">2016</a> papers, which give a third sibling.</p>
<p>Johnstone's topological topos is very easy to describe: take the monoid of continuous endomaps of the one-point compactification of the discrete natural numbers, considered as a category, then take sheaves for the canonical coverage.
Van der Hoeven and Moerdijk's topos is similar: this time take the monoid of continuous endomaps of the Baire space,
with the "open-cover coverage". Fourman's topos is constructed from a site of formal spaces or locales, with a similar coverage.</p>
<p>Our topos is also similar: we take the monoid of uniformly continuous endomaps of the Cantor space.
Because it is not provable in neutral mathematics that continuous functions on the Cantor space are automatically uniformly continuous, we explicitly ask for uniform continuity rather than just continuity. As for our coverage, we initially considered coverings of finitely many jointly surjective maps. But an equivalent, smaller coverage makes the mathematics (and the formalization) simpler: for each natural number $n$ we consider a cover with $2^n$ functions, namely the concatenation maps $(\mathbb{N} \to 2) \to (\mathbb{N} \to 2)$ defined by $\alpha \mapsto s \alpha$ for each finite binary sequence $s$ of length $n$. These functions are jointly surjective, and, moreover, have disjoint images, considerably simplifying the checking of the sheaf condition. Moreover, the coverage axiom is not only satisfied, but also is equivalent to the fact that the morphisms in our site are uniformly continuous functions. So this is a sort of "uniform-continuity coverage". Our <a href="https://www.cs.bham.ac.uk/~mhe/.talks/ihp2014/escardo-ihp2014.pdf">slides (2014)</a> illustrate these ideas with pictures and examples.</p>
<p>The details of the mathematics can be found in the <a href="https://www.sciencedirect.com/science/article/pii/S0168007216300410">above paper</a>, and the Agda formalization can be found at <a href="https://cj-xu.github.io/">Chuangjie's page</a>. A few years later, <a href="https://www.cs.bham.ac.uk/~mhe/chuangjie-xu-thesis-cubical/html/">we ported part of this formalization</a> to <a href="https://agda.readthedocs.io/en/v2.6.1.3/language/cubical.html">Cubical Agda</a> to deal properly with function extensionality (which we originally dealt with in <em>ad hoc</em> ways).</p>
<h4 id="the-integer-we-compute">The integer we compute</h4>
<p>After we construct the sheaf topos, we define a simple type theory and we interpret it in the topos. We define a "function" $(\mathbb{N} \to 2) \to \mathbb{N}$ in this type theory, without proving that it is uniformly continuous, and apply the interpretation map to get a morphism of the topos, which amounts to a uniformly continuous function. From this morphism we get the modulus of uniform continuity, which is the integer we are interested in.
The interested reader can find the details in the <a href="https://www.sciencedirect.com/science/article/pii/S0168007216300410">above paper</a> and <a href="http://www.cs.bham.ac.uk/~mhe/papers/kleene-kreisel/">Agda code for the paper</a> or the substantially more comprehensive <a href="http://cj-xu.github.io/ContinuityType/">Agda code</a> for <a href="http://cj-xu.github.io/ContinuityType/xu-thesis.pdf">Chuangjie's thesis</a>.</p>Martin EscardoA while ago, my former student Chuangjie Xu and I computed an integer using a sheaf topos. For that purpose, we developed our mathematics constructively, we formalized our mathematics in Martin-Löf type theory, in Agda notation, we pressed a button, and after a few seconds we saw the integer we expected in front of us. Well, it was a few seconds for the computer in steps (3)-(4), but three years for us in steps (1)-(2).The Burali-Forti argument in HoTT/UF2021-02-22T00:00:00+01:002021-02-22T00:00:00+01:00http://math.andrej.com/2021/02/22/Burali-Forti-in-HoTT-UF<p>This is joint work with <a href="https://www.uib.no/en/persons/Marcus.Aloysius.Bezem">Marc Bezem</a>, <a href="https://www.cse.chalmers.se/~coquand/">Thierry Coquand</a>, <a href="https://www.cse.chalmers.se/~peterd/">Peter Dybjer</a>.</p>
<p>We use the
<a href="https://en.wikipedia.org/wiki/Burali-Forti_paradox">Burali-Forti</a>
argument to show that, in <a href="https://homotopytypetheory.org/">homotopy type theory and univalent foundations</a>,
the embedding $$ \mathcal{U} \to \mathcal{U}^+$$ of a universe
$\mathcal{U}$ into its successor $\mathcal{U}^+$ is not an
equivalence. We also establish this for the types of sets, magmas, monoids and
groups. The arguments in this post are also <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/BuraliForti.html#Burali-Forti">written</a> in
<a href="https://agda.readthedocs.io/en/v2.6.1.3/">Agda</a>.</p>
<!--more-->
<h4 id="ordinals-in-univalent-type-theory">Ordinals in univalent type theory</h4>
<p>The Burali-Forti paradox is about the collection of all ordinals. In set theory, this collection cannot be a set, because it is too big, and this is what the Burali-Forti argument shows. This collection is a <a href="https://en.wikipedia.org/wiki/Class_(set_theory)">proper class</a> in set theory.</p>
<p>In univalent type theory, we can collect all ordinals of a universe $\mathcal{U}$ in
a type $\operatorname{Ordinal}\,\mathcal{U}$ that lives in the
successor universe $\mathcal{U}^+$: $$
\operatorname{Ordinal}\,\mathcal{U} : \mathcal{U}^+.$$ See Chapter
10.3 of the <a href="https://homotopytypetheory.org/book/">HoTT book</a>, which
uses univalence to show that this type is a set in the sense of
univalent foundations (meaning that its equality is proposition valued).</p>
<p>The analogue in type theory of the notion of proper
class in set theory is that of <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/UF-Size.html#is-large">large
type</a>,
that is, a type in a successor universe $\mathcal{U}^+$ that doesn't
have a copy in the universe $\mathcal{U}$. In this post we show that the type of ordinals is large and derive some consequences from this.</p>
<p>We have two further uses of univalence, at least:</p>
<ol>
<li>
<p>to adapt the Burali-Forti argument from set theory to our type theory, and</p>
</li>
<li>
<p>to resize down the values of the order relation of the ordinal
of ordinals, to conclude that the ordinal of ordinals is large.</p>
</li>
</ol>
<p>There are also a number of uses of univalence via functional and
propositional extensionality.</p>
<p><a href="https://unimath.github.io/bham2017/UniMath_origins-present-future.pdf">Propositional resizing</a>
rules or axioms are not needed, thanks to (2).</p>
<p>An ordinal in a universe $\mathcal{U}$ is a type $X : \mathcal{U}$ equipped with a relation
$$ - \prec - : X \to X \to \mathcal{U}$$</p>
<p>required to be</p>
<ol>
<li>
<p>proposition valued,</p>
</li>
<li>
<p>transitive,</p>
</li>
<li>
<p>extensional (any two points with same lower set are the same),</p>
</li>
<li>
<p>well founded (every element is accessible, or, equivalently, the
principle of <a href="https://en.wikipedia.org/wiki/Transfinite_induction">transfinite
induction</a>
holds).</p>
</li>
</ol>
<p>The HoTT book additionally requires $X$ to be a set, but this <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/OrdinalNotions.html#extensionally-ordered-types-are-sets">follows
automatically</a> from the above requirements for the order.</p>
<p>The underlying type of an ordinal $\alpha$ is denoted by $\langle
\alpha \rangle$ and its order relation is denoted by $\prec_{\alpha}$ or simply $\prec$ when we believe the reader will be able to infer the missing subscript.</p>
<p>Equivalence of ordinals in universes $\mathcal{U}$ and $\mathcal{V}$,
$$ -\simeq_o- : \operatorname{Ordinal}\,\mathcal{U} \to \operatorname{Ordinal}\,\mathcal{V} \to \mathcal{U} \sqcup \mathcal{V},$$
means that there is an equivalence of the underlying types that
preserves and reflects order. Here we denote by $\mathcal{U} \sqcup \mathcal{V}$ the least upper bound of the two universes $\mathcal{U}$ and $\mathcal{V}$. The precise definition of the type theory we adopt here, including the handling of universes, can be found in <a href="https://www.cambridge.org/core/journals/mathematical-structures-in-computer-science/article/injective-types-in-univalent-mathematics/AFCBBABE47F29ED7AFB4C262929D8810">Section 2 of this paper</a> and also in our <a href="https://www.cs.bham.ac.uk/~mhe/HoTT-UF-in-Agda-Lecture-Notes/index.html">Midlands Graduate School 2019 lecture notes</a> in Agda form.</p>
<p>For ordinals $\alpha$ and $\beta$ in the <strong>same</strong> universe, their
identity type $\alpha = \beta$ is canonically equivalent to the
ordinal-equivalence type $\alpha \simeq_o \beta$, by univalence.</p>
<p>The lower set of a point $x : \langle \alpha \rangle$ is written
$\alpha \downarrow x$, and is itself an ordinal under the inherited
order. The ordinals in a universe $\mathcal{U}$ form an ordinal in the
successor universe $\mathcal{U}^+$, denoted by
$$ \operatorname{OO}\,\mathcal{U} : \operatorname{Ordinal}\,\mathcal{U}^+,$$
for <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/OrdinalOfOrdinals.html#OO">ordinal of ordinals</a>.</p>
<p>Its underlying type is $\operatorname{Ordinal}\,\mathcal{U}$ and
its order relation is denoted by $-\triangleleft-$ and is defined by
$$\alpha \triangleleft \beta = \Sigma b : \langle \beta \rangle , \alpha = (\beta \downarrow b).$$</p>
<p>This order has type $$-\triangleleft- : \operatorname{Ordinal}\,\mathcal{U} \to
\operatorname{Ordinal}\,\mathcal{U} \to \mathcal{U}^+,$$ as required for it to make the
type $\operatorname{\operatorname{Ordinal}} \mathcal{U}$ into an ordinal in the next
universe.</p>
<p>By univalence, this order is equivalent to the
order defined by
$$\alpha \triangleleft^- \beta = \Sigma b : \langle \beta \rangle , \alpha \simeq_o (\beta \downarrow b).$$
This has the more general type
$$ -\triangleleft^-- : \operatorname{\operatorname{Ordinal}}\,\mathcal{U} \to \operatorname{\operatorname{Ordinal}}\,\mathcal{V} \to \mathcal{U} \sqcup \mathcal{V},$$
so that we can compare ordinals in different universes. But also when the universes $\mathcal{U}$ and $\mathcal{V}$ are the same, this order has values in $\mathcal{U}$ rather than $\mathcal{U}^+$. The existence of such a resized-down order is crucial for our
corollaries of Burali-Forti, but not for Burali-Forti itself.</p>
<p>For any $\alpha : \operatorname{Ordinal}\,\mathcal{U}$ we have
$$ \alpha \simeq_o (\operatorname{OO}\,\mathcal{U} \downarrow \alpha),$$
so that $\alpha$ is an initial segment of the ordinal of ordinals, and hence
$$ \alpha \triangleleft^- \operatorname{OO}\,\mathcal{U}.$$</p>
<h4 id="the-burali-forti-theorem-in-hottuf">The Burali-Forti theorem in HoTT/UF</h4>
<p>We adapt the original formulation and argument from set theory.</p>
<blockquote>
<p><strong>Theorem</strong>. No ordinal in a universe $\mathcal{U}$ can be equivalent to the ordinal of all ordinals in $\mathcal{U}$.</p>
</blockquote>
<p><strong>Proof.</strong> Suppose, for the <a href="http://math.andrej.com/2010/03/29/proof-of-negation-and-proof-by-contradiction/">sake of
deriving
absurdity</a>,
that there is an ordinal $\alpha \simeq_o \operatorname{OO}\,\mathcal{U}$ in the universe
$\mathcal{U}$. By the above discussion, $\alpha \simeq_o \operatorname{OO}\,\mathcal{U} \downarrow
\alpha$, and, hence, by symmetry and transitivity, $\operatorname{OO}\,\mathcal{U} \simeq_o \operatorname{OO}\,\mathcal{U} \downarrow
\alpha$. Therefore, by univalence, $\operatorname{OO}\,\mathcal{U} = \operatorname{OO}\,\mathcal{U} \downarrow \alpha$. But this
means that $\operatorname{OO}\,\mathcal{U} \triangleleft \operatorname{OO}\,\mathcal{U}$, which is impossible as any accessible
relation is irreflexive. $\square$</p>
<p>Some corollaries follow.</p>
<h4 id="the-type-of-ordinals-is-large">The type of ordinals is large</h4>
<p>We say that a type in the successor universe $\mathcal{U}^+$ is <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/UF-Size.html#is-small"><strong>small</strong></a> if it is
equivalent to some type in the universe $\mathcal{U}$, and <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/UF-Size.html#is-large"><strong>large</strong></a> otherwise.</p>
<blockquote>
<p><strong>Theorem</strong>. The type of ordinals of any universe is large.</p>
</blockquote>
<p><strong>Proof.</strong> Suppose the type of ordinals in the universe $\mathcal{U}$
is small, so that there is a type $X : \mathcal{U}$ equivalent to the
type $\operatorname{Ordinal}\, \mathcal{U} : \mathcal{U}^+$. We can
then transport the ordinal structure from the type $\operatorname{Ordinal}\,
\mathcal{U}$ to $X$ along this equivalence to get an ordinal in
$\mathcal{U}$ equivalent to the ordinal of ordinals in $\mathcal{U}$,
which is impossible by the Burali-Forti theorem.</p>
<p>But the proof is not concluded yet, because we have to say how we transport the ordinal structure. At first sight <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/OrdinalsWellOrderTransport.html#transport-ordinal-structure">we should be able to simply apply univalence</a>. However, this is not possible because the types $X : \mathcal{U}$ and $\operatorname{Ordinal}\,\mathcal{U} :\mathcal{U}^+$ live in different universes. The problem is that only elements of the same type can be compared for equality.</p>
<ol>
<li>
<p>In the cumulative universe hierarchy of the HoTT book, we
automatically have that $X : \mathcal{U}^+$ and hence, being
equivalent to the type $\operatorname{Ordinal}\,\mathcal{U} :
\mathcal{U}^+$, the type $X$ is equal to the type
$\operatorname{Ordinal}\,\mathcal{U}$ by univalence. But this
equality is an element of an identity type of the universe
$\mathcal{U}^+$. Therefore when we transport the ordinal structure
on the type $\operatorname{Ordinal}\,\mathcal{U}$ to the type $X$
along this equality and equip $X$ with it, we get an ordinal in the
successor universe $\mathcal{U}^+$. But, in order to get the desired
contradiction, we need to get an ordinal in $\mathcal{U}$.</p>
</li>
<li>
<p>In the non-cumulative universe hierarchy we adopt here, we face
essentially the same difficulty. We cannot assert that $X :
\mathcal{U}^+$ but we can promote $X$ to an equivalent type in the
universe $\mathcal{U}^+$, and from this point on we reach the same
obstacle as in the cumulative case.</p>
</li>
</ol>
<p>So we have to transfer the ordinal structure from $\operatorname{Ordinal}\,\mathcal{U}$ to $X$ <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/OrdinalsWellOrderTransport.html">manually</a> along the given equivalence, call it
$$f : X \to \operatorname{Ordinal}\,\mathcal{U}.$$
We define the order of $X$ from that of $\operatorname{Ordinal}\,\mathcal{U}$ by
$$
x \prec y = f(x) \triangleleft f(y).
$$
It is <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/OrdinalsWellOrderTransport.html#transfer-structure">laborious but not hard to see</a> that this order satisfies the required axioms for making $X$ into an ordinal, except that it has values in $\mathcal{U}^+$ rather than $\mathcal{U}$. But this problem is solved by instead using the resized-down relation $\triangleleft^-$ discussed above, which is equivalent to $\triangleleft$ by univalence.
$\square$</p>
<h4 id="there-are-more-types-and-sets-in-mathcalu-than-in-mathcalu">There are more types and sets in $\mathcal{U}^+$ than in $\mathcal{U}$</h4>
<p>By a <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/UF-UniverseEmbedding.html#is-universe-embedding"><strong>universe embedding</strong></a> we mean a map
$$f : \mathcal{U} \to \mathcal{V}$$
of universes such that, for all $X : \mathcal{U}$,
$$f(X) \simeq X.$$ Of course, any two universe embeddings of $\mathcal{U}$ into $\mathcal{V}$ are equal,
by univalence, so that there is at most one universe embedding between
any two universes. Moreover, universe embeddings <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/UF-UniverseEmbedding.html">are automatically
type embeddings</a> (meaning that they have propositional fibers).</p>
<p>So the following says that the universe $\mathcal{U}^+$ is strictly larger than the
universe $\mathcal{U}$:</p>
<blockquote>
<p><strong>Theorem.</strong> The universe embedding $\mathcal{U} \to \mathcal{U}^+$ doesn't have a section and therefore is not an equivalence.</p>
</blockquote>
<p><strong>Proof.</strong> A section would give a type in the universe $\mathcal{U}$ equivalent to the type of ordinals in $\mathcal{U}$, but we have seen that there is no such type. $\square$</p>
<p>(However, by Theorem 29 of <a href="https://www.cambridge.org/core/journals/mathematical-structures-in-computer-science/article/injective-types-in-univalent-mathematics/AFCBBABE47F29ED7AFB4C262929D8810">Injective types in univalent mathematics</a>, if propositional resizing holds then the universe embedding $\mathcal{U} \to \mathcal{U}^+$
<a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/UF-Size.html#Lift-is-section">is a section</a>.)</p>
<p>The same argument of the above theorem shows that there are more sets
in $\mathcal{U}^+$ than in $\mathcal{U}$, because the type of ordinals
is a set. For a universe $\mathcal{U}$ define the type
$$\operatorname{hSet}\,\mathcal{U} : \mathcal{U}^+$$
by
$$ \operatorname{hSet}\,\mathcal{U} = \Sigma A : \mathcal{U} , \text{$A$ is a set}.$$
By an <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/UF-UniverseEmbedding.html#is-hSet-embedding"><strong>hSet embedding</strong></a> we mean a map
$$f : \operatorname{hSet}\,\mathcal{U} → \operatorname{hSet}\,\mathcal{V}$$
such that the underlying type of $f(\mathbb{X})$ is equivalent to the underlying type of $\mathbb{X}$ for every $\mathbb{X} : \operatorname{hSet}\,\mathcal{U}$, that is,
$$
\operatorname{pr_1} (f (\mathbb{X})) ≃ \operatorname{pr_1}(\mathbb{X}).
$$
Again <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/UF-UniverseEmbedding.html#at-most-one-hSet-embedding">there is at most one hSet-embedding</a> between any two universes, hSet-embeddings are type embeddings, and we have:</p>
<blockquote>
<p><strong>Theorem.</strong> The hSet-embedding $\operatorname{hSet}\,\mathcal{U} \to \operatorname{hSet}\,\mathcal{U}^+$ doesn't have a section and therefore is not an equivalence.</p>
</blockquote>
<h4 id="there-are-more-magmas-and-monoids-in-mathcalu-than-in-mathcalu">There are more magmas and monoids in $\mathcal{U}^+$ than in $\mathcal{U}$</h4>
<p>This is because the type of ordinals is a monoid under
addition with the ordinal zero as its neutral element, and hence also a magma. If the
inclusion of the type of magmas (respectively monoids) of one universe into that of the
next were an equivalence, then we would have a small copy of the type of ordinals.</p>
<blockquote>
<p><a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/BuraliForti.html"><strong>Theorem.</strong></a> The canonical embeddings $\operatorname{Magma}\,\mathcal{U} → \operatorname{Magma}\,\mathcal{U}^+$ and $\operatorname{Monoid}\,\mathcal{U} → \operatorname{Monoid}\,\mathcal{U}^+$ don't have sections and hence are not equivalences.</p>
</blockquote>
<h4 id="there-are-more-groups-in-mathcalu-than-in-mathcalu">There are more groups in $\mathcal{U}^+$ than in $\mathcal{U}$</h4>
<p>This case is more interesting.</p>
<p>The axiom of choice is equivalent to the statement that <a href="https://en.wikipedia.org/wiki/Group_structure_and_the_axiom_of_choice">any non-empty set can
be given the structure of a
group</a>. So
if we assumed the axiom of choice we would be done. But we are brave
and work without assuming excluded middle, and hence without choice, so that our results <a href="https://arxiv.org/abs/1904.07004">hold in any $\infty$-topos</a>.</p>
<p>It is also the case that <a href="https://homotopytypetheory.org/2021/01/23/can-the-type-of-truth-values-be-given-the-structure-of-a-group/">the type of propositions can be given the structure of a group</a> if and only if the principle of excluded middle holds. And <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/OrdinalArithmetic-Properties.html#retract-%CE%A9-of-Ordinal">the type of propositions is a retract of the type of ordinals</a>, which makes it unlikely that the type of ordinals can be given the structure of a group without excluded middle.</p>
<p>So our strategy is to embed the type of ordinals into a group, and the free group does the job.</p>
<ol>
<li>
<p>First we need to show that the inclusion of generators, or the
universal map into the free group, <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/FreeGroup.html">is an
embedding</a>.</p>
</li>
<li>
<p>But having a large type $X$ embedded into a type $Y$ is not enough
to conclude that $Y$ is also large. For example, if $P$ is a
proposition then the unique map $P \to \mathbb{1}$ is an embedding,
and the unit type $\mathbb{1}$ is small but $P$ may be large.</p>
</li>
<li>
<p>So more work is needed to show that the group freely generated by
the type of ordinals is large. We say that a map is <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/UF-Size.html#is-small"><strong>small</strong></a> if
each of its fibers is small, and <strong>large</strong> otherwise.
<a href="https://arxiv.org/abs/2102.08812">De Jong and Escardo</a> showed that
if a map $X \to Y$ is small and the type $Y$ is small, <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/UF-Size.html#is-small">then so is
the type
$X$</a>,
and hence if $X$ is large then so is $Y$. Therefore our approach is
to show that the universal map into the free group is small. To <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/FreeGroupOfLargeLocallySmallSet.html">do
this</a>,
we exploit the fact that the type of ordinals is <a href="https://arxiv.org/abs/1701.07538">locally
small</a> (<a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/BuraliForti.html#the-type-of-ordinals-is-locally-small">its identity types are
all equivalent to small
types</a>).</p>
</li>
</ol>
<p>But we want to be as general as possible, and hence work with a spartan univalent type theory which doesn't include higher inductive types other than propositional truncation. We include the empty type, the unit type, natural numbers, list types (<a href="https://www.cs.bham.ac.uk/~mhe/agda-new/Fin.html#vec">which can actually be constructed from the other type formers</a>), coproduct types, $\Sigma$-types, $\Pi$-types, identity types and a sequence of universes. We also assume the univalence axiom (from which we automatically get functional and propositional extensionality) and the axiom of existence of propositional truncations.</p>
<ol>
<li>
<p>We <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/FreeGroup.html">construct the free
group</a>
as a quotient of a type of words following <a href="https://www.springer.com/gb/book/9780387966403">Mines, Richman and
Ruitenburg</a>. To
prove that the universal map is an embedding, one first proves a
Church-Rosser property for the equivalence relation on words. It is
remarkable that this can be done without assuming that the set of
generators has decidable equality.</p>
</li>
<li>
<p>Quotients <a href="https://www.cs.bham.ac.uk/~mhe/agda-new/UF-Quotient.html">can be constructed from propositional
truncation</a>. This
construction increases the universe level by one, but eliminates
into any universe.</p>
</li>
<li>
<p>To <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/FreeGroupOfLargeLocallySmallSet.html#resize-free-group">resize back</a> the quotient used to construct the group freely
generated by the type of ordinals to the original universe, we
exploit the fact that the type of ordinals is locally small.</p>
</li>
<li>
<p>As above, we have to transfer <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/Groups.html#transport-Group-structure"><strong>manually</strong></a> group structures between equivalent types of different universes, because univalence can't be applied.</p>
</li>
</ol>
<p>Putting the above together, and leaving many steps to the <a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/BuraliForti.html">Agda code</a>, we get the following in our spartan univalent type theory.</p>
<blockquote>
<p><a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/FreeGroupOfLargeLocallySmallSet.html"><strong>Theorem.</strong></a> For any large, locally small set, the free group is also large and locally small.</p>
</blockquote>
<blockquote>
<p><a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/BuraliForti.html"><strong>Corollary.</strong></a> In any successor universe $\mathcal{U}^+$ there is a group which is not isomorphic to any group in the universe $\mathcal{U}$.</p>
</blockquote>
<blockquote>
<p><a href="https://www.cs.bham.ac.uk/~mhe/TypeTopology/BuraliForti.html"><strong>Corollary.</strong></a> The canonical embedding $\operatorname{Group}\,\mathcal{U} → \operatorname{Group}\,\mathcal{U}^+$ doesn't have a section and hence is not an equivalence.</p>
</blockquote>
<p>Can we formulate and prove a general theorem of this kind that
specializes to a wide variety of mathematical structures that occur in
practice?</p>Martin EscardoThis is joint work with Marc Bezem, Thierry Coquand, Peter Dybjer. We use the Burali-Forti argument to show that, in homotopy type theory and univalent foundations, the embedding $$ \mathcal{U} \to \mathcal{U}^+$$ of a universe $\mathcal{U}$ into its successor $\mathcal{U}^+$ is not an equivalence. We also establish this for the types of sets, magmas, monoids and groups. The arguments in this post are also written in Agda.Synthetic mathematics with an excursion into computability theory2021-02-03T00:00:00+01:002021-02-03T00:00:00+01:00http://math.andrej.com/2021/02/03/synthetic-mathematics-with-excursion-to-computability<p>It is my pleasure to have the opportunity to speak at the <a href="https://www.math.wisc.edu/logic/seminar.html">University of Wisconsin Logic
seminar</a>. The hosts are graciously keeping the seminar open for everyone.
I will speak about a favorite topic of mine:</p>
<h5 id="synthetic-mathematics-with-an-excursion-into-computability-theory">Synthetic mathematics with an excursion into computability theory</h5>
<p><strong>Speaker:</strong> Andrej Bauer (University of Ljubljana)<br />
<strong>Location:</strong> <a href="https://www.math.wisc.edu/logic/seminar.html">University of Wisconsin Logic seminar</a><br />
<strong>Time:</strong> February 8th 2021, 21:30 UTC (3:30pm CST in Wisconsin, 22:30 CET in Ljubljana)<br />
<strong>Video link:</strong> the Zoom link is available at the <a href="https://www.math.wisc.edu/logic/seminar.html">seminar page</a></p>
<p><strong>Abstract:</strong></p>
<p>According to Felix Klein, “synthetic geometry is that which studies figures as such, without recourse to
formulae, whereas analytic geometry consistently makes use of such formulae as can be written down after the adoption of
an appropriate system of coordinates”. To put it less eloquently, the synthetic method axiomatizes geometry directly by
construing points and lines as primitive notions, whereas the analytic method builds a model, the Euclidean plane, from
the real numbers.</p>
<p>Do other branches of mathematics posses the synthetic method, too? For instance, what would “synthetic topology” look
like? To build spaces out of sets, as topologists usually do, is the analytic way. The synthetic approach must construe
spaces as primitive and axiomatize them directly, without any recourse to sets. It cannot introduce continuity as a
desirable property of functions, for that would be like identifying straight lines as the non-bending curves.</p>
<p>It is indeed possible to build the synthetic worlds of topology, smooth analysis, measure theory, and computability. In
each of them, the basic structure – topological, smooth, measurable, computable – is implicit by virtue of permeating
everything, even logic itself. The synthetic worlds demand an economy of thought that the unaccustomed mind finds
frustrating at first, but eventually rewards it with new elegance and conceptual clarity. The synthetic method is still
fruitfully related to the analytic method by interpretation of the former in models provided by the latter.</p>
<p>We demonstrate the approach by taking a closer look at synthetic computability, whose central axiom states that there
are countably many countable subsets of the natural numbers. The axiom is validated and explained by its interpretation
in the effective topos, where it corresponds to the familiar fact that the computably enumerable sets may be computably
enumerated. Classic theorems of computability may be proved in a straightforward manner, without reference to any
notion of computation. We end by showing that in synthetic computability Turing reducibility is expressed in terms of
sequential continuity of maps between directed-complete partial orders.</p>
<p>The <a href="/asset/data/madison-synthetic-computability-talk.pdf"><strong>slides</strong></a> and the <a href="https://vimeo.com/510188470"><strong>video</strong></a>
recording of the talk are now available.</p>Andrej BauerIt is my pleasure to have the opportunity to speak at the University of Wisconsin Logic seminar. The hosts are graciously keeping the seminar open for everyone. I will speak about a favorite topic of mine: Synthetic mathematics with an excursion into computability theory Speaker: Andrej Bauer (University of Ljubljana) Location: University of Wisconsin Logic seminar Time: February 8th 2021, 21:30 UTC (3:30pm CST in Wisconsin, 22:30 CET in Ljubljana) Video link: the Zoom link is available at the seminar page Abstract: According to Felix Klein, “synthetic geometry is that which studies figures as such, without recourse to formulae, whereas analytic geometry consistently makes use of such formulae as can be written down after the adoption of an appropriate system of coordinates”. To put it less eloquently, the synthetic method axiomatizes geometry directly by construing points and lines as primitive notions, whereas the analytic method builds a model, the Euclidean plane, from the real numbers. Do other branches of mathematics posses the synthetic method, too? For instance, what would “synthetic topology” look like? To build spaces out of sets, as topologists usually do, is the analytic way. The synthetic approach must construe spaces as primitive and axiomatize them directly, without any recourse to sets. It cannot introduce continuity as a desirable property of functions, for that would be like identifying straight lines as the non-bending curves. It is indeed possible to build the synthetic worlds of topology, smooth analysis, measure theory, and computability. In each of them, the basic structure – topological, smooth, measurable, computable – is implicit by virtue of permeating everything, even logic itself. The synthetic worlds demand an economy of thought that the unaccustomed mind finds frustrating at first, but eventually rewards it with new elegance and conceptual clarity. The synthetic method is still fruitfully related to the analytic method by interpretation of the former in models provided by the latter. We demonstrate the approach by taking a closer look at synthetic computability, whose central axiom states that there are countably many countable subsets of the natural numbers. The axiom is validated and explained by its interpretation in the effective topos, where it corresponds to the familiar fact that the computably enumerable sets may be computably enumerated. Classic theorems of computability may be proved in a straightforward manner, without reference to any notion of computation. We end by showing that in synthetic computability Turing reducibility is expressed in terms of sequential continuity of maps between directed-complete partial orders. The slides and the video recording of the talk are now available.Every proof assistant: introducing homotopy.io – a proof assistant for geometrical higher category theory2020-11-24T00:00:00+01:002020-11-24T00:00:00+01:00http://math.andrej.com/2020/11/24/homotopy-io<p>After a short pause, our next talk in the series will be given by Jamie Vicary, who will
present a proof assistant in which the proofs are drawn!</p>
<blockquote>
<h5 id="introducing-homotopyio-a-proof-assistant-for-geometrical-higher-category-theory">Introducing homotopy.io: A proof assistant for geometrical higher category theory</h5>
<p><strong>Time:</strong> Thursday, November 26, 2020 from 15:00 to 16:00 (Central European Time, UTC+1)<br />
<strong>Location:</strong> online at <a href="https://zoom.us/j/98904788985">Zoom ID 989 0478 8985</a><br />
<strong>Speaker:</strong> <a href="https://www.cl.cam.ac.uk/~jv258/">Jamie Vicary</a> (University of Cambridge)<br />
<strong>Proof assistant:</strong> <a href="https://homotopy.io/">homotopy.io</a></p>
<p><strong>Abstract:</strong></p>
<p>Weak higher categories can be difficult to work with algebraically,
with the weak structure potentially leading to considerable bureaucracy.
Conjecturally, every weak infty-category is equivalent to a
"semistrict" one, in which unitors and associators are trivial; such a
setting might reduce the burden of constructing large
proofs. In this talk, I will present the proof assistant <a href="https://homotopy.io/">homotopy.io</a>,
which allows direct construction of composites in a finitely-generated
semistrict (infty,infty)-category. The terms of the proof assistant
have a geometrical interpretation as string diagrams, and interaction
with the proof assistant is entirely geometrical, by clicking and
dragging with the mouse, completely unlike more traditional computer
algebra systems. I will give an outline of the underlying theoretical
foundations, and demonstrate use of the proof assistant to construct
some nontrivial homotopies, rendered in 2d and 3d. I will close with
some speculations about the possible interaction of such a system with
more traditional type-theoretical approaches. (Joint work with Lukas
Heidemann, Nick Hu and David Reutter.)</p>
<p>References:</p>
<ul>
<li>David Reutter, Jamie Vicary: <em>High-level methods for homotopy construction in
associative n-categories</em>, <a href="https://arxiv.org/abs/1902.03831">arXiv:1902.03831</a>
preprint, February 2019.</li>
<li><a href="https://ncatlab.org/nlab/show/homotopy.io">homotopy.io at Lab</a></li>
</ul>
</blockquote>Andrej BauerAfter a short pause, our next talk in the series will be given by Jamie Vicary, who will present a proof assistant in which the proofs are drawn! Introducing homotopy.io: A proof assistant for geometrical higher category theory Time: Thursday, November 26, 2020 from 15:00 to 16:00 (Central European Time, UTC+1) Location: online at Zoom ID 989 0478 8985 Speaker: Jamie Vicary (University of Cambridge) Proof assistant: homotopy.io Abstract: Weak higher categories can be difficult to work with algebraically, with the weak structure potentially leading to considerable bureaucracy. Conjecturally, every weak infty-category is equivalent to a "semistrict" one, in which unitors and associators are trivial; such a setting might reduce the burden of constructing large proofs. In this talk, I will present the proof assistant homotopy.io, which allows direct construction of composites in a finitely-generated semistrict (infty,infty)-category. The terms of the proof assistant have a geometrical interpretation as string diagrams, and interaction with the proof assistant is entirely geometrical, by clicking and dragging with the mouse, completely unlike more traditional computer algebra systems. I will give an outline of the underlying theoretical foundations, and demonstrate use of the proof assistant to construct some nontrivial homotopies, rendered in 2d and 3d. I will close with some speculations about the possible interaction of such a system with more traditional type-theoretical approaches. (Joint work with Lukas Heidemann, Nick Hu and David Reutter.) References: David Reutter, Jamie Vicary: High-level methods for homotopy construction in associative n-categories, arXiv:1902.03831 preprint, February 2019. homotopy.io at LabA general definition of dependent type theories2020-09-14T00:00:00+02:002020-09-14T00:00:00+02:00http://math.andrej.com/2020/09/14/a-general-definition-of-dependent-type-theories<p>The preprint version of the paper <a href="https://arxiv.org/abs/2009.05539">A general definition of dependent type
theories</a> has finally appeared on the arXiv! Over three
years ago <a href="http://peterlefanulumsdaine.com">Peter Lumsdaine</a> invited me to work on the
topic, which I gladly accepted, and dragged my student <a href="http://haselwarter.org/~philipp/">Philipp
Haselwarter</a> into it. We set out to give <em>an</em> answer to
the queation:</p>
<blockquote>
<p><strong>What is type theory, precisely?</strong></p>
</blockquote>
<p>At least for me the motivation to work on such a thankless topic came from Vladimir
Voevodsky, who would ask the question to type-theoretic audiences. Some took him to be a
troll and others a newcomer who just had to learn more type theory. I was among the
latter, but eventually the question got through to me – I could point to any number of
<em>specific</em> examples of type theories, but not a comprehensive and mathematically precise
definition of the <em>general</em> concept.</p>
<p>It is too easy to dismiss the question by claiming that type theory is an open-ended concept
which therefore cannot be completely captured by any mathematical definition. Of
course it is open-ended, but it does not follow at all that we should not even
attempt to define it. If geometers were equally fatalistic about the open-ended notion of
space we would never have had modern geometry, topology, sheaves – heck, half of 20th
century mathematics would not be there!</p>
<p>Of course, we are neither the first nor the last to give a definition of type theory, and
that is how things should be. We claim no priority or supremacy over other definitions and
views of type theory. Our approach could perhaps be described as "concrete" and
"proof-theoretic":</p>
<ol>
<li>We wanted to <em>stay close to traditional syntax</em>.</li>
<li>We gave a <em>complete</em> and <em>precise</em> definition.</li>
<li>We aimed for a level of generality that allows useful meta-theory of a wide range of type theories.</li>
</ol>
<p>One can argue each of the above points, and we have done so among ourselves many times.
Nevertheless, I feel that we have accomplished something worthwhile – but the ultimate
judges will be our readers, or lack of them. You are kindly invited to take a look at the
paper.</p>
<p><strong>Download PDF:</strong> <a href="https://arxiv.org/pdf/2009.05539.pdf"><code class="language-plaintext highlighter-rouge">arxiv.org/pdf/2009.05539.pdf</code></a></p>
<p>I should not forget to mention that Peter, with modest help from Philipp and me,
formalized almost the entire paper in Coq! See the repository
<a href="https://github.com/peterlefanulumsdaine/general-type-theories"><code class="language-plaintext highlighter-rouge">general-type-theories</code></a> at
GitHub.</p>Andrej BauerThe preprint version of the paper A general definition of dependent type theories has finally appeared on the arXiv! Over three years ago Peter Lumsdaine invited me to work on the topic, which I gladly accepted, and dragged my student Philipp Haselwarter into it. We set out to give an answer to the queation: What is type theory, precisely? At least for me the motivation to work on such a thankless topic came from Vladimir Voevodsky, who would ask the question to type-theoretic audiences. Some took him to be a troll and others a newcomer who just had to learn more type theory. I was among the latter, but eventually the question got through to me – I could point to any number of specific examples of type theories, but not a comprehensive and mathematically precise definition of the general concept. It is too easy to dismiss the question by claiming that type theory is an open-ended concept which therefore cannot be completely captured by any mathematical definition. Of course it is open-ended, but it does not follow at all that we should not even attempt to define it. If geometers were equally fatalistic about the open-ended notion of space we would never have had modern geometry, topology, sheaves – heck, half of 20th century mathematics would not be there! Of course, we are neither the first nor the last to give a definition of type theory, and that is how things should be. We claim no priority or supremacy over other definitions and views of type theory. Our approach could perhaps be described as "concrete" and "proof-theoretic": We wanted to stay close to traditional syntax. We gave a complete and precise definition. We aimed for a level of generality that allows useful meta-theory of a wide range of type theories. One can argue each of the above points, and we have done so among ourselves many times. Nevertheless, I feel that we have accomplished something worthwhile – but the ultimate judges will be our readers, or lack of them. You are kindly invited to take a look at the paper. Download PDF: arxiv.org/pdf/2009.05539.pdf I should not forget to mention that Peter, with modest help from Philipp and me, formalized almost the entire paper in Coq! See the repository general-type-theories at GitHub.Every proof assistant: Cubical Agda – A Dependently Typed Programming Language with Univalence and Higher Inductive Types2020-09-10T00:00:00+02:002020-09-10T00:00:00+02:00http://math.andrej.com/2020/09/10/cubical-agda<p>I am happy to announce that we are restarting the "Every proof assistants" series of talks
with Anders Mörtberg who will talk about Cubical Agda. Note that we are moving the seminar
time to a more reasonable hour, at least as far as the working people in Europe are
concerned.</p>
<blockquote>
<h5 id="cubical-agda-a-dependently-typed-programming-language-with-univalence-and-higher-inductive-types">Cubical Agda: A Dependently Typed Programming Language with Univalence and Higher Inductive Types</h5>
<p><strong>Time:</strong> Thursday, September 17, 2020 from 15:00 to 16:00 (Central European Summer Time, UTC+2)<br />
<strong>Location:</strong> online at <a href="https://zoom.us/j/98904788985">Zoom ID 989 0478 8985</a><br />
<strong>Speaker:</strong> <a href="https://staff.math.su.se/anders.mortberg/">Anders Mörtberg</a> (Stockholm University)<br />
<strong>Proof assistant:</strong> <a href="https://github.com/agda/cubical">Cubical Agda</a></p>
<p><strong>Abstract:</strong>
The dependently typed programming language Agda has recently been
extended with a cubical mode which provides extensionality principles
for reasoning about equality, such as function and propositional
extensionality. These principles are typically added axiomatically to
proof assistants based on dependent type theory which disrupts the
constructive properties of these systems. Cubical type theory provides
a solution by giving computational meaning to Homotopy Type Theory and
Univalent Foundations, in particular to the univalence axiom and
higher inductive types. In the talk I will discuss how Agda was
extended to a full-blown proof assistant with native support for
univalence and a general schema of higher inductive types. I will also
show a variety of examples of how to use Cubical Agda in practice to
reason about mathematics and computer science.</p>
<p>The talk <a href="https://vimeo.com/459020971">video recording</a> is available.</p>
</blockquote>
<p>We have more talks in store, but we will space them out a bit to give slots to our local seminar.</p>Andrej BauerI am happy to announce that we are restarting the "Every proof assistants" series of talks with Anders Mörtberg who will talk about Cubical Agda. Note that we are moving the seminar time to a more reasonable hour, at least as far as the working people in Europe are concerned. Cubical Agda: A Dependently Typed Programming Language with Univalence and Higher Inductive Types Time: Thursday, September 17, 2020 from 15:00 to 16:00 (Central European Summer Time, UTC+2) Location: online at Zoom ID 989 0478 8985 Speaker: Anders Mörtberg (Stockholm University) Proof assistant: Cubical Agda Abstract: The dependently typed programming language Agda has recently been extended with a cubical mode which provides extensionality principles for reasoning about equality, such as function and propositional extensionality. These principles are typically added axiomatically to proof assistants based on dependent type theory which disrupts the constructive properties of these systems. Cubical type theory provides a solution by giving computational meaning to Homotopy Type Theory and Univalent Foundations, in particular to the univalence axiom and higher inductive types. In the talk I will discuss how Agda was extended to a full-blown proof assistant with native support for univalence and a general schema of higher inductive types. I will also show a variety of examples of how to use Cubical Agda in practice to reason about mathematics and computer science. The talk video recording is available. We have more talks in store, but we will space them out a bit to give slots to our local seminar.Every proof assistant: Cur - Designing a less devious proof assistant2020-06-22T00:00:00+02:002020-06-22T00:00:00+02:00http://math.andrej.com/2020/06/22/cur-designing-a-less-devious-proof-assistant<p>We shall finish the semester with a "Every proof assistant" talk by William Bowman.
Note that we start an hour later than usual, at 17:00 UTC+2.</p>
<blockquote>
<h5 id="cur-designing-a-less-devious-proof-assistant">Cur: Designing a less devious proof assistant</h5>
<p><strong>Time:</strong> Thursday, June 25, 2020 from 17:00 to 18:00 (Central European Summer Time, UTC+2)<br />
<strong>Location:</strong> online at <a href="https://zoom.us/j/98904788985">Zoom ID 989 0478 8985</a><br />
<strong>Speaker:</strong> <a href="https://williamjbowman.com">William J. Bowman</a> (University of British Columbia)<br />
<strong>Proof assistant:</strong> <a href="https://github.com/wilbowma/cur">Cur</a></p>
<p><strong>Abstract:</strong></p>
<p>Dijkstra said that our tools can have a profound and devious influence on our thinking. I
find this especially true of modern proof assistants, with "devious" out-weighing
"profound". Cur is an experiment in design that aims to be less devious. The design
emphasizes language extension, syntax manipulation, and DSL construction and integration.
This enables the user to be in charge of how they think, rather than requiring the user to
contort their thinking to that of the proof assistant. In this talk, my goal is to
convince you that you want similar capabilities in a proof assistant, and explain and
demonstrate Cur's attempt at solving the problem.</p>
<p>The talk <a href="https://vimeo.com/432569820">video recording</a> and <a href="https://williamjbowman.com/#epa-less-devious">slides with notes and demo code</a> are available.</p>
</blockquote>
<p>Upcoming talks: Anders Mörtberg's talk on Cubical Agda will take place in September 2020.</p>Andrej BauerWe shall finish the semester with a "Every proof assistant" talk by William Bowman. Note that we start an hour later than usual, at 17:00 UTC+2. Cur: Designing a less devious proof assistant Time: Thursday, June 25, 2020 from 17:00 to 18:00 (Central European Summer Time, UTC+2) Location: online at Zoom ID 989 0478 8985 Speaker: William J. Bowman (University of British Columbia) Proof assistant: Cur Abstract: Dijkstra said that our tools can have a profound and devious influence on our thinking. I find this especially true of modern proof assistants, with "devious" out-weighing "profound". Cur is an experiment in design that aims to be less devious. The design emphasizes language extension, syntax manipulation, and DSL construction and integration. This enables the user to be in charge of how they think, rather than requiring the user to contort their thinking to that of the proof assistant. In this talk, my goal is to convince you that you want similar capabilities in a proof assistant, and explain and demonstrate Cur's attempt at solving the problem. The talk video recording and slides with notes and demo code are available. Upcoming talks: Anders Mörtberg's talk on Cubical Agda will take place in September 2020.Every proof assistant: Epigram 2 - Autopsy, Obituary, Apology2020-06-09T00:00:00+02:002020-06-09T00:00:00+02:00http://math.andrej.com/2020/06/09/epigram-2-autopsy-obituary-apology<p>This week shall witness a performance by Conor McBride.</p>
<blockquote>
<h5 id="epigram-2-autopsy-obituary-apology">Epigram 2: Autopsy, Obituary, Apology</h5>
<p><strong>Time:</strong> Thursday, June 11, 2020 from 16:00 to 17:00 (Central European Summer Time, UTC+2)<br />
<strong>Location:</strong> online at <a href="https://zoom.us/j/98904788985">Zoom ID 989 0478 8985</a><br />
<strong>Speaker:</strong> <a href="http://strictlypositive.org">Conor McBride</a> (University of Strathclyde)<br />
<strong>Proof assistant:</strong> <a href="https://github.com/mietek/epigram2">Epigram 2</a></p>
<p><strong>Abstract:</strong>
"A good pilot is one with the same number of take-offs and landings."
runs the old joke, which makes me a very bad pilot indeed. The Epigram
2 project was repeatedly restarted several times in the late 2000s and
never even reached cruising altitude. This talk is absolutely not an
attempt to persuade you to start using it. Rather, it is an
exploration of the ideas which drove it: proof irrelevant
observational equality, first class datatype descriptions, nontrivial
equational theories for neutral terms. We may yet live to see such
things. Although the programming language elaborator never happened,
the underlying proof engine was accessible via an imperative interface
called "Cochon": we did manage some interesting constructions, at
least one of which I can walk through. I'll also explore the reasons,
human and technological, why the thing did not survive the long dark.</p>
<p>The <a href="https://vimeo.com/428161108">video recording of the talk</a>.</p>
</blockquote>
<p>Upcoming talks:</p>
<ul>
<li>June 25, 2020: <a href="https://www.williamjbowman.com">William J. Bowman</a>, <a href="https://github.com/wilbowma/cur">Cur</a></li>
<li>July 2, 2020: <a href="https://staff.math.su.se/anders.mortberg/">Anders Mörtberg</a> - <a href="https://agda.readthedocs.io/en/v2.6.1/language/cubical.html">Cubical Agda</a></li>
</ul>Andrej BauerThis week shall witness a performance by Conor McBride. Epigram 2: Autopsy, Obituary, Apology Time: Thursday, June 11, 2020 from 16:00 to 17:00 (Central European Summer Time, UTC+2) Location: online at Zoom ID 989 0478 8985 Speaker: Conor McBride (University of Strathclyde) Proof assistant: Epigram 2 Abstract: "A good pilot is one with the same number of take-offs and landings." runs the old joke, which makes me a very bad pilot indeed. The Epigram 2 project was repeatedly restarted several times in the late 2000s and never even reached cruising altitude. This talk is absolutely not an attempt to persuade you to start using it. Rather, it is an exploration of the ideas which drove it: proof irrelevant observational equality, first class datatype descriptions, nontrivial equational theories for neutral terms. We may yet live to see such things. Although the programming language elaborator never happened, the underlying proof engine was accessible via an imperative interface called "Cochon": we did manage some interesting constructions, at least one of which I can walk through. I'll also explore the reasons, human and technological, why the thing did not survive the long dark. The video recording of the talk. Upcoming talks: June 25, 2020: William J. Bowman, Cur July 2, 2020: Anders Mörtberg - Cubical AgdaEvery proof assistant: redtt2020-06-01T00:00:00+02:002020-06-01T00:00:00+02:00http://math.andrej.com/2020/06/01/redtt-and-the-future-of-cartesian-cubical-type-theory<p>This week the speaker will be Jon Sterling, and we are getting two proof assistants for the price of one!</p>
<blockquote>
<h5 id="redtt-and-the-future-of-cartesian-cubical-type-theory"><code class="language-plaintext highlighter-rouge">redtt</code> and the future of Cartesian cubical type theory</h5>
<p><strong>Time:</strong> Thursday, June 4, 2020 from 16:00 to 17:00 (Central European Summer Time, UTC+2)<br />
<strong>Location:</strong> online at <a href="https://zoom.us/j/98904788985">Zoom ID 989 0478 8985</a><br />
<strong>Speaker:</strong> <a href="https://www.jonmsterling.com">Jon Sterling</a> (Carnegie Mellon University)<br />
<strong>Proof assistant:</strong> <a href="https://github.com/RedPRL/redtt">redtt</a> and <a href="https://github.com/RedPRL/cooltt">cooltt</a></p>
<p><strong>Abstract:</strong>
<code class="language-plaintext highlighter-rouge">redtt</code> is an interactive proof assistant for Cartesian cubical type theory, a version of
Martin-Löf type theory featuring computational versions of function extensionality, higher
inductive types, and univalence. Building on ideas from Epigram, Agda, and Idris, <code class="language-plaintext highlighter-rouge">redtt</code>
introduces a new cubical take on interactive proof development with holes. We will first
introduce the basics of cubical type theory and then dive into an interactive
demonstration of <code class="language-plaintext highlighter-rouge">redtt</code>’s features and its mathematical library.</p>
<p>After this we will catch a first public glimpse of the future of <code class="language-plaintext highlighter-rouge">redtt</code>, a new prototype
that our team is building currently code-named “<code class="language-plaintext highlighter-rouge">cooltt</code>”: <code class="language-plaintext highlighter-rouge">cooltt</code> introduces syntax to
split on disjunctions of cofibrations in arbitrary positions, implementing the full
definitional eta law for disjunction. While <code class="language-plaintext highlighter-rouge">cooltt</code> is still in the early stages, it
already has full support for univalence and cubical interactive proof development.</p>
<p>The <a href="https://vimeo.com/425917591">video recording of the talk</a>.</p>
</blockquote>
<p>Upcoming talks:</p>
<ul>
<li>June 11, 2020: <a href="http://strictlypositive.org">Conor McBride</a> - <a href="https://github.com/mietek/epigram2">Epigram 2</a></li>
<li>June 25, 2020: <a href="https://www.williamjbowman.com">William J. Bowman</a>, <a href="https://github.com/wilbowma/cur">Cur</a></li>
<li>July 2, 2020: <a href="https://staff.math.su.se/anders.mortberg/">Anders Mörtberg</a> - <a href="https://agda.readthedocs.io/en/v2.6.1/language/cubical.html">Cubical Agda</a></li>
</ul>Andrej BauerThis week the speaker will be Jon Sterling, and we are getting two proof assistants for the price of one! redtt and the future of Cartesian cubical type theory Time: Thursday, June 4, 2020 from 16:00 to 17:00 (Central European Summer Time, UTC+2) Location: online at Zoom ID 989 0478 8985 Speaker: Jon Sterling (Carnegie Mellon University) Proof assistant: redtt and cooltt Abstract: redtt is an interactive proof assistant for Cartesian cubical type theory, a version of Martin-Löf type theory featuring computational versions of function extensionality, higher inductive types, and univalence. Building on ideas from Epigram, Agda, and Idris, redtt introduces a new cubical take on interactive proof development with holes. We will first introduce the basics of cubical type theory and then dive into an interactive demonstration of redtt’s features and its mathematical library. After this we will catch a first public glimpse of the future of redtt, a new prototype that our team is building currently code-named “cooltt”: cooltt introduces syntax to split on disjunctions of cofibrations in arbitrary positions, implementing the full definitional eta law for disjunction. While cooltt is still in the early stages, it already has full support for univalence and cubical interactive proof development. The video recording of the talk. Upcoming talks: June 11, 2020: Conor McBride - Epigram 2 June 25, 2020: William J. Bowman, Cur July 2, 2020: Anders Mörtberg - Cubical AgdaEvery proof assistant: Beluga2020-05-25T00:00:00+02:002020-05-25T00:00:00+02:00http://math.andrej.com/2020/05/25/mechanizing-meta-theory-in-beluga<p>We are marching on with the Every proof assistant series!</p>
<blockquote>
<h5 id="mechanizing-meta-theory-in-beluga">Mechanizing Meta-Theory in Beluga</h5>
<p><strong>Time:</strong> Thursday, May 28, 2020 from 16:00 to 17:00 (Central European Summer Time, UTC+2)<br />
<strong>Location:</strong> online at <a href="https://zoom.us/j/98904788985">Zoom ID 989 0478 8985</a><br />
<strong>Speaker:</strong> <a href="https://www.cs.mcgill.ca/~bpientka/">Brigitte Pientka</a> (McGill University)<br />
<strong>Proof assistant:</strong> <a href="http://complogic.cs.mcgill.ca/beluga/">Beluga</a></p>
<p><strong>Abstract:</strong> Mechanizing formal systems, given via axioms and inference rules, together
with proofs about them plays an important role in establishing trust in formal
developments. In this talk, I will survey the proof environment Beluga. To specify formal
systems and represent derivations within them, Beluga relies on the logical framework LF;
to reason about formal systems, Beluga provides a dependently typed functional language
for implementing (co)inductive proofs about derivation trees as (co)recursive functions
following the Curry-Howard isomorphism. Key to this approach is the ability to model
derivation trees that depend on a context of assumptions using a generalization of the
logical framework LF, i.e. contextual LF which supports first-class contexts and
simultaneous substitutions.</p>
<p>Our experience demonstrated that Beluga enables direct and compact
mechanizations of the meta-theory of formal systems, in particular programming
languages and logics.</p>
<p>The <a href="https://vimeo.com/423668919">video recording of the talk</a>.</p>
</blockquote>
<p>Upcoming talks:</p>
<ul>
<li>June 4, 2020: <a href="https://www.jonmsterling.com">Jon Sterling</a> - <a href="https://github.com/RedPRL/redtt">redtt</a></li>
<li>June 11, 2020: <a href="http://strictlypositive.org">Conor McBride</a> - <a href="https://github.com/mietek/epigram2">Epigram 2</a></li>
<li>June 25, 2020: <a href="https://www.williamjbowman.com">William J. Bowman</a>, <a href="https://github.com/wilbowma/cur">Cur</a></li>
<li>July 2, 2020: <a href="https://staff.math.su.se/anders.mortberg/">Anders Mörtberg</a> - <a href="https://agda.readthedocs.io/en/v2.6.1/language/cubical.html">Cubical Agda</a></li>
</ul>Andrej BauerWe are marching on with the Every proof assistant series! Mechanizing Meta-Theory in Beluga Time: Thursday, May 28, 2020 from 16:00 to 17:00 (Central European Summer Time, UTC+2) Location: online at Zoom ID 989 0478 8985 Speaker: Brigitte Pientka (McGill University) Proof assistant: Beluga Abstract: Mechanizing formal systems, given via axioms and inference rules, together with proofs about them plays an important role in establishing trust in formal developments. In this talk, I will survey the proof environment Beluga. To specify formal systems and represent derivations within them, Beluga relies on the logical framework LF; to reason about formal systems, Beluga provides a dependently typed functional language for implementing (co)inductive proofs about derivation trees as (co)recursive functions following the Curry-Howard isomorphism. Key to this approach is the ability to model derivation trees that depend on a context of assumptions using a generalization of the logical framework LF, i.e. contextual LF which supports first-class contexts and simultaneous substitutions. Our experience demonstrated that Beluga enables direct and compact mechanizations of the meta-theory of formal systems, in particular programming languages and logics. The video recording of the talk. Upcoming talks: June 4, 2020: Jon Sterling - redtt June 11, 2020: Conor McBride - Epigram 2 June 25, 2020: William J. Bowman, Cur July 2, 2020: Anders Mörtberg - Cubical Agda