Congratulations!

[Valid Atom 1.0] This is a valid Atom 1.0 feed.

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: http://golem.ph.utexas.edu/category/atom10.xml

  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2. <feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  3.  <title>The n-Category Caf&#xE9;</title>
  4.  <link rel="alternate" type="application/xhtml+xml" href="https://golem.ph.utexas.edu/category/" />
  5.  <link rel="self" href="https://golem.ph.utexas.edu/category/atom10.xml" />
  6.  <link rel="replies" type="application/atom+xml" href="https://golem.ph.utexas.edu/category/comments.atom"/>
  7.  <updated>2019-10-14T21:04:11Z</updated>
  8.  <subtitle>A group blog on math, physics and philosophy</subtitle>
  9.  <id>tag:golem.ph.utexas.edu,2006:nCategoryCafe/3</id>
  10.  <generator uri="http://www.movabletype.org/" version="3.36">Movable Type</generator>
  11.  <icon>https://golem.ph.utexas.edu/category/images/favicon.ico</icon>
  12.  <rights>Copyright (c) 2019, The n-Category Collective</rights>
  13.  <entry>
  14.    <title type="html">Diversity Workshop at UCR</title>
  15.    <link rel="alternate" type="application/xhtml+xml" href="https://golem.ph.utexas.edu/category/2019/10/diversity_workshop_at_ucr.html" />
  16.    <updated>2019-10-14T21:04:11Z</updated>
  17.    <published>2019-10-14T22:00:05+00:00</published>
  18.    <id>tag:golem.ph.utexas.edu,2019:%2Fcategory%2F3.3150</id>
  19.    <summary type="text">We're having a workshop on diversity in math on Friday 8 November 2019 at U. C. Riverside, right before the applied category theory meeting that weekend.
  20. </summary>
  21.    <author>
  22.      <name>john</name>
  23.      <uri>http://math.ucr.edu/home/baez/</uri>
  24.      <email>[email protected]</email>
  25.    </author>
  26.    <category term="Conference" />
  27.    <content type="xhtml" xml:base="https://golem.ph.utexas.edu/category/2019/10/diversity_workshop_at_ucr.html">
  28.      <div xmlns="http://www.w3.org/1999/xhtml">
  29. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  30.  
  31. <p>I&#8217;m organizing the second of a series of workshops to promote diversity in math here at UCR: </p>
  32.  
  33. <p>&#x02022; <a href="https://mathdept.ucr.edu/events/diversitywrk.html">Riverside Mathematics Workshop for Excellence and Diversity</a>, Friday 8 November 2019, U. C. Riverside.</p>
  34.  
  35. <p>It&#8217;s right before the <a href="https://johncarlosbaez.wordpress.com/2019/09/30/applied-category-theory-meeting-at-ucr-part-2/">applied category theory meeting</a>, so I hope some of you can make both&#8230; especially since Eugenia Cheng will be giving a talk on Friday!</p>
  36.  
  37. <p>Three talks will take place in <a href="https://campusmap.ucr.edu/?loc=SKYE">Skye Hall</a>&#8212;home of the math department&#8212;starting at 1 pm. After this we&#8217;ll have refreshments and an hour for students to talk to the speakers. Starting at 6 pm there will be a reception across the road at the <a href="https://campusmap.ucr.edu/?loc=ALUM">UCR Alumni Center</a>, with food and a panel discussion on the challenges we face in promoting diversity at U.C. Riverside. </p>
  38.  
  39. <p>Details follow.</p>
  40.  
  41. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  42.  
  43. <p>All the talks will be in Skye 282:</p>
  44.  
  45. <p>&#x02022; 1:00&#8211;1:50 p.m.  <strong>Abba Gumel, Arizona State University.</strong> </p>
  46.  
  47. <p><strong>Some models for enhancing diversity and capacity-building in STEM education in under-represented minority communities.</strong></p>
  48.  
  49. <blockquote>
  50.  <p>STEM (science, technology, engineering and mathematics) education is undoubtedly the necessary bedrock for the development and sustenance of the vitally-needed knowledge-based economy that fuels and sustains the development of modern nations. Central to STEM education are, of course, the mathematical science &#8230; which are the rock-solid foundation of all the natural and engineering sciences.  Hence, it is vital that all diverse populations are not left behind in the quest to build and sustain capacity in the mathematical sciences.  This talk focuses on discussion around a number of pedagogic and mentorship models that have been (and are being) used to help increase diversity and capacity-building in STEM education in general, and in the mathematical sciences in particular, in under-represented minority populations. Some examples from Africa, Canada and the U.S. will be presented.</p>
  51. </blockquote>
  52.  
  53. <p>&#x02022; 2:00&#8211;2:50. <strong>Marissa Loving, Georgia Tech.</strong>  </p>
  54.  
  55. <p><strong>Where do I belong? Creating space in the math community.</strong></p>
  56.  
  57. <blockquote>
  58.  <p>I will tell the story of my mathematical journey with a focus on my time in grad school. I will be blunt about the ups and downs I have experienced and touch on some of the barriers (both structural and internalized) I have encountered. I will also discuss some of the programs and spaces I have helped create in my quest to make the mathematics community into a place where folks from historically under-represented groups (particularly women of color) can feel safe, seen, and free to devote their energy to their work. If you have ever felt like you don&#8217;t belong or worried that you have made others feel that way, this talk is for you.</p>
  59. </blockquote>
  60.  
  61. <p>&#x02022; 3:00&#8211;3:50 p.m.  <strong>Eugenia Cheng, School of the Art Institute of Chicago.</strong> </p>
  62.  
  63. <p><strong>Inclusion&#8211;exclusion in mathematics and beyond: who stays in, who falls out, why it happens, and what we could do about it.</strong></p>
  64.  
  65. <blockquote>
  66.  <p>The question of why women and minorities are under-represented in mathematics is complex and there are no simple answers, only many contributing factors. I will focus on character traits, and argue that if we focus on this rather than gender we can have a more productive and less divisive conversation. To try and focus on characters rather than genders I will introduce gender-neutral character adjectives &#8220;ingressive&#8221; and &#8220;congressive&#8221; as a new dimension to shift our focus away from masculine and feminine. I will share my experience of teaching congressive abstract mathematics to art students, in a congressive way, and the possible effects this could have for everyone in mathematics, not just women.  Moreover I will show that abstract mathematics is applicable to working towards a more inclusive, congressive society in this politically divisive era. This goes against the assumption that abstract math can only be taught to high level undergraduates and graduate students, and the accusation that it is removed from real life.</p>
  67. </blockquote>
  68.  
  69. <p>&#x02022; 4:00&#8211;4:30 p.m. <strong>Refreshments in Skye 284.</strong></p>
  70.  
  71. <p>&#x02022; 4:30&#8211;5:30 p.m. <strong>Conversations Between Speakers &amp; Students, Not Faculty, in Skye 284.</strong></p>
  72.  
  73. <p>&#x02022; 6:00&#8211;6:45 p.m. <strong>Reception with Food at the Alumni Center.</strong></p>
  74.  
  75. <p>&#x02022; 6:45 - 7:45 p.m. <strong>Panel Discussion at Alumni Center with Alissa Crans, Jose Gonzalez and Paige Helms, moderated by Edray Goins.</strong></p>
  76.  
  77.      </div>
  78.    </content>
  79.  </entry>
  80.  <entry>
  81.    <title type="html">Foundations of Math and Physics One Century After Hilbert</title>
  82.    <link rel="alternate" type="application/xhtml+xml" href="https://golem.ph.utexas.edu/category/2019/10/foundations_of_math_and_physic.html" />
  83.    <updated>2019-10-10T07:20:22Z</updated>
  84.    <published>2019-10-10T08:16:38+00:00</published>
  85.    <id>tag:golem.ph.utexas.edu,2019:%2Fcategory%2F3.3149</id>
  86.    <summary type="text">Review of Foundations of Mathematics and Physics One Century After Hilbert: New Perspectives</summary>
  87.    <author>
  88.      <name>john</name>
  89.      <uri>http://math.ucr.edu/home/baez/</uri>
  90.      <email>[email protected]</email>
  91.    </author>
  92.    <category term="Physics" />
  93.    <content type="xhtml" xml:base="https://golem.ph.utexas.edu/category/2019/10/foundations_of_math_and_physic.html">
  94.      <div xmlns="http://www.w3.org/1999/xhtml">
  95. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  96.  
  97. <p>I wrote a review of this book with chapters by Penrose, Witten, Connes, Atiyah, Smolin and others:</p>
  98.  
  99. <ul>
  100. <li>John Baez, <a href="https://www.ams.org/journals/notices/201910/rnoti-p1690.pdf">review of <em>Foundations of Mathematics and Physics One Century After Hilbert: New Perspectives</em>, edited by Joseph Kouneiher</a>, <em>Notices of the American Mathematical Society</em> <b>66</b> no. 11 (November 2019), 1690&#8211;1692.</li>
  101. </ul>
  102.  
  103. <p>It gave me a chance to say a bit&#8212;just a tiny bit&#8212;about the current state of fundamental physics and the foundations of mathematics.</p>
  104.  
  105. <p><a href="https://www.springer.com/gp/book/9783319648125"><img src="https://johncarlosbaez.files.wordpress.com/2019/10/foundations_of_mathematics_and_physics_one_century_after_hilbert.jpg" alt="" width="150" /></a></p>
  106.  
  107.  
  108.      </div>
  109.    </content>
  110.  </entry>
  111.  <entry>
  112.    <title type="html">Edinburgh is Hiring</title>
  113.    <link rel="alternate" type="application/xhtml+xml" href="https://golem.ph.utexas.edu/category/2019/10/edinburgh_is_hiring.html" />
  114.    <updated>2019-10-03T22:01:36Z</updated>
  115.    <published>2019-10-03T13:35:47+00:00</published>
  116.    <id>tag:golem.ph.utexas.edu,2019:%2Fcategory%2F3.3148</id>
  117.    <summary type="text">We're hiring in areas including category theory.</summary>
  118.    <author>
  119.      <name>leinster</name>
  120.      <uri>http://www.maths.ed.ac.uk/~tl/</uri>
  121.      <email>[email protected]</email>
  122.    </author>
  123.    <category term="Positions" />
  124.    <content type="xhtml" xml:base="https://golem.ph.utexas.edu/category/2019/10/edinburgh_is_hiring.html">
  125.      <div xmlns="http://www.w3.org/1999/xhtml">
  126. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  127.  
  128. <p><a href="https://www.maths.ed.ac.uk/school-of-mathematics/jobs/lectureship-readership-in-algebra-geometry-topolog">We&#8217;re hiring!</a> </p>
  129.  
  130. <p>The advertised positions are in &#8220;algebra, geometry and topology and related fields&#8221;.  Category theory is specifically mentioned, as is the importance of glue: </p>
  131.  
  132. <blockquote>
  133.  <p>The <a href="http://hodge.maths.ed.ac.uk/tiki/Welcome">Hodge Institute</a> is a large world-class group of mathematicians whose research interests lie in Algebra, Geometry and Topology and related fields such as Category Theory and Mathematical Physics. Applicants should demonstrate an outstanding research record and contribute to the productive and strong collaborative research environment in the Hodge Institute. Preference may be given to candidates who strengthen connections between different areas of research within the Hodge Institute or more broadly between the Hodge Institute and other parts of the School.</p>
  134. </blockquote>
  135.  
  136. <p>Here &#8220;School&#8221; refers to the <a href="https://www.maths.ed.ac.uk/">School of Mathematics</a>, and the Hodge Institute is just our name for the set of people within the School who work on the subjects mentioned.  </p>
  137.  
  138. <p>We&#8217;re advertising for Lecturers or Readers. These are both permanent positions. Lecturer is where almost everyone starts, and Reader is more senior (the rough equivalent of a junior full professor in US terminology).  </p>
  139.  
  140.  
  141.      </div>
  142.    </content>
  143.  </entry>
  144.  <entry>
  145.    <title type="html">Applied Category Theory Meeting at UCR (Part 2)</title>
  146.    <link rel="alternate" type="application/xhtml+xml" href="https://golem.ph.utexas.edu/category/2019/09/applied_category_theory_meetin_1.html" />
  147.    <updated>2019-09-30T21:43:28Z</updated>
  148.    <published>2019-09-30T22:29:03+00:00</published>
  149.    <id>tag:golem.ph.utexas.edu,2019:%2Fcategory%2F3.3147</id>
  150.    <summary type="text">There will be a meeting on applied category theory on the weekend November 9--10 at U. C. Riverside.  Here is the schedule.</summary>
  151.    <author>
  152.      <name>john</name>
  153.      <uri>http://math.ucr.edu/home/baez/</uri>
  154.      <email>[email protected]</email>
  155.    </author>
  156.    <category term="Conference" />
  157.    <content type="xhtml" xml:base="https://golem.ph.utexas.edu/category/2019/09/applied_category_theory_meetin_1.html">
  158.      <div xmlns="http://www.w3.org/1999/xhtml">
  159. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  160.  
  161. <p><a href="https://joemathjoe.wordpress.com/">Joe Moeller</a> and I have finalized the schedule of our meeting on applied category theory:</p>
  162.  
  163. &#x02022; <a href="http://www.ams.org/meetings/sectional/2266_program_ss12.html#title">Applied Category Theory</a>, special session of the <a href="http://www.ams.org/meetings/sectional/2266_program.html">Fall Western Sectional Meeting of the AMS</a>, U. C. Riverside, Riverside, California, 9&#8211;10 November 2019.
  164.  
  165. <p>
  166. It&#8217;s going to be really cool, with talks on everything from brakes to bicategories, from quantum physics to social networks, and more &#8212; with the power of category theory as a unifying theme!   Among other things, fellow <em>n</em>-Caf&#x000E9; host Mike Shulman is going to say how to get maps between symmetric monoidal bicategories from maps between symmetric monoidal double categories.
  167. </p>
  168.  
  169. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  170.  
  171. <p>You can get information on registration, hotels and such <a href="http://www.ams.org/meetings/sectional/2266_other.html">here</a>.  If you&#8217;re coming, you might also want to attend <a href="http://eugeniacheng.com/">Eugenia Cheng</a>&#8217;s talk on the afternoon of Friday November 8th.&#x000A0;&#x000A0; I&#8217;ll announce the precise title and time of her talk, and also the <em>location </em>of all the following talks, as soon as I know!</p>
  172.  
  173. <p>In what follows, the person actually giving the talk has an asterisk by their name.  You can click on titles of talks to see the abstracts.</p>
  174.  
  175. <p><strong>Saturday November 9, 2019, 8:00 a.m.-10:50 a.m.</strong></p>
  176.  
  177. <ul>
  178. <li>8:00 a.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-18-31.pdf" rel="noopener"><em>Fibrations as generalized lens categories.</em></a> <br/><strong>David I Spivak*</strong>, Massachusetts Institute of Technology
  179. </li>
  180. <li>9:00 a.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-18-47.pdf" rel="noopener"><em>Supplying bells and whistles in symmetric monoidal categories.</em></a> <br/><strong>Brendan Fong*</strong>, Massachusetts Institute of Technology <br/><strong>David I Spivak</strong>, Massachusetts Institute of Technology
  181. </li>
  182. <li>9:30 a.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-18-56.pdf" rel="noopener"><em>Right adjoints to operadic restriction functors.</em></a> <br/><strong>Gabriel C. Drummond-Cole</strong>, IBS Center for Geometry and Physics <br/><strong>Philip Hackney*</strong>, Department of Mathematics, University of Louisiana at Lafayette
  183. </li>
  184. <li>10:00 a.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-18-193.pdf" rel="noopener"><em>Duality of relations.</em></a> <br/><strong>Alexander Kurz*</strong>, Chapman University
  185. </li>
  186. <li>10:30 a.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-18-32.pdf" rel="noopener"><em>A synthetic approach to stochastic maps, conditional independence, and theorems on sufficient statistics.</em></a> <br/><strong>Tobias Fritz*</strong>, Perimeter Institute for Theoretical Physics</li>
  187. </ul>
  188.  
  189. <p><strong>Saturday November 9, 2019, 3:00 p.m.-5:50 p.m.</strong></p>
  190.  
  191. <ul>
  192. <li>3:00 p.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-18-464.pdf" rel="noopener"><em>Constructing symmetric monoidal bicategories functorially.</em></a> <br/><strong>Michael Shulman*</strong>, University of San Diego <br/><strong>Linde Wester Hansen</strong>, University of Oxford
  193. </li>
  194. <li>3:30 p.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-18-223.pdf" rel="noopener"><em>Structured cospans.</em></a> <br/><strong>Kenny Courser*</strong>, University of California, Riverside <br/><strong>John C. Baez</strong>, University of California, Riverside and Centre for Quantum Technologies, National University of Singapore
  195. </li>
  196. <li>4:00 p.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-18-226.pdf" rel="noopener"><em>Generalized Petri nets.</em></a> <br/><strong>Jade Master*</strong>, University of California Riverside
  197. </li>
  198. <li>4:30 p.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-18-401.pdf" rel="noopener"><em>Formal composition of hybrid systems.</em></a> <br/><strong>Jared Culbertson</strong>, Air Force Research Laboratory <br/><strong>Paul Gustafson*</strong>, Wright State University <br/><strong>Dan Koditschek</strong>, University of Pennsylvania <br/><strong>Peter Stiller</strong>, Texas A&amp;M University
  199. </li>
  200. <li>5:00 p.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-18-431.pdf" rel="noopener"><em>Strings for Cartesian bicategories.</em></a> <br/><strong>M. Andrew Moshier*</strong>, Chapman University
  201. </li>
  202. <li>5:30 p.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-18-378.pdf" rel="noopener"><em>Defining and programming generic compositions in symmetric monoidal categories.</em></a> <br/><strong>Dmitry Vagner*</strong>, Los Angeles, CA
  203. </li>
  204. </ul>
  205.  
  206. <p><strong>Sunday November 10, 2019, 8:00 a.m.-10:50 a.m.</strong></p>
  207.  
  208. <ul>
  209. <li>8:00 a.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-18-50.pdf" rel="noopener"><em>Mathematics for second quantum revolution.</em></a> <br/><strong>Zhenghan Wang*</strong>, UCSB and Microsoft Station Q
  210. </li>
  211. <li>9:00 a.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-18-26.pdf" rel="noopener"><em>A compositional and statistical approach to natural language.</em></a> <br/><strong>Tai-Danae Bradley*</strong>, CUNY Graduate Center
  212. </li>
  213. <li>9:30 a.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-92-260.pdf" rel="noopener"><em>Exploring invariant structure in neural activity with applied topology and category theory.</em></a> <br/><strong>Brad Theilman*</strong>, UC San Diego <br/><strong>Krista Perks</strong>, UC San Diego <br/><strong>Timothy Q Gentner</strong>, UC San Diego
  214. </li>
  215. <li>:00 a.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-18-443.pdf" rel="noopener"><em>Of monks, lawyers and villages: new insights in social network science.</em></a> <br/><strong>Nina Otter*</strong>, Mathematics Department, <abbr title="University of California at Los Angeles">UCLA</abbr> <br/><strong>Mason A Porter</strong>, Mathematics Department, <abbr>UCLA</abbr>
  216. </li>
  217. <li>10:30 a.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-18-10.pdf" rel="noopener"><em>Functorial cluster embedding.</em></a> <br/><strong>Steve Huntsman*</strong>, BAE Systems FAST Labs
  218. </li>
  219. </ul>
  220.  
  221. <p><strong>Sunday November 10, 2019, 2:00 p.m.-4:50 p.m.</strong></p>
  222.  
  223. <ul>
  224. <li>2:00 p.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-18-28.pdf" rel="noopener"><em>Quantitative equational logic.</em></a> <br/><strong>Prakash Panangaden*</strong>, School of Computer Science, McGill University <br/><strong>Radu Mardare</strong>, Strathclyde University <br/><strong>Gordon D. Plotkin</strong>, University of Edinburgh
  225. </li>
  226. <li>3:00 p.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-18-453.pdf" rel="noopener"><em>Brakes: an example of applied category theory.</em></a> <br/><strong>Eswaran Subrahmanian*</strong>, Carnegie Mellon University/NIST
  227. </li>
  228. <li>3:30 p.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-18-452.pdf" rel="noopener"><em>Intuitive robotic programming using string diagrams.</em></a> <br/><strong>Blake S Pollard*</strong>, National Institute of Standards and Technology
  229. </li>
  230. <li>4:00 p.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-18-416.pdf" rel="noopener"><em>Metrics on functor categories.</em></a> <br/><strong>Vin de Silva*</strong>, Department of Mathematics, Pomona College
  231. </li>
  232. <li>4:30 p.m.<br/><a href="http://www.ams.org/amsmtgs/2266_abstracts/1153-90-24.pdf" rel="noopener"><em>Hausdorff and Wasserstein metrics on graphs and other structured data.</em></a> <br/><strong>Evan Patterson*</strong>, Stanford University
  233. </li>
  234. </ul>
  235.  
  236.      </div>
  237.    </content>
  238.  </entry>
  239.  <entry>
  240.    <title type="html">Partial Evaluations 2</title>
  241.    <link rel="alternate" type="application/xhtml+xml" href="https://golem.ph.utexas.edu/category/2019/09/partial_evaluations_2.html" />
  242.    <updated>2019-09-19T19:57:23Z</updated>
  243.    <published>2019-09-16T11:31:28+00:00</published>
  244.    <id>tag:golem.ph.utexas.edu,2019:%2Fcategory%2F3.3144</id>
  245.    <summary type="text">Carmen Constantin from the ACT 2019 Adjoint School talks about "partial evaluations", weakly cartesian monads, and the bar construction.</summary>
  246.    <author>
  247.      <name>john</name>
  248.      <uri>http://math.ucr.edu/home/baez/</uri>
  249.      <email>[email protected]</email>
  250.    </author>
  251.    <category term="Computer Science" />
  252.    <content type="xhtml" xml:base="https://golem.ph.utexas.edu/category/2019/09/partial_evaluations_2.html">
  253.      <div xmlns="http://www.w3.org/1999/xhtml">
  254. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  255.  
  256. <p><em>guest post by <strong><a href="https://www.mansfield.ox.ac.uk/dr-carmen-constantin">Carmen Constantin</a></strong></em></p>
  257.  
  258. <p>This post belongs to the series of the <a href="http://www.appliedcategorytheory.org/adjoint-school-act-2019/">Applied Category
  259. Theory Adjoint School 2019</a>
  260. posts. It is a follow-up to Martin and Brandon&#8217;s <a href="https://golem.ph.utexas.edu/category/2019/05/partial_evaluations.html">post about
  261. partial evaluations</a>.</p>
  262.  
  263. <p>Here we would like to use some results by <a href="https://link.springer.com/article/10.1007/s40062-013-0063-2">Clementino,
  264. Hofmann, and Janelidze</a>
  265. to answer the following questions: <em>When can we compose
  266. partial evaluations?</em> and more generally  <em>When is the
  267. partial evaluation relation transitive?</em></p>
  268.  
  269. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  270.  
  271. <h2>Introduction</h2>
  272.  
  273. <p>In this post, for simplicity, we study monads over the
  274. category of sets. A similar discussion can be had in more
  275. general categories by replacing elements of a set <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>X</mi></mrow><annotation encoding='application/x-tex'>X</annotation></semantics></math> by
  276. generalized elements, that is, arrows into the object
  277. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>X</mi></mrow><annotation encoding='application/x-tex'>X</annotation></semantics></math>. See <a href="https://golem.ph.utexas.edu/category/2019/05/partial_evaluations.html">this previous blog
  278. post</a>
  279. for more details about this.</p>
  280.  
  281. <p>An algebra <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>A</mi><mo>,</mo><mi>e</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(A,e)</annotation></semantics></math> of a monad <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi></mrow><annotation encoding='application/x-tex'>T</annotation></semantics></math> comes equipped with a way
  282. of evaluating the expressions in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi><mi>A</mi></mrow><annotation encoding='application/x-tex'>T A</annotation></semantics></math> via the map <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>e</mi><mo lspace="0.11111em">&#x0003A;</mo><mi>T</mi><mi>A</mi><mo>&#x02192;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'> e
  283. \colon T A \rightarrow A </annotation></semantics></math></p>
  284.  
  285. <p>This algebra map has to interact nicely with the
  286. multiplication of the monad, in particular making <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>e</mi></mrow><annotation encoding='application/x-tex'>e</annotation></semantics></math> the coequalizer of the
  287. pair  <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>&#x003BC;</mi><mo>,</mo><mi>Te</mi><mo lspace="0.11111em">&#x0003A;</mo><mi>T</mi><mi>T</mi><mi>A</mi><mo>&#x02192;</mo><mi>T</mi><mi>A</mi><mo>.</mo></mrow><annotation encoding='application/x-tex'> \mu, Te \colon T T A \rightarrow T A. </annotation></semantics></math></p>
  288.  
  289. <p>This can be used to refine the notion of evaluation: a term
  290. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>t</mi> <mn>1</mn></msub></mrow><annotation encoding='application/x-tex'>t_1</annotation></semantics></math> is a <em>partial evaluation</em> of a term <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>t</mi> <mn>0</mn></msub></mrow><annotation encoding='application/x-tex'>t_0</annotation></semantics></math>, written <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><msub><mi>t</mi> <mn>0</mn></msub><mo>&#x021DD;</mo><msub><mi>t</mi> <mn>1</mn></msub></mrow><annotation encoding='application/x-tex'>
  291. t_0 \rightsquigarrow t_1 </annotation></semantics></math> if there is a &#8216;one dimension higher&#8217;
  292. term <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C4;</mi> <mn>01</mn></msub></mrow><annotation encoding='application/x-tex'>\tau_{01}</annotation></semantics></math> in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi><mi>T</mi><mi>A</mi></mrow><annotation encoding='application/x-tex'>T T A</annotation></semantics></math> which witnesses the partial
  293. evaluation in the sense that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BC;</mi><mo stretchy="false">(</mo><msub><mi>&#x003C4;</mi> <mn>01</mn></msub><mo stretchy="false">)</mo><mo>=</mo><msub><mi>t</mi> <mn>0</mn></msub></mrow><annotation encoding='application/x-tex'>\mu(\tau_{01})=t_0</annotation></semantics></math> and
  294. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Te</mi><mo stretchy="false">(</mo><msub><mi>&#x003C4;</mi> <mn>01</mn></msub><mo stretchy="false">)</mo><mo>=</mo><msub><mi>t</mi> <mn>1</mn></msub></mrow><annotation encoding='application/x-tex'>Te(\tau_{01})=t_1</annotation></semantics></math> in the diagram</p>
  295.  
  296. <p><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="144.077pt" height="63.28pt" viewBox="0 0 144.077 63.28" version="1.1">
  297. <defs>
  298. <g>
  299. <symbol overflow="visible" id="glyph7494-0-0">
  300. <path style="stroke:none;" d="M 3.828125 -2.03125 L 3.828125 -2.21875 C 3.828125 -3.53125 5.75 -4.453125 5.75 -6.21875 C 5.75 -7.453125 4.703125 -8 3.53125 -8 C 2.328125 -8 1.5 -7.3125 1.5 -6.34375 C 1.5 -5.78125 1.734375 -5.515625 2.109375 -5.515625 C 2.40625 -5.515625 2.65625 -5.671875 2.65625 -6.03125 C 2.65625 -6.484375 2.40625 -6.5 2.40625 -6.890625 C 2.40625 -7.265625 2.71875 -7.546875 3.4375 -7.546875 C 4.203125 -7.546875 4.671875 -7.125 4.671875 -6.1875 C 4.671875 -4.34375 3.34375 -3.890625 3.34375 -2.34375 L 3.34375 -2.03125 Z M 4.28125 -0.578125 C 4.28125 -0.9375 4.03125 -1.28125 3.609375 -1.28125 C 3.171875 -1.28125 2.90625 -0.953125 2.90625 -0.578125 C 2.90625 -0.171875 3.125 0.09375 3.59375 0.09375 C 4.03125 0.09375 4.28125 -0.1875 4.28125 -0.578125 Z M 7.109375 2.015625 L 7.109375 -9.390625 L 0.125 -9.390625 L 0.125 2.015625 Z M 6.484375 1.390625 L 0.734375 1.390625 L 0.734375 -8.78125 L 6.484375 -8.78125 Z "/>
  301. </symbol>
  302. <symbol overflow="visible" id="glyph7494-0-1">
  303. <path style="stroke:none;" d="M 1.453125 -0.84375 C 1.453125 -0.28125 1.6875 0.09375 2.21875 0.09375 C 3.03125 0.09375 3.53125 -0.296875 3.953125 -0.875 L 3.796875 -1.0625 C 3.578125 -0.90625 3.34375 -0.734375 2.890625 -0.734375 C 2.484375 -0.734375 2.40625 -1.09375 2.40625 -1.453125 C 2.40625 -2.03125 2.46875 -2.609375 3.109375 -4.640625 C 3.59375 -4.625 3.921875 -4.609375 4.109375 -4.609375 C 4.953125 -4.609375 5.328125 -5.109375 5.4375 -5.484375 L 5.421875 -5.65625 C 5.046875 -5.625 4.65625 -5.59375 4.234375 -5.59375 C 3.734375 -5.59375 3.171875 -5.640625 2.59375 -5.640625 C 1.578125 -5.640625 0.75 -5.28125 0.234375 -4.234375 L 0.5 -4.046875 C 0.90625 -4.546875 1.140625 -4.671875 1.953125 -4.671875 C 2.15625 -4.6875 2.34375 -4.671875 2.609375 -4.65625 C 1.9375 -2.96875 1.453125 -1.65625 1.453125 -0.84375 Z "/>
  304. </symbol>
  305. <symbol overflow="visible" id="glyph7494-0-2">
  306. <path style="stroke:none;" d="M 7.65625 0.328125 L 7.65625 -0.484375 L 4.09375 -0.484375 C 2.828125 -0.484375 1.765625 -1.515625 1.5625 -2.671875 L 7.65625 -2.671875 L 7.65625 -3.484375 L 1.578125 -3.484375 C 1.78125 -4.65625 2.828125 -5.6875 4.09375 -5.6875 L 7.65625 -5.6875 L 7.65625 -6.484375 L 4.046875 -6.484375 C 2.109375 -6.484375 0.734375 -4.890625 0.734375 -3.078125 C 0.734375 -1.265625 2.125 0.328125 4.09375 0.328125 Z "/>
  307. </symbol>
  308. <symbol overflow="visible" id="glyph7494-0-3">
  309. <path style="stroke:none;" d="M 6.9375 -5.78125 L 7.296875 -7.859375 L 0.875 -7.859375 L 0.375 -5.78125 L 0.765625 -5.78125 C 1.296875 -7.09375 1.421875 -7.390625 2.75 -7.390625 L 3.4375 -7.390625 L 2.25 -1.5625 C 2.015625 -0.484375 1.859375 -0.359375 0.84375 -0.359375 L 0.78125 0 L 4.1875 0 L 4.25 -0.359375 C 3.234375 -0.359375 3.09375 -0.484375 3.328125 -1.5625 L 4.5 -7.390625 L 5.1875 -7.390625 C 6.515625 -7.390625 6.5625 -7.09375 6.5625 -5.78125 Z "/>
  310. </symbol>
  311. <symbol overflow="visible" id="glyph7494-0-4">
  312. <path style="stroke:none;" d="M 8.265625 0 L 8.34375 -0.359375 C 7.625 -0.359375 7.421875 -0.625 7.296875 -1.421875 L 6.359375 -7.90625 L 5.859375 -7.90625 L 1.71875 -1.90625 C 0.828125 -0.546875 0.59375 -0.359375 -0.0625 -0.359375 L -0.140625 0 L 2.359375 0 L 2.4375 -0.359375 C 1.90625 -0.359375 1.75 -0.4375 1.75 -0.6875 C 1.75 -0.90625 1.890625 -1.109375 2.046875 -1.34375 L 2.875 -2.625 L 5.96875 -2.625 L 6.078125 -1.546875 C 6.09375 -1.40625 6.109375 -1.234375 6.109375 -1.046875 C 6.109375 -0.4375 5.734375 -0.359375 5.15625 -0.359375 L 5.078125 0 Z M 5.921875 -3.09375 L 3.171875 -3.09375 L 5.484375 -6.546875 L 5.515625 -6.546875 Z "/>
  313. </symbol>
  314. <symbol overflow="visible" id="glyph7494-0-5">
  315. <path style="stroke:none;" d="M 0.734375 -6.484375 L 0.734375 -5.6875 L 4.28125 -5.6875 C 5.546875 -5.6875 6.59375 -4.65625 6.796875 -3.484375 L 0.734375 -3.484375 L 0.734375 -2.671875 L 6.8125 -2.671875 C 6.609375 -1.515625 5.5625 -0.484375 4.296875 -0.484375 L 0.734375 -0.484375 L 0.734375 0.328125 L 4.296875 0.328125 C 6.25 0.328125 7.65625 -1.265625 7.65625 -3.078125 C 7.65625 -4.890625 6.28125 -6.484375 4.328125 -6.484375 Z "/>
  316. </symbol>
  317. <symbol overflow="visible" id="glyph7494-0-6">
  318. <path style="stroke:none;" d="M 3.78125 -5.65625 L 2.59375 -5.65625 L 2.921875 -7.09375 L 2.5625 -7.09375 C 1.953125 -6.046875 1.671875 -5.828125 0.90625 -5.4375 L 0.859375 -5.1875 L 1.546875 -5.1875 L 0.71875 -1.203125 C 0.703125 -1.140625 0.640625 -0.734375 0.640625 -0.53125 C 0.640625 -0.15625 0.859375 0.109375 1.359375 0.109375 C 2.3125 0.109375 2.8125 -0.78125 3.15625 -1.25 L 2.921875 -1.421875 C 2.5 -0.890625 2.25 -0.703125 1.90625 -0.703125 C 1.734375 -0.703125 1.703125 -0.828125 1.703125 -0.953125 C 1.703125 -1.15625 1.78125 -1.546875 1.78125 -1.546875 L 2.5 -5.1875 L 3.6875 -5.1875 Z "/>
  319. </symbol>
  320. <symbol overflow="visible" id="glyph7494-0-7">
  321. <path style="stroke:none;" d="M 10.46875 -3.15625 C 9.296875 -3.640625 8.359375 -4.5625 7.578125 -5.484375 L 7.328125 -5.25 C 7.609375 -4.84375 7.96875 -4.40625 8.328125 -4.078125 C 8.453125 -3.953125 8.5 -3.875 8.5 -3.765625 C 8.5 -3.640625 8.3125 -3.5 8.1875 -3.5 L 0.84375 -3.5 L 0.84375 -2.6875 L 8.171875 -2.6875 C 8.390625 -2.6875 8.484375 -2.5625 8.484375 -2.453125 C 8.484375 -2.34375 8.421875 -2.21875 8.3125 -2.109375 C 7.953125 -1.71875 7.609375 -1.328125 7.3125 -0.9375 L 7.5625 -0.6875 C 8.359375 -1.625 9.296875 -2.53125 10.46875 -3.03125 Z "/>
  322. </symbol>
  323. <symbol overflow="visible" id="glyph7494-1-0">
  324. <path style="stroke:none;" d="M 2.546875 -1.359375 L 2.546875 -1.484375 C 2.546875 -2.34375 3.828125 -2.96875 3.828125 -4.140625 C 3.828125 -4.96875 3.140625 -5.328125 2.359375 -5.328125 C 1.546875 -5.328125 1 -4.875 1 -4.234375 C 1 -3.859375 1.15625 -3.671875 1.40625 -3.671875 C 1.609375 -3.671875 1.765625 -3.78125 1.765625 -4.03125 C 1.765625 -4.328125 1.609375 -4.328125 1.609375 -4.59375 C 1.609375 -4.84375 1.8125 -5.03125 2.28125 -5.03125 C 2.796875 -5.03125 3.109375 -4.75 3.109375 -4.125 C 3.109375 -2.890625 2.234375 -2.59375 2.234375 -1.5625 L 2.234375 -1.359375 Z M 2.859375 -0.375 C 2.859375 -0.625 2.6875 -0.859375 2.40625 -0.859375 C 2.109375 -0.859375 1.9375 -0.640625 1.9375 -0.375 C 1.9375 -0.125 2.09375 0.0625 2.40625 0.0625 C 2.6875 0.0625 2.859375 -0.125 2.859375 -0.375 Z M 4.734375 1.34375 L 4.734375 -6.25 L 0.078125 -6.25 L 0.078125 1.34375 Z M 4.328125 0.921875 L 0.484375 0.921875 L 0.484375 -5.84375 L 4.328125 -5.84375 Z "/>
  325. </symbol>
  326. <symbol overflow="visible" id="glyph7494-1-1">
  327. <path style="stroke:none;" d="M 3.734375 -2.53125 C 3.734375 -4.171875 3.015625 -5.109375 1.984375 -5.109375 C 0.828125 -5.109375 0.21875 -4.0625 0.21875 -2.546875 C 0.21875 -1.140625 0.6875 0.09375 1.96875 0.09375 C 3.21875 0.09375 3.734375 -1.15625 3.734375 -2.53125 Z M 2.953125 -2.484375 C 2.953125 -0.953125 2.59375 -0.203125 1.96875 -0.203125 C 1.328125 -0.203125 0.984375 -0.96875 0.984375 -2.515625 C 0.984375 -4.09375 1.328125 -4.84375 1.953125 -4.84375 C 2.609375 -4.84375 2.953125 -4.09375 2.953125 -2.484375 Z "/>
  328. </symbol>
  329. <symbol overflow="visible" id="glyph7494-1-2">
  330. <path style="stroke:none;" d="M 3.390625 0 L 3.390625 -0.21875 C 2.65625 -0.21875 2.359375 -0.359375 2.359375 -0.75 L 2.359375 -5.09375 L 2.140625 -5.09375 L 0.59375 -4.65625 L 0.59375 -4.390625 C 0.84375 -4.46875 1.25 -4.515625 1.40625 -4.515625 C 1.609375 -4.515625 1.671875 -4.40625 1.671875 -4.125 L 1.671875 -0.75 C 1.671875 -0.359375 1.390625 -0.21875 0.640625 -0.21875 L 0.640625 0 Z "/>
  331. </symbol>
  332. <symbol overflow="visible" id="glyph7494-1-3">
  333. <path style="stroke:none;" d="M 4.625 -3.859375 L 4.859375 -5.234375 L 0.578125 -5.234375 L 0.25 -3.859375 L 0.515625 -3.859375 C 0.859375 -4.71875 0.953125 -4.921875 1.828125 -4.921875 L 2.28125 -4.921875 L 1.5 -1.046875 C 1.34375 -0.3125 1.234375 -0.234375 0.5625 -0.234375 L 0.515625 0 L 2.78125 0 L 2.84375 -0.234375 C 2.15625 -0.234375 2.0625 -0.3125 2.21875 -1.046875 L 3 -4.921875 L 3.453125 -4.921875 C 4.34375 -4.921875 4.375 -4.71875 4.375 -3.859375 Z "/>
  334. </symbol>
  335. <symbol overflow="visible" id="glyph7494-1-4">
  336. <path style="stroke:none;" d="M 2.84375 -0.96875 C 2.53125 -0.59375 2.1875 -0.453125 1.734375 -0.453125 C 1.234375 -0.453125 0.890625 -0.71875 0.890625 -1.5 L 0.890625 -1.609375 C 1.828125 -1.6875 3.21875 -2.0625 3.21875 -3.140625 C 3.21875 -3.703125 2.703125 -3.8125 2.359375 -3.8125 C 1.078125 -3.8125 0.21875 -2.46875 0.21875 -1.265625 C 0.21875 -0.59375 0.546875 0.09375 1.3125 0.09375 C 1.859375 0.09375 2.46875 -0.09375 2.984375 -0.859375 Z M 0.90625 -1.84375 C 1.0625 -2.625 1.609375 -3.5625 2.203125 -3.5625 C 2.4375 -3.5625 2.53125 -3.421875 2.53125 -3.125 C 2.53125 -2.375 1.8125 -1.890625 0.90625 -1.84375 Z "/>
  337. </symbol>
  338. <symbol overflow="visible" id="glyph7494-1-5">
  339. <path style="stroke:none;" d="M 4.4375 -3.6875 L 4.40625 -3.765625 L 3.703125 -3.75 C 3.5625 -3.3125 3.4375 -2.671875 3.34375 -2.234375 C 3.296875 -2.046875 2.609375 -0.5625 1.890625 -0.5625 C 1.484375 -0.5625 1.34375 -0.953125 1.34375 -1.359375 C 1.34375 -1.5625 1.390625 -1.734375 1.390625 -1.734375 L 2.125 -3.6875 L 2.078125 -3.765625 L 1.359375 -3.75 C 1.25 -3.28125 1.015625 -2.046875 0.859375 -1.1875 C 0.484375 -0.140625 0.28125 0.625 0.046875 1.703125 L 0.15625 1.734375 C 0.421875 1.734375 0.71875 1.65625 0.828125 1.21875 C 0.96875 0.625 0.953125 0.09375 1.078125 -0.546875 L 1.109375 -0.546875 C 1.171875 -0.328125 1.3125 0.109375 1.75 0.109375 C 2.140625 0.109375 2.625 -0.140625 3.09375 -1.3125 L 3.140625 -1.3125 C 3.109375 -0.890625 3.078125 -0.71875 3.078125 -0.578125 C 3.078125 -0.203125 3.21875 0.0625 3.609375 0.0625 C 4.125 0.0625 4.421875 -0.34375 4.609375 -0.703125 L 4.484375 -0.84375 C 4.34375 -0.6875 4.21875 -0.53125 3.96875 -0.53125 C 3.734375 -0.53125 3.609375 -0.703125 3.609375 -1.21875 C 3.609375 -1.390625 3.65625 -1.6875 3.65625 -1.734375 Z "/>
  340. </symbol>
  341. <symbol overflow="visible" id="glyph7494-2-0">
  342. <path style="stroke:none;" d="M -3.828125 2.03125 L -3.828125 2.21875 C -3.828125 3.53125 -5.75 4.453125 -5.75 6.21875 C -5.75 7.453125 -4.703125 8 -3.53125 8 C -2.328125 8 -1.5 7.3125 -1.5 6.34375 C -1.5 5.78125 -1.734375 5.515625 -2.109375 5.515625 C -2.40625 5.515625 -2.65625 5.671875 -2.65625 6.03125 C -2.65625 6.484375 -2.40625 6.5 -2.40625 6.890625 C -2.40625 7.265625 -2.71875 7.546875 -3.4375 7.546875 C -4.203125 7.546875 -4.671875 7.125 -4.671875 6.1875 C -4.671875 4.34375 -3.34375 3.890625 -3.34375 2.34375 L -3.34375 2.03125 Z M -4.28125 0.578125 C -4.28125 0.9375 -4.03125 1.28125 -3.609375 1.28125 C -3.171875 1.28125 -2.90625 0.953125 -2.90625 0.578125 C -2.90625 0.171875 -3.125 -0.09375 -3.59375 -0.09375 C -4.03125 -0.09375 -4.28125 0.1875 -4.28125 0.578125 Z M -7.109375 -2.015625 L -7.109375 9.390625 L -0.125 9.390625 L -0.125 -2.015625 Z M -6.484375 -1.390625 L -0.734375 -1.390625 L -0.734375 8.78125 L -6.484375 8.78125 Z "/>
  343. </symbol>
  344. <symbol overflow="visible" id="glyph7494-2-1">
  345. <path style="stroke:none;" d="M -10.484375 2.6875 L -10.484375 3.5 L -3.171875 3.5 C -2.953125 3.5 -2.84375 3.625 -2.84375 3.734375 C -2.84375 3.84375 -2.90625 3.984375 -3.03125 4.09375 C -3.375 4.46875 -3.734375 4.859375 -4.03125 5.265625 L -3.78125 5.5 C -2.96875 4.5625 -2.046875 3.65625 -0.859375 3.15625 L -0.859375 3.03125 C -2.046875 2.546875 -2.96875 1.625 -3.765625 0.703125 L -4.015625 0.9375 C -3.734375 1.34375 -3.359375 1.765625 -3.015625 2.109375 C -2.875 2.234375 -2.828125 2.3125 -2.828125 2.421875 C -2.828125 2.546875 -3.03125 2.6875 -3.15625 2.6875 Z "/>
  346. </symbol>
  347. <symbol overflow="visible" id="glyph7494-3-0">
  348. <path style="stroke:none;" d="M -2.03125 -3.828125 L -2.21875 -3.828125 C -3.53125 -3.828125 -4.453125 -5.75 -6.21875 -5.75 C -7.453125 -5.75 -8 -4.703125 -8 -3.53125 C -8 -2.328125 -7.3125 -1.5 -6.34375 -1.5 C -5.78125 -1.5 -5.515625 -1.734375 -5.515625 -2.109375 C -5.515625 -2.40625 -5.671875 -2.65625 -6.03125 -2.65625 C -6.484375 -2.65625 -6.5 -2.40625 -6.890625 -2.40625 C -7.265625 -2.40625 -7.546875 -2.71875 -7.546875 -3.4375 C -7.546875 -4.203125 -7.125 -4.671875 -6.1875 -4.671875 C -4.34375 -4.671875 -3.890625 -3.34375 -2.34375 -3.34375 L -2.03125 -3.34375 Z M -0.578125 -4.28125 C -0.9375 -4.28125 -1.28125 -4.03125 -1.28125 -3.609375 C -1.28125 -3.171875 -0.953125 -2.90625 -0.578125 -2.90625 C -0.171875 -2.90625 0.09375 -3.125 0.09375 -3.59375 C 0.09375 -4.03125 -0.1875 -4.28125 -0.578125 -4.28125 Z M 2.015625 -7.109375 L -9.390625 -7.109375 L -9.390625 -0.125 L 2.015625 -0.125 Z M 1.390625 -6.484375 L 1.390625 -0.734375 L -8.78125 -0.734375 L -8.78125 -6.484375 Z "/>
  349. </symbol>
  350. <symbol overflow="visible" id="glyph7494-3-1">
  351. <path style="stroke:none;" d="M -2.6875 -10.484375 L -3.5 -10.484375 L -3.5 -3.171875 C -3.5 -2.953125 -3.625 -2.84375 -3.734375 -2.84375 C -3.84375 -2.84375 -3.984375 -2.90625 -4.09375 -3.03125 C -4.46875 -3.375 -4.859375 -3.734375 -5.265625 -4.03125 L -5.5 -3.78125 C -4.5625 -2.96875 -3.65625 -2.046875 -3.15625 -0.859375 L -3.03125 -0.859375 C -2.546875 -2.046875 -1.625 -2.96875 -0.703125 -3.765625 L -0.9375 -4.015625 C -1.34375 -3.734375 -1.765625 -3.359375 -2.109375 -3.015625 C -2.234375 -2.875 -2.3125 -2.828125 -2.421875 -2.828125 C -2.546875 -2.828125 -2.6875 -3.03125 -2.6875 -3.15625 Z "/>
  352. </symbol>
  353. <symbol overflow="visible" id="glyph7494-4-0">
  354. <path style="stroke:none;" d="M 2.03125 3.828125 L 2.21875 3.828125 C 3.53125 3.828125 4.453125 5.75 6.21875 5.75 C 7.453125 5.75 8 4.703125 8 3.53125 C 8 2.328125 7.3125 1.5 6.34375 1.5 C 5.78125 1.5 5.515625 1.734375 5.515625 2.109375 C 5.515625 2.40625 5.671875 2.65625 6.03125 2.65625 C 6.484375 2.65625 6.5 2.40625 6.890625 2.40625 C 7.265625 2.40625 7.546875 2.71875 7.546875 3.4375 C 7.546875 4.203125 7.125 4.671875 6.1875 4.671875 C 4.34375 4.671875 3.890625 3.34375 2.34375 3.34375 L 2.03125 3.34375 Z M 0.578125 4.28125 C 0.9375 4.28125 1.28125 4.03125 1.28125 3.609375 C 1.28125 3.171875 0.953125 2.90625 0.578125 2.90625 C 0.171875 2.90625 -0.09375 3.125 -0.09375 3.59375 C -0.09375 4.03125 0.1875 4.28125 0.578125 4.28125 Z M -2.015625 7.109375 L 9.390625 7.109375 L 9.390625 0.125 L -2.015625 0.125 Z M -1.390625 6.484375 L -1.390625 0.734375 L 8.78125 0.734375 L 8.78125 6.484375 Z "/>
  355. </symbol>
  356. <symbol overflow="visible" id="glyph7494-4-1">
  357. <path style="stroke:none;" d="M 3.15625 10.46875 C 3.640625 9.296875 4.5625 8.359375 5.484375 7.578125 L 5.25 7.328125 C 4.84375 7.609375 4.40625 7.96875 4.078125 8.328125 C 3.953125 8.453125 3.875 8.5 3.765625 8.5 C 3.640625 8.5 3.5 8.3125 3.5 8.1875 L 3.5 0.84375 L 2.6875 0.84375 L 2.6875 8.171875 C 2.6875 8.390625 2.5625 8.484375 2.453125 8.484375 C 2.34375 8.484375 2.21875 8.421875 2.109375 8.3125 C 1.71875 7.953125 1.328125 7.609375 0.9375 7.3125 L 0.6875 7.5625 C 1.625 8.359375 2.53125 9.296875 3.03125 10.46875 Z "/>
  358. </symbol>
  359. <symbol overflow="visible" id="glyph7494-5-0">
  360. <path style="stroke:none;" d="M -2.578125 3.484375 L -2.484375 3.65625 C -1.921875 4.84375 -3.25 6.515625 -2.484375 8.109375 C -1.953125 9.21875 -0.765625 9.25 0.28125 8.734375 C 1.375 8.21875 1.8125 7.25 1.390625 6.375 C 1.140625 5.859375 0.828125 5.71875 0.484375 5.890625 C 0.21875 6.015625 0.0625 6.265625 0.21875 6.59375 C 0.421875 7 0.640625 6.90625 0.8125 7.25 C 0.984375 7.59375 0.8125 7.96875 0.171875 8.28125 C -0.515625 8.625 -1.109375 8.453125 -1.515625 7.609375 C -2.3125 5.953125 -1.328125 4.953125 -2 3.5625 L -2.140625 3.28125 Z M -3.609375 2.375 C -3.453125 2.703125 -3.0625 2.90625 -2.6875 2.71875 C -2.296875 2.53125 -2.21875 2.125 -2.375 1.78125 C -2.546875 1.421875 -2.859375 1.28125 -3.28125 1.484375 C -3.671875 1.671875 -3.78125 2.03125 -3.609375 2.375 Z M -7.28125 1.265625 L -2.328125 11.546875 L 3.96875 8.515625 L -0.984375 -1.765625 Z M -6.453125 1.5625 L -1.265625 -0.9375 L 3.15625 8.21875 L -2.03125 10.71875 Z "/>
  361. </symbol>
  362. <symbol overflow="visible" id="glyph7494-5-1">
  363. <path style="stroke:none;" d="M -8.28125 6.96875 L -7.9375 7.703125 L -1.34375 4.53125 C -1.140625 4.4375 -0.984375 4.5 -0.9375 4.59375 C -0.890625 4.703125 -0.890625 4.859375 -0.953125 5 C -1.109375 5.5 -1.25 6 -1.34375 6.5 L -1.015625 6.59375 C -0.6875 5.390625 -0.265625 4.1875 0.59375 3.21875 L 0.53125 3.109375 C -0.734375 3.1875 -1.96875 2.75 -3.078125 2.265625 L -3.21875 2.578125 C -2.78125 2.828125 -2.265625 3.046875 -1.796875 3.21875 C -1.625 3.265625 -1.546875 3.296875 -1.5 3.40625 C -1.4375 3.515625 -1.5625 3.734375 -1.671875 3.796875 Z "/>
  364. </symbol>
  365. <symbol overflow="visible" id="glyph7494-6-0">
  366. <path style="stroke:none;" d="M 2.578125 -3.484375 L 2.484375 -3.65625 C 1.921875 -4.84375 3.25 -6.515625 2.484375 -8.109375 C 1.953125 -9.21875 0.765625 -9.25 -0.28125 -8.734375 C -1.375 -8.21875 -1.8125 -7.25 -1.390625 -6.375 C -1.140625 -5.859375 -0.828125 -5.71875 -0.484375 -5.890625 C -0.21875 -6.015625 -0.0625 -6.265625 -0.21875 -6.59375 C -0.421875 -7 -0.640625 -6.90625 -0.8125 -7.25 C -0.984375 -7.59375 -0.8125 -7.96875 -0.171875 -8.28125 C 0.515625 -8.625 1.109375 -8.453125 1.515625 -7.609375 C 2.3125 -5.953125 1.328125 -4.953125 2 -3.5625 L 2.140625 -3.28125 Z M 3.609375 -2.375 C 3.453125 -2.703125 3.0625 -2.90625 2.6875 -2.71875 C 2.296875 -2.53125 2.21875 -2.125 2.375 -1.78125 C 2.546875 -1.421875 2.859375 -1.28125 3.28125 -1.484375 C 3.671875 -1.671875 3.78125 -2.03125 3.609375 -2.375 Z M 7.28125 -1.265625 L 2.328125 -11.546875 L -3.96875 -8.515625 L 0.984375 1.765625 Z M 6.453125 -1.5625 L 1.265625 0.9375 L -3.15625 -8.21875 L 2.03125 -10.71875 Z "/>
  367. </symbol>
  368. <symbol overflow="visible" id="glyph7494-6-1">
  369. <path style="stroke:none;" d="M 8.0625 -7.390625 C 6.796875 -7.3125 5.546875 -7.734375 4.453125 -8.21875 L 4.328125 -7.90625 C 4.765625 -7.65625 5.28125 -7.421875 5.734375 -7.28125 C 5.890625 -7.234375 5.96875 -7.171875 6.03125 -7.078125 C 6.078125 -6.96875 5.96875 -6.765625 5.859375 -6.703125 L -0.75 -3.515625 L -0.40625 -2.78125 L 6.1875 -5.96875 C 6.390625 -6.0625 6.53125 -5.984375 6.578125 -5.875 C 6.625 -5.78125 6.625 -5.65625 6.5625 -5.515625 C 6.421875 -5 6.28125 -4.5 6.1875 -4.015625 L 6.515625 -3.90625 C 6.828125 -5.09375 7.28125 -6.3125 8.125 -7.28125 Z "/>
  370. </symbol>
  371. </g>
  372. <clipPath id="clip7494-1">
  373.  <path d="M 64.039062 8 L 69.117188 8 L 69.117188 14 L 64.039062 14 Z "/>
  374. </clipPath>
  375. <clipPath id="clip7494-2">
  376.  <path d="M 88.097656 8 L 93 8 L 93 14 L 88.097656 14 Z "/>
  377. </clipPath>
  378. <clipPath id="clip7494-3">
  379.  <path d="M 29 22 L 35 22 L 35 26.480469 L 29 26.480469 Z "/>
  380. </clipPath>
  381. <clipPath id="clip7494-4">
  382.  <path d="M 29 38.359375 L 35 38.359375 L 35 43 L 29 43 Z "/>
  383. </clipPath>
  384. <clipPath id="clip7494-5">
  385.  <path d="M 116 22 L 121 22 L 121 26.394531 L 116 26.394531 Z "/>
  386. </clipPath>
  387. <clipPath id="clip7494-6">
  388.  <path d="M 116 38.359375 L 121 38.359375 L 121 43 L 116 43 Z "/>
  389. </clipPath>
  390. <clipPath id="clip7494-7">
  391.  <path d="M 52 36 L 60 36 L 60 45 L 52 45 Z "/>
  392. </clipPath>
  393. <clipPath id="clip7494-8">
  394.  <path d="M 54.445312 35.832031 L 49.867188 38.035156 L 54.761719 48.203125 L 59.339844 46 Z "/>
  395. </clipPath>
  396. <clipPath id="clip7494-9">
  397.  <path d="M 89 19 L 98 19 L 98 29 L 89 29 Z "/>
  398. </clipPath>
  399. <clipPath id="clip7494-10">
  400.  <path d="M 94.832031 28.921875 L 99.40625 26.71875 L 94.515625 16.550781 L 89.9375 18.753906 Z "/>
  401. </clipPath>
  402. <clipPath id="clip7494-11">
  403.  <path d="M 58 50 L 62.546875 50 L 62.546875 56 L 58 56 Z "/>
  404. </clipPath>
  405. <clipPath id="clip7494-12">
  406.  <path d="M 103.695312 50 L 108 50 L 108 56 L 103.695312 56 Z "/>
  407. </clipPath>
  408. </defs>
  409. <g id="surface7494-1">
  410. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  411.  <use xlink:href="#glyph7494-0-1" x="5.643" y="14.374"/>
  412. </g>
  413. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  414.  <use xlink:href="#glyph7494-1-1" x="11.19" y="16.885"/>
  415.  <use xlink:href="#glyph7494-1-2" x="15.1352" y="16.885"/>
  416. </g>
  417. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  418.  <use xlink:href="#glyph7494-0-2" x="22.899" y="14.374"/>
  419. </g>
  420. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  421.  <use xlink:href="#glyph7494-0-3" x="34.601" y="14.374"/>
  422. </g>
  423. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  424.  <use xlink:href="#glyph7494-0-3" x="42.288194" y="14.374"/>
  425. </g>
  426. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  427.  <use xlink:href="#glyph7494-0-4" x="49.975387" y="14.374"/>
  428. </g>
  429. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  430.  <use xlink:href="#glyph7494-0-3" x="98.453" y="14.374"/>
  431. </g>
  432. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  433.  <use xlink:href="#glyph7494-0-4" x="106.140194" y="14.374"/>
  434. </g>
  435. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  436.  <use xlink:href="#glyph7494-0-5" x="118.248" y="14.374"/>
  437. </g>
  438. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  439.  <use xlink:href="#glyph7494-0-6" x="129.95" y="14.374"/>
  440. </g>
  441. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  442.  <use xlink:href="#glyph7494-1-2" x="133.99" y="16.885"/>
  443. </g>
  444. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  445.  <use xlink:href="#glyph7494-0-6" x="12.213" y="55.885"/>
  446. </g>
  447. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  448.  <use xlink:href="#glyph7494-1-1" x="16.254" y="58.396"/>
  449. </g>
  450. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  451.  <use xlink:href="#glyph7494-0-2" x="24.018" y="55.885"/>
  452. </g>
  453. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  454.  <use xlink:href="#glyph7494-0-3" x="35.72" y="55.885"/>
  455. </g>
  456. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  457.  <use xlink:href="#glyph7494-0-4" x="43.407194" y="55.885"/>
  458. </g>
  459. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  460.  <use xlink:href="#glyph7494-0-4" x="114.051" y="55.885"/>
  461. </g>
  462. <path style="fill:none;stroke-width:0.81294;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -2.920812 21.131937 L 16.059656 21.131937 " transform="matrix(1,0,0,-1,72.038,32.421)"/>
  463. <g clip-path="url(#clip7494-1)" clip-rule="nonzero">
  464. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  465.  <use xlink:href="#glyph7494-2-1" x="75.37311" y="8.20559"/>
  466. </g>
  467. </g>
  468. <g clip-path="url(#clip7494-2)" clip-rule="nonzero">
  469. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  470.  <use xlink:href="#glyph7494-0-7" x="81.84179" y="14.37359"/>
  471. </g>
  472. </g>
  473. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  474.  <use xlink:href="#glyph7494-1-3" x="74.256" y="7.982"/>
  475. </g>
  476. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  477.  <use xlink:href="#glyph7494-1-4" x="79.380774" y="7.982"/>
  478. </g>
  479. <path style="fill:none;stroke-width:0.81294;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -39.834875 5.940531 L -39.834875 -5.938375 " transform="matrix(1,0,0,-1,72.038,32.421)"/>
  480. <g clip-path="url(#clip7494-3)" clip-rule="nonzero">
  481. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  482.  <use xlink:href="#glyph7494-3-1" x="35.28567" y="32.73734"/>
  483. </g>
  484. </g>
  485. <g clip-path="url(#clip7494-4)" clip-rule="nonzero">
  486. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  487.  <use xlink:href="#glyph7494-4-1" x="29.11767" y="32.10466"/>
  488. </g>
  489. </g>
  490. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  491.  <use xlink:href="#glyph7494-1-5" x="35.43" y="33.465"/>
  492. </g>
  493. <path style="fill:none;stroke-width:0.81294;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 46.407313 6.026469 L 46.407313 -5.938375 " transform="matrix(1,0,0,-1,72.038,32.421)"/>
  494. <g clip-path="url(#clip7494-5)" clip-rule="nonzero">
  495. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  496.  <use xlink:href="#glyph7494-3-1" x="121.52778" y="32.64968"/>
  497. </g>
  498. </g>
  499. <g clip-path="url(#clip7494-6)" clip-rule="nonzero">
  500. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  501.  <use xlink:href="#glyph7494-4-1" x="115.35978" y="32.10466"/>
  502. </g>
  503. </g>
  504. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  505.  <use xlink:href="#glyph7494-1-4" x="121.671" y="34.254"/>
  506. </g>
  507. <path style="fill:none;stroke-width:0.81294;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M -15.147375 -8.496969 L 20.348719 8.585062 " transform="matrix(1,0,0,-1,72.038,32.421)"/>
  508. <g clip-path="url(#clip7494-7)" clip-rule="nonzero">
  509. <g clip-path="url(#clip7494-8)" clip-rule="nonzero">
  510. <g style="fill:rgb(0%,0%,100%);fill-opacity:1;">
  511.  <use xlink:href="#glyph7494-5-1" x="61.190607" y="35.425769"/>
  512. </g>
  513. </g>
  514. </g>
  515. <g clip-path="url(#clip7494-9)" clip-rule="nonzero">
  516. <g clip-path="url(#clip7494-10)" clip-rule="nonzero">
  517. <g style="fill:rgb(0%,0%,100%);fill-opacity:1;">
  518.  <use xlink:href="#glyph7494-6-1" x="88.086523" y="29.328581"/>
  519. </g>
  520. </g>
  521. </g>
  522. <path style="fill:none;stroke-width:0.81294;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -9.491125 -20.379781 L 31.657313 -20.379781 " transform="matrix(1,0,0,-1,72.038,32.421)"/>
  523. <g clip-path="url(#clip7494-11)" clip-rule="nonzero">
  524. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  525.  <use xlink:href="#glyph7494-2-1" x="68.80367" y="49.71725"/>
  526. </g>
  527. </g>
  528. <g clip-path="url(#clip7494-12)" clip-rule="nonzero">
  529. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  530.  <use xlink:href="#glyph7494-0-7" x="97.43878" y="55.88525"/>
  531. </g>
  532. </g>
  533. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  534.  <use xlink:href="#glyph7494-1-4" x="81.332" y="49.493"/>
  535. </g>
  536. </g>
  537. </svg></p>
  538.  
  539. <p>The blue line expresses the partial evaluation relation,
  540. that is, the existence of such an element in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi><mi>T</mi><mi>A</mi></mrow><annotation encoding='application/x-tex'>T T A</annotation></semantics></math>
  541. given <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>t</mi> <mn>0</mn></msub></mrow><annotation encoding='application/x-tex'>t_0</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>t</mi> <mn>1</mn></msub></mrow><annotation encoding='application/x-tex'>t_1</annotation></semantics></math>. Note that, since the black arrows of
  542. the diagram above commute, a necessary condition for the
  543. existence of such <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C4;</mi> <mn>01</mn></msub></mrow><annotation encoding='application/x-tex'>\tau_{01}</annotation></semantics></math> is that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>e</mi><mo stretchy="false">(</mo><msub><mi>t</mi> <mn>0</mn></msub><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>e(t_0)</annotation></semantics></math> agrees with <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>e</mi><mo stretchy="false">(</mo><msub><mi>t</mi> <mn>1</mn></msub><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>e(t_1)</annotation></semantics></math> in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math>.</p>
  544.  
  545. <p>We have seen in a <a href="https://golem.ph.utexas.edu/category/2019/05/partial_evaluations.html">previous blog
  546. post</a>
  547. that the partial evaluation relation is reflexive, and for
  548. some monads, e.g. the Free Monoid/List monad, it is also
  549. transitive: if <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>t</mi> <mn>0</mn></msub><mo>&#x021DD;</mo><msub><mi>t</mi> <mn>1</mn></msub></mrow><annotation encoding='application/x-tex'>t_0 \rightsquigarrow t_1</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>t</mi> <mn>1</mn></msub><mo>&#x021DD;</mo><msub><mi>t</mi> <mn>2</mn></msub></mrow><annotation encoding='application/x-tex'>t_1\rightsquigarrow t_2</annotation></semantics></math> are
  550. witnessed by <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C4;</mi> <mn>01</mn></msub></mrow><annotation encoding='application/x-tex'>\tau_{01}</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C4;</mi> <mn>12</mn></msub></mrow><annotation encoding='application/x-tex'>\tau_{12}</annotation></semantics></math> respectively, then
  551. there is some <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C4;</mi> <mn>02</mn></msub></mrow><annotation encoding='application/x-tex'>\tau_{02}</annotation></semantics></math> witnessing <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><msub><mi>t</mi> <mn>0</mn></msub><mo>&#x021DD;</mo><msub><mi>t</mi> <mn>2</mn></msub></mrow><annotation encoding='application/x-tex'> t_0 \rightsquigarrow t_2 </annotation></semantics></math></p>
  552.  
  553. <p>One could ask whether there is a term <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x00398;</mi></mrow><annotation encoding='application/x-tex'>\Theta</annotation></semantics></math> in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi><mi>T</mi><mi>T</mi><mi>A</mi></mrow><annotation encoding='application/x-tex'>T T T A</annotation></semantics></math> such
  554. that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003BC;</mi> <mi>T</mi></msub><mo stretchy="false">(</mo><mi>&#x00398;</mi><mo stretchy="false">)</mo><mo>=</mo><msub><mi>&#x003C4;</mi> <mn>01</mn></msub></mrow><annotation encoding='application/x-tex'>\mu_T(\Theta)=\tau_{01}</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>TTe</mi><mo stretchy="false">(</mo><mi>&#x00398;</mi><mo stretchy="false">)</mo><mo>=</mo><msub><mi>&#x003C4;</mi> <mn>12</mn></msub></mrow><annotation encoding='application/x-tex'>TTe(\Theta)=\tau_{12}</annotation></semantics></math>.
  555. If such a term exists, then one can simply take
  556. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C4;</mi> <mn>02</mn></msub><mo>:</mo><mo>=</mo><mi>T</mi><mi>&#x003BC;</mi><mo stretchy="false">(</mo><mi>&#x00398;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\tau_{02}:=T\mu(\Theta)</annotation></semantics></math> to be the desired witness for
  557. transitivity.</p>
  558.  
  559. <p>The existence of such a term <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x00398;</mi></mrow><annotation encoding='application/x-tex'>\Theta</annotation></semantics></math> corresponds to the
  560. existence of a strategy for finding a transitivity
  561. witness. </p>
  562.  
  563. <p>This can be summarised in the following picture:</p>
  564.  
  565. <p><img width="500" src="https://danielmichaelcicala.github.io/act2019/partial_evaluations/TheCube.png" alt="" /></p>
  566.  
  567. <p>where we have indicated the existence of partial evaluations
  568. by a pair of squiggly lines highlighted in dark blue (to
  569. avoid confusion with the diagram&#8217;s actual arrows), while
  570. their composite is highlighted in light blue.</p>
  571.  
  572. <p><strong>Remark 1.</strong>
  573. A strategy <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x00398;</mi></mrow><annotation encoding='application/x-tex'>\Theta</annotation></semantics></math> always exists if the back
  574. square of the cube above (which we shall refer to as &#8216;the
  575. monad&#8217;s cube&#8217;) is a weak pullback. </p>
  576.  
  577. <p>A <a href="https://ncatlab.org/nlab/show/weak+limit#weak_pullbacks">weak pullback
  578. square</a>
  579. is a commutative square with the existence but not
  580. necessarily the uniqueness condition of the universal
  581. property of pullbacks (see the nLab page on <a href="https://ncatlab.org/nlab/show/weak+limit">weak limits</a>). Of course, a transitivity
  582. witness might exist even if there is no strategy for finding
  583. it.</p>
  584.  
  585. <p>Note also that the partial evaluations and their composite form a
  586. triangle, i.e. a 2-simplex, if view the bar construction as a
  587. simplicial set&#8212;see <a href="https://golem.ph.utexas.edu/category/2019/05/partial_evaluations.html">the previous blog
  588. post</a>.</p>
  589.  
  590. <p>Moreover, in simplicial language, the outer green arrows
  591. correspond to the two edges forming an inner 2-horn, while the one labeled
  592. &#8216;transitivity witness&#8217; is the missing edge of the horn. The
  593. existence of the strategy arrow corresponds to the existence
  594. of what is called a horn filler. As we have previously
  595. noted, a transitivity witness <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C4;</mi> <mn>02</mn></msub></mrow><annotation encoding='application/x-tex'>\tau_{02}</annotation></semantics></math> might exist even
  596. if there is no horn filler.</p>
  597.  
  598. <p>A quick intuitive example to illustrate the transitivity
  599. property is given by the free commutative monoid monad, where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi><mi>A</mi></mrow><annotation encoding='application/x-tex'>T A</annotation></semantics></math> consists of formal sums of elements in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math>. If
  600. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi><mo>=</mo><mi>&#x02115;</mi></mrow><annotation encoding='application/x-tex'>A=\mathbb{N}</annotation></semantics></math>, the algebra map simply evaluates a formal
  601. sum to return an element in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x02115;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{N}</annotation></semantics></math>. We can draw a
  602. picture of the terms <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>t</mi> <mn>0</mn></msub><mo>=</mo><mn>1</mn><mo>+</mo><mn>2</mn><mo>+</mo><mn>3</mn><mo>+</mo><mn>4</mn></mrow><annotation encoding='application/x-tex'>t_0=1+2+3+4</annotation></semantics></math>, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>t</mi> <mn>1</mn></msub><mo>=</mo><mn>3</mn><mo>+</mo><mn>3</mn><mo>+</mo><mn>6</mn></mrow><annotation encoding='application/x-tex'>t_1=3+3+6</annotation></semantics></math> and
  603. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>t</mi> <mn>2</mn></msub><mo>=</mo><mn>6</mn><mo>+</mo><mn>4</mn></mrow><annotation encoding='application/x-tex'>t_2=6+4</annotation></semantics></math> which illustrates the transitivity of the partial
  604. evaluation relation <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>t</mi> <mn>0</mn></msub><mo>&#x021DD;</mo><msub><mi>t</mi> <mn>1</mn></msub><mo>&#x021DD;</mo><msub><mi>t</mi> <mn>2</mn></msub></mrow><annotation encoding='application/x-tex'>t_0\rightsquigarrow t_1\rightsquigarrow t_2</annotation></semantics></math>.</p>
  605.  
  606. <p><img width="500" src="https://danielmichaelcicala.github.io/act2019/partial_evaluations/2simplex-trans.png" alt="" /></p>
  607.  
  608. <p>Of course, if the partial evaluation relation is transitive,
  609. then we can think about forming even longer composites. For
  610. example, for three composable back-to-back partial
  611. evaluations (depicted in dark blue in the figure below) the
  612. existence of an associator (and hence a coherent way to
  613. compose them) would be given by a 3-simplex, i.e. a filled
  614. tetrahedron, which corresponds to an element of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>T</mi> <mn>4</mn></msup><mi>A</mi></mrow><annotation encoding='application/x-tex'>T^4A</annotation></semantics></math>. This
  615. element should restrict under <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BC;</mi></mrow><annotation encoding='application/x-tex'>\mu</annotation></semantics></math>, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi><mi>&#x003BC;</mi></mrow><annotation encoding='application/x-tex'>T\mu</annotation></semantics></math>, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>T</mi> <mn>2</mn></msup><mi>&#x003BC;</mi></mrow><annotation encoding='application/x-tex'>T^2\mu</annotation></semantics></math> and
  616. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>T</mi> <mn>3</mn></msup><mi>e</mi></mrow><annotation encoding='application/x-tex'>T^3e</annotation></semantics></math> respectively to the corresponding elements in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>T</mi> <mn>3</mn></msup><mi>A</mi></mrow><annotation encoding='application/x-tex'>T^3A</annotation></semantics></math>
  617. that give the strategies for the binary composites.</p>
  618.  
  619. <p>This can be illustrated by a 4-dimensional cube diagram,
  620. where again dark blue lines represent the partial
  621. evaluations, light blue lines represent their binary
  622. composites and the labels of the monad&#8217;s cube have been
  623. suppressed to avoid clutter.</p>
  624.  
  625. <p><img width="500" src="https://danielmichaelcicala.github.io/act2019/partial_evaluations/3simplex-trans.png" alt="" /></p>
  626.  
  627. <p>Each 3-horn corresponds to a union of all but one of the
  628. faces of the <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mn>3</mn></mrow><annotation encoding='application/x-tex'>3</annotation></semantics></math>-simplex. When the omitted face is the one
  629. opposite to the first or last of the corners of the
  630. tetrahedron, one speaks of outer horns, otherwise they are
  631. called inner horns. This terminology is important because
  632. aside from transitivity, which we shall talk about in the
  633. remainder of the blog post, we have also looked at the
  634. possibility of finding horn fillers for inner horns (for
  635. monads which allow binary composites), as their existence
  636. would make the structures arising from the bar construction
  637. into a quasicategory. However, it turned out that even when
  638. binary composites exist for all composable partial
  639. evaluations, it is not always possible to find such fillers.</p>
  640.  
  641. <h2>Weakly cartesian monads</h2>
  642.  
  643. <p>When a monad is <em>weakly cartesian</em>, the partial evaluation
  644. relation is transitive. A
  645. monad <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>T</mi><mo>,</mo><mi>&#x003BC;</mi><mo>,</mo><mi>&#x003B7;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(T,\mu,\eta)</annotation></semantics></math> is weakly cartesian if the functor <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi></mrow><annotation encoding='application/x-tex'>T</annotation></semantics></math>
  646. preserves weak pullbacks, and all naturality squares of
  647. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BC;</mi></mrow><annotation encoding='application/x-tex'>\mu</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003B7;</mi></mrow><annotation encoding='application/x-tex'>\eta</annotation></semantics></math> are weak pullbacks. In particular the back square of the monad&#8217;s cube discussed in Remark 1 is a weak pullback, meaning that the aforementioned <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x00398;</mi></mrow><annotation encoding='application/x-tex'>\Theta</annotation></semantics></math> in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi><mi>T</mi><mi>T</mi><mi>A</mi></mrow><annotation encoding='application/x-tex'>T T  T A</annotation></semantics></math> exists.</p>
  648.  
  649. <p>Here is a well-known fact:</p>
  650.  
  651. <p><strong>Remark 2.</strong> If a monad <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi></mrow><annotation encoding='application/x-tex'>T</annotation></semantics></math> is associated to a variety of
  652. universal algebras, and the variety is operadic, then the
  653. functor <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi></mrow><annotation encoding='application/x-tex'>T</annotation></semantics></math> is cartesian (and so, in particular, weakly
  654. cartesian).</p>
  655.  
  656. <p>To understand this statement note that a variety
  657. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D49E;</mi></mrow><annotation encoding='application/x-tex'>\mathcal{C}</annotation></semantics></math> comes equipped with a monadic free-forgetful
  658. adjunction between <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D49E;</mi></mrow><annotation encoding='application/x-tex'>\mathcal{C}</annotation></semantics></math> and the category of sets,
  659. that is, the Eilenberg-Moore category of algebras for the
  660. monad <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi></mrow><annotation encoding='application/x-tex'>T</annotation></semantics></math> is isomorphic to <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D49E;</mi></mrow><annotation encoding='application/x-tex'>\mathcal{C}</annotation></semantics></math>. Now consider a
  661. presentation <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>&#x003A9;</mi><mo>,</mo><mi>&#x03D5;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(\Omega, \phi)</annotation></semantics></math> of the variety <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D49E;</mi></mrow><annotation encoding='application/x-tex'>\mathcal{C}</annotation></semantics></math>,
  662. where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003A9;</mi></mrow><annotation encoding='application/x-tex'>\Omega</annotation></semantics></math> is a <em>signature</em> (a set <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mo lspace="0.16667em" rspace="0.16667em">&#x02210;</mo> <mrow><mi>n</mi><mo>&#x02265;</mo><mn>0</mn></mrow></msub><msub><mi>&#x003A9;</mi> <mi>n</mi></msub></mrow><annotation encoding='application/x-tex'>\coprod_{n\geq 0}
  663. \Omega_n</annotation></semantics></math> of function symbols of arbitrary but finite arity
  664. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>n</mi></mrow><annotation encoding='application/x-tex'>n</annotation></semantics></math>, including the constants of arity zero), and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x03D5;</mi></mrow><annotation encoding='application/x-tex'>\phi</annotation></semantics></math> is a
  665. set of <em>equational laws</em> or identities between terms in
  666. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003A9;</mi></mrow><annotation encoding='application/x-tex'>\Omega</annotation></semantics></math>. A variety is <em>operadic</em> if it can be presented using
  667. a set of identities which have the same variables appearing
  668. in the same order, without repetition, on each side. For
  669. example, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>a</mi><mo>&#x022C5;</mo><mi>b</mi><mo>+</mo><mi>c</mi><mo>=</mo><mi>a</mi><mo>&#x02212;</mo><mi>b</mi><mo>&#x022C5;</mo><mi>c</mi></mrow><annotation encoding='application/x-tex'>a\cdot b+c=a&#x2d;b\cdot c</annotation></semantics></math> would be an admissible identity for
  670. an operadic theory, but <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>a</mi><mo>&#x022C5;</mo><mi>b</mi><mo>=</mo><mi>b</mi><mo>&#x022C5;</mo><mi>a</mi></mrow><annotation encoding='application/x-tex'>a\cdot b=b\cdot a</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>a</mi><mo>&#x022C5;</mo><mi>b</mi><mo>=</mo><mi>a</mi></mrow><annotation encoding='application/x-tex'>a\cdot b=a</annotation></semantics></math> would not.</p>
  671.  
  672. <p>Operadic (and hence cartesian) varieties include </p>
  673.  
  674. <ul>
  675. <li>all varieties that can be presented with no identities,
  676. i.e. by a pair <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>&#x003A9;</mi><mo>,</mo><mi>&#x03D5;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(\Omega, \phi)</annotation></semantics></math> where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x03D5;</mi><mo>=</mo><mi>&#x02205;</mi></mrow><annotation encoding='application/x-tex'>\phi=\emptyset</annotation></semantics></math> and
  677. in particular also all varieties in which
  678. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003A9;</mi><mo>=</mo><msub><mi>&#x003A9;</mi> <mn>0</mn></msub></mrow><annotation encoding='application/x-tex'>\Omega=\Omega_0</annotation></semantics></math>, such as sets and pointed sets.</li>
  679. <li>the variety of monoids, where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003A9;</mi> <mn>2</mn></msub><mo>=</mo><mo stretchy="false">{</mo><mo>*</mo><mo stretchy="false">}</mo></mrow><annotation encoding='application/x-tex'>\Omega_2=\{*\}</annotation></semantics></math> only
  680. contains the monoid multiplication and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003A9;</mi> <mn>0</mn></msub><mo>=</mo><mo stretchy="false">{</mo><mi>e</mi><mo stretchy="false">}</mo></mrow><annotation encoding='application/x-tex'>\Omega_0=\{e\}</annotation></semantics></math> is
  681. the constant representing the unit of the monoid. The
  682. identities in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x03D5;</mi></mrow><annotation encoding='application/x-tex'>\phi</annotation></semantics></math> corresponding to the law of
  683. associativity and the unit law are clearly operadic.</li>
  684. <li>the variety of semigroups</li>
  685. <li>all varieties of the form <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mstyle mathvariant="bold"><mi>Set</mi></mstyle> <mi>M</mi></msup></mrow><annotation encoding='application/x-tex'>\mathbf{Set}^M</annotation></semantics></math> where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>M</mi></mrow><annotation encoding='application/x-tex'>M</annotation></semantics></math> is a
  686. monoid, that is, of monoid actions on sets (including
  687. group actions).</li>
  688. </ul>
  689.  
  690. <p>The theory of groups on the other hand is not operadic: it
  691. contains the identity <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>g</mi><msup><mi>g</mi> <mrow><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mn>1</mn></mrow></msup><mo>=</mo><mi>e</mi></mrow><annotation encoding='application/x-tex'>g g^{&#x2d;1}=e</annotation></semantics></math>, which is not allowed.</p>
  692.  
  693. <p>Since the monads associated to these varieties are
  694. cartesian, and so weakly cartesian, for these monads the
  695. partial evaluation relation is transitive. How, then, do
  696. partial evaluations behave for monads which are not weakly
  697. cartesian?</p>
  698.  
  699. <h2>Monads which are not weakly cartesian</h2>
  700.  
  701. <p>The paper <a href="https://link.springer.com/article/10.1007/s40062-013-0063-2">The monads of classical algebra are seldom weakly
  702. cartesian</a>
  703. lists several necessary and several sufficient conditions
  704. for weak cartesianness of the functor <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi></mrow><annotation encoding='application/x-tex'>T</annotation></semantics></math>, the unit <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003B7;</mi></mrow><annotation encoding='application/x-tex'>\eta</annotation></semantics></math>
  705. and the multiplication <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BC;</mi></mrow><annotation encoding='application/x-tex'>\mu</annotation></semantics></math> respectively for monads defined
  706. over algebraic varieties in general and free
  707. <a href="https://en.wikipedia.org/wiki/Semimodule">semimodule</a>
  708. monads in particular.</p>
  709.  
  710. <p>Notably, even if a monad is not weakly cartesian, a strategy
  711. for composing partial evaluations can be found by applying
  712. the map <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi><mi>&#x003BC;</mi><mo>:</mo><msup><mi>T</mi> <mn>3</mn></msup><mi>A</mi><mo>&#x02192;</mo><msup><mi>T</mi> <mn>2</mn></msup><mi>A</mi></mrow><annotation encoding='application/x-tex'>T\mu:T^3A\rightarrow T^2A</annotation></semantics></math> within the monad&#8217;s cube,
  713. as long as the square in Lemma 2 is a weak pullback&#8212;a much weaker condition than requiring
  714. weak cartesianness of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BC;</mi></mrow><annotation encoding='application/x-tex'>\mu</annotation></semantics></math> as a natural transformation.</p>
  715.  
  716. <p>In fact we noticed that some monads which are not weakly
  717. cartesian still have transitive partial evaluations, such as
  718. the monad corresponding to the variety of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x02115;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{N}</annotation></semantics></math>-sets
  719. which satisfy the identity <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mn>2</mn><mi>x</mi><mo>=</mo><mn>2</mn><mi>y</mi></mrow><annotation encoding='application/x-tex'>2x=2y</annotation></semantics></math>, which in the
  720. paper is discussed in Example 3.4.</p>
  721.  
  722. <h3>A counterexample</h3>
  723.  
  724. <p>The first interesting result for our project comes from the
  725. subsequent discussion in the paper, which can be used to
  726. show that counterexamples to transitivity also occur.</p>
  727.  
  728. <p>In particular, it is interesting to look at the free
  729. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>S</mi></mrow><annotation encoding='application/x-tex'>S</annotation></semantics></math>-semimodule monad (let <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>T</mi><mo>,</mo><mi>&#x003B7;</mi><mo>,</mo><mi>&#x003BC;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(T,\eta,\mu)</annotation></semantics></math> denote this monad), where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>S</mi></mrow><annotation encoding='application/x-tex'>S</annotation></semantics></math> is a particular semiring. There
  730. are a number of conditions stated in the paper such that, if
  731. any of them is satisfied by the semiring <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>S</mi></mrow><annotation encoding='application/x-tex'>S</annotation></semantics></math>, then the
  732. functor <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi></mrow><annotation encoding='application/x-tex'>T</annotation></semantics></math> is a weakly cartesian functor:</p>
  733.  
  734. <ul>
  735. <li><p>no non-zero elements in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>S</mi></mrow><annotation encoding='application/x-tex'>S</annotation></semantics></math> can have an additive inverse</p></li>
  736. <li><p>for every <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>a</mi><mo>,</mo><mi>b</mi><mo>&#x02208;</mo><mi>S</mi></mrow><annotation encoding='application/x-tex'>a,b\in S</annotation></semantics></math> there exists <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>x</mi><mo>&#x02208;</mo><mi>S</mi></mrow><annotation encoding='application/x-tex'>x\in S</annotation></semantics></math> such that either <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>a</mi><mo>+</mo><mi>x</mi><mo>=</mo><mi>b</mi></mrow><annotation encoding='application/x-tex'>a+x=b</annotation></semantics></math> or <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>b</mi><mo>+</mo><mi>x</mi><mo>=</mo><mi>a</mi></mrow><annotation encoding='application/x-tex'>b+x=a</annotation></semantics></math></p></li>
  737. <li><p>the additive monoid of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>S</mi></mrow><annotation encoding='application/x-tex'>S</annotation></semantics></math> is a monoid with cancellation (equivalently, it can be embedded into an abelian group).</p></li>
  738. </ul>
  739.  
  740. <p>Once <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi></mrow><annotation encoding='application/x-tex'>T</annotation></semantics></math> is a weakly cartesian functor, the multiplication
  741. is weakly cartesian if and only if additionally</p>
  742.  
  743. <ul>
  744. <li><p>No non-zero element in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>S</mi></mrow><annotation encoding='application/x-tex'>S</annotation></semantics></math> has an additive inverse </p></li>
  745. <li><p><math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>S</mi></mrow><annotation encoding='application/x-tex'>S</annotation></semantics></math> has no (non-zero) zero divisors</p></li>
  746. <li><p>for any generating subset <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi></mrow><annotation encoding='application/x-tex'>C</annotation></semantics></math> of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>S</mi></mrow><annotation encoding='application/x-tex'>S</annotation></semantics></math> and any <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>a</mi><mo>,</mo><mi>b</mi><mo>,</mo><mi>c</mi><mo>,</mo><mi>d</mi><mo>&#x02208;</mo><mi>S</mi></mrow><annotation encoding='application/x-tex'>a,b,c,d\in
  747.  S</annotation></semantics></math> with <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>c</mi><mo>&#x02208;</mo><mi>C</mi></mrow><annotation encoding='application/x-tex'>c\in C</annotation></semantics></math> such that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>cd</mi><mo>=</mo><mi>a</mi><mo>+</mo><mi>b</mi></mrow><annotation encoding='application/x-tex'>cd=a+b</annotation></semantics></math>, there exists a map
  748. <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>t</mi><mo>:</mo><mo stretchy="false">{</mo><mo stretchy="false">(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo stretchy="false">)</mo><mo>&#x02208;</mo><mi>S</mi><mo>&#x000D7;</mo><mi>S</mi><mspace width="0.27778em"/><mo stretchy="false">&#x0007C;</mo><mspace width="0.27778em"/><mi>x</mi><mo>+</mo><mi>y</mi><mo>=</mo><mi>d</mi><mo stretchy="false">}</mo><mo>&#x027F6;</mo><mi>S</mi></mrow><annotation encoding='application/x-tex'>t:\{(x,y)\in S\times S \ | \ x+y =d\}\longrightarrow S</annotation></semantics></math>
  749. with <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><munder><mo lspace="0.16667em" rspace="0.16667em">&#x02211;</mo> <mrow><mi>x</mi><mo>+</mo><mi>y</mi><mo>=</mo><mi>d</mi></mrow></munder><mi>t</mi><mo stretchy="false">(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo stretchy="false">)</mo><mi>x</mi><mo>=</mo><mi>a</mi><mo>,</mo><mspace width="0.27778em"/><mspace width="0.27778em"/><munder><mo lspace="0.16667em" rspace="0.16667em">&#x02211;</mo> <mrow><mi>x</mi><mo>+</mo><mi>y</mi><mo>=</mo><mi>d</mi></mrow></munder><mi>t</mi><mo stretchy="false">(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo stretchy="false">)</mo><mi>y</mi><mo>=</mo><mi>b</mi><mo>,</mo><mspace width="0.27778em"/><mspace width="0.27778em"/><mi>and</mi><munder><mo lspace="0.16667em" rspace="0.16667em">&#x02211;</mo> <mrow><mi>x</mi><mo>+</mo><mi>y</mi><mo>=</mo><mi>d</mi></mrow></munder><mi>t</mi><mo stretchy="false">(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo stretchy="false">)</mo><mo>=</mo><mi>c</mi></mrow><annotation encoding='application/x-tex'>\sum_{x+y=d} t(x,y)x=a, \ \ \sum_{x+y=d}t(x,y)y=b, \ \ and
  750.  \sum_{x+y=d}t(x,y)=c </annotation></semantics></math></p></li>
  751. </ul>
  752.  
  753. <p>The counterexamples we are interested in arise from
  754. semirings which satisfy the first 5 conditions but fail to
  755. satisfy the last one.</p>
  756.  
  757. <p>Consider for example the free semimodule monad <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi></mrow><annotation encoding='application/x-tex'>T</annotation></semantics></math> over the
  758. semiring <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>S</mi><mo>=</mo><mi>&#x02115;</mi><mo stretchy="false">[</mo><mi>x</mi><mo stretchy="false">]</mo><mo stretchy="false">/</mo><mo stretchy="false">&#x027E8;</mo><msup><mi>x</mi> <mn>2</mn></msup><mo>=</mo><mn>2</mn><mo stretchy="false">&#x027E9;</mo></mrow><annotation encoding='application/x-tex'>S=\mathbb{N}[x]/\langle x^2=2\rangle</annotation></semantics></math>. This monad
  759. is given by</p>
  760.  
  761. <ul>
  762. <li><p><math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi><mo stretchy="false">(</mo><mi>X</mi><mo stretchy="false">)</mo><mo>:</mo><mo>=</mo><mo stretchy="false">{</mo><mi>t</mi><mo>:</mo><mi>X</mi><mo>&#x02192;</mo><mi>S</mi><mspace width="0.27778em"/><mo stretchy="false">&#x0007C;</mo><mspace width="0.27778em"/><mi>t</mi><mspace width="0.27778em"/><mtext> has finite
  763. support</mtext><mo stretchy="false">}</mo></mrow><annotation encoding='application/x-tex'>T(X):=\{t:X\rightarrow S \ | \  t \  \text{ has finite
  764.  support}\}</annotation></semantics></math>. To keep the presentation more intuitive, we
  765. can use a simpler notation for the elements of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi><mo stretchy="false">(</mo><mi>X</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>T(X)</annotation></semantics></math>, writing each element
  766. as a formal sum <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mo lspace="0.16667em" rspace="0.16667em">&#x02211;</mo><msub><mi>s</mi> <mi>i</mi></msub><mo>&#x022C5;</mo><msub><mi>x</mi> <mi>i</mi></msub><mo>,</mo></mrow><annotation encoding='application/x-tex'>\sum s_i\cdot x_i,</annotation></semantics></math> which
  767. consists of a finite number of terms in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>X</mi></mrow><annotation encoding='application/x-tex'>X</annotation></semantics></math> with
  768. coefficients in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>S</mi></mrow><annotation encoding='application/x-tex'>S</annotation></semantics></math>. Note that two such formal sums
  769. represent the same element if and only if they have the
  770. same elements of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>X</mi></mrow><annotation encoding='application/x-tex'>X</annotation></semantics></math> with the same corresponding
  771. coefficients, but perhaps appearing in a different order
  772. in the expansion.</p></li>
  773. <li><p>the intuitive equivalent description of the unit is then
  774. <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><msub><mi>&#x003B7;</mi> <mi>X</mi></msub><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mn>1</mn><mo>&#x022C5;</mo><mi>x</mi></mrow><annotation encoding='application/x-tex'>\eta_X(x)= 1\cdot x</annotation></semantics></math></p></li>
  775. <li><p>the multiplication represents the familiar
  776. distributivity property: if <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C4;</mi><mo>=</mo><msub><mo lspace="0.16667em" rspace="0.16667em">&#x02211;</mo> <mi>i</mi></msub><msub><mi>z</mi> <mi>i</mi></msub><mo>&#x022C5;</mo><msub><mo lspace="0.16667em" rspace="0.16667em">&#x02211;</mo> <mrow><msub><mi>j</mi> <mi>i</mi></msub></mrow></msub><msub><mi>s</mi> <mrow><msub><mi>j</mi> <mi>i</mi></msub></mrow></msub><mo>&#x022C5;</mo><msub><mi>x</mi> <mrow><msub><mi>j</mi> <mi>i</mi></msub></mrow></msub></mrow><annotation encoding='application/x-tex'>\tau=\sum_i z_i\cdot
  777.  \sum_{j_i} s_{j_i}\cdot x_{j_i}</annotation></semantics></math> then
  778. <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><msub><mi>&#x003BC;</mi> <mi>X</mi></msub><mo stretchy="false">(</mo><mi>&#x003C4;</mi><mo stretchy="false">)</mo><mo>=</mo><munder><mo lspace="0.16667em" rspace="0.16667em">&#x02211;</mo> <mrow><mi>i</mi><mo>,</mo><msub><mi>j</mi> <mi>i</mi></msub></mrow></munder><mo stretchy="false">(</mo><msub><mi>z</mi> <mi>i</mi></msub><msub><mi>s</mi> <mrow><msub><mi>j</mi> <mi>i</mi></msub></mrow></msub><mo stretchy="false">)</mo><mo>&#x022C5;</mo><msub><mi>x</mi> <mrow><msub><mi>j</mi> <mi>i</mi></msub></mrow></msub></mrow><annotation encoding='application/x-tex'>\mu_X(\tau)=\sum_{i,j_i} (z_i s_{j_i})\cdot x_{j_i}</annotation></semantics></math></p></li>
  779. </ul>
  780.  
  781. <p>An algebra map <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>e</mi></mrow><annotation encoding='application/x-tex'>e</annotation></semantics></math> then simply evaluates the
  782. formal weighted sum <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo lspace="0.16667em" rspace="0.16667em">&#x02211;</mo><msub><mi>s</mi> <mi>i</mi></msub><mo>&#x022C5;</mo><msub><mi>x</mi> <mi>i</mi></msub></mrow><annotation encoding='application/x-tex'>\sum s_i\cdot x_i</annotation></semantics></math> to some element
  783. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mover><mi>x</mi><mo stretchy="false">&#x5E;</mo></mover><mo>&#x02208;</mo><mi>X</mi></mrow><annotation encoding='application/x-tex'>\hat{x}\in X</annotation></semantics></math>. Thus an algebra for this monad corresponds to an
  784. actual semimodule over <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>S</mi></mrow><annotation encoding='application/x-tex'>S</annotation></semantics></math>, in the classical sense of the
  785. term.</p>
  786.  
  787. <p>Note that the map <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi><mi>e</mi><mo>:</mo><mi>T</mi><mi>T</mi><mi>X</mi><mo>&#x02192;</mo><mi>TX</mi></mrow><annotation encoding='application/x-tex'>T e:T T X\rightarrow TX</annotation></semantics></math> is then given by </p>
  788.  
  789. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>Te</mi><mrow><mo>(</mo><munder><mo lspace="0.16667em" rspace="0.16667em">&#x02211;</mo> <mi>i</mi></munder><msub><mi>z</mi> <mi>i</mi></msub><mo>&#x022C5;</mo><munder><mo lspace="0.16667em" rspace="0.16667em">&#x02211;</mo> <mrow><msub><mi>j</mi> <mi>i</mi></msub></mrow></munder><msub><mi>s</mi> <mrow><msub><mi>j</mi> <mi>i</mi></msub></mrow></msub><mo>&#x022C5;</mo><msub><mi>x</mi> <mrow><msub><mi>j</mi> <mi>i</mi></msub></mrow></msub><mo>)</mo></mrow><mo>=</mo><munder><mo lspace="0.16667em" rspace="0.16667em">&#x02211;</mo> <mi>i</mi></munder><msub><mi>z</mi> <mi>i</mi></msub><mo>&#x022C5;</mo><mover><mrow><msub><mi>x</mi> <mi>i</mi></msub></mrow><mo>&#x5E;</mo></mover></mrow><annotation encoding='application/x-tex'>Te\left(\sum_i z_i\cdot \sum_{j_i}s_{j_i}\cdot
  790. x_{j_i}\right)=\sum_i z_i\cdot \widehat{x_i}</annotation></semantics></math> where
  791. <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mover><mrow><msub><mi>x</mi> <mi>i</mi></msub></mrow><mo>&#x5E;</mo></mover><mo>=</mo><mi>e</mi><mrow><mo>(</mo><munder><mo lspace="0.16667em" rspace="0.16667em">&#x02211;</mo> <mrow><msub><mi>j</mi> <mi>i</mi></msub></mrow></munder><msub><mi>s</mi> <mrow><msub><mi>j</mi> <mi>i</mi></msub></mrow></msub><mo>&#x022C5;</mo><msub><mi>x</mi> <mrow><msub><mi>j</mi> <mi>i</mi></msub></mrow></msub><mo>)</mo></mrow></mrow><annotation encoding='application/x-tex'>\widehat{x_i}=e\left(\sum_{j_i}s_{j_i}\cdot
  792. x_{j_i}\right)</annotation></semantics></math> is the evaluation of the corresponding sum.</p>
  793.  
  794. <p>We can not only show that the back square of the monad&#8217;s
  795. cube is not a weak pullback for this monad, and hence no
  796. <em>strategies</em> for finding transitivity witnesses exist, but
  797. also that transitivity itself fails to hold for this monad.
  798. Let <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi><mo>:</mo><mo>=</mo><mo stretchy="false">{</mo><mo>&#x0002A;</mo><mo stretchy="false">}</mo></mrow><annotation encoding='application/x-tex'>A:=\{ \ast \}</annotation></semantics></math> be the one element <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi></mrow><annotation encoding='application/x-tex'>T</annotation></semantics></math>-algebra, i.e. the
  799. zero semimodule. The elements of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi><mi>A</mi></mrow><annotation encoding='application/x-tex'>T A</annotation></semantics></math> are formal sums with
  800. just one term <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>s</mi> <mi>i</mi></msub><mo>&#x022C5;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>s_i\cdot \ast</annotation></semantics></math> and the evaluation map is
  801. trivial in the sense that the value of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>s</mi> <mi>i</mi></msub><mo>&#x022C5;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>s_i\cdot \ast</annotation></semantics></math> is
  802. just <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>\ast</annotation></semantics></math>, as one would expect from multiplication acting
  803. on zero. There is a partial evaluation between the <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi><mi>A</mi></mrow><annotation encoding='application/x-tex'>T A</annotation></semantics></math> terms
  804. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mn>1</mn><mo>&#x022C5;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>1\cdot \ast</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mn>2</mn><mo>&#x022C5;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>2\cdot \ast</annotation></semantics></math> witnessed by the <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi><mi>T</mi><mi>A</mi></mrow><annotation encoding='application/x-tex'>T T A</annotation></semantics></math>
  805. element <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C4;</mi><mo>=</mo><mn>1</mn><mo>&#x022C5;</mo><mn>1</mn><mo>&#x022C5;</mo><mo>&#x0002A;</mo><mo lspace="0.11111em" rspace="0em">+</mo><mn>1</mn><mo>&#x022C5;</mo><mn>0</mn><mo>&#x022C5;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>\tau=1\cdot 1\cdot \ast + 1\cdot 0\cdot \ast</annotation></semantics></math>
  806. since <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>&#x003BC;</mi><mo stretchy="false">(</mo><mi>&#x003C4;</mi><mo stretchy="false">)</mo><mo>=</mo><mo stretchy="false">(</mo><mn>1</mn><mo>&#x022C5;</mo><mn>1</mn><mo stretchy="false">)</mo><mo>&#x022C5;</mo><mo>&#x0002A;</mo><mo lspace="0.11111em" rspace="0em">+</mo><mo stretchy="false">(</mo><mn>1</mn><mo>&#x022C5;</mo><mn>0</mn><mo stretchy="false">)</mo><mo>&#x022C5;</mo><mo>&#x0002A;</mo><mo>=</mo><mn>1</mn><mo>&#x022C5;</mo><mo>&#x0002A;</mo><mo lspace="0.11111em" rspace="0em">+</mo><mn>0</mn><mo>&#x022C5;</mo><mo>&#x0002A;</mo><mo>=</mo><mn>1</mn><mo>&#x022C5;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>\mu(\tau)=(1\cdot 1)\cdot \ast +(1\cdot 0)\cdot \ast
  807. =1\cdot \ast +0\cdot \ast =1\cdot \ast </annotation></semantics></math> and also
  808. <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>Te</mi><mo stretchy="false">(</mo><mi>&#x003C4;</mi><mo stretchy="false">)</mo><mo>=</mo><mn>1</mn><mo>&#x022C5;</mo><mi>e</mi><mo stretchy="false">(</mo><mn>1</mn><mo>&#x022C5;</mo><mo>&#x0002A;</mo><mo stretchy="false">)</mo><mo>+</mo><mn>1</mn><mo>&#x022C5;</mo><mi>e</mi><mo stretchy="false">(</mo><mn>0</mn><mo>&#x022C5;</mo><mo>&#x0002A;</mo><mo stretchy="false">)</mo><mo>=</mo><mn>1</mn><mo>&#x022C5;</mo><mo>&#x0002A;</mo><mo lspace="0.11111em" rspace="0em">+</mo><mn>1</mn><mo>&#x022C5;</mo><mo>&#x0002A;</mo><mo>=</mo><mn>2</mn><mo>&#x022C5;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>Te(\tau)=1\cdot e(1\cdot \ast)+ 1\cdot e(0\cdot
  809. \ast)=1\cdot \ast + 1\cdot \ast = 2\cdot \ast </annotation></semantics></math></p>
  810.  
  811. <p>There is also a partial evaluation between <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mn>2</mn><mo>&#x022C5;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>2\cdot \ast</annotation></semantics></math> and
  812. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>x</mi><mo>&#x022C5;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>x\cdot \ast</annotation></semantics></math> witnessed by the <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi><mi>T</mi><mi>A</mi></mrow><annotation encoding='application/x-tex'>T T A</annotation></semantics></math> element <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C4;</mi><mo>&#x02032;</mo><mo>=</mo><mi>x</mi><mo>&#x022C5;</mo><mi>x</mi><mo>&#x022C5;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>\tau&apos;=x\cdot
  813. x\cdot \ast</annotation></semantics></math> namely, <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>&#x003BC;</mi><mo stretchy="false">(</mo><mi>&#x003C4;</mi><mo>&#x02032;</mo><mo stretchy="false">)</mo><mo>=</mo><mo stretchy="false">(</mo><mi>x</mi><mo>&#x022C5;</mo><mi>x</mi><mo stretchy="false">)</mo><mo>&#x022C5;</mo><mo>&#x0002A;</mo><mo>=</mo><mn>2</mn><mo>&#x022C5;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>\mu(\tau&apos;)=(x\cdot x)\cdot \ast =
  814. 2\cdot \ast</annotation></semantics></math> and also <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>Te</mi><mo stretchy="false">(</mo><mi>&#x003C4;</mi><mo>&#x02032;</mo><mo stretchy="false">)</mo><mo>=</mo><mi>x</mi><mo>&#x022C5;</mo><mo stretchy="false">(</mo><mi>x</mi><mo>&#x022C5;</mo><mo>&#x0002A;</mo><mo stretchy="false">)</mo><mo>=</mo><mi>x</mi><mo>&#x022C5;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>Te(\tau&apos;)=x\cdot(x\cdot \ast)=x\cdot
  815. \ast</annotation></semantics></math> However, there can be no partial evaluation from
  816. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mn>1</mn><mo>&#x022C5;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>1\cdot \ast</annotation></semantics></math> to <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>x</mi><mo>&#x022C5;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>x\cdot \ast</annotation></semantics></math> because <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi><mi>e</mi></mrow><annotation encoding='application/x-tex'>T e</annotation></semantics></math> maps any
  817. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C4;</mi><mo>&#x02033;</mo><mo>=</mo><msub><mo lspace="0.16667em" rspace="0.16667em">&#x02211;</mo> <mi>i</mi></msub><msub><mi>z</mi> <mi>i</mi></msub><mo>&#x022C5;</mo><msub><mi>s</mi> <mi>i</mi></msub><mo>&#x022C5;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>\tau&apos;&apos;=\sum_i z_i\cdot s_i\cdot \ast</annotation></semantics></math> in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi><mi>T</mi><mi>A</mi></mrow><annotation encoding='application/x-tex'>T T A</annotation></semantics></math> to <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><munder><mo lspace="0.16667em" rspace="0.16667em">&#x02211;</mo> <mi>i</mi></munder><msub><mi>z</mi> <mi>i</mi></msub><mo>&#x022C5;</mo><mo>&#x0002A;</mo><mo>=</mo><mrow><mo>(</mo><munder><mo lspace="0.16667em" rspace="0.16667em">&#x02211;</mo> <mi>i</mi></munder><msub><mi>z</mi> <mi>i</mi></msub><mo>)</mo></mrow><mo>&#x022C5;</mo><mo>&#x0002A;</mo><mo>.</mo></mrow><annotation encoding='application/x-tex'>\sum_i
  818. z_i\cdot \ast = \left(\sum_i z_i\right)\cdot \ast.</annotation></semantics></math> So if
  819. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C4;</mi><mo>&#x02033;</mo></mrow><annotation encoding='application/x-tex'>\tau&apos;&apos;</annotation></semantics></math> were a transitivity witness, we would need <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><munder><mo lspace="0.16667em" rspace="0.16667em">&#x02211;</mo> <mi>i</mi></munder><msub><mi>z</mi> <mi>i</mi></msub><mo>=</mo><mi>x</mi><mo>.</mo></mrow><annotation encoding='application/x-tex'>\sum_i
  820. z_i= x.</annotation></semantics></math> But <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>x</mi></mrow><annotation encoding='application/x-tex'>x</annotation></semantics></math> is additively indecomposable in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>S</mi></mrow><annotation encoding='application/x-tex'>S</annotation></semantics></math>.
  821. Hence <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C4;</mi><mo>&#x02033;</mo><mo>=</mo><mi>x</mi><mo>&#x022C5;</mo><mi>s</mi><mo>&#x022C5;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>\tau&apos;&apos;=x\cdot s\cdot \ast</annotation></semantics></math>, for some <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>s</mi><mo>&#x02208;</mo><mi>S</mi></mrow><annotation encoding='application/x-tex'>s\in S</annotation></semantics></math>. But
  822. then <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>&#x003BC;</mi><mo stretchy="false">(</mo><mi>&#x003C4;</mi><mo>&#x02033;</mo><mo stretchy="false">)</mo><mo>=</mo><mo stretchy="false">(</mo><mi>x</mi><mo>&#x022C5;</mo><mi>s</mi><mo stretchy="false">)</mo><mo>&#x022C5;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>\mu(\tau&apos;&apos;)=(x\cdot s)\cdot \ast</annotation></semantics></math> which cannot equal
  823. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mn>1</mn><mo>&#x022C5;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>1\cdot \ast</annotation></semantics></math>, since <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>x</mi></mrow><annotation encoding='application/x-tex'>x</annotation></semantics></math> is not a unit in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>S</mi></mrow><annotation encoding='application/x-tex'>S</annotation></semantics></math>.</p>
  824.  
  825. <h2>Some further thoughts</h2>
  826.  
  827. <p>It was quite satisfying to find a concrete answer to the
  828. transitivity question we started from. There are several
  829. directions that we could explore further.</p>
  830.  
  831. <ul>
  832. <li><p>On the one hand, there are interesting connections with
  833. probability which Paolo Perrone has discussed in a
  834. <a href="https://golem.ph.utexas.edu/category/2019/03/the_kantorovich_monad.html">previous blog
  835. post</a>,
  836. and Brandon and Martin have <a href="https://golem.ph.utexas.edu/category/2019/05/partial_evaluations.html">written
  837. about</a>.</p></li>
  838. <li><p>On the other hand, it has been pointed out to us that it
  839. is likely to find connections with multi-stage programming
  840. and partially static data structures which have been used
  841. by computer scientists to describe computations that give
  842. the programmer a fine-grained control over beta
  843. reduction. Being able to control evaluation provides a
  844. basis for optimisation of binding times.</p></li>
  845. <li><p>We can also further investigate these structures by trying
  846. for example to find out when partial evaluations are
  847. invertible. Together with transitivity, this would turn
  848. the partial evaluation into an equivalence relation.</p>
  849.  
  850. <p>If the algebra structure square  </p>
  851.  
  852. <p><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="91.612pt" height="58.083pt" viewBox="0 0 91.612 58.083" version="1.1">
  853. <defs>
  854. <g>
  855. <symbol overflow="visible" id="glyph3720-0-0">
  856. <path style="stroke:none;" d="M 3.828125 -2.03125 L 3.828125 -2.21875 C 3.828125 -3.53125 5.75 -4.453125 5.75 -6.21875 C 5.75 -7.453125 4.703125 -8 3.53125 -8 C 2.328125 -8 1.5 -7.3125 1.5 -6.34375 C 1.5 -5.78125 1.734375 -5.515625 2.109375 -5.515625 C 2.40625 -5.515625 2.65625 -5.671875 2.65625 -6.03125 C 2.65625 -6.484375 2.40625 -6.5 2.40625 -6.890625 C 2.40625 -7.265625 2.71875 -7.546875 3.4375 -7.546875 C 4.203125 -7.546875 4.671875 -7.125 4.671875 -6.1875 C 4.671875 -4.34375 3.34375 -3.890625 3.34375 -2.34375 L 3.34375 -2.03125 Z M 4.28125 -0.578125 C 4.28125 -0.9375 4.03125 -1.28125 3.609375 -1.28125 C 3.171875 -1.28125 2.90625 -0.953125 2.90625 -0.578125 C 2.90625 -0.171875 3.125 0.09375 3.59375 0.09375 C 4.03125 0.09375 4.28125 -0.1875 4.28125 -0.578125 Z M 7.109375 2.015625 L 7.109375 -9.390625 L 0.125 -9.390625 L 0.125 2.015625 Z M 6.484375 1.390625 L 0.734375 1.390625 L 0.734375 -8.78125 L 6.484375 -8.78125 Z "/>
  857. </symbol>
  858. <symbol overflow="visible" id="glyph3720-0-1">
  859. <path style="stroke:none;" d="M 6.9375 -5.78125 L 7.296875 -7.859375 L 0.875 -7.859375 L 0.375 -5.78125 L 0.765625 -5.78125 C 1.296875 -7.09375 1.421875 -7.390625 2.75 -7.390625 L 3.4375 -7.390625 L 2.25 -1.5625 C 2.015625 -0.484375 1.859375 -0.359375 0.84375 -0.359375 L 0.78125 0 L 4.1875 0 L 4.25 -0.359375 C 3.234375 -0.359375 3.09375 -0.484375 3.328125 -1.5625 L 4.5 -7.390625 L 5.1875 -7.390625 C 6.515625 -7.390625 6.5625 -7.09375 6.5625 -5.78125 Z "/>
  860. </symbol>
  861. <symbol overflow="visible" id="glyph3720-0-2">
  862. <path style="stroke:none;" d="M 8.265625 0 L 8.34375 -0.359375 C 7.625 -0.359375 7.421875 -0.625 7.296875 -1.421875 L 6.359375 -7.90625 L 5.859375 -7.90625 L 1.71875 -1.90625 C 0.828125 -0.546875 0.59375 -0.359375 -0.0625 -0.359375 L -0.140625 0 L 2.359375 0 L 2.4375 -0.359375 C 1.90625 -0.359375 1.75 -0.4375 1.75 -0.6875 C 1.75 -0.90625 1.890625 -1.109375 2.046875 -1.34375 L 2.875 -2.625 L 5.96875 -2.625 L 6.078125 -1.546875 C 6.09375 -1.40625 6.109375 -1.234375 6.109375 -1.046875 C 6.109375 -0.4375 5.734375 -0.359375 5.15625 -0.359375 L 5.078125 0 Z M 5.921875 -3.09375 L 3.171875 -3.09375 L 5.484375 -6.546875 L 5.515625 -6.546875 Z "/>
  863. </symbol>
  864. <symbol overflow="visible" id="glyph3720-0-3">
  865. <path style="stroke:none;" d="M 10.46875 -3.15625 C 9.296875 -3.640625 8.359375 -4.5625 7.578125 -5.484375 L 7.328125 -5.25 C 7.609375 -4.84375 7.96875 -4.40625 8.328125 -4.078125 C 8.453125 -3.953125 8.5 -3.875 8.5 -3.765625 C 8.5 -3.640625 8.3125 -3.5 8.1875 -3.5 L 0.84375 -3.5 L 0.84375 -2.6875 L 8.171875 -2.6875 C 8.390625 -2.6875 8.484375 -2.5625 8.484375 -2.453125 C 8.484375 -2.34375 8.421875 -2.21875 8.3125 -2.109375 C 7.953125 -1.71875 7.609375 -1.328125 7.3125 -0.9375 L 7.5625 -0.6875 C 8.359375 -1.625 9.296875 -2.53125 10.46875 -3.03125 Z "/>
  866. </symbol>
  867. <symbol overflow="visible" id="glyph3720-1-0">
  868. <path style="stroke:none;" d="M -3.828125 2.03125 L -3.828125 2.21875 C -3.828125 3.53125 -5.75 4.453125 -5.75 6.21875 C -5.75 7.453125 -4.703125 8 -3.53125 8 C -2.328125 8 -1.5 7.3125 -1.5 6.34375 C -1.5 5.78125 -1.734375 5.515625 -2.109375 5.515625 C -2.40625 5.515625 -2.65625 5.671875 -2.65625 6.03125 C -2.65625 6.484375 -2.40625 6.5 -2.40625 6.890625 C -2.40625 7.265625 -2.71875 7.546875 -3.4375 7.546875 C -4.203125 7.546875 -4.671875 7.125 -4.671875 6.1875 C -4.671875 4.34375 -3.34375 3.890625 -3.34375 2.34375 L -3.34375 2.03125 Z M -4.28125 0.578125 C -4.28125 0.9375 -4.03125 1.28125 -3.609375 1.28125 C -3.171875 1.28125 -2.90625 0.953125 -2.90625 0.578125 C -2.90625 0.171875 -3.125 -0.09375 -3.59375 -0.09375 C -4.03125 -0.09375 -4.28125 0.1875 -4.28125 0.578125 Z M -7.109375 -2.015625 L -7.109375 9.390625 L -0.125 9.390625 L -0.125 -2.015625 Z M -6.484375 -1.390625 L -0.734375 -1.390625 L -0.734375 8.78125 L -6.484375 8.78125 Z "/>
  869. </symbol>
  870. <symbol overflow="visible" id="glyph3720-1-1">
  871. <path style="stroke:none;" d="M -10.484375 2.6875 L -10.484375 3.5 L -3.171875 3.5 C -2.953125 3.5 -2.84375 3.625 -2.84375 3.734375 C -2.84375 3.84375 -2.90625 3.984375 -3.03125 4.09375 C -3.375 4.46875 -3.734375 4.859375 -4.03125 5.265625 L -3.78125 5.5 C -2.96875 4.5625 -2.046875 3.65625 -0.859375 3.15625 L -0.859375 3.03125 C -2.046875 2.546875 -2.96875 1.625 -3.765625 0.703125 L -4.015625 0.9375 C -3.734375 1.34375 -3.359375 1.765625 -3.015625 2.109375 C -2.875 2.234375 -2.828125 2.3125 -2.828125 2.421875 C -2.828125 2.546875 -3.03125 2.6875 -3.15625 2.6875 Z "/>
  872. </symbol>
  873. <symbol overflow="visible" id="glyph3720-2-0">
  874. <path style="stroke:none;" d="M 2.546875 -1.359375 L 2.546875 -1.484375 C 2.546875 -2.34375 3.828125 -2.96875 3.828125 -4.140625 C 3.828125 -4.96875 3.140625 -5.328125 2.359375 -5.328125 C 1.546875 -5.328125 1 -4.875 1 -4.234375 C 1 -3.859375 1.15625 -3.671875 1.40625 -3.671875 C 1.609375 -3.671875 1.765625 -3.78125 1.765625 -4.03125 C 1.765625 -4.328125 1.609375 -4.328125 1.609375 -4.59375 C 1.609375 -4.84375 1.8125 -5.03125 2.28125 -5.03125 C 2.796875 -5.03125 3.109375 -4.75 3.109375 -4.125 C 3.109375 -2.890625 2.234375 -2.59375 2.234375 -1.5625 L 2.234375 -1.359375 Z M 2.859375 -0.375 C 2.859375 -0.625 2.6875 -0.859375 2.40625 -0.859375 C 2.109375 -0.859375 1.9375 -0.640625 1.9375 -0.375 C 1.9375 -0.125 2.09375 0.0625 2.40625 0.0625 C 2.6875 0.0625 2.859375 -0.125 2.859375 -0.375 Z M 4.734375 1.34375 L 4.734375 -6.25 L 0.078125 -6.25 L 0.078125 1.34375 Z M 4.328125 0.921875 L 0.484375 0.921875 L 0.484375 -5.84375 L 4.328125 -5.84375 Z "/>
  875. </symbol>
  876. <symbol overflow="visible" id="glyph3720-2-1">
  877. <path style="stroke:none;" d="M 4.625 -3.859375 L 4.859375 -5.234375 L 0.578125 -5.234375 L 0.25 -3.859375 L 0.515625 -3.859375 C 0.859375 -4.71875 0.953125 -4.921875 1.828125 -4.921875 L 2.28125 -4.921875 L 1.5 -1.046875 C 1.34375 -0.3125 1.234375 -0.234375 0.5625 -0.234375 L 0.515625 0 L 2.78125 0 L 2.84375 -0.234375 C 2.15625 -0.234375 2.0625 -0.3125 2.21875 -1.046875 L 3 -4.921875 L 3.453125 -4.921875 C 4.34375 -4.921875 4.375 -4.71875 4.375 -3.859375 Z "/>
  878. </symbol>
  879. <symbol overflow="visible" id="glyph3720-2-2">
  880. <path style="stroke:none;" d="M 2.84375 -0.96875 C 2.53125 -0.59375 2.1875 -0.453125 1.734375 -0.453125 C 1.234375 -0.453125 0.890625 -0.71875 0.890625 -1.5 L 0.890625 -1.609375 C 1.828125 -1.6875 3.21875 -2.0625 3.21875 -3.140625 C 3.21875 -3.703125 2.703125 -3.8125 2.359375 -3.8125 C 1.078125 -3.8125 0.21875 -2.46875 0.21875 -1.265625 C 0.21875 -0.59375 0.546875 0.09375 1.3125 0.09375 C 1.859375 0.09375 2.46875 -0.09375 2.984375 -0.859375 Z M 0.90625 -1.84375 C 1.0625 -2.625 1.609375 -3.5625 2.203125 -3.5625 C 2.4375 -3.5625 2.53125 -3.421875 2.53125 -3.125 C 2.53125 -2.375 1.8125 -1.890625 0.90625 -1.84375 Z "/>
  881. </symbol>
  882. <symbol overflow="visible" id="glyph3720-2-3">
  883. <path style="stroke:none;" d="M 4.4375 -3.6875 L 4.40625 -3.765625 L 3.703125 -3.75 C 3.5625 -3.3125 3.4375 -2.671875 3.34375 -2.234375 C 3.296875 -2.046875 2.609375 -0.5625 1.890625 -0.5625 C 1.484375 -0.5625 1.34375 -0.953125 1.34375 -1.359375 C 1.34375 -1.5625 1.390625 -1.734375 1.390625 -1.734375 L 2.125 -3.6875 L 2.078125 -3.765625 L 1.359375 -3.75 C 1.25 -3.28125 1.015625 -2.046875 0.859375 -1.1875 C 0.484375 -0.140625 0.28125 0.625 0.046875 1.703125 L 0.15625 1.734375 C 0.421875 1.734375 0.71875 1.65625 0.828125 1.21875 C 0.96875 0.625 0.953125 0.09375 1.078125 -0.546875 L 1.109375 -0.546875 C 1.171875 -0.328125 1.3125 0.109375 1.75 0.109375 C 2.140625 0.109375 2.625 -0.140625 3.09375 -1.3125 L 3.140625 -1.3125 C 3.109375 -0.890625 3.078125 -0.71875 3.078125 -0.578125 C 3.078125 -0.203125 3.21875 0.0625 3.609375 0.0625 C 4.125 0.0625 4.421875 -0.34375 4.609375 -0.703125 L 4.484375 -0.84375 C 4.34375 -0.6875 4.21875 -0.53125 3.96875 -0.53125 C 3.734375 -0.53125 3.609375 -0.703125 3.609375 -1.21875 C 3.609375 -1.390625 3.65625 -1.6875 3.65625 -1.734375 Z "/>
  884. </symbol>
  885. <symbol overflow="visible" id="glyph3720-3-0">
  886. <path style="stroke:none;" d="M -2.03125 -3.828125 L -2.21875 -3.828125 C -3.53125 -3.828125 -4.453125 -5.75 -6.21875 -5.75 C -7.453125 -5.75 -8 -4.703125 -8 -3.53125 C -8 -2.328125 -7.3125 -1.5 -6.34375 -1.5 C -5.78125 -1.5 -5.515625 -1.734375 -5.515625 -2.109375 C -5.515625 -2.40625 -5.671875 -2.65625 -6.03125 -2.65625 C -6.484375 -2.65625 -6.5 -2.40625 -6.890625 -2.40625 C -7.265625 -2.40625 -7.546875 -2.71875 -7.546875 -3.4375 C -7.546875 -4.203125 -7.125 -4.671875 -6.1875 -4.671875 C -4.34375 -4.671875 -3.890625 -3.34375 -2.34375 -3.34375 L -2.03125 -3.34375 Z M -0.578125 -4.28125 C -0.9375 -4.28125 -1.28125 -4.03125 -1.28125 -3.609375 C -1.28125 -3.171875 -0.953125 -2.90625 -0.578125 -2.90625 C -0.171875 -2.90625 0.09375 -3.125 0.09375 -3.59375 C 0.09375 -4.03125 -0.1875 -4.28125 -0.578125 -4.28125 Z M 2.015625 -7.109375 L -9.390625 -7.109375 L -9.390625 -0.125 L 2.015625 -0.125 Z M 1.390625 -6.484375 L 1.390625 -0.734375 L -8.78125 -0.734375 L -8.78125 -6.484375 Z "/>
  887. </symbol>
  888. <symbol overflow="visible" id="glyph3720-3-1">
  889. <path style="stroke:none;" d="M -2.6875 -10.484375 L -3.5 -10.484375 L -3.5 -3.171875 C -3.5 -2.953125 -3.625 -2.84375 -3.734375 -2.84375 C -3.84375 -2.84375 -3.984375 -2.90625 -4.09375 -3.03125 C -4.46875 -3.375 -4.859375 -3.734375 -5.265625 -4.03125 L -5.5 -3.78125 C -4.5625 -2.96875 -3.65625 -2.046875 -3.15625 -0.859375 L -3.03125 -0.859375 C -2.546875 -2.046875 -1.625 -2.96875 -0.703125 -3.765625 L -0.9375 -4.015625 C -1.34375 -3.734375 -1.765625 -3.359375 -2.109375 -3.015625 C -2.234375 -2.875 -2.3125 -2.828125 -2.421875 -2.828125 C -2.546875 -2.828125 -2.6875 -3.03125 -2.6875 -3.15625 Z "/>
  890. </symbol>
  891. <symbol overflow="visible" id="glyph3720-4-0">
  892. <path style="stroke:none;" d="M 2.03125 3.828125 L 2.21875 3.828125 C 3.53125 3.828125 4.453125 5.75 6.21875 5.75 C 7.453125 5.75 8 4.703125 8 3.53125 C 8 2.328125 7.3125 1.5 6.34375 1.5 C 5.78125 1.5 5.515625 1.734375 5.515625 2.109375 C 5.515625 2.40625 5.671875 2.65625 6.03125 2.65625 C 6.484375 2.65625 6.5 2.40625 6.890625 2.40625 C 7.265625 2.40625 7.546875 2.71875 7.546875 3.4375 C 7.546875 4.203125 7.125 4.671875 6.1875 4.671875 C 4.34375 4.671875 3.890625 3.34375 2.34375 3.34375 L 2.03125 3.34375 Z M 0.578125 4.28125 C 0.9375 4.28125 1.28125 4.03125 1.28125 3.609375 C 1.28125 3.171875 0.953125 2.90625 0.578125 2.90625 C 0.171875 2.90625 -0.09375 3.125 -0.09375 3.59375 C -0.09375 4.03125 0.1875 4.28125 0.578125 4.28125 Z M -2.015625 7.109375 L 9.390625 7.109375 L 9.390625 0.125 L -2.015625 0.125 Z M -1.390625 6.484375 L -1.390625 0.734375 L 8.78125 0.734375 L 8.78125 6.484375 Z "/>
  893. </symbol>
  894. <symbol overflow="visible" id="glyph3720-4-1">
  895. <path style="stroke:none;" d="M 3.15625 10.46875 C 3.640625 9.296875 4.5625 8.359375 5.484375 7.578125 L 5.25 7.328125 C 4.84375 7.609375 4.40625 7.96875 4.078125 8.328125 C 3.953125 8.453125 3.875 8.5 3.765625 8.5 C 3.640625 8.5 3.5 8.3125 3.5 8.1875 L 3.5 0.84375 L 2.6875 0.84375 L 2.6875 8.171875 C 2.6875 8.390625 2.5625 8.484375 2.453125 8.484375 C 2.34375 8.484375 2.21875 8.421875 2.109375 8.3125 C 1.71875 7.953125 1.328125 7.609375 0.9375 7.3125 L 0.6875 7.5625 C 1.625 8.359375 2.53125 9.296875 3.03125 10.46875 Z "/>
  896. </symbol>
  897. </g>
  898. <clipPath id="clip3720-1">
  899.  <path d="M 35.082031 8 L 40.160156 8 L 40.160156 14 L 35.082031 14 Z "/>
  900. </clipPath>
  901. <clipPath id="clip3720-2">
  902.  <path d="M 59.140625 8 L 64 8 L 64 14 L 59.140625 14 Z "/>
  903. </clipPath>
  904. <clipPath id="clip3720-3">
  905.  <path d="M 15 19 L 21 19 L 21 23.882812 L 15 23.882812 Z "/>
  906. </clipPath>
  907. <clipPath id="clip3720-4">
  908.  <path d="M 15 35.761719 L 21 35.761719 L 21 40 L 15 40 Z "/>
  909. </clipPath>
  910. <clipPath id="clip3720-5">
  911.  <path d="M 75 19 L 81 19 L 81 23.882812 L 75 23.882812 Z "/>
  912. </clipPath>
  913. <clipPath id="clip3720-6">
  914.  <path d="M 75 35.761719 L 81 35.761719 L 81 40 L 75 40 Z "/>
  915. </clipPath>
  916. <clipPath id="clip3720-7">
  917.  <path d="M 32 47 L 36.316406 47 L 36.316406 53 L 32 53 Z "/>
  918. </clipPath>
  919. <clipPath id="clip3720-8">
  920.  <path d="M 62.984375 47 L 68 47 L 68 53 L 62.984375 53 Z "/>
  921. </clipPath>
  922. </defs>
  923. <g id="surface3720-1">
  924. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  925.  <use xlink:href="#glyph3720-0-1" x="5.643" y="14.374"/>
  926. </g>
  927. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  928.  <use xlink:href="#glyph3720-0-1" x="13.330194" y="14.374"/>
  929. </g>
  930. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  931.  <use xlink:href="#glyph3720-0-2" x="21.017387" y="14.374"/>
  932. </g>
  933. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  934.  <use xlink:href="#glyph3720-0-1" x="69.494" y="14.374"/>
  935. </g>
  936. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  937.  <use xlink:href="#glyph3720-0-2" x="77.181194" y="14.374"/>
  938. </g>
  939. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  940.  <use xlink:href="#glyph3720-0-1" x="9.485" y="53.287"/>
  941. </g>
  942. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  943.  <use xlink:href="#glyph3720-0-2" x="17.172194" y="53.287"/>
  944. </g>
  945. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  946.  <use xlink:href="#glyph3720-0-2" x="73.338" y="53.287"/>
  947. </g>
  948. <path style="fill:none;stroke-width:0.81294;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -5.645844 18.532937 L 13.334625 18.532937 " transform="matrix(1,0,0,-1,45.806,29.822)"/>
  949. <g clip-path="url(#clip3720-1)" clip-rule="nonzero">
  950. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  951.  <use xlink:href="#glyph3720-1-1" x="46.41528" y="8.20384"/>
  952. </g>
  953. </g>
  954. <g clip-path="url(#clip3720-2)" clip-rule="nonzero">
  955. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  956.  <use xlink:href="#glyph3720-0-3" x="52.88396" y="14.37384"/>
  957. </g>
  958. </g>
  959. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  960.  <use xlink:href="#glyph3720-2-1" x="45.298" y="7.982"/>
  961. </g>
  962. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  963.  <use xlink:href="#glyph3720-2-2" x="50.422774" y="7.982"/>
  964. </g>
  965. <path style="fill:none;stroke-width:0.81294;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -28.083344 5.939187 L -28.083344 -5.939719 " transform="matrix(1,0,0,-1,45.806,29.822)"/>
  966. <g clip-path="url(#clip3720-3)" clip-rule="nonzero">
  967. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  968.  <use xlink:href="#glyph3720-3-1" x="20.808" y="30.13834"/>
  969. </g>
  970. </g>
  971. <g clip-path="url(#clip3720-4)" clip-rule="nonzero">
  972. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  973.  <use xlink:href="#glyph3720-4-1" x="14.638" y="29.50566"/>
  974. </g>
  975. </g>
  976. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  977.  <use xlink:href="#glyph3720-2-3" x="9.65" y="30.866"/>
  978. </g>
  979. <path style="fill:none;stroke-width:0.81294;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 31.928375 5.939187 L 31.928375 -5.939719 " transform="matrix(1,0,0,-1,45.806,29.822)"/>
  980. <g clip-path="url(#clip3720-5)" clip-rule="nonzero">
  981. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  982.  <use xlink:href="#glyph3720-3-1" x="80.8176" y="30.13834"/>
  983. </g>
  984. </g>
  985. <g clip-path="url(#clip3720-6)" clip-rule="nonzero">
  986. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  987.  <use xlink:href="#glyph3720-4-1" x="74.6476" y="29.50566"/>
  988. </g>
  989. </g>
  990. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  991.  <use xlink:href="#glyph3720-2-2" x="80.96" y="31.699"/>
  992. </g>
  993. <path style="fill:none;stroke-width:0.81294;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -9.489594 -20.381125 L 17.178375 -20.381125 " transform="matrix(1,0,0,-1,45.806,29.822)"/>
  994. <g clip-path="url(#clip3720-7)" clip-rule="nonzero">
  995. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  996.  <use xlink:href="#glyph3720-1-1" x="42.57167" y="47.11725"/>
  997. </g>
  998. </g>
  999. <g clip-path="url(#clip3720-8)" clip-rule="nonzero">
  1000. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  1001.  <use xlink:href="#glyph3720-0-3" x="56.7276" y="53.28725"/>
  1002. </g>
  1003. </g>
  1004. <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  1005.  <use xlink:href="#glyph3720-2-2" x="47.86" y="46.895"/>
  1006. </g>
  1007. </g>
  1008. </svg> </p>
  1009.  
  1010. <p>is a weak pullback, then the partial evaluation relation is an equivalence relation. One can ask if the converse also holds.</p></li>
  1011. <li><p>A more sophisticated question than whether the
  1012. relation being an equivalence is the following: when is the
  1013. 1-truncation of the bar construction a groupoid? That is, in
  1014. case we can form a category with partial evaluations as
  1015. morphisms, when are all morphisms there invertible?</p>
  1016.  
  1017. <p>For example, let <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>G</mi></mrow><annotation encoding='application/x-tex'>G</annotation></semantics></math> be a group. The theory of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>G</mi></mrow><annotation encoding='application/x-tex'>G</annotation></semantics></math>-sets is
  1018. operadic, so the associated monad <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi><mo stretchy="false">(</mo><mi>X</mi><mo stretchy="false">)</mo><mo>=</mo><mi>G</mi><mo>&#x000D7;</mo><mi>X</mi></mrow><annotation encoding='application/x-tex'>T(X)=G\times X</annotation></semantics></math> is
  1019. (strongly) cartesian, and the bar construction gives the
  1020. nerve of a category. The 0-simplices are the elements
  1021. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>g</mi><mo>,</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(g,x)</annotation></semantics></math> of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>G</mi><mo>&#x000D7;</mo><mi>X</mi></mrow><annotation encoding='application/x-tex'>G\times X</annotation></semantics></math>, the 1-simplices from <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>g</mi><mo>,</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(g,x)</annotation></semantics></math> to
  1022. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>h</mi><mo>,</mo><mi>y</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(h,y)</annotation></semantics></math> are the elements <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>j</mi><mo>,</mo><mi>h</mi><mo>,</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(j,h,x)</annotation></semantics></math> of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>G</mi><mo>&#x000D7;</mo><mi>G</mi><mo>&#x000D7;</mo><mi>S</mi></mrow><annotation encoding='application/x-tex'>G\times G\times S</annotation></semantics></math>
  1023. such that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>g</mi><mo>=</mo><mi>jh</mi></mrow><annotation encoding='application/x-tex'>g= jh</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>h</mi><mo>&#x022C5;</mo><mi>x</mi><mo>=</mo><mi>y</mi></mrow><annotation encoding='application/x-tex'>h\cdot x=y</annotation></semantics></math>, and so on.  The partial
  1024. evaluation relation here is an equivalence relation (the
  1025. multiplication square is even an actual pullback &#8211; not just
  1026. a weak one) and for this theory the bar construction of an
  1027. algebra <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math> is the nerve of a groupoid.</p>
  1028.  
  1029. <p>This is probably very related to group cohomology: in this
  1030. case, the bar construction is indeed a resolution of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math>,
  1031. i.e. weakly equivalent to <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math>.  (The bar construction was
  1032. actually first invented to compute the cohomology of
  1033. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>G</mi></mrow><annotation encoding='application/x-tex'>G</annotation></semantics></math>-modules, which are basically this example, just in an
  1034. abelian category.)</p></li>
  1035. <li><p>One can also ask higher-dimensional questions, such as
  1036. when is the bar construction an infinity-groupoid (i.e. a
  1037. Kan complex)?</p></li>
  1038. </ul>
  1039.  
  1040. <p>It turns out that this last question has a partial answer
  1041. which involves Mal&#8217;cev theories.</p>
  1042.  
  1043. <p>A <em>Mal&#8217;cev operation</em> on a set <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math> is a ternary
  1044. operation <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>m</mi><mo>:</mo><mi>A</mi><mo>&#x000D7;</mo><mi>A</mi><mo>&#x000D7;</mo><mi>A</mi><mo>&#x02192;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>m:A\times A\times A\to A</annotation></semantics></math> such that for each
  1045. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>a</mi><mo>,</mo><mi>b</mi><mo>&#x02208;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>a,b\in A</annotation></semantics></math>, <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>m</mi><mo stretchy="false">(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>,</mo><mi>b</mi><mo stretchy="false">)</mo><mo>=</mo><mi>a</mi><mspace width="0.27778em"/><mtext>and</mtext><mspace width="0.27778em"/><mi>m</mi><mo stretchy="false">(</mo><mi>a</mi><mo>,</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo stretchy="false">)</mo><mo>=</mo><mi>b</mi><mo>.</mo></mrow><annotation encoding='application/x-tex'> m(a,b,b) =  a \; \text{and} \; m(a,a,b) = b. </annotation></semantics></math> A <em>Mal&#8217;cev theory</em> is an
  1046. algebraic theory which contains a Mal&#8217;cev operation.</p>
  1047.  
  1048. <p>In the algebraic theory of groups, there is a Mal&#8217;cev
  1049. operation defined by <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>m</mi><mo stretchy="false">(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>,</mo><mi>c</mi><mo stretchy="false">)</mo><mspace width="0.27778em"/><mo>:</mo><mo>=</mo><mspace width="0.27778em"/><mi>a</mi><mspace width="0.16667em"/><msup><mi>b</mi> <mrow><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mn>1</mn></mrow></msup><mspace width="0.16667em"/><mi>c</mi><mo>.</mo></mrow><annotation encoding='application/x-tex'> m(a,b,c) \; := \; a\,b^{&#x2d;1}\,c.  </annotation></semantics></math>
  1050. Therefore any theory whose algebras are groups, with
  1051. possibly extra structures or properties, is a Mal&#8217;cev
  1052. theory. These include for example the theories of groups,
  1053. rings or modules over a fixed ring but not, for example, the
  1054. theory of monoids, commutative monoids, semirings, and
  1055. semimodules.</p>
  1056.  
  1057. <p>An example of a Mal&#8217;cev theory which is not a theory of
  1058. particular groups is the theory of
  1059. <a href="https://ncatlab.org/nlab/show/heap">heaps</a>.</p>
  1060.  
  1061. <p>A theorem by Carboni, Kelly and Pedicchio states that for
  1062. any Mal&#8217;cev theory <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi></mrow><annotation encoding='application/x-tex'>T</annotation></semantics></math> every simplicial object in the
  1063. category of algebras is a Kan complex.  This theorem can be
  1064. found
  1065. <a href="https://link.springer.com/article/10.1007/BF00872942">here</a>. See
  1066. also the nLab page about <a href="https://ncatlab.org/nlab/show/Kan+complex">Kan
  1067. complexes</a>.</p>
  1068.  
  1069. <p>Therefore, for the theory of groups (and heaps, etc.), not
  1070. only do we get an equivalence relation, but the whole bar
  1071. construction is an <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mn>&#x0221E;</mn></mrow><annotation encoding='application/x-tex'>\infty</annotation></semantics></math>-groupoid, of which the
  1072. equivalence relation is the shadow, i.e. the
  1073. (0,1)-truncation.</p>
  1074.  
  1075.      </div>
  1076.    </content>
  1077.  </entry>
  1078.  <entry>
  1079.    <title type="html">Stellenbosch is Hiring</title>
  1080.    <link rel="alternate" type="application/xhtml+xml" href="https://golem.ph.utexas.edu/category/2019/09/stellenbosch_is_hiring.html" />
  1081.    <updated>2019-09-12T07:55:04Z</updated>
  1082.    <published>2019-09-12T08:50:55+00:00</published>
  1083.    <id>tag:golem.ph.utexas.edu,2019:%2Fcategory%2F3.3143</id>
  1084.    <summary type="text">Stellenbosch University is advertising two permanent faculty positions at the level of Senior Lecturer and Professor.</summary>
  1085.    <author>
  1086.      <name>john</name>
  1087.      <uri>http://math.ucr.edu/home/baez/</uri>
  1088.      <email>[email protected]</email>
  1089.    </author>
  1090.    <category term="Positions" />
  1091.    <content type="xhtml" xml:base="https://golem.ph.utexas.edu/category/2019/09/stellenbosch_is_hiring.html">
  1092.      <div xmlns="http://www.w3.org/1999/xhtml">
  1093. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  1094.  
  1095. <p><em>guest post by <strong><a href="http://math.sun.ac.za/bbartlett/">Bruce Bartlett</a></strong></em></p>
  1096.  
  1097. <p>The Mathematics Division at Stellenbosch University is advertising two permanent faculty positions at the level of Senior Lecturer and Professor.</p>
  1098.  
  1099. <p>Quoting from the advertisement (<a href="https://math.sun.ac.za/bbartlett/assets/SenLec.pdf">Senior Lecturer</a> position, <a href="https://math.sun.ac.za/bbartlett/assets/Prof.pdf">Professor</a> position):</p>
  1100.  
  1101. <blockquote>
  1102.  <p>The Mathematical Sciences Department is responsible for teaching and research in Mathematics, Applied Mathematics and Computer Science at Stellenbosch University. The Mathematics Division is keen to strengthen its research in Algebra, Analysis, Category Theory, Combinatorics, Logic, Number Theory, and Topology. The Faculty of Science will offer a good research establishment grant for the first two years.</p>
  1103. </blockquote>
  1104.  
  1105. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  1106.  
  1107. <p>Stellenbosch University is one of South Africa&#8217;s top universities. It is located in Stellenbosch, a pleasant university town situated in the winelands about forty five minutes from Cape Town:</p>
  1108.  
  1109. <p><img src="https://math.sun.ac.za/bbartlett/assets/stellenbosch-uni_header.jpg" style="width: 600px" alt="Pic of Stellenbosch" /></p>
  1110.  
  1111. <p>Deadline for applications is 27 September 2019.</p>
  1112.  
  1113. <p>There are currently 23 faculty members in the Mathematics Division, with research groups being Algebra and Model Theory, Categorical Algebra, Discrete Mathematics, Duality Theory, Functional Analysis, Mathematical and Theoretical Physical Biosciences, Number Theory and Geometry, Topology and Mathematical Physics.</p>
  1114.  
  1115. <p>I would be very happy for someone with interests in mathematical physics / higher categories / topology, or other interests represented here at the n-category cafe, to join the Division. You are welcome to <a href="https://math.sun.ac.za/bbartlett/">contact me</a> in this regard.</p>
  1116.  
  1117.      </div>
  1118.    </content>
  1119.  </entry>
  1120.  <entry>
  1121.    <title type="html">The Riemann Hypothesis (Part 3)</title>
  1122.    <link rel="alternate" type="application/xhtml+xml" href="https://golem.ph.utexas.edu/category/2019/09/the_riemann_hypothesis_part_3.html" />
  1123.    <updated>2019-09-11T16:11:31Z</updated>
  1124.    <published>2019-09-11T10:25:47+00:00</published>
  1125.    <id>tag:golem.ph.utexas.edu,2019:%2Fcategory%2F3.3142</id>
  1126.    <summary type="text">How the Weil Conjectures lead us to the idea of 'motives'.</summary>
  1127.    <author>
  1128.      <name>john</name>
  1129.      <uri>http://math.ucr.edu/home/baez/</uri>
  1130.      <email>[email protected]</email>
  1131.    </author>
  1132.    <category term="Number Theory" />
  1133.    <content type="xhtml" xml:base="https://golem.ph.utexas.edu/category/2019/09/the_riemann_hypothesis_part_3.html">
  1134.      <div xmlns="http://www.w3.org/1999/xhtml">
  1135. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  1136.  
  1137. <p>Now I&#8217;ll say a little about the Weil Conjectures and Grothendieck&#8217;s theory of &#8216;motives&#8217;.  I will continue trying to avoid all the technical details, to convey some general flavor of the subject without assuming much knowledge of algebraic geometry.   </p>
  1138.  
  1139. <p>I <em>will</em> start using terms like <a href = "https://en.wikipedia.org/wiki/Algebraic_variety">&#8216;variety&#8217;</a>, but not much more.   If you don&#8217;t know what that means, imagine it&#8217;s a shape described by a bunch of polynomial equations&#8230; with some points at infinity tacked on if it&#8217;s a <a href = "https://en.wikipedia.org/wiki/Projective_variety">&#8216;projective variety&#8217;</a>.  Also, you should know that a <a href = "https://en.wikipedia.org/wiki/Algebraic_variety">&#8216;curve&#8217;</a> is a 1-dimensional variety, but if we&#8217;re using the complex numbers it&#8217;ll look 2-dimensional to ordinary mortal&#8217;s eyes, like this:</p>
  1140.  
  1141. <p><img width = "150" src = "http://math.ucr.edu/home/baez/mathematical/2-holed_torus.png" alt = ""/></p>
  1142.  
  1143. <p>This guy is an example of a &#8216;curve of genus 2&#8217;.</p>
  1144.  
  1145. <p>Okay, maybe now you know enough algebraic geometry for this post.</p>
  1146.  
  1147. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  1148.  
  1149. <p>Last time I explained Hasse&#8217;s theorem saying how to count points on elliptic curves over finite fields: the number of points is a pretty obvious guess plus two &#8216;correction terms&#8217; that grow and oscillate as the number of elements in your finite field increases.  The obvious guess grows like <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>q</mi><mo>+</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'>q+1</annotation></semantics></math>, the number of elements in your field together with a point at infinity.  The correction terms grow like <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msqrt><mi>q</mi></msqrt></mrow><annotation encoding='application/x-tex'>\sqrt{q}</annotation></semantics></math> &#8212; and <em>that fact is a baby version of the Riemann Hypothesis!</em></p>
  1150.  
  1151. <p>To be precise: for any elliptic curve defined over the integers, its number of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x1D53D;</mi> <mi>q</mi></msub></mrow><annotation encoding='application/x-tex'>\mathbb{F}_q</annotation></semantics></math>-points where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>q</mi><mo>=</mo><msup><mi>p</mi> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>q = p^n</annotation></semantics></math> is</p>
  1152.  
  1153. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><msup><mi>p</mi> <mi>n</mi></msup><mo>&#x02212;</mo><msup><mi>&#x003B1;</mi> <mi>n</mi></msup><mo>&#x02212;</mo><msup><mi>&#x003B2;</mi> <mi>n</mi></msup><mo>+</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'>    p^n &#x2d; \alpha^n &#x2d; \beta^n + 1 </annotation></semantics></math></p>
  1154.  
  1155. <p>where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">&#x0007C;</mo><mi>&#x003B1;</mi><mo stretchy="false">&#x0007C;</mo><mo>=</mo><mo stretchy="false">&#x0007C;</mo><mi>&#x003B2;</mi><mo stretchy="false">&#x0007C;</mo><mo>=</mo><msqrt><mi>p</mi></msqrt></mrow><annotation encoding='application/x-tex'>|\alpha| = |\beta| = \sqrt{p}</annotation></semantics></math>.  </p>
  1156.  
  1157. <p>The brilliant algebraic geometer Andr&#x000E9; Weil knew about this, and he guessed how it should generalize to other kinds of curves.   He announced his generalization seven months after Germany invaded Poland, starting World War II.  At the time, he was confined to a French military prison for failing to report for duty &#8212; he was a pacifist.  </p>
  1158.  
  1159. <p>He announced his result before he&#8217;d fully proved it.  He just had an outline of a proof.  Later he wrote:</p>
  1160.  
  1161. <blockquote>
  1162.  <p>In other circumstances, publication would have seemed very premature. But in April 1940, who could be sure of a tomorrow? It seemed to me that my ideas contained enough substance to merit not being in danger of being lost.</p>
  1163. </blockquote>
  1164.  
  1165. <p>How could <em>you</em> guess this generalization?  If we work over the field <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x02102;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{C}</annotation></semantics></math>, an elliptic curve looks like an ordinary torus: the surface of a 1-holed doughnut.  Other curves, look like the surfaces of doughnuts with other numbers of holes.  We call the number of holes the &#8216;genus&#8217; of the curve.  </p>
  1166.  
  1167. <p>There&#8217;s only one kind of curve with genus 0, namely the projective line, and its number of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x1D53D;</mi> <mi>q</mi></msub></mrow><annotation encoding='application/x-tex'>\mathbb{F}_q</annotation></semantics></math> points is </p>
  1168.  
  1169. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><msup><mi>p</mi> <mi>n</mi></msup><mo>+</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'>    p^n + 1 </annotation></semantics></math></p>
  1170.  
  1171. <p>since we can chop it into two pieces: the ordinary line <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x1D53D;</mi> <mi>q</mi></msub></mrow><annotation encoding='application/x-tex'>\mathbb{F}_q</annotation></semantics></math> and a point at infinity.   </p>
  1172.  
  1173. <p>Based on this extremely limited data, if I had to guess the number of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x1D53D;</mi> <mi>q</mi></msub></mrow><annotation encoding='application/x-tex'>\mathbb{F}_q</annotation></semantics></math>-points of a curve of genus <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>g</mi></mrow><annotation encoding='application/x-tex'>g</annotation></semantics></math>, I would guess </p>
  1174.  
  1175. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><msup><mi>p</mi> <mi>n</mi></msup><mo>&#x02212;</mo><msubsup><mi>&#x003B1;</mi> <mn>1</mn> <mi>n</mi></msubsup><mo>&#x02212;</mo><mi>&#x022EF;</mi><mo>&#x02212;</mo><msubsup><mi>&#x003B1;</mi> <mrow><mn>2</mn><mi>g</mi></mrow> <mi>n</mi></msubsup><mo>+</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'>   p^n &#x2d; \alpha_1^n &#x2d; \cdots &#x2d; \alpha_{2g}^n + 1 </annotation></semantics></math></p>
  1176.  
  1177. <p>And that&#8217;s what Weil guessed, and eventually proved!   </p>
  1178.  
  1179. <p><strong>Weil&#8217;s Theorem.</strong>  Given a smooth algebraic curve of genus <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>g</mi></mrow><annotation encoding='application/x-tex'>g</annotation></semantics></math> defined over <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x1D53D;</mi> <mi>p</mi></msub></mrow><annotation encoding='application/x-tex'>\mathbb{F}_p</annotation></semantics></math>, its number of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x1D53D;</mi> <mi>q</mi></msub></mrow><annotation encoding='application/x-tex'>\mathbb{F}_q</annotation></semantics></math>-points where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>q</mi><mo>=</mo><msup><mi>p</mi> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>q = p^n</annotation></semantics></math> is</p>
  1180.  
  1181. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><msup><mi>p</mi> <mi>n</mi></msup><mo>&#x02212;</mo><msubsup><mi>&#x003B1;</mi> <mn>1</mn> <mi>n</mi></msubsup><mo>&#x02212;</mo><mi>&#x022EF;</mi><mo>&#x02212;</mo><msubsup><mi>&#x003B1;</mi> <mrow><mn>2</mn><mi>g</mi></mrow> <mi>n</mi></msubsup><mo>+</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'>   p^n &#x2d; \alpha_1^n &#x2d; \cdots &#x2d; \alpha_{2g}^n + 1 </annotation></semantics></math></p>
  1182.  
  1183. <p>where all the <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003B1;</mi> <mi>i</mi></msub><mo>&#x02208;</mo><mi>&#x02102;</mi></mrow><annotation encoding='application/x-tex'>\alpha_i \in \mathbb{C}</annotation></semantics></math> have <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">&#x0007C;</mo><msub><mi>&#x003B1;</mi> <mi>i</mi></msub><mo stretchy="false">&#x0007C;</mo><mo>=</mo><msqrt><mi>p</mi></msqrt></mrow><annotation encoding='application/x-tex'>|\alpha_i| = \sqrt{p}</annotation></semantics></math>.   </p>
  1184.  
  1185. <p>So, instead of just two &#8216;correction terms&#8217;, there are <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mn>2</mn><mi>g</mi></mrow><annotation encoding='application/x-tex'>2g</annotation></semantics></math> of them.  </p>
  1186.  
  1187. <p>It took a lot of work for Weil to <em>prove</em> his theorem: even after getting the basic strategy, he had to redo the foundations of algebraic geometry, generalizing a lot of stuff from the complex numbers to finite fields.  As he later wrote:</p>
  1188.  
  1189. <blockquote>
  1190.  <p>I could see that, to ensure the validity of the Italian
  1191. methods in characteristic <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>p</mi></mrow><annotation encoding='application/x-tex'>p</annotation></semantics></math>, all the foundations would have to be redone, but the work of van der Waerden, together with that of the topologists, allowed me to believe that it would not be beyond my strength.</p>
  1192. </blockquote>
  1193.  
  1194. <p>I don&#8217;t want to talk about his proof yet.  For that I highly recommend this paper, which is where I&#8217;m borrowing the quotes from:</p>
  1195.  
  1196. <ul>
  1197. <li>James Milne, <a href="https://www.jmilne.org/math/xnotes/pRH.html">The Riemann Hypothesis over Finite Fields: from Weil to the present day</a>, in <em>The Legacy of Bernhard Riemann after One Hundred and Fifty Years</em>, eds. Lizhen Ji, Frans Oort, Shing-Tung Yau, <strong>ALM 35</strong>, 2015, pp. 487&#8211;565. </li>
  1198. </ul>
  1199.  
  1200. <p>Instead, today I just want to give a rough intuitive idea of what&#8217;s going on.  This will be vague, verging on mystical.   I can come back later and firm it up.  </p>
  1201.  
  1202. <p>I&#8217;ll illustrate what I want to say with an elliptic curve, but the same idea works for a curve of any genus.</p>
  1203.  
  1204. <p>An elliptic curve over <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x02102;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{C}</annotation></semantics></math> can always be gotten by taking a parallelogram in the complex plane and identifying opposite edges.   For simplicity let&#8217;s consider a square.  When we identify its opposite edges, the resulting torus is the disjoint union of a point, two open intervals, and an open square:</p>
  1205.  
  1206. <p><img width = "200" src = "http://math.ucr.edu/home/baez/mathematical/elliptic_curve_R.png" alt = ""/></p>
  1207.  
  1208. <p>So, if we were trying to count the points in the torus &#8212; a futile quest, since there are uncountably many &#8212; we might guess the answer is </p>
  1209.  
  1210. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mo stretchy="false">&#x0007C;</mo><msup><mi>&#x0211D;</mi> <mn>2</mn></msup><mo stretchy="false">&#x0007C;</mo><mo>+</mo><mo stretchy="false">&#x0007C;</mo><msup><mi>&#x0211D;</mi> <mn>1</mn></msup><mo stretchy="false">&#x0007C;</mo><mo>+</mo><mo stretchy="false">&#x0007C;</mo><msup><mi>&#x0211D;</mi> <mn>1</mn></msup><mo stretchy="false">&#x0007C;</mo><mo>+</mo><mo stretchy="false">&#x0007C;</mo><msup><mi>&#x0211D;</mi> <mn>0</mn></msup><mo stretchy="false">&#x0007C;</mo></mrow><annotation encoding='application/x-tex'>  |\mathbb{R}^2| + |\mathbb{R}^1| + |\mathbb{R}^1| + |\mathbb{R}^0 | </annotation></semantics></math></p>
  1211.  
  1212. <p>and with luck this might equal</p>
  1213.  
  1214. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mo stretchy="false">&#x0007C;</mo><mi>&#x0211D;</mi><msup><mo stretchy="false">&#x0007C;</mo> <mn>2</mn></msup><mo>+</mo><mo stretchy="false">&#x0007C;</mo><mi>&#x0211D;</mi><mo stretchy="false">&#x0007C;</mo><mo>+</mo><mo stretchy="false">&#x0007C;</mo><mi>&#x0211D;</mi><mo stretchy="false">&#x0007C;</mo><mo>+</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'>   |\mathbb{R}|^2 + |\mathbb{R}| + |\mathbb{R}| + 1 </annotation></semantics></math></p>
  1215.  
  1216. <p>Now there actually <em>is</em> a reasonable choice of the value for <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">&#x0007C;</mo><mi>&#x0211D;</mi><mo stretchy="false">&#x0007C;</mo></mrow><annotation encoding='application/x-tex'>|\mathbb{R}| </annotation></semantics></math>.   Namely, -1.   That may seem very weird, but it&#8217;s the right choice in Schanuel&#8217;s approach to Euler characteristic.  In particular, this choice gives</p>
  1217.  
  1218. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mo stretchy="false">(</mo><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mn>1</mn><msup><mo stretchy="false">)</mo> <mn>2</mn></msup><mo>+</mo><mo stretchy="false">(</mo><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mn>1</mn><mo stretchy="false">)</mo><mo>+</mo><mo stretchy="false">(</mo><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mn>1</mn><mo stretchy="false">)</mo><mo>+</mo><mn>1</mn><mo>=</mo><mn>0</mn></mrow><annotation encoding='application/x-tex'>   (&#x2d;1)^2 + (&#x2d;1) + (&#x2d;1) + 1 = 0 </annotation></semantics></math></p>
  1219.  
  1220. <p>which is the correct Euler characteristic of the torus.   In general if you take a nice enough compact space and chop it into disjoint &#8216;open cells&#8217; that are copies of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>&#x0211D;</mi> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>\mathbb{R}^n</annotation></semantics></math>, this method gives the Euler characteristic.  You can find lots more details here:</p>
  1221.  
  1222. <p>&#x02022; John Baez, <a href="http://math.ucr.edu/home/baez/counting/">The mysteries of counting: Euler characteristic and homotopy cardinality</a>.</p>
  1223.  
  1224. <p>Now, that may seem weird enough, but another weird thing is that we&#8217;re doing <em>complex</em> algebraic geometry, so you might think the real numbers shouldn&#8217;t be in the story at all!   But somehow they are lurking there.  For example, algebraic geometers call an elliptic curve <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>E</mi></mrow><annotation encoding='application/x-tex'>E</annotation></semantics></math> over the complex numbers a <em>curve</em>, because it&#8217;s 1-dimensional as a complex variety, but they still like to use its cohomology groups:</p>
  1225.  
  1226. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mtable displaystyle="false" rowspacing="0.5ex" columnalign="center center left"><mtr><mtd><msup><mi>H</mi> <mn>2</mn></msup><mo stretchy="false">(</mo><mi>E</mi><mo>,</mo><mi>&#x0211A;</mi><mo stretchy="false">)</mo></mtd> <mtd><mo>=</mo></mtd> <mtd><mi>&#x0211A;</mi></mtd></mtr> <mtr><mtd><msup><mi>H</mi> <mn>1</mn></msup><mo stretchy="false">(</mo><mi>E</mi><mo>,</mo><mi>&#x0211A;</mi><mo stretchy="false">)</mo></mtd> <mtd><mo>=</mo></mtd> <mtd><msup><mi>&#x0211A;</mi> <mn>2</mn></msup></mtd></mtr> <mtr><mtd><msup><mi>H</mi> <mn>0</mn></msup><mo stretchy="false">(</mo><mi>E</mi><mo>,</mo><mi>&#x0211A;</mi><mo stretchy="false">)</mo></mtd> <mtd><mo>=</mo></mtd> <mtd><mi>&#x0211A;</mi></mtd></mtr></mtable></mrow><annotation encoding='application/x-tex'>  \begin{array}{ccl}
  1227. H^2(E, \mathbb{Q}) &amp;=&amp; \mathbb{Q} \\
  1228. H^1(E, \mathbb{Q}) &amp;=&amp; \mathbb{Q}^2 \\
  1229. H^0(E, \mathbb{Q}) &amp;=&amp; \mathbb{Q}
  1230. \end{array}
  1231. </annotation></semantics></math></p>
  1232.  
  1233. <p>which admit that topologically it&#8217;s a 2-dimensional thing that can be built out of a 2-dimensional cell, two 1-dimensional cells and one 0-dimensional cell.  </p>
  1234.  
  1235. <p>Of course everyone in algebraic geometry is used to this.  But to emphasize the weirdness, we could draw our elliptic curve like this:</p>
  1236.  
  1237. <p><img width = "200" src = "http://math.ucr.edu/home/baez/mathematical/elliptic_curve_C.png" alt = ""/></p>
  1238.  
  1239. <p>showing that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x0211D;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{R}</annotation></semantics></math> appears as the &#8216;square root&#8217; of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x02102;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{C}</annotation></semantics></math>.   </p>
  1240.  
  1241. <p>The reason I&#8217;m making such a big deal out of this is that Weil&#8217;s job was to figure out how all this works with <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x1D53D;</mi> <mi>q</mi></msub></mrow><annotation encoding='application/x-tex'>\mathbb{F}_q</annotation></semantics></math> replacing <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x02102;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{C}</annotation></semantics></math>.   There&#8217;s really no field that deserves to be called <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msubsup><mi>&#x1D53D;</mi> <mi>q</mi> <mrow><mn>1</mn><mo stretchy="false">/</mo><mn>2</mn></mrow></msubsup></mrow><annotation encoding='application/x-tex'>\mathbb{F}_q^{1/2}</annotation></semantics></math>, in general (although you could argue there is when <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x1D53D;</mi> <mi>q</mi></msub></mrow><annotation encoding='application/x-tex'>\mathbb{F}_q</annotation></semantics></math> is a quadratic extension of some other field).   But we could still try to guess the number of points in an elliptic curve over <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x1D53D;</mi> <mi>q</mi></msub></mrow><annotation encoding='application/x-tex'>\mathbb{F}_q</annotation></semantics></math> based on these wacky ideas, like this:</p>
  1242.  
  1243. <p><img width = "200" src = "http://math.ucr.edu/home/baez/mathematical/elliptic_curve_F_q.png" alt = ""/></p>
  1244.  
  1245. <p>This suggests the answer</p>
  1246.  
  1247. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>q</mi><mo>+</mo><msqrt><mi>q</mi></msqrt><mo>+</mo><msqrt><mi>q</mi></msqrt><mo>+</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'>   q + \sqrt{q} + \sqrt{q} + 1 </annotation></semantics></math></p>
  1248.  
  1249. <p>or if <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>q</mi><mo>=</mo><msup><mi>p</mi> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>q = p^n</annotation></semantics></math>, </p>
  1250.  
  1251. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><msup><mi>p</mi> <mi>n</mi></msup><mo>+</mo><msup><mi>p</mi> <mrow><mi>n</mi><mo stretchy="false">/</mo><mn>2</mn></mrow></msup><mo>+</mo><msup><mi>p</mi> <mrow><mi>n</mi><mo stretchy="false">/</mo><mn>2</mn></mrow></msup><mo>+</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'>  p^n + p^{n/2} + p^{n/2} + 1 </annotation></semantics></math></p>
  1252.  
  1253. <p>But this is wrong.  </p>
  1254.  
  1255. <p>It&#8217;s not surprising that this stupid guess is wrong; what&#8217;s surprising is that it&#8217;s not completely off the mark!   The right answer is</p>
  1256.  
  1257. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><msup><mi>p</mi> <mi>n</mi></msup><mo>&#x02212;</mo><msup><mi>&#x003B1;</mi> <mi>n</mi></msup><mo>&#x02212;</mo><msup><mi>&#x003B2;</mi> <mi>n</mi></msup><mo>+</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'> p^n &#x2d; \alpha^n &#x2d; \beta^n + 1 </annotation></semantics></math></p>
  1258.  
  1259. <p>for some <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003B1;</mi><mo>,</mo><mi>&#x003B2;</mi></mrow><annotation encoding='application/x-tex'>\alpha, \beta</annotation></semantics></math> with <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">&#x0007C;</mo><mi>&#x003B1;</mi><mo stretchy="false">&#x0007C;</mo><mo>=</mo><mo stretchy="false">&#x0007C;</mo><mi>&#x003B2;</mi><mo stretchy="false">&#x0007C;</mo><mo>=</mo><msup><mi>p</mi> <mrow><mn>1</mn><mo stretchy="false">/</mo><mn>2</mn></mrow></msup></mrow><annotation encoding='application/x-tex'>|\alpha| = |\beta| = p^{1/2}</annotation></semantics></math>.</p>
  1260.  
  1261. <p>So, we have some numbers <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003B1;</mi></mrow><annotation encoding='application/x-tex'>\alpha</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003B2;</mi></mrow><annotation encoding='application/x-tex'>\beta</annotation></semantics></math> saying that the 1-dimensional pieces of our elliptic curve have more &#8216;personality&#8217; than the stupid guess predicts.  These numbers have the same absolute value as the stupid guess predicts, but they also have a <em>complex phase</em> depending on our curve. </p>
  1262.  
  1263. <p>We also have some minus signs that aren&#8217;t in the stupid guess, familiar from Schanuel&#8217;s theory of Euler characteristic.  Somehow the 1-dimensional pieces of our curve don&#8217;t <em>add</em> points, they <em>subtract</em> them!</p>
  1264.  
  1265. <p>All this may sound too wacky to be worth thinking about, but in fact some ideas like this turn out to work not just for curves, but also for higher-dimensional algebraic varieties.  That&#8217;s what the full-fledged Weil Conjectures say!  </p>
  1266.  
  1267. <p>Namely, suppose we have a smooth <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>d</mi></mrow><annotation encoding='application/x-tex'>d</annotation></semantics></math>-dimensional projective algebraic variety <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>V</mi></mrow><annotation encoding='application/x-tex'>V</annotation></semantics></math> defined by polynomials with integer coefficients, and we want to count its points over <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x1D53D;</mi> <mi>q</mi></msub></mrow><annotation encoding='application/x-tex'>\mathbb{F}_q</annotation></semantics></math>, where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>q</mi><mo>=</mo><msup><mi>p</mi> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>q = p^n</annotation></semantics></math>.  Then we can chop it into very abstract &#8216;pieces&#8217; of &#8216;homological dimension&#8217; <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mn>0</mn><mo>,</mo><mn>1</mn><mo>,</mo><mi>&#x02026;</mi><mo>,</mo><mn>2</mn><mi>d</mi></mrow><annotation encoding='application/x-tex'>0, 1, \dots , 2d</annotation></semantics></math>.  Note the dimension doubling here: for example, when <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>d</mi><mo>=</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'>d = 1</annotation></semantics></math> we have a <em>curve</em>, but this has a piece of homological dimension <em>two</em>, as shown in the pictures above.  </p>
  1268.  
  1269. <p>In general, each piece of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>V</mi></mrow><annotation encoding='application/x-tex'>V</annotation></semantics></math> having homological dimension <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>k</mi></mrow><annotation encoding='application/x-tex'>k</annotation></semantics></math> will contribute</p>
  1270.  
  1271. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mo>&#x000B1;</mo><msup><mi>&#x003B1;</mi> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>   \pm \alpha^n </annotation></semantics></math></p>
  1272.  
  1273. <p>to the number of points, where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">&#x0007C;</mo><mi>&#x003B1;</mi><mo stretchy="false">&#x0007C;</mo><mo>=</mo><msup><mi>p</mi> <mrow><mi>k</mi><mo stretchy="false">/</mo><mn>2</mn></mrow></msup></mrow><annotation encoding='application/x-tex'>|\alpha| = p^{k/2}</annotation></semantics></math> and the sign depends on whether <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>k</mi></mrow><annotation encoding='application/x-tex'>k</annotation></semantics></math> is even or odd.   To get the total number of points of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>V</mi></mrow><annotation encoding='application/x-tex'>V</annotation></semantics></math>, we just add up these contributions.  </p>
  1274.  
  1275. <p>In particular, there will be one piece of the top dimension, and I&#8217;m pretty sure this always contributes <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>p</mi> <mi>d</mi></msup></mrow><annotation encoding='application/x-tex'>p^d</annotation></semantics></math> to the number of points.  Then there are oscillating &#8216;correction terms&#8217; that grow like <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>p</mi> <mrow><mi>d</mi><mo>&#x02212;</mo><mfrac><mn>1</mn><mn>2</mn></mfrac></mrow></msup><mo>,</mo><msup><mi>p</mi> <mrow><mi>d</mi><mo>&#x02212;</mo><mn>1</mn></mrow></msup><mo>,</mo></mrow><annotation encoding='application/x-tex'>p^{d &#x2d; \frac{1}{2}}, p^{d&#x2d;1},</annotation></semantics></math> and so on, coming from the lower-dimensional pieces.</p>
  1276.  
  1277. <p>These &#8216;pieces&#8217; usually aren&#8217;t so vividly geometrical as I&#8217;ve tried to made them seem in the elliptic curve example.  To get your hands on them you need to use cohomology theory.   Grothendieck became obsessed with trying to understand them, and he called them <a href = "https://en.wikipedia.org/wiki/Motive_(algebraic_geometry)#Introduction">&#8216;motives&#8217;</a>.  They&#8217;re quite amazing entities, since as we&#8217;ve seen they have dimensions that are <i>half-integer</i> multiples of the usual dimensions that varieties can have, and their &#8216;number of points&#8217; can be a <i>complex number</i> &#8212; although when put together to form a variety, these complex numbers always add up to give a natural number.  They remind me a bit of quantum mechanics, where you often compute real-valued observable quantities as a sum of complex numbers, and we have lots of oscillating &#8216;phases&#8217;.  This analogy could be fleshed out in quite a bit more detail.</p>
  1278.  
  1279. <p>Grothendieck never fully succeeded in clarifying his thoughts on motives, and much remains mysterious about them &#8212; though also a lot is known.  In particular, he never finished proving the Weil Conjectures using his line of thinking!  He proved a lot, but he never showed these complex numbers <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003B1;</mi></mrow><annotation encoding='application/x-tex'>\alpha</annotation></semantics></math> have the absolute values that the Weil Conjectures predict.  So he never really worked out the growth rates of these &#8216;correction terms&#8217; I keep talking about.  He reduced this problem to what are now called the <a href="https://en.wikipedia.org/wiki/Standard_conjectures_on_algebraic_cycles">&#8216;Standard Conjectures&#8217;</a>.  These can be seen as conjectures about motives.  They are absolutely fundamental to algebraic geometry.  But nobody has ever managed to prove them!  Deligne finished proving the Weil Conjectures in a different way.</p>
  1280.  
  1281. <p>I would like to say more about all this someday.  But for now let&#8217;s just take stock of where we are.   I started talking about the Riemann Hypothesis, but then I switched to a simpler version, the Weil Conjectures.  In both the problem is understanding the oscillating &#8216;correction terms&#8217; to a naive way of counting something.  I sketched how in the Weil Conjectures, where we are trying to count points on a variety, these correction terms come from lower-dimensional &#8216;pieces&#8217; of the variety, called motives.  So, we can hope that in the Riemann Hypothesis something similar is going on.</p>
  1282.  
  1283. <p>But I have not said anything about how the Riemann Hypothesis is connected to the Weil Conjectures.   What sort of &#8216;points&#8217; on what sort of thing are we trying to count in the Riemann Hypothesis?    How might we chop this thing up into generalized &#8216;motives&#8217; of some sort?   There&#8217;s a lot known about this, but much more remains unknown.   We can hope, though, that this thing &#8212; whatever it is &#8212; is some sort of space such that <i>integers</i> act like functions on this space.   We can also hope that this thing is some sort of generalized &#8216;curve&#8217;, built from a piece of homological dimension 2, a piece of homological dimension 0, and infinitely many pieces of homological dimension 1, which correspond to the nontrivial zeros of the Riemann zeta function.  The fact that these pieces have homological dimension 1 should explain why these zeros have real part 1/2.</p>
  1284.  
  1285. <p>I also have not said anything about how Weil proved the Weil Conjectures for curves, or how Grothendieck almost proved them for higher-dimensional algebraic varieties.  As I mentioned, Weil had to redo the foundations of algebraic geometry to handle the case of curves &#8212; and Grothendieck had to redo them over again, in a deeper way, to handle the more general case.  People trying to prove the Riemann Hypothesis by continuing the same strategy feel the need to redo the foundations yet again, and that&#8217;s where things get <em>really</em> exciting.</p>
  1286.  
  1287. <p>Indeed, the more I learn about this, the more in awe I am of how much mathematics has arisen, directly or indirectly, from the Riemann Hypothesis &#8212; and how much more could still come out of it.</p>
  1288.  
  1289.      </div>
  1290.    </content>
  1291.  </entry>
  1292.  <entry>
  1293.    <title type="html">The Riemann Hypothesis (Part 2)</title>
  1294.    <link rel="alternate" type="application/xhtml+xml" href="https://golem.ph.utexas.edu/category/2019/09/the_riemann_hypothesis_part_2.html" />
  1295.    <updated>2019-09-13T03:13:22Z</updated>
  1296.    <published>2019-09-10T09:01:28+00:00</published>
  1297.    <id>tag:golem.ph.utexas.edu,2019:%2Fcategory%2F3.3141</id>
  1298.    <summary type="text">A baby version of the Riemann Hypothesis: Hasse's theorem on elliptic curves.</summary>
  1299.    <author>
  1300.      <name>john</name>
  1301.      <uri>http://math.ucr.edu/home/baez/</uri>
  1302.      <email>[email protected]</email>
  1303.    </author>
  1304.    <category term="Number Theory" />
  1305.    <content type="xhtml" xml:base="https://golem.ph.utexas.edu/category/2019/09/the_riemann_hypothesis_part_2.html">
  1306.      <div xmlns="http://www.w3.org/1999/xhtml">
  1307. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  1308.  
  1309. <p>Now let&#8217;s dig a tiny bit deeper into the Riemann Hypothesis, and the magnificent developments in algebraic geometry it has inspired.   My desire to explain this all rather simply is making the story move more slowly than planned, but I guess that&#8217;s okay. </p>
  1310.  
  1311. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  1312.  
  1313. <p>Last time I sketched how the function that counts primes <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x02264;</mo><mi>x</mi></mrow><annotation encoding='application/x-tex'>\le x</annotation></semantics></math> is the sum of a nice smooth increasing function and a bunch of &#8216;correction terms&#8217;, one for each nontrivial zero of the Riemann zeta function.   These correction terms grow but also oscillate as <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>x</mi></mrow><annotation encoding='application/x-tex'>x</annotation></semantics></math> gets bigger.  The Riemann Hypothesis puts a precise bound on how fast they grow.   If the real part of all the nontrivial zeros is <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mn>1</mn><mo stretchy="false">/</mo><mn>2</mn></mrow><annotation encoding='application/x-tex'>1/2</annotation></semantics></math>, as this hypothesis claims, these correction terms are of order <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>x</mi> <mrow><mn>1</mn><mo stretchy="false">/</mo><mn>2</mn></mrow></msup><mspace width="0.16667em"/><mi>ln</mi><mi>x</mi></mrow><annotation encoding='application/x-tex'>x^{1/2} \, \ln x</annotation></semantics></math> for large <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>x</mi></mrow><annotation encoding='application/x-tex'>x</annotation></semantics></math>.</p>
  1314.  
  1315. <p>The double appearance of the number <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mn>1</mn><mo stretchy="false">/</mo><mn>2</mn></mrow><annotation encoding='application/x-tex'>1/2</annotation></semantics></math> here is no coincidence!  If the Riemann Hypothesis were false, there&#8217;d be a zero with real part <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003B2;</mi><mspace width="0.16667em"/><mi>&gt;</mi><mspace width="0.16667em"/><mn>1</mn><mo stretchy="false">/</mo><mn>2</mn></mrow><annotation encoding='application/x-tex'>\beta \, &amp;gt; \, 1/2</annotation></semantics></math>, and a correction term of order <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>x</mi> <mi>&#x003B2;</mi></msup><mspace width="0.16667em"/><mi>ln</mi><mi>x</mi></mrow><annotation encoding='application/x-tex'>x^\beta \,\ln x</annotation></semantics></math>.</p>
  1316.  
  1317. <p>I find this a nice preliminary explanation of what the Riemann Hypothesis <em>means</em>, but a completely terrible explanation of <em>why it should be true</em>.  </p>
  1318.  
  1319. <p>In struggling to understand this, some of the best algebraic geometers of the last century studied and finally proved a simplified version of the Riemann Hypothesis called the Weil Conjectures.  In this simplified version, which deals with some <em>other</em> zeta functions, they found a geometrical <em>reason</em> why the zeros should lie where they do.  </p>
  1320.  
  1321. <p>So, let&#8217;s talk about Weil Conjectures.  I&#8217;ll try to explain what they&#8217;re about with the bare minimum of machinery.   </p>
  1322.  
  1323. <p>Suppose we have some polynomial equations with integer coefficients in a bunch of variables.   For any power <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>q</mi><mo>=</mo><msup><mi>p</mi> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>q = p^n</annotation></semantics></math> of any prime number <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>p</mi></mrow><annotation encoding='application/x-tex'>p</annotation></semantics></math> there&#8217;s a unique field <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x1D53D;</mi> <mi>q</mi></msub></mrow><annotation encoding='application/x-tex'>\mathbb{F}_q</annotation></semantics></math> with <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>q</mi></mrow><annotation encoding='application/x-tex'>q</annotation></semantics></math> elements.  We can count the solutions to our equations where our variables lie in this field.  The answer will depend on <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>n</mi></mrow><annotation encoding='application/x-tex'>n</annotation></semantics></math>.</p>
  1324.  
  1325. <p>For concreteness let&#8217;s try a simple example, suggested by <a href="https://math.stackexchange.com/questions/3346902/counting-points-on-an-elliptic-curve">Jyrki Lahtonen</a>.  We&#8217;ll use one equation in two variables:</p>
  1326.  
  1327. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><msup><mi>y</mi> <mn>2</mn></msup><mo>+</mo><mi>y</mi><mo>=</mo><msup><mi>x</mi> <mn>3</mn></msup><mo>+</mo><mi>x</mi></mrow><annotation encoding='application/x-tex'>  y^2 + y = x^3 + x </annotation></semantics></math></p>
  1328.  
  1329. <p>Here&#8217;s how the number of solutions in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x1D53D;</mi> <mi>q</mi></msub></mrow><annotation encoding='application/x-tex'>\mathbb{F}_q</annotation></semantics></math> depends on <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>n</mi></mrow><annotation encoding='application/x-tex'>n</annotation></semantics></math>:</p>
  1330.  
  1331. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mtable displaystyle="false" rowspacing="0.5ex" columnalign="right right right"><mtr><mtd><mi>n</mi></mtd> <mtd><mi>q</mi><mo>=</mo><msup><mi>p</mi> <mi>n</mi></msup><mspace width="-0.16667em"/></mtd> <mtd><mspace width="0.27778em"/><mspace width="0.27778em"/><mi>number</mi><mspace width="0.27778em"/><mi>of</mi><mspace width="0.27778em"/><mi>solutions</mi></mtd></mtr> <mtr><mtd><mn>1</mn></mtd> <mtd><mn>2</mn></mtd> <mtd><mn>4</mn></mtd></mtr> <mtr><mtd><mn>2</mn></mtd> <mtd><mn>4</mn></mtd> <mtd><mn>4</mn></mtd></mtr> <mtr><mtd><mn>3</mn></mtd> <mtd><mn>8</mn></mtd> <mtd><mn>4</mn></mtd></mtr> <mtr><mtd><mn>4</mn></mtd> <mtd><mn>16</mn></mtd> <mtd><mn>24</mn></mtd></mtr> <mtr><mtd><mn>5</mn></mtd> <mtd><mn>32</mn></mtd> <mtd><mn>24</mn></mtd></mtr> <mtr><mtd><mn>6</mn></mtd> <mtd><mn>64</mn></mtd> <mtd><mn>64</mn></mtd></mtr> <mtr><mtd><mn>7</mn></mtd> <mtd><mn>128</mn></mtd> <mtd><mn>144</mn></mtd></mtr> <mtr><mtd><mn>8</mn></mtd> <mtd><mn>256</mn></mtd> <mtd><mn>224</mn></mtd></mtr> <mtr><mtd><mn>9</mn></mtd> <mtd><mn>512</mn></mtd> <mtd><mn>544</mn></mtd></mtr> <mtr><mtd><mn>10</mn></mtd> <mtd><mn>1024</mn></mtd> <mtd><mn>1024</mn></mtd></mtr> <mtr><mtd><mn>11</mn></mtd> <mtd><mn>2048</mn></mtd> <mtd><mn>1984</mn></mtd></mtr> <mtr><mtd><mn>12</mn></mtd> <mtd><mn>4096</mn></mtd> <mtd><mn>4224</mn></mtd></mtr> <mtr><mtd/></mtr></mtable></mrow><annotation encoding='application/x-tex'> \begin{array}{rrr}
  1332. n &amp; q = p^n \! &amp; \;\; number \; of \; solutions \\
  1333. 1 &amp; 2 &amp; 4 \\
  1334. 2 &amp; 4 &amp; 4 \\
  1335. 3 &amp; 8 &amp; 4 \\
  1336. 4 &amp; 16 &amp; 24 \\
  1337. 5 &amp; 32 &amp; 24 \\
  1338. 6 &amp; 64 &amp; 64 \\
  1339. 7 &amp; 128 &amp; 144 \\
  1340. 8 &amp; 256 &amp; 224 \\
  1341. 9 &amp; 512 &amp; 544 \\
  1342. 10 &amp; 1024 &amp; 1024 \\
  1343. 11 &amp; 2048 &amp; 1984 \\
  1344. 12 &amp; 4096 &amp; 4224 \\
  1345. \end{array}
  1346. </annotation></semantics></math></p>
  1347.  
  1348. <p>I did this by hand using some tricks, but I&#8217;m quite error-prone so please check this if you can.  </p>
  1349.  
  1350. <p>We instantly see some interesting patterns.  The last digit of the number of solutions is always 4 &#8212; but that&#8217;s too weird to be helpful right now.  Also, the number of solutions seems to be growing in a roughly exponential way.   Let&#8217;s think about that.</p>
  1351.  
  1352. <p>Since we have one equation in two unknowns:</p>
  1353.  
  1354. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><msup><mi>y</mi> <mn>2</mn></msup><mo>+</mo><mi>y</mi><mo>=</mo><msup><mi>x</mi> <mn>3</mn></msup><mo>+</mo><mi>x</mi></mrow><annotation encoding='application/x-tex'>  y^2 + y = x^3 + x </annotation></semantics></math></p>
  1355.  
  1356. <p>we might expect a one-parameter family of solutions.   Here our &#8216;parameter&#8217; is an element of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x1D53D;</mi> <mi>q</mi></msub></mrow><annotation encoding='application/x-tex'>\mathbb{F}_q</annotation></semantics></math>, so we expect roughly <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>q</mi><mo>=</mo><msup><mi>p</mi> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>q = p^n</annotation></semantics></math> solutions.</p>
  1357.  
  1358. <p>This is very naive reasoning &#8212; it would make sense for <em>linear</em> equations, but we&#8217;re dealing with polynomial equations.  Still, we can take the <em>actual</em> number of solutions, and subtract off the <em>naively expected</em> number of solutions, namely <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>p</mi> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>p^n</annotation></semantics></math>, and see what&#8217;s left.   That&#8217;ll be our &#8216;correction term&#8217;:</p>
  1359.  
  1360. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mtable displaystyle="false" rowspacing="0.5ex" columnalign="right right"><mtr><mtd><mi>n</mi></mtd> <mtd><mi>correction</mi><mspace width="0.27778em"/><mi>term</mi></mtd></mtr> <mtr><mtd><mn>1</mn></mtd> <mtd><mn>2</mn></mtd></mtr> <mtr><mtd><mn>2</mn></mtd> <mtd><mn>0</mn></mtd></mtr> <mtr><mtd><mn>3</mn></mtd> <mtd><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mn>4</mn></mtd></mtr> <mtr><mtd><mn>4</mn></mtd> <mtd><mn>8</mn></mtd></mtr> <mtr><mtd><mn>5</mn></mtd> <mtd><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mn>8</mn></mtd></mtr> <mtr><mtd><mn>6</mn></mtd> <mtd><mn>0</mn></mtd></mtr> <mtr><mtd><mn>7</mn></mtd> <mtd><mn>16</mn></mtd></mtr> <mtr><mtd><mn>8</mn></mtd> <mtd><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mn>32</mn></mtd></mtr> <mtr><mtd><mn>9</mn></mtd> <mtd><mn>32</mn></mtd></mtr> <mtr><mtd><mn>10</mn></mtd> <mtd><mn>0</mn></mtd></mtr> <mtr><mtd><mn>11</mn></mtd> <mtd><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mn>64</mn></mtd></mtr> <mtr><mtd><mn>12</mn></mtd> <mtd><mn>128</mn></mtd></mtr> <mtr><mtd/></mtr></mtable></mrow><annotation encoding='application/x-tex'> \begin{array}{rr}
  1361. n &amp; correction \; term \\
  1362. 1 &amp; 2 \\
  1363. 2 &amp; 0 \\
  1364. 3 &amp; &#x2d;4 \\
  1365. 4 &amp;  8 \\
  1366. 5 &amp; &#x2d;8 \\
  1367. 6 &amp; 0 \\
  1368. 7 &amp; 16 \\
  1369. 8 &amp; &#x2d;32 \\
  1370. 9 &amp; 32 \\
  1371. 10 &amp; 0 \\
  1372. 11 &amp; &#x2d;64 \\
  1373. 12 &amp; 128 \\
  1374. \end{array}
  1375. </annotation></semantics></math></p>
  1376.  
  1377. <p>Nice!  We&#8217;re seeing powers of 2 show up.  If you look at those 0&#8217;s you&#8217;ll see there&#8217;s some sort of &#8220;period 4&#8221; thing going on.  If you write the correction terms in bunches of 4 you see this:</p>
  1378.  
  1379. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mtable displaystyle="false" rowspacing="0.5ex" columnalign="right right right right"><mtr><mtd><mn>2</mn></mtd> <mtd><mn>0</mn></mtd> <mtd><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mn>4</mn></mtd> <mtd><mn>8</mn></mtd></mtr> <mtr><mtd><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mn>8</mn></mtd> <mtd><mn>0</mn></mtd> <mtd><mn>16</mn></mtd> <mtd><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mn>32</mn></mtd></mtr> <mtr><mtd><mspace width="0.27778em"/><mn>32</mn></mtd> <mtd><mspace width="0.27778em"/><mspace width="0.27778em"/><mn>0</mn></mtd> <mtd><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mn>64</mn></mtd> <mtd><mn>128</mn></mtd></mtr> <mtr><mtd/></mtr></mtable></mrow><annotation encoding='application/x-tex'> \begin{array}{rrrr}
  1380. 2 &amp;  0 &amp; &#x2d;4 &amp; 8 \\
  1381. &#x2d;8 &amp;  0 &amp; 16 &amp; &#x2d;32 \\
  1382. \; 32 &amp; \; \; 0 &amp; &#x2d;64 &amp; 128 \\
  1383. \end{array}
  1384. </annotation></semantics></math></p>
  1385.  
  1386. <p>Each row is -4 times the previous row!</p>
  1387.  
  1388. <p>So, the number of solutions of our polynomial equations is roughly what you&#8217;d naively guess, but not exactly: there&#8217;s also a &#8216;correction term&#8217; that grows exponentially in a slower way and also oscillates.  In general there could be many such correction terms, but I chose an example where there&#8217;s just one &#8212; or as we&#8217;ll soon see, <em>two</em>, which happen to oscillate at the same rate.</p>
  1389.  
  1390. <p>The Weil Conjectures tell us how these oscillating correction terms work.</p>
  1391.  
  1392. <p>Now, the equation</p>
  1393.  
  1394. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><msup><mi>y</mi> <mn>2</mn></msup><mo>+</mo><mi>y</mi><mo>=</mo><msup><mi>x</mi> <mn>3</mn></msup><mo>+</mo><mi>x</mi></mrow><annotation encoding='application/x-tex'>  y^2 + y = x^3 + x </annotation></semantics></math></p>
  1395.  
  1396. <p>actually describes an <a href="https://en.wikipedia.org/wiki/Elliptic_curve">elliptic curve</a>.  That is, the <em>complex</em> solutions of this equation form a torus if we add one extra point, a &#8216;point at infinity&#8217;.  </p>
  1397.  
  1398. <p>The Weil Conjectures are especially simple for elliptic curves: in this case, they were conjectured by Emil Artin and proved by <a href="https://en.wikipedia.org/wiki/Hasse's_theorem_on_elliptic_curves">Helmut Hasse</a> in 1933 before Weil came along.  Here&#8217;s one way to say them, not the most fancy way:</p>
  1399.  
  1400. <p><strong>Hasse&#8217;s Theorem on Elliptic Curves.</strong>  Given a cubic equation with integer coefficients in two variables that defines an elliptic curve, the number of solutions in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x1D53D;</mi> <mi>q</mi></msub></mrow><annotation encoding='application/x-tex'>\mathbb{F}_q</annotation></semantics></math> where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>q</mi><mo>=</mo><msup><mi>p</mi> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>q = p^n</annotation></semantics></math> is</p>
  1401.  
  1402. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><msup><mi>p</mi> <mi>n</mi></msup><mo>&#x02212;</mo><msup><mi>&#x003B1;</mi> <mi>n</mi></msup><mo>&#x02212;</mo><msup><mi>&#x003B2;</mi> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>   p^n &#x2d; \alpha^n &#x2d; \beta^n </annotation></semantics></math></p>
  1403.  
  1404. <p>where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003B1;</mi><mo>,</mo><mi>&#x003B2;</mi><mo>&#x02208;</mo><mi>&#x02102;</mi></mrow><annotation encoding='application/x-tex'>\alpha, \beta \in \mathbb{C}</annotation></semantics></math> have <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">&#x0007C;</mo><mi>&#x003B1;</mi><mo stretchy="false">&#x0007C;</mo><mo>=</mo><mo stretchy="false">&#x0007C;</mo><mi>&#x003B2;</mi><mo stretchy="false">&#x0007C;</mo><mo>=</mo><msqrt><mi>p</mi></msqrt></mrow><annotation encoding='application/x-tex'>|\alpha| = |\beta| = \sqrt{p}</annotation></semantics></math>.  </p>
  1405.  
  1406. <p>Here <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>p</mi> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>p^n</annotation></semantics></math> is the naive number of solutions, while <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><msup><mi>&#x003B1;</mi> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>&#x2d;\alpha^n</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><msup><mi>&#x003B2;</mi> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>&#x2d;\beta^n</annotation></semantics></math> are the &#8216;correction terms&#8217;.   These correction terms grow exponentially like <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>p</mi> <mrow><mi>n</mi><mo stretchy="false">/</mo><mn>2</mn></mrow></msup></mrow><annotation encoding='application/x-tex'>p^{n/2}</annotation></semantics></math> but also <em>oscillate</em>. </p>
  1407.  
  1408. <p>The fact that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">&#x0007C;</mo><mi>&#x003B1;</mi><mo stretchy="false">&#x0007C;</mo><mo>=</mo><mo stretchy="false">&#x0007C;</mo><mi>&#x003B2;</mi><mo stretchy="false">&#x0007C;</mo><mo>=</mo><msqrt><mi>p</mi></msqrt></mrow><annotation encoding='application/x-tex'>|\alpha| = |\beta| = \sqrt{p}</annotation></semantics></math> is analogous to the Riemann Hypothesis, since it nails down the rate at which the correction terms grow.   Indeed it&#8217;s <em>very</em> analogous!  The Riemann Hypothesis says the number of primes grows like <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>li</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>&#x02248;</mo><mi>x</mi><mo stretchy="false">/</mo><mi>ln</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>li(x) \approx x/\ln(x)</annotation></semantics></math> plus corrections that grow like <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>x</mi> <mrow><mn>1</mn><mo stretchy="false">/</mo><mn>2</mn></mrow></msup><mi>ln</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>x^{1/2} \ln(x)</annotation></semantics></math>.   Hasse&#8217;s theorem on elliptic surves says the number of solutions grows like <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>p</mi> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>p^n</annotation></semantics></math> plus corrections that grow like <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>p</mi> <mrow><mi>n</mi><mo stretchy="false">/</mo><mn>2</mn></mrow></msup></mrow><annotation encoding='application/x-tex'>p^{n/2}</annotation></semantics></math>.   So there&#8217;s a kind of &#8216;square root sized correction&#8217; thing going on, and that&#8217;s no coincidence.</p>
  1409.  
  1410. <p>Let&#8217;s see what the Hasse&#8211;Weil Theorem says about our example.   First of all, since the number of solutions has to be <em>real</em>, it turns out we always have <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003B2;</mi><mo>=</mo><mover><mi>&#x003B1;</mi><mo>&#x000AF;</mo></mover></mrow><annotation encoding='application/x-tex'>\beta = \overline{\alpha}</annotation></semantics></math>.  So I could have said </p>
  1411.  
  1412. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>number</mi><mspace width="0.27778em"/><mi>of</mi><mspace width="0.27778em"/><mi>solutions</mi><mo>=</mo><msup><mi>p</mi> <mi>n</mi></msup><mo>&#x02212;</mo><mn>2</mn><mi>Re</mi><mo stretchy="false">(</mo><msup><mi>&#x003B1;</mi> <mi>n</mi></msup><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>  number \; of \; solutions = p^n &#x2d; 2 Re(\alpha^n) </annotation></semantics></math></p>
  1413.  
  1414. <p>Second of all, we can always figure out this mysterious number <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003B1;</mi></mrow><annotation encoding='application/x-tex'>\alpha</annotation></semantics></math> just by looking at the case <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'>n = 1</annotation></semantics></math>.   In our example we count the solutions of</p>
  1415.  
  1416. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><msup><mi>y</mi> <mn>2</mn></msup><mo>+</mo><mi>y</mi><mo>=</mo><msup><mi>x</mi> <mn>3</mn></msup><mo>+</mo><mi>x</mi></mrow><annotation encoding='application/x-tex'>  y^2 + y = x^3 + x </annotation></semantics></math> </p>
  1417.  
  1418. <p>in the field <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x1D53D;</mi> <mn>2</mn></msub></mrow><annotation encoding='application/x-tex'>\mathbb{F}_2</annotation></semantics></math>.  In this field, regardless of whether <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>x</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding='application/x-tex'>x = 0</annotation></semantics></math> or <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>x</mi><mo>=</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'>x = 1</annotation></semantics></math> we have <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>x</mi> <mn>3</mn></msup><mo>+</mo><mi>x</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding='application/x-tex'>x^3 + x = 0</annotation></semantics></math>, and regardless of whether <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>y</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding='application/x-tex'>y = 0</annotation></semantics></math> or <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>y</mi><mo>=</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'>y = 1</annotation></semantics></math> we have <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>y</mi> <mn>2</mn></msup><mo>+</mo><mi>y</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding='application/x-tex'>y^2 + y = 0</annotation></semantics></math>.  So we get 4 solutions, so in this case</p>
  1419.  
  1420. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>number</mi><mspace width="0.27778em"/><mi>of</mi><mspace width="0.27778em"/><mi>solutions</mi><mo>=</mo><msup><mn>2</mn> <mi>n</mi></msup><mo>&#x02212;</mo><mn>2</mn><mi>Re</mi><mo stretchy="false">(</mo><msup><mi>&#x003B1;</mi> <mi>n</mi></msup><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>  number \; of \; solutions = 2^n &#x2d; 2 Re(\alpha^n) </annotation></semantics></math></p>
  1421.  
  1422. <p>says that</p>
  1423.  
  1424. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mn>4</mn><mo>=</mo><mn>2</mn><mo>&#x02212;</mo><mn>2</mn><mi>Re</mi><mo stretchy="false">(</mo><mi>&#x003B1;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>  4 = 2 &#x2d; 2 Re(\alpha) </annotation></semantics></math></p>
  1425.  
  1426. <p>and thus <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Re</mi><mo stretchy="false">(</mo><mi>&#x003B1;</mi><mo stretchy="false">)</mo><mo>=</mo><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'>Re(\alpha) = &#x2d;1</annotation></semantics></math>.   On the other hand the Hasse&#8211;Weil Theorem assures us that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">&#x0007C;</mo><mi>&#x003B1;</mi><mo stretchy="false">&#x0007C;</mo><mo>=</mo><msqrt><mn>2</mn></msqrt></mrow><annotation encoding='application/x-tex'>|\alpha| = \sqrt{2}</annotation></semantics></math>.   So, we get</p>
  1427.  
  1428. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>&#x003B1;</mi><mo>=</mo><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mn>1</mn><mo>&#x000B1;</mo><mi>i</mi></mrow><annotation encoding='application/x-tex'> \alpha = &#x2d;1 \pm i </annotation></semantics></math></p>
  1429.  
  1430. <p>and if we call one of these solutions <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003B1;</mi></mrow><annotation encoding='application/x-tex'>\alpha</annotation></semantics></math> the other will be <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003B2;</mi><mo>=</mo><mover><mi>&#x003B1;</mi><mo stretchy="false">&#x000AF;</mo></mover></mrow><annotation encoding='application/x-tex'>\beta = \bar{\alpha}</annotation></semantics></math>.   We conclude that</p>
  1431.  
  1432. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>number</mi><mspace width="0.27778em"/><mi>of</mi><mspace width="0.27778em"/><mi>solutions</mi><mo>=</mo><msup><mn>2</mn> <mi>n</mi></msup><mo>&#x02212;</mo><mo stretchy="false">(</mo><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mn>1</mn><mo>+</mo><mi>i</mi><msup><mo stretchy="false">)</mo> <mi>n</mi></msup><mo>&#x02212;</mo><mo stretchy="false">(</mo><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mn>1</mn><mo>&#x02212;</mo><mi>i</mi><msup><mo stretchy="false">)</mo> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'> number \; of \; solutions = 2^n &#x2d; (&#x2d;1 + i)^n &#x2d; (&#x2d;1 &#x2d; i)^n </annotation></semantics></math></p>
  1433.  
  1434. <p>The correction terms here give the funny pattern we saw earlier.  You should be imagining a picture of how <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mn>1</mn><mo>+</mo><mi>i</mi><msup><mo stretchy="false">)</mo> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>(&#x2d;1 + i)^n</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mn>1</mn><mo>&#x02212;</mo><mi>i</mi><msup><mo stretchy="false">)</mo> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>(&#x2d;1 &#x2d; i)^n</annotation></semantics></math> spiral around in the complex plane, rotating 3/8ths of a turn each time &#8212; I drew this picture while figuring this stuff out, but I&#8217;m too lazy to draw it here.  </p>
  1435.  
  1436. <p>If you&#8217;re good at computing, you can have fun exploring other examples.  <a href="https://math.stackexchange.com/questions/2947024/elliptic-curve-with-same-number-of-point-over-two-different-fields">Jyrki Lahtonen</a> suggests </p>
  1437.  
  1438. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><msup><mi>y</mi> <mn>2</mn></msup><mo>+</mo><mi>y</mi><mo>=</mo><msup><mi>x</mi> <mn>3</mn></msup></mrow><annotation encoding='application/x-tex'> y^2+y=x^3 </annotation></semantics></math></p>
  1439.  
  1440. <p>and </p>
  1441.  
  1442. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><msup><mi>y</mi> <mn>2</mn></msup><mo>+</mo><mi>x</mi><mi>y</mi><mo>=</mo><msup><mi>x</mi> <mn>3</mn></msup><mo>+</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'> y^2+x y=x^3+1 </annotation></semantics></math></p>
  1443.  
  1444. <p>as other fun examples where the corrections conspire to make the number of solutions over <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x1D53D;</mi> <mi>q</mi></msub></mrow><annotation encoding='application/x-tex'>\mathbb{F}_q</annotation></semantics></math> with <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>q</mi><mo>=</mo><msup><mn>2</mn> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>q = 2^n</annotation></semantics></math> remain constant for low <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>n</mi></mrow><annotation encoding='application/x-tex'>n</annotation></semantics></math>.  But you can also look at other cubic equations in two variables, and other prime powers.  If you look at more complicated polynomial equations, or equations in more variables, the patterns will become more complicated &#8212; but if you subtract off the &#8216;naively expected&#8217; number of solutions, you may still be able to understand the correction terms.</p>
  1445.  
  1446. <p>Now I&#8217;m ready to extract the magnificent <em>moral</em> from the story so far &#8212; but I&#8217;m afraid the calculations I&#8217;ve done, which may help some people understand what&#8217;s going on, will have made other&#8217;s eyes glaze over.  So I&#8217;ll postpone most of the moral to next time.  </p>
  1447.  
  1448. <p>But I can&#8217;t resist saying this&#8230; I&#8217;ll explain it better next time, so don&#8217;t be worried if it makes no sense now:</p>
  1449.  
  1450. <p>It&#8217;s really better to include the &#8216;point at infinity&#8217; among the solutions to our equations: this makes the space of <em>complex</em> solutions into a torus, which is a kind of compact Riemann surface, and it makes the solutions in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x1D53D;</mi> <mi>q</mi></msub></mrow><annotation encoding='application/x-tex'>\mathbb{F}_q</annotation></semantics></math> into an elliptic curve, which is a kind of smooth projective algebraic variety.  If we count the point at infinity we get </p>
  1451.  
  1452. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>number</mi><mspace width="0.27778em"/><mi>of</mi><mspace width="0.27778em"/><mi>points</mi><mo>=</mo><msup><mi>p</mi> <mi>n</mi></msup><mo>&#x02212;</mo><msup><mi>&#x003B1;</mi> <mi>n</mi></msup><mo>&#x02212;</mo><msup><mi>&#x003B2;</mi> <mi>n</mi></msup><mo>+</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'>  number \; of \; points = p^n &#x2d; \alpha^n &#x2d; \beta^n + 1 </annotation></semantics></math></p>
  1453.  
  1454. <p>So we have a term growing like <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>p</mi> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>p^n</annotation></semantics></math>, two terms growing like <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>p</mi> <mrow><mi>n</mi><mo stretchy="false">/</mo><mn>2</mn></mrow></msup></mrow><annotation encoding='application/x-tex'>p^{n/2}</annotation></semantics></math> (but also oscillating), and a term growing like <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>p</mi> <mn>0</mn></msup></mrow><annotation encoding='application/x-tex'>p^0</annotation></semantics></math> &#8212; that is, 1.   This should remind you of how a torus can be built from a copy of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>&#x0211D;</mi> <mn>2</mn></msup></mrow><annotation encoding='application/x-tex'>\mathbb{R}^2</annotation></semantics></math>, two copies of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x0211D;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{R}</annotation></semantics></math>, and a copy of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>&#x0211D;</mi> <mn>0</mn></msup></mrow><annotation encoding='application/x-tex'>\mathbb{R}^0</annotation></semantics></math> &#8212; that is, a point.  </p>
  1455.  
  1456. <p>So, in this baby version of the Riemann Hypothesis, we are starting to see the <em>geometrical origin</em> of the oscillating correction terms, and why they behave the way they do.   All this is part of what Weil hypothesized in a much more general situation &#8212; and Grothendieck and Deligne proved!    </p>
  1457.  
  1458.      </div>
  1459.    </content>
  1460.  </entry>
  1461.  <entry>
  1462.    <title type="html">The Riemann Hypothesis (Part 1)</title>
  1463.    <link rel="alternate" type="application/xhtml+xml" href="https://golem.ph.utexas.edu/category/2019/09/the_riemann_hypothesis_part_1.html" />
  1464.    <updated>2019-09-11T15:24:09Z</updated>
  1465.    <published>2019-09-07T08:00:13+00:00</published>
  1466.    <id>tag:golem.ph.utexas.edu,2019:%2Fcategory%2F3.3140</id>
  1467.    <summary type="text">What does the Riemann Hypothesis actually mean?</summary>
  1468.    <author>
  1469.      <name>john</name>
  1470.      <uri>http://math.ucr.edu/home/baez/</uri>
  1471.      <email>[email protected]</email>
  1472.    </author>
  1473.    <category term="Number Theory" />
  1474.    <content type="xhtml" xml:base="https://golem.ph.utexas.edu/category/2019/09/the_riemann_hypothesis_part_1.html">
  1475.      <div xmlns="http://www.w3.org/1999/xhtml">
  1476. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  1477.  
  1478. <p>I&#8217;ve been trying to understand the Riemann Hypothesis a bit better.  Don&#8217;t worry, I&#8217;m not trying to <em>prove</em> it &#8212; that&#8217;s a dangerous quest.  Indeed <a href="https://twitter.com/johncarlosbaez/status/1164012845199085568">Ricardo P&#x000E9;rez-Marco</a> has a whole list of things <em>not</em> to do if you want to prove the Riemann Hypothesis, such as:</p>
  1479.  
  1480. <blockquote>
  1481.  <p>Don&#8217;t expect that the problem consists in resolving a single hard difficulty. In this kind of hard problem many enemies are on your way, well hidden, and waiting for you.</p>
  1482. </blockquote>
  1483.  
  1484. <p>and </p>
  1485.  
  1486. <blockquote>
  1487.  <p>Don&#8217;t go for it unless you have succeeded in other serious problems.  &#8220;Serious problems&#8221; means problems that have been open and well known for years.  If you think that the Riemann Hypothesis will be your first major strike, you probably deserve failure.</p>
  1488. </blockquote>
  1489.  
  1490. <p>Taken together, his pieces of advice are sufficiently discouraging that he almost could have just said &#8220;don&#8217;t try to prove the Riemann Hypothesis&#8221;.   </p>
  1491.  
  1492. <p>But trying to understand what it means, and how people have proved vaguely similar conjectures &#8212; that seems like a more reasonable hobby.</p>
  1493.  
  1494. <p>In what follows I want to keep things as simple as possible, because I&#8217;m finding, as I study this stuff, that people are generally too eager to dive into technical details before sketching out ideas in a rough way.  But I will skip over a lot of standard introductory stuff on the Riemann zeta function, since that&#8217;s easy to find.</p>
  1495.  
  1496. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  1497.  
  1498. <p>Of course the Riemann Hypothesis says that the Riemann zeta function has zeros only at negative even integers (the &#8216;trivial zeros&#8217;) and on the line <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Re</mi><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo><mo>=</mo><mn>1</mn><mo stretchy="false">/</mo><mn>2</mn></mrow><annotation encoding='application/x-tex'>Re(z) = 1/2</annotation></semantics></math> (the &#8216;nontrivial zeros&#8217;).  The function looks simple enough that it&#8217;s surprising nobody has settled this.  But still, the skeptic might ask: is solving this really worth a million dollars?  Is this problem famous just because it&#8217;s <em>hard?</em></p>
  1499.  
  1500. <p>If you dig a bit deeper you&#8217;ll see that the Riemann Hypothesis implies or is equivalent to a lot of nice statements in number theory.  These reveal a bit more about why it matters.  I&#8217;d summarize them all by saying that prime numbers are distributed as nicely as they could be.  For example, if the number of primes <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x02264;</mo><mi>n</mi></mrow><annotation encoding='application/x-tex'>\le n</annotation></semantics></math> is <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C0;</mi><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\pi(n)</annotation></semantics></math>, the Prime Number Theorem says that a pretty good approximation to <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C0;</mi><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\pi(n)</annotation></semantics></math> is </p>
  1501.  
  1502. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>li</mi><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo><mo>=</mo><msubsup><mo>&#x0222B;</mo> <mn>0</mn> <mi>n</mi></msubsup><mfrac><mi>dt</mi><mrow><mi>ln</mi><mi>t</mi></mrow></mfrac></mrow><annotation encoding='application/x-tex'> li(n) = \int_0^n \frac{dt}{\ln t} </annotation></semantics></math></p>
  1503.  
  1504. <p>More precisely, it says</p>
  1505.  
  1506. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><munder><mi>lim</mi> <mrow><mi>n</mi><mo>&#x02192;</mo><mn>&#x0221E;</mn></mrow></munder><mfrac><mrow><mi>&#x003C0;</mi><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo></mrow><mrow><mi>li</mi><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo></mrow></mfrac><mo>=</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'> \lim_{n \to \infty} \frac{\pi(n) }{li(n)} = 1 </annotation></semantics></math></p>
  1507.  
  1508. <p>But the Riemann Hypothesis says more about how good this approximation is!  The Riemann Hypothesis is equivalent to</p>
  1509.  
  1510. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mo maxsize="1.2em" minsize="1.2em">&#x0007C;</mo><mo lspace="0em" rspace="0.16667em">li</mo><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo><mo>&#x02212;</mo><mi>&#x003C0;</mi><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo><mo maxsize="1.2em" minsize="1.2em">&#x0007C;</mo><mo>&#x02264;</mo><mi>C</mi><msqrt><mi>n</mi></msqrt><mspace width="0.27778em"/><mi>ln</mi><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'> \big|\li(n) &#x2d; \pi(n)\big| \le C \sqrt{n} \; \ln(n) </annotation></semantics></math></p>
  1511.  
  1512. <p>for some <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi><mi>&gt;</mi><mn>0</mn></mrow><annotation encoding='application/x-tex'>C &amp;gt; 0</annotation></semantics></math> for all <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>n</mi></mrow><annotation encoding='application/x-tex'>n</annotation></semantics></math>.</p>
  1513.  
  1514. <p>I bet someone has given a heuristic argument for this by assuming the primes are &#8216;randomly distributed&#8217; in some reasonable way.   If so, the Riemann Hypothesis says there aren&#8217;t &#8216;unreasonably large fluctuations&#8217; in the distribution of primes.   </p>
  1515.  
  1516. <p>One can sharpen this idea to a crazy level of precision: in 1976 Schoenfeld showed the Riemann Hypothesis is equivalent to </p>
  1517.  
  1518. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mo maxsize="1.2em" minsize="1.2em">&#x0007C;</mo><mo lspace="0em" rspace="0.16667em">li</mo><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo><mo>&#x02212;</mo><mi>&#x003C0;</mi><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo><mo maxsize="1.2em" minsize="1.2em">&#x0007C;</mo><mo>&#x02264;</mo><mfrac><mn>1</mn><mrow><mn>8</mn><mi>&#x003C0;</mi></mrow></mfrac><msqrt><mi>n</mi></msqrt><mspace width="0.27778em"/><mi>ln</mi><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo><mspace width="0.27778em"/><mi>for</mi><mspace width="0.27778em"/><mi>all</mi><mi>n</mi><mo>&#x02265;</mo><mn>2657</mn></mrow><annotation encoding='application/x-tex'> \big|\li(n) &#x2d; \pi(n)\big| \le \frac{1}{8 \pi} \sqrt{n}\; \ln(n) \; for \; all n \ge 2657 </annotation></semantics></math></p>
  1519.  
  1520. <p>That&#8217;s impressive.  But I don&#8217;t think this particular statement, including the number 2657, gets us much closer to the deep inner meaning of the Riemann Hypothesis.</p>
  1521.  
  1522. <p>If you dig into how the zeros of the zeta function are connected to the distribution of primes, you soon meet <a href = "https://en.wikipedia.org/wiki/Explicit_formulae_(L-function)#Riemann's_Explicit_Formula">Riemann&#8217;s explicit formula</a>.  This is a formula for <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C0;</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\pi(x)</annotation></semantics></math> as a sum over zeros of the zeta function.  The trivial zeros give a simple approximation to <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C0;</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\pi(x)</annotation></semantics></math>, while the nontrivial zeros contribute a bunch of corrections.  Each of these corrections is an ever-growing wave-like function, whose frequency and rate of growth depends on the location of that zero!</p>
  1523.  
  1524. <p>So, we could say the prime numbers and the nontrivial zeros of the Riemann zeta function give the &#8216;particle&#8217; and &#8216;wave&#8217; pictures of the same phenomenon&#8230; where I&#8217;m alluding to ideas from quantum mechanics, and the Fourier transform.  This analogy seems to be fairly deep, and maybe I&#8217;ll say more about it sometime.</p>
  1525.  
  1526. <p>More poetically, we could say the Riemann zeta zeros reveal the &#8216;music of the primes&#8217;.  That&#8217;s one of the guiding metaphors of this book:</p>
  1527.  
  1528. <ul>
  1529. <li>Barry Mazur and William Stein, <em>Prime Numbers and the Riemann Hypothesis</em>, Cambridge U. Press, Cambridge, 2016.</li>
  1530. </ul>
  1531.  
  1532. <p>and I really recommend this book if you want to get a feeling for Riemann&#8217;s explicit formula without sinking into technicalities.</p>
  1533.  
  1534. <p>Before I show you Riemann&#8217;s explicit formula, let me show you a movie of how it works:</p>
  1535.  
  1536. <p><img src = "http://math.ucr.edu/home/baez/mathematical/prime_counting_function.gif" alt = ""/></p>
  1537.  
  1538. <p>Here <a href="http://www.dartmouth.edu/~chance/chance_news/recent_news/chance_news_10.10y.html">J. Laurie Snell, Bill Peterson, Jeanne Albert and Charles Grinstead</a> show what happens when you start with the simple approximation to <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C0;</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\pi(x)</annotation></semantics></math> and then add up the waves coming from the first 500 nontrivial zeros of the Riemann zeta function.  </p>
  1539.  
  1540. <p>That movie is really fun.  I must have watched it dozens of times by now.   And if you look carefully you&#8217;ll see some interesting things.</p>
  1541.  
  1542. <p>First, you can see a version of the <a href="https://en.wikipedia.org/wiki/Gibbs_phenomenon">Gibbs phenomenon</a>: the strong oscillations near the primes, where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C0;</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\pi(x)</annotation></semantics></math> takes a step up.  But this is something you should always expect when trying to approximate a step function with a sum of smooth waves.</p>
  1543.  
  1544. <p>More subtly, there are little &#8216;glitches&#8217; at the prime powers.  Why is that?  Well, it&#8217;s because Riemann&#8217;s explicit formula starts out life as a formula not for <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C0;</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\pi(x)</annotation></semantics></math> but another function <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003A0;</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\Pi(x)</annotation></semantics></math>.  This counts not only all primes but all prime powers <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x02264;</mo><mi>x</mi></mrow><annotation encoding='application/x-tex'>\le x</annotation></semantics></math>, but in a funny way: it counts a prime power <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>p</mi> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>p^n</annotation></semantics></math> as worth <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mn>1</mn><mo stretchy="false">/</mo><mi>n</mi></mrow><annotation encoding='application/x-tex'>1/n</annotation></semantics></math>.   So, for example, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003A0;</mi><mo stretchy="false">(</mo><mn>6</mn><mo stretchy="false">)</mo><mo>=</mo><mn>3</mn><mfrac><mn>1</mn><mn>2</mn></mfrac></mrow><annotation encoding='application/x-tex'>\Pi(6) = 3\frac{1}{2}</annotation></semantics></math> since there are 3 primes less than 6, but also the prime power <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mn>2</mn> <mn>2</mn></msup></mrow><annotation encoding='application/x-tex'>2^2</annotation></semantics></math>.</p>
  1545.  
  1546. <p>From Riemann&#8217;s explicit formula for <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003A0;</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\Pi(x)</annotation></semantics></math> you can work out one for <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C0;</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\pi(x)</annotation></semantics></math>.  But the prime powers still maintain a ghostly presence as &#8216;glitches&#8217;, which only go away in the limit where you add up all the waves.</p>
  1547.  
  1548. <p>What are these waves, exactly?  It&#8217;s easiest to give the formula for <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003A0;</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\Pi(x)</annotation></semantics></math>.   Here&#8217;s the formula:</p>
  1549.  
  1550. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>&#x003A0;</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mi>li</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>&#x02212;</mo><mi>ln</mi><mn>2</mn><mo>+</mo><msubsup><mo>&#x0222B;</mo> <mi>x</mi> <mn>&#x0221E;</mn></msubsup><mfrac><mrow><mi>d</mi><mi>t</mi></mrow><mrow><mi>t</mi><mo stretchy="false">(</mo><msup><mi>t</mi> <mn>2</mn></msup><mo>&#x02212;</mo><mn>1</mn><mo stretchy="false">)</mo><mi>ln</mi><mi>t</mi></mrow></mfrac><mo>&#x02212;</mo><munder><mo lspace="0.16667em" rspace="0.16667em">&#x02211;</mo> <mi>&#x003C1;</mi></munder><mi>li</mi><mo stretchy="false">(</mo><msup><mi>x</mi> <mi>&#x003C1;</mi></msup><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>  \Pi(x) = li(x) &#x2d; \ln 2 + \int_x^\infty \frac{d t}{t(t^2 &#x2d; 1)\ln t} &#x2d; \sum_\rho li(x^{\rho}) </annotation></semantics></math></p>
  1551.  
  1552. <p>where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C1;</mi></mrow><annotation encoding='application/x-tex'>\rho</annotation></semantics></math> are the nontrivial zeros of the Riemann zeta function.   The scary integral is due to the <em>trivial</em> zeros of the zeta function, but let&#8217;s ignore that!  I only want you to look at the sum over the nontrivial zeros.</p>
  1553.  
  1554. <p>The <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>li</mi></mrow><annotation encoding='application/x-tex'>li</annotation></semantics></math> function makes everything more complicated, so just think about <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>x</mi> <mi>&#x003C1;</mi></msup></mrow><annotation encoding='application/x-tex'>x^{\rho}</annotation></semantics></math>.
  1555. If we assume the Riemann Hypothesis, the real part of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C1;</mi></mrow><annotation encoding='application/x-tex'>\rho</annotation></semantics></math> is always <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mn>1</mn><mo stretchy="false">/</mo><mn>2</mn></mrow><annotation encoding='application/x-tex'>1/2</annotation></semantics></math>, so</p>
  1556.  
  1557. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>&#x003C1;</mi><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mo>+</mo><mi>i</mi><mi>&#x003C3;</mi></mrow><annotation encoding='application/x-tex'>  \rho = \frac{1}{2} + i \sigma </annotation></semantics></math></p>
  1558.  
  1559. <p>with <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C3;</mi></mrow><annotation encoding='application/x-tex'>\sigma</annotation></semantics></math> real, so</p>
  1560.  
  1561. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><msup><mi>x</mi> <mi>&#x003C1;</mi></msup><mo>=</mo><msup><mi>x</mi> <mrow><mn>1</mn><mo stretchy="false">/</mo><mn>2</mn></mrow></msup><msup><mi>x</mi> <mrow><mi>i</mi><mi>&#x003C3;</mi></mrow></msup></mrow><annotation encoding='application/x-tex'>   x^{\rho} =  x^{1/2} x^{ i \sigma}  </annotation></semantics></math></p>
  1562.  
  1563. <p>In short, this function grows like <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msqrt><mi>x</mi></msqrt></mrow><annotation encoding='application/x-tex'>\sqrt{x}</annotation></semantics></math> but also oscillates at a rate depending on <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C3;</mi></mrow><annotation encoding='application/x-tex'>\sigma</annotation></semantics></math>.   (You may wonder how <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003A0;</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\Pi(x)</annotation></semantics></math> gets to be <em>real</em>, but that&#8217;s because the nontrivial zeros come in complex conjugate pairs.)   </p>
  1564.  
  1565. <p>So, <em>if the Riemann Hypothesis is true</em>, we know these correction terms <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo lspace="0em" rspace="0.16667em">li</mo><mo stretchy="false">(</mo><msup><mi>x</mi> <mi>&#x003C1;</mi></msup><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\li(x^{\rho})</annotation></semantics></math> grow at a known rate, and that helps experts get good estimates on <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003A0;</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\Pi(x)</annotation></semantics></math> and then the prime counting function <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C0;</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\pi(x)</annotation></semantics></math>.   But if the Riemann Hypothesis is <em>false</em>, all this gets ruined.  There will then be zeros with real part greater than 1/2, and these will give correction terms that grow faster.</p>
  1566.  
  1567. <p>That last paragraph was extremely superficial, mainly because of my ignorance.  But there&#8217;s a reason for my ignorance: when I reached this point, I decided that this direction was not the most interesting.  </p>
  1568.  
  1569. <p>What I really wanted to know is <em>why the Riemann Hypothesis should be true</em>.   I figured that to get some sense of this, I should look at the Weil Conjectures, which are a kind of baby version of the Riemann Hypothesis.   Unlike the Riemann Hypothesis, these conjectures have actually been proved.  So we have some idea why they&#8217;re true!   </p>
  1570.  
  1571. <p>Like the Riemann Hypothesis, these conjectures describe &#8216;wave-like corrections&#8217; to a simple formula for counting something: not primes, but points on an algebraic variety over a finite field.   Again, there&#8217;s one such correction for each zero (or pole) of some kind of zeta function.  But in this case there&#8217;s an actual <em>explanation</em> for the location of the zeta function zeros!   So there&#8217;s a <em>good reason</em> that they lie where they do.   And it turns out to be quite mind-blowing.  </p>
  1572.  
  1573. <p>That&#8217;s what I <em>really</em> wanted to talk about today.   But I see that my preparatory throat-clearing has gone on so long that at least one more blog post will be required.</p>
  1574.  
  1575. <p>In the meantime, you can watch another video of how the prime counting function <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C0;</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\pi(x)</annotation></semantics></math> gets approximated by waves coming from the nontrivial zeta zeros:</p>
  1576.  
  1577. <p><img src = "http://math.ucr.edu/home/baez/mathematical/prime_counting_function_2.gif" alt = ""/></p>
  1578.  
  1579. <p>It&#8217;s interesting to me how the whole curve sways up and down.  I&#8217;m not sure what causes that.</p>
  1580.  
  1581.      </div>
  1582.    </content>
  1583.  </entry>
  1584.  <entry>
  1585.    <title type="html"> Homotopy Type Theory Electronic Seminar Talks</title>
  1586.    <link rel="alternate" type="application/xhtml+xml" href="https://golem.ph.utexas.edu/category/2019/09/homotopy_type_theory_electroni_1.html" />
  1587.    <updated>2019-09-08T08:49:30Z</updated>
  1588.    <published>2019-09-06T10:49:58+00:00</published>
  1589.    <id>tag:golem.ph.utexas.edu,2019:%2Fcategory%2F3.3139</id>
  1590.    <summary type="text">The Homotopy Type Theory Electronic Seminar Talks (HoTTEST) will be returning in Fall 2019.</summary>
  1591.    <author>
  1592.      <name>john</name>
  1593.      <uri>http://math.ucr.edu/home/baez/</uri>
  1594.      <email>[email protected]</email>
  1595.    </author>
  1596.    <category term="Homotopy type theory" />
  1597.    <content type="xhtml" xml:base="https://golem.ph.utexas.edu/category/2019/09/homotopy_type_theory_electroni_1.html">
  1598.      <div xmlns="http://www.w3.org/1999/xhtml">
  1599. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  1600.  
  1601. <p>Learn cool math without flying around making the planet hotter!   The Homotopy Type Theory Electronic Seminar Talks (HoTTEST) will be returning in Fall 2019. The speakers are:</p>
  1602.  
  1603. <ul>
  1604. <li>October 9: Andrej Bauer</li>
  1605. <li>October 23: Anders Mörtberg</li>
  1606. <li>November 6: Andrew Swan</li>
  1607. <li>November 20: Benno van den Berg</li>
  1608. <li>December 4: Christian Sattler (TBC)</li>
  1609. <li>December 11: Richard Garner</li>
  1610. </ul>
  1611.  
  1612. <p>This semester, the seminar will be meeting on alternating Wednesdays at 11:30 Eastern Time. For updates and instructions how to attend, please see</p>
  1613.  
  1614. <ul>
  1615. <li><a href="https://www.uwo.ca/math/faculty/kapulkin/seminars/hottest.html">https://www.uwo.ca/math/faculty/kapulkin/seminars/hottest.html</a></li>
  1616. </ul>
  1617.  
  1618. <p>The seminar is open to everyone, but some prior familiarity with homotopy type theory will be assumed.</p>
  1619.  
  1620.  
  1621.      </div>
  1622.    </content>
  1623.  </entry>
  1624.  <entry>
  1625.    <title type="html">The Narratives Category Theorists Tell Themselves</title>
  1626.    <link rel="alternate" type="application/xhtml+xml" href="https://golem.ph.utexas.edu/category/2019/09/the_narratives_category_theori.html" />
  1627.    <updated>2019-09-03T10:12:45Z</updated>
  1628.    <published>2019-09-03T10:51:28+00:00</published>
  1629.    <id>tag:golem.ph.utexas.edu,2019:%2Fcategory%2F3.3138</id>
  1630.    <summary type="text">Narratives of a category theorist</summary>
  1631.    <author>
  1632.      <name>david</name>
  1633.      <uri>http://www.dcorfield.pwp.blueyonder.co.uk/</uri>
  1634.      <email>[email protected]</email>
  1635.    </author>
  1636.    <category term="Philosophy" />
  1637.    <content type="xhtml" xml:base="https://golem.ph.utexas.edu/category/2019/09/the_narratives_category_theori.html">
  1638.      <div xmlns="http://www.w3.org/1999/xhtml">
  1639. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  1640.  
  1641. <p>Years ago on this blog, I was exploring the way narrative may be used to give direction to a tradition of intellectual enquiry. This eventually led to a book chapter, <a href="https://ncatlab.org/davidcorfield/show/Narrative+and+the+Rationality+of+Mathematical+Practice">Narrative and the Rationality of Mathematical Practice</a> in B. Mazur and A. Doxiades (eds), Circles Disturbed, Princeton, 2012. </p>
  1642.  
  1643. <p>Now, someone recently reading this piece has invited to me to speak at a workshop, <em>Narrative and mathematical argument</em>, listed <a href="https://www.narrative-science.org/events-narrative-science-project-workshops.html">here</a>. Reflecting on what I might discuss there, I settled on the following:</p>
  1644.  
  1645. <blockquote>
  1646.  <p>The narratives category theorists tell themselves </p>
  1647.  
  1648. <p>Category theory is an attempt to provide general tools for all of mathematics. Its history, dating back to the 1940s, is characterised by ambitious attempts to reformulate branches of mathematics and even mathematics as a whole. It has since moved on to influence theoretical computer science and mathematical physics. Resistance to this movement over the years has taken the form of accusations of engaging in abstraction for abstraction&#8217;s sake. Here we explore the role of narrative in forming the self-identity of category theorists.</p>
  1649. </blockquote>
  1650.  
  1651. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  1652.  
  1653. <p>Years of hanging out around this place have given me plenty to talk about, but perhaps people have some particular insights they&#8217;d care to share. </p>
  1654.  
  1655. <p>I know some would rather avoid direct identification as a category theorist, instead describing themselves indirectly as a mathematician/mathematical physicist/computer scientist, etc. who does research in/looks to use the tools of category theory. But as the kind of person who shows up to <a href="http://conferences.inf.ed.ac.uk/ct2019/">CT2019</a>, <a href="http://www.cs.ox.ac.uk/ACT2019/">Applied Category Theory 2019</a> or <a href="http://events.cs.bham.ac.uk/syco/4/">SYCO 4</a>, do you have story-like ways of thinking about your longer term research path? This might be in relation to achievements of historical figures of the tradition (Mac Lane, Kan, Grothendieck, Lawvere, etc.), things your supervisor told you, things you tell your students, or perhaps in relation to alternative ways of doing research in your area? </p>
  1656.  
  1657. <p>I imagine common themes will include: isolating the essence of an idea manifested across different situations; providing a common language; offering guidance for theory construction. These can be read from opening motivational paragraphs of books such as Tom&#8217;s <a href="https://arxiv.org/abs/1612.09375">Basic Category Theory</a>:</p>
  1658.  
  1659. <blockquote>
  1660.  <p>Category theory takes a bird&#8217;s eye view of mathematics. From high in the sky, details become invisible, but we can spot patterns that were impossible to detect from ground level. How is the lowest common multiple of two numbers like the direct sum of two vector spaces? What do discrete topological spaces, free groups, and fields of fractions have in common? We will discover answers to these and many similar questions, seeing patterns in mathematics that you may never have seen before.</p>
  1661. </blockquote>
  1662.  
  1663. <p>Or Emily&#8217;s <a href="http://www.math.jhu.edu/~eriehl/context.pdf">Category theory in context</a>:</p>
  1664.  
  1665. <blockquote>
  1666.  <p>Atiyah described mathematics as the &#8220;science of analogy.&#8221; In this vein, the purview of category theory is <em>mathematical analogy</em>. Category theory provides a cross-disciplinary language for mathematics designed to delineate general phenomena, which enables the transfer of ideas from one area of study to another. The category-theoretic perspective can function as a simplifying abstraction, isolating propositions that hold for formal reasons from those whose proofs require techniques particular to a given mathematical discipline.</p>
  1667. </blockquote>
  1668.  
  1669. <p>What other narrative themes are operating out there?</p>
  1670.  
  1671.      </div>
  1672.    </content>
  1673.  </entry>
  1674.  <entry>
  1675.    <title type="html">From Simplicial Sets to Categories</title>
  1676.    <link rel="alternate" type="application/xhtml+xml" href="https://golem.ph.utexas.edu/category/2019/08/from_simplicial_sets_to_catego.html" />
  1677.    <updated>2019-09-01T04:37:07Z</updated>
  1678.    <published>2019-08-31T06:49:10+00:00</published>
  1679.    <id>tag:golem.ph.utexas.edu,2019:%2Fcategory%2F3.3137</id>
  1680.    <summary type="text">I need a reference to a proof of the fact that the left adjoint of the simplicial nerve preserves finite products.</summary>
  1681.    <author>
  1682.      <name>john</name>
  1683.      <uri>http://math.ucr.edu/home/baez/</uri>
  1684.      <email>[email protected]</email>
  1685.    </author>
  1686.    <category term="Homotopy Theory" />
  1687.    <content type="xhtml" xml:base="https://golem.ph.utexas.edu/category/2019/08/from_simplicial_sets_to_catego.html">
  1688.      <div xmlns="http://www.w3.org/1999/xhtml">
  1689. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  1690.  
  1691. <p>There&#8217;s a well-known <a href="https://ncatlab.org/nlab/show/nerve#NerveOfACategory">nerve of a category</a>, which is a simplicial set.  This defines a functor</p>
  1692.  
  1693. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>N</mi><mo lspace="0.11111em">&#x0003A;</mo><mi>Cat</mi><mo>&#x02192;</mo><mi>sSet</mi></mrow><annotation encoding='application/x-tex'> N \colon Cat \to sSet </annotation></semantics></math></p>
  1694.  
  1695. <p>from the category of categories to the category of simplicial sets.  This has a left adjoint</p>
  1696.  
  1697. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>F</mi><mo lspace="0.11111em">&#x0003A;</mo><mi>sSet</mi><mo>&#x02192;</mo><mi>Cat</mi></mrow><annotation encoding='application/x-tex'> F \colon sSet \to Cat </annotation></semantics></math></p>
  1698.  
  1699. <p>and <em>this left adjoint preserves finite products</em>.</p>
  1700.  
  1701. <p>Do you know a published reference to a proof of the last fact?  A textbook explanation would be best, but a published paper would be fine too.  I don&#8217;t want you to explain the proof, because I think I understand the proof.  I just need a reference.</p>
  1702.  
  1703.  
  1704.      </div>
  1705.    </content>
  1706.  </entry>
  1707.  <entry>
  1708.    <title type="html">Turing Categories</title>
  1709.    <link rel="alternate" type="application/xhtml+xml" href="https://golem.ph.utexas.edu/category/2019/08/turing_categories.html" />
  1710.    <updated>2019-08-27T15:25:19Z</updated>
  1711.    <published>2019-08-27T16:20:12+00:00</published>
  1712.    <id>tag:golem.ph.utexas.edu,2019:%2Fcategory%2F3.3136</id>
  1713.    <summary type="text">Georgios Bakirtzis and Christian Williams discuss Hofstra and Cockett's paper on Turing categories.</summary>
  1714.    <author>
  1715.      <name>john</name>
  1716.      <uri>http://math.ucr.edu/home/baez/</uri>
  1717.      <email>[email protected]</email>
  1718.    </author>
  1719.    <category term="Computer Science" />
  1720.    <content type="xhtml" xml:base="https://golem.ph.utexas.edu/category/2019/08/turing_categories.html">
  1721.      <div xmlns="http://www.w3.org/1999/xhtml">
  1722. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  1723.  
  1724. <p><em>guest post by <strong><a href="https://bakirtzis.net">Georgios Bakirtzis</a></strong> and
  1725. <strong><a href="http://math.ucr.edu/~williams/">Christian Williams</a></strong></em></p>
  1726.  
  1727. <p>We continue the <a href="http://www.appliedcategorytheory.org/school/">Applied Category Theory
  1728. Seminar</a> with a
  1729. discussion of the paper <a href="https://www.di.ens.fr/users/longo/files/Cockett-TuringCateg.pdf">Introduction to Turing
  1730. Categories</a>
  1731. by Hofstra and Cockett. Thank you to Jonathan Gallagher for all the
  1732. great help in teaching our group, and to Daniel Cicala and Jules
  1733. Hedges for running this seminar.</p>
  1734.  
  1735. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  1736.  
  1737. <h2>Introduction</h2>
  1738.  
  1739. <p>Turing categories enable the categorical study of computability
  1740. theory, and thereby abstract and generalize the classical theory of
  1741. computable functions on the natural numbers.</p>
  1742.  
  1743. <p>A <strong>Turing category</strong> is a category <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo lspace="0em" rspace="0.16667em">C</mo></mrow><annotation encoding='application/x-tex'>\C</annotation></semantics></math> equipped with:</p>
  1744.  
  1745. <ul>
  1746. <li>cartesian products &#8211; to pair (the codes of) data and programs,</li>
  1747. <li>a notion of partiality &#8211; to represent programs (morphisms) which do
  1748. not necessarily halt,</li>
  1749. <li>and a <em>Turing object</em> <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math> &#8211; to represent the &#8220;codes&#8221; of all
  1750. programs.</li>
  1751. </ul>
  1752.  
  1753. <p>The Turing object acts as a weak exponential for all pairs of objects
  1754. in the category. While this is impossible in most &#8220;set-theoretical&#8221;
  1755. categories, it is natural in computer science, because primitive
  1756. formal languages&#8212;the &#8220;machine code&#8221; of the higher languages&#8212;are
  1757. <em>untyped</em> (really <em>one</em>-typed).</p>
  1758.  
  1759. <p>For example, the untyped <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BB;</mi></mrow><annotation encoding='application/x-tex'>\lambda</annotation></semantics></math>-calculus is represented by a
  1760. <em>reflexive object</em> <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math> in a cartesian closed category, i.e. an object
  1761. equipped with an embedding <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>app</mi><mo>:</mo><mi>A</mi><mo>&#x02192;</mo><msup><mi>A</mi> <mi>A</mi></msup></mrow><annotation encoding='application/x-tex'>app:A\to A^A</annotation></semantics></math> which sends a <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BB;</mi></mrow><annotation encoding='application/x-tex'>\lambda</annotation></semantics></math>
  1762. term <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>M</mi></mrow><annotation encoding='application/x-tex'>M</annotation></semantics></math> to its action induced by application, and a retraction <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>lam</mi><mo>:</mo><msup><mi>A</mi> <mi>A</mi></msup><mo>&#x02192;</mo><mi>A</mi><mo>,</mo></mrow><annotation encoding='application/x-tex'>lam:
  1763. A^A\to A,</annotation></semantics></math> which sends an endo-hom term <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>M</mi><mo stretchy="false">(</mo><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>M(&#x2d;)</annotation></semantics></math> to the lambda term
  1764. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BB;</mi><mi>x</mi><mo>.</mo><mi>M</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\lambda x.M(x)</annotation></semantics></math>.  The morphism <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><msub><mo>&#x02022;</mo> <mi>A</mi></msub><mo>:</mo><mo>=</mo><mi>eval</mi><mo>&#x02218;</mo><mo stretchy="false">(</mo><mi>app</mi><mo>&#x000D7;</mo><mi>A</mi><mo stretchy="false">)</mo><mo>:</mo><mi>A</mi><mo>&#x000D7;</mo><mi>A</mi><mo>&#x02192;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>\bullet_A:= eval\circ (app\times
  1765. A):A\times A\to A</annotation></semantics></math> is a <em>Turing morphism</em>, meaning that every
  1766. morphism <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi><mo>:</mo><msup><mi>A</mi> <mi>n</mi></msup><mo>&#x02192;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>f: A^n\to A</annotation></semantics></math> has a &#8220;code&#8221; <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>f</mi><mo stretchy="false">)</mo><mo>:</mo><mn>1</mn><mo>&#x02192;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>(f):1\to A</annotation></semantics></math> such that <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>f</mi><mo>=</mo><msubsup><mo>&#x02022;</mo> <mi>A</mi> <mi>n</mi></msubsup><mo>&#x02218;</mo><mo stretchy="false">(</mo><mo stretchy="false">(</mo><mi>f</mi><mo stretchy="false">)</mo><mo>&#x000D7;</mo><msup><mi>A</mi> <mi>n</mi></msup><mo stretchy="false">)</mo><mo>.</mo></mrow><annotation encoding='application/x-tex'>f =
  1767. \bullet_A^{n} \circ ((f)\times A^n).</annotation></semantics></math></p>
  1768.  
  1769. <p>Turing categories are closely connected with <em>partial combinatory
  1770. algebras</em>, magma objects with a certain form of &#8220;computational
  1771. completeness&#8221;.  The paradigmatic example is the &#8220;SK combinator
  1772. calculus&#8221;, a variable-free representation of the <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BB;</mi></mrow><annotation encoding='application/x-tex'>\lambda</annotation></semantics></math> calculus.</p>
  1773.  
  1774. <p>Turing categories and <a href="https://ncatlab.org/nlab/show/partial+combinatory+algebra">partial combinatory
  1775. algebras</a>
  1776. (PCAs) are in a certain sense equivalent, which constitutes
  1777. the main result of this work and justifies the notion of
  1778. Turing category. (This is made into a precise equivalence of
  1779. categories between relative PCAs and Turing categories over
  1780. a fixed base category in the paper <a href="https://mysite.science.uottawa.ca/phofstra/Simulations.pdf">Categorical
  1781. Simulations</a>.)</p>
  1782.  
  1783. <p>Our purpose is to introduce the reader to some basic ideas in
  1784. computability, and demonstrate how they can be expressed
  1785. categorically.</p>
  1786.  
  1787. <h2>Computability Theory</h2>
  1788.  
  1789. <p>In the early 1900s, we focused intently on determining &#8220;what can we
  1790. prove (with formal systems)?&#8221;, or analogously, &#8220;what can we compute
  1791. (with computers)?&#8221;. This simple question inspired great advances in
  1792. logic, mathematics, and computer science, and motivated their mutual
  1793. development and deepening interconnection.</p>
  1794.  
  1795. <p>Three main perspectives emerged independently in order to answer this
  1796. question:</p>
  1797.  
  1798. <ul>
  1799. <li>Alan Turing thought about &#8220;hardware&#8221;, with Turing machines;</li>
  1800. <li>Alonzo Church thought about &#8220;software&#8221;, with the <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BB;</mi></mrow><annotation encoding='application/x-tex'>\lambda</annotation></semantics></math>-calculus;
  1801. and</li>
  1802. <li>Kurt G&#x000F6;del thought about logic, with general recursive
  1803. functions.</li>
  1804. </ul>
  1805.  
  1806. <p>The Church-Turing thesis states that these are <em>equivalent</em> notions of
  1807. computation: a function <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi><mo>:</mo><mi>&#x02115;</mi><mo>&#x02192;</mo><mi>&#x02115;</mi></mrow><annotation encoding='application/x-tex'>f:\mathbb{N}\to \mathbb{N}</annotation></semantics></math> is Turing
  1808. computable iff <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi></mrow><annotation encoding='application/x-tex'>f</annotation></semantics></math> can be written as a closed <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BB;</mi></mrow><annotation encoding='application/x-tex'>\lambda</annotation></semantics></math>-term, iff <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi></mrow><annotation encoding='application/x-tex'>f</annotation></semantics></math>
  1809. is general recursive. This has led computer scientists to believe that
  1810. the concept of computability is accurately characterized by these
  1811. three equivalent notions.</p>
  1812.  
  1813. <p>Stephen Kleene, a student of Church, developed and unified
  1814. these ideas in his study of &#8220;metamathematics&#8221;, focusing on
  1815. the perspective of partial recursive functions
  1816. (<a href="https://www.elsevier.com/books/introduction-to-metamathematics/kleene/978-0-7204-2103-3">Introduction to Metamathematics &#8211;
  1817. S.C. Kleene</a>),
  1818. which are equivalent to G&#x000F6;del&#8217;s.</p>
  1819.  
  1820. <p>We can generate the class of <em>partial recursive functions</em> from basic
  1821. functions and operators, and utilize the idea of <em>G&#x000F6;del
  1822. numbering</em> to consider the natural numbers both as the space of all
  1823. <em>data</em> and all <em>programs</em>. The two main theorems which characterize an
  1824. effective enumeration of all such functions&#8212;the Universality and
  1825. Parameter theorems described below&#8212;are the original motivation for
  1826. the definition of Turing categories.</p>
  1827.  
  1828. <h3>Recursive Functions</h3>
  1829.  
  1830. <p>Computability is humbly rooted in simple arithmetic.  Using only three
  1831. kinds of primitive functions, we can build up all computable
  1832. functions, the <em>partial recursive functions</em>:</p>
  1833.  
  1834. <div class="numberedEq"><span>(1)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mtable displaystyle="false" rowspacing="0.5ex" columnalign="left left left"><mtr><mtd><mtext>constant: </mtext></mtd> <mtd><msub><mi>C</mi> <mi>a</mi></msub><mo stretchy="false">(</mo><msub><mi>x</mi> <mn>1</mn></msub><mo>,</mo><mi>&#x02026;</mi><mo>,</mo><msub><mi>x</mi> <mi>n</mi></msub><mo stretchy="false">)</mo></mtd> <mtd><mo>=</mo><mi>a</mi></mtd></mtr> <mtr><mtd><mtext>successor: </mtext></mtd> <mtd><mi>S</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mtd> <mtd><mo>=</mo><mi>x</mi><mo>+</mo><mn>1</mn></mtd></mtr> <mtr><mtd><mtext>projection: </mtext></mtd> <mtd><msubsup><mi>P</mi> <mi>i</mi> <mi>k</mi></msubsup><mo stretchy="false">(</mo><msub><mi>x</mi> <mn>1</mn></msub><mo>,</mo><mi>&#x02026;</mi><mo>,</mo><msub><mi>x</mi> <mi>k</mi></msub><mo stretchy="false">)</mo></mtd> <mtd><mo>=</mo><msub><mi>x</mi> <mi>i</mi></msub></mtd></mtr> <mtr><mtd/></mtr> <mtr><mtd/></mtr></mtable></mrow><annotation encoding='application/x-tex'>\begin{array}{lll} \text{constant: } &amp; C_a(x_1,\dots ,x_n) &amp; = a\\
  1835.        \text{successor: } &amp; S(x) &amp; = x+1\\ \text{projection: } &amp;
  1836.        P_i^k(x_1,\dots ,x_k) &amp; = x_i\\\\ \end{array}</annotation></semantics></math></div>
  1837.  
  1838. <p>The set of <em>primitive</em> recursive functions, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>R</mi></mrow><annotation encoding='application/x-tex'>R</annotation></semantics></math>, is generated by two
  1839. operators. First, we of course need composition:</p>
  1840.  
  1841. <div class="numberedEq"><span>(2)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mtable displaystyle="false" rowspacing="0.5ex" columnalign="left left"><mtr><mtd><mtext>composition: </mtext></mtd> <mtd><mo stretchy="false">(</mo><msub><mi>g</mi> <mi>i</mi></msub><mo>:</mo><msup><mi>&#x02115;</mi> <mi>k</mi></msup><mo>&#x02192;</mo><mi>&#x02115;</mi><mo stretchy="false">)</mo><mo>&#x02208;</mo><mi>R</mi><mo>&#x02227;</mo><mo stretchy="false">(</mo><mi>h</mi><mo>:</mo><msup><mi>&#x02115;</mi> <mi>n</mi></msup><mo>&#x02192;</mo><mi>&#x02115;</mi><mo stretchy="false">)</mo><mo>&#x02208;</mo><mi>R</mi></mtd></mtr> <mtr><mtd><mo>&#x02218;</mo></mtd> <mtd><mo>&#x021D2;</mo><mi>h</mi><mo>&#x02218;</mo><mo stretchy="false">(</mo><msub><mi>g</mi> <mn>1</mn></msub><mo>,</mo><mi>&#x02026;</mi><msub><mi>g</mi> <mi>n</mi></msub><mo stretchy="false">)</mo><mo lspace="0.22222em" rspace="0.22222em">&#x02255;</mo><mstyle mathvariant="bold"><mrow><msubsup><mi>S</mi> <mi>k</mi> <mi>n</mi></msubsup></mrow></mstyle><mo stretchy="false">(</mo><mi>h</mi><mo>,</mo><msub><mi>g</mi> <mn>1</mn></msub><mo>,</mo><mi>&#x02026;</mi><mo>,</mo><msub><mi>g</mi> <mi>n</mi></msub><mo stretchy="false">)</mo><mo>&#x02208;</mo><mi>R</mi><mo>.</mo></mtd></mtr></mtable></mrow><annotation encoding='application/x-tex'>\begin{array}{ll} \text{composition: } &amp; (g_i:\mathbb{N}^k\to
  1842.      \mathbb{N})\in R \wedge (h:\mathbb{N}^n\to \mathbb{N})\in R\\
  1843.      \circ &amp; \implies h\circ (g_1,\dots g_n) \eqqcolon
  1844.      \mathbf{S_k^n}(h,g_1,\dots ,g_n)\in R.  \end{array}</annotation></semantics></math></div>
  1845.  
  1846. <p>Second, to derive real computational power we need the eponymous
  1847. <em>recursion</em>: </p>
  1848.  
  1849. <div class="numberedEq"><span>(3)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mtable displaystyle="false" rowspacing="0.5ex" columnalign="left left"><mtr><mtd><mtext>recursion: </mtext></mtd> <mtd><mi>g</mi><mo>:</mo><msup><mi>&#x02115;</mi> <mi>k</mi></msup><mo>&#x02192;</mo><mi>&#x02115;</mi><mo>&#x02208;</mo><mi>R</mi><mo>&#x02227;</mo><mi>h</mi><mo>:</mo><msup><mi>&#x02115;</mi> <mrow><mi>k</mi><mo>+</mo><mn>2</mn></mrow></msup><mo>&#x02192;</mo><mi>&#x02115;</mi><mo>&#x02208;</mo><mi>R</mi></mtd></mtr> <mtr><mtd><mi>&#x003C1;</mi></mtd> <mtd><mo>&#x021D2;</mo><mstyle mathvariant="bold"><mrow><msup><mi>R</mi> <mi>k</mi></msup></mrow></mstyle><mo stretchy="false">(</mo><mi>g</mi><mo>,</mo><mi>h</mi><mo stretchy="false">)</mo><mo lspace="0.22222em" rspace="0.22222em">&#x02255;</mo><mi>f</mi><mo>&#x02208;</mo><mi>R</mi></mtd></mtr> <mtr><mtd/></mtr> <mtr><mtd/> <mtd><mi>f</mi><mo stretchy="false">(</mo><mn>0</mn><mo>,</mo><mover><mi>x</mi><mo>&#x000AF;</mo></mover><mo stretchy="false">)</mo><mo>=</mo><mi>g</mi><mo stretchy="false">(</mo><mover><mi>x</mi><mo>&#x000AF;</mo></mover><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd/> <mtd><mi>f</mi><mo stretchy="false">(</mo><mi>y</mi><mo>+</mo><mn>1</mn><mo>,</mo><mover><mi>x</mi><mo>&#x000AF;</mo></mover><mo stretchy="false">)</mo><mo>=</mo><mi>h</mi><mo stretchy="false">(</mo><mi>y</mi><mo>,</mo><mi>f</mi><mo stretchy="false">(</mo><mi>y</mi><mo>,</mo><mover><mi>x</mi><mo>&#x000AF;</mo></mover><mo stretchy="false">)</mo><mo>,</mo><mover><mi>x</mi><mo>&#x000AF;</mo></mover><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd/></mtr> <mtr><mtd/></mtr></mtable></mrow><annotation encoding='application/x-tex'>\begin{array}{ll} \text{recursion: } &amp;
  1850. g:\mathbb{N}^k\to \mathbb{N}\in R \wedge h:\mathbb{N}^{k+2}\to
  1851. \mathbb{N}\in R\\ \rho &amp; \implies \mathbf{R^k}(g,h) \eqqcolon f\in
  1852. R\\\\ &amp; f(0,\overline{x}) = g(\overline{x})\\ &amp; f(y+1,\overline{x}) =
  1853. h(y,f(y,\overline{x}),\overline{x})\\\\ \end{array}</annotation></semantics></math></div>
  1854.  
  1855. <p>This can be understood as a &#8220;for loop&#8221;&#8212;<math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>g</mi></mrow><annotation encoding='application/x-tex'>g</annotation></semantics></math> represents the
  1856. initial parameters, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>y</mi></mrow><annotation encoding='application/x-tex'>y</annotation></semantics></math> is the counter, and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>h</mi></mrow><annotation encoding='application/x-tex'>h</annotation></semantics></math> describes a
  1857. successive evaluation of the accumulated values&#8212;these are
  1858. combined into the function <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi></mrow><annotation encoding='application/x-tex'>f</annotation></semantics></math>:</p>
  1859.  
  1860. <div class="numberedEq"><span>(4)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mtable displaystyle="false" rowspacing="0.5ex" columnalign="left"><mtr><mtd><mi>f</mi><mo stretchy="false">(</mo><mi>n</mi><mo>,</mo><mover><mi>x</mi><mo>&#x000AF;</mo></mover><mo stretchy="false">)</mo><mo>&#x02254;</mo></mtd></mtr> <mtr><mtd><mo stretchy="false">{</mo><mi>y</mi><mo>=</mo><mi>g</mi><mo stretchy="false">(</mo><mover><mi>x</mi><mo>&#x000AF;</mo></mover><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd><mi>for</mi><mo stretchy="false">(</mo><mi>i</mi><mo>=</mo><mn>0</mn><mo>;</mo><mi>n</mi><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd><mo stretchy="false">{</mo><mi>y</mi><mo>=</mo><mi>h</mi><mo stretchy="false">(</mo><mover><mi>x</mi><mo>&#x000AF;</mo></mover><mo>,</mo><mi>i</mi><mo stretchy="false">)</mo><mo stretchy="false">}</mo><mo stretchy="false">}</mo></mtd></mtr></mtable></mrow><annotation encoding='application/x-tex'>\begin{array}{l} f(n,\overline{x})\coloneqq\\ \{y =
  1861.    g(\overline{x})\\ for (i = 0;n)\\ \{ y =
  1862.    h(\overline{x},i) \} \}
  1863.    \end{array}</annotation></semantics></math></div>
  1864.  
  1865. <p>Now we have enough to do arithmetic, and we&#8217;re off. For example, we
  1866. can define addition: numbers are sequences of successors, and adding
  1867. is simply a process of peeling the <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>S</mi></mrow><annotation encoding='application/x-tex'>S</annotation></semantics></math>&#8217;s off of one number and
  1868. appending them to the other, until the former reaches 0:</p>
  1869.  
  1870. <div class="numberedEq"><span>(5)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mtable displaystyle="false" rowspacing="0.5ex" columnalign="left left"><mtr><mtd><mtext>base step: </mtext></mtd> <mtd><mi>add</mi><mo stretchy="false">(</mo><mn>0</mn><mo>,</mo><mi>a</mi><mo stretchy="false">)</mo><mo>=</mo><mi>g</mi><mo stretchy="false">(</mo><mi>a</mi><mo stretchy="false">)</mo><mo>=</mo><mi>a</mi><mo>=</mo><msubsup><mi>P</mi> <mn>1</mn> <mn>1</mn></msubsup><mo stretchy="false">(</mo><mi>a</mi><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd><mtext>induction: </mtext></mtd> <mtd><mi>add</mi><mo stretchy="false">(</mo><mi>S</mi><mo stretchy="false">(</mo><mi>b</mi><mo stretchy="false">)</mo><mo>,</mo><mi>a</mi><mo stretchy="false">)</mo><mo>=</mo><mi>S</mi><mo stretchy="false">(</mo><mi>g</mi><mo stretchy="false">(</mo><mi>b</mi><mo>,</mo><mi>a</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mo lspace="0.22222em" rspace="0.22222em">&#x02255;</mo><mi>h</mi><mo stretchy="false">(</mo><mi>b</mi><mo>,</mo><mi>f</mi><mo stretchy="false">(</mo><mi>b</mi><mo>,</mo><mi>a</mi><mo stretchy="false">)</mo><mo>,</mo><mi>a</mi><mo stretchy="false">)</mo><mo>=</mo><mi>S</mi><mo stretchy="false">(</mo><msubsup><mi>P</mi> <mn>2</mn> <mn>3</mn></msubsup><mo stretchy="false">(</mo><mi>b</mi><mo>,</mo><mi>c</mi><mo>,</mo><mi>a</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd><mtext>recursion:
  1871.        </mtext></mtd> <mtd><mi>add</mi><mo>:</mo><mo>=</mo><msup><mi>R</mi> <mn>2</mn></msup><mo stretchy="false">(</mo><msubsup><mi>P</mi> <mn>1</mn> <mn>1</mn></msubsup><mo>,</mo><msubsup><mi>S</mi> <mn>1</mn> <mn>3</mn></msubsup><mo stretchy="false">(</mo><mi>S</mi><mo>,</mo><msubsup><mi>P</mi> <mn>2</mn> <mn>3</mn></msubsup><mo stretchy="false">)</mo><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd/></mtr></mtable></mrow><annotation encoding='application/x-tex'>\begin{array}{ll} \text{base step: } &amp; add(0,a) = g(a) = a =
  1872.        P_1^1(a)\\ \text{induction: } &amp; add(S(b),a) = S(g(b,a))
  1873.        \eqqcolon h(b, f(b,a), a) = S(P_2^3(b,c,a))\\ \text{recursion:
  1874.        } &amp; add := R^2(P_1^1,S_1^3(S,P_2^3))\\ \end{array}</annotation></semantics></math></div>
  1875.  
  1876. <p>As a simple demonstration: </p>
  1877.  
  1878. <div class="numberedEq"><span>(6)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mtable displaystyle="false" rowspacing="0.5ex" columnalign="left left"><mtr><mtd><mi>add</mi><mo stretchy="false">(</mo><mn>2</mn><mo>,</mo><mn>1</mn><mo stretchy="false">)</mo></mtd> <mtd><mo>=</mo><msubsup><mi>S</mi> <mn>1</mn> <mn>3</mn></msubsup><mo stretchy="false">(</mo><mi>S</mi><mo>,</mo><msubsup><mi>P</mi> <mn>2</mn> <mn>3</mn></msubsup><mo stretchy="false">)</mo><mo stretchy="false">(</mo><mn>1</mn><mo>,</mo><mi>add</mi><mo stretchy="false">(</mo><mn>1</mn><mo>,</mo><mn>1</mn><mo stretchy="false">)</mo><mo>,</mo><mn>1</mn><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd/> <mtd><mo>=</mo><mi>S</mi><mo stretchy="false">(</mo><mi>add</mi><mo stretchy="false">(</mo><mn>1</mn><mo>,</mo><mn>1</mn><mo stretchy="false">)</mo><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd/> <mtd><mo>=</mo><mi>S</mi><mo stretchy="false">(</mo><msubsup><mi>S</mi> <mn>1</mn> <mn>3</mn></msubsup><mo stretchy="false">(</mo><mi>S</mi><mo>,</mo><msubsup><mi>P</mi> <mn>2</mn> <mn>3</mn></msubsup><mo stretchy="false">)</mo><mo stretchy="false">(</mo><mn>0</mn><mo>,</mo><mi>add</mi><mo stretchy="false">(</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo stretchy="false">)</mo><mo>,</mo><mn>1</mn><mo stretchy="false">)</mo><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd/> <mtd><mo>=</mo><mi>S</mi><mo stretchy="false">(</mo><mi>S</mi><mo stretchy="false">(</mo><msubsup><mi>P</mi> <mn>1</mn> <mn>1</mn></msubsup><mo stretchy="false">(</mo><mn>1</mn><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd/> <mtd><mo>=</mo><mi>S</mi><mo stretchy="false">(</mo><mi>S</mi><mo stretchy="false">(</mo><mi>S</mi><mo stretchy="false">(</mo><mn>0</mn><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mo>=</mo><mn>3</mn><mo>.</mo></mtd></mtr></mtable></mrow><annotation encoding='application/x-tex'>\begin{array}{ll} add(2,1) &amp; =
  1879. S_1^3(S,P_2^3)(1,add(1,1),1)\\ &amp; = S(add(1,1))\\ &amp; =
  1880. S(S_1^3(S,P_2^3)(0,add(0,1),1))\\ &amp; = S(S(P_1^1(1)))\\ &amp; = S(S(S(0)))
  1881. = 3.  \end{array}</annotation></semantics></math></div>
  1882.  
  1883. <p>Of course, not all computations actually <em>halt</em>. We can use a
  1884. diagonalization argument to show that not all Turing-computable
  1885. functions are primitive recursive. To complete the equivalence, the
  1886. more general <em>partial</em> recursive functions are given by adding a
  1887. minimization operator, which inputs a <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(k+1)</annotation></semantics></math>-ary function and outputs
  1888. a <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>k</mi></mrow><annotation encoding='application/x-tex'>k</annotation></semantics></math>-ary function, which searches for a minimal zero in the first
  1889. coordinate of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi></mrow><annotation encoding='application/x-tex'>f</annotation></semantics></math>, and returns only if one exists:</p>
  1890.  
  1891. <div class="numberedEq"><span>(7)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mtable displaystyle="false" rowspacing="0.5ex" columnalign="left left"><mtr><mtd><mtext>minimization: </mtext></mtd> <mtd><mo stretchy="false">(</mo><mi>f</mi><mo>:</mo><msup><mi>&#x02115;</mi> <mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msup><mo>&#x02192;</mo><mi>&#x02115;</mi><mo stretchy="false">)</mo><mo>&#x02208;</mo><mi>R</mi><mo>&#x02227;</mo><mo stretchy="false">(</mo><mtext>f is total</mtext><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd><mi>&#x003BC;</mi></mtd> <mtd><mo>&#x021D2;</mo><mo stretchy="false">(</mo><mi>&#x003BC;</mi><mstyle mathvariant="bold"><mrow><mo stretchy="false">(</mo><mi>f</mi><mo stretchy="false">)</mo></mrow></mstyle><mo stretchy="false">)</mo><mo>&#x02208;</mo><mi>R</mi></mtd></mtr> <mtr><mtd/> <mtd><mi>&#x003BC;</mi><mo stretchy="false">(</mo><mi>f</mi><mo stretchy="false">)</mo><mo stretchy="false">(</mo><msub><mi>x</mi> <mn>1</mn></msub><mo>,</mo><mi>&#x02026;</mi><mo>,</mo><msub><mi>x</mi> <mi>k</mi></msub><mo stretchy="false">)</mo><mo>=</mo><mi>z</mi><mo>&#x021D4;</mo></mtd></mtr> <mtr><mtd><mo stretchy="false">(</mo><mi>f</mi><mo stretchy="false">(</mo><mi>z</mi><mo>,</mo><msub><mi>x</mi> <mn>1</mn></msub><mo>,</mo><mi>&#x02026;</mi><mo>,</mo><msub><mi>x</mi> <mi>k</mi></msub><mo stretchy="false">)</mo><mo>=</mo><mn>0</mn><mo stretchy="false">)</mo></mtd> <mtd><mo>&#x02227;</mo><mo stretchy="false">(</mo><mo>&#x02200;</mo><mi>i</mi><mo>&#x02264;</mo><mi>z</mi><mo>&#x02212;</mo><mn>1</mn><mspace width="0.27778em"/><mspace width="0.27778em"/><mi>f</mi><mo stretchy="false">(</mo><mi>i</mi><mo>,</mo><msub><mi>x</mi> <mn>1</mn></msub><mo>,</mo><mi>&#x02026;</mi><mo>,</mo><msub><mi>x</mi> <mi>k</mi></msub><mo stretchy="false">)</mo><mo>&#x02265;</mo><mn>1</mn><mo stretchy="false">)</mo></mtd></mtr></mtable></mrow><annotation encoding='application/x-tex'>\begin{array}{ll} \text{minimization: } &amp; (f:\mathbb{N}^{k+1}\to
  1892.        \mathbb{N})\in R \wedge (\text{f is total})\\ \mu &amp; \implies
  1893.        (\mu\mathbf{(f)})\in R\\ &amp; \mu(f)(x_1,\dots ,x_k) = z \iff\\
  1894.        (f(z,x_1,\dots ,x_k) = 0) &amp; \wedge (\forall i \leq z&#x2d;1 \;\;
  1895.        f(i,x_1,\dots ,x_k) \geq 1) \end{array}</annotation></semantics></math></div>
  1896.  
  1897. <p>This allows for &#8220;unbounded minimization of safe predicates&#8221;, to check
  1898. the consistency of rules on infinitary data structures. For example,
  1899. with this operator we can explicitly construct a universal Turing
  1900. machine. The outputs of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BC;</mi></mrow><annotation encoding='application/x-tex'>\mu</annotation></semantics></math> are certainly partial in general,
  1901. because we can construct a predicate whose minimal zero would decide
  1902. the halting problem.</p>
  1903.  
  1904. <p>All Turing-computable functions are represented by partial recursive
  1905. functions, translating the complexity of Turing machines to a unified
  1906. mathematical perspective of functions of natural numbers.</p>
  1907.  
  1908. <h4>G&#x000F6;del Numbering</h4>
  1909.  
  1910. <p>Upon first hearing the Church-Turing thesis, one may ask &#8220;why do we
  1911. only care about functions of natural numbers?&#8221; By the simple idea of
  1912. <em>G&#x000F6;del numbering</em>, we need only consider (the partial recursive
  1913. subset of) the hom <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Set</mi><mo stretchy="false">(</mo><mi>&#x02115;</mi><mo>,</mo><mi>&#x02115;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>Set(\mathbb{N}, \mathbb{N})</annotation></semantics></math> to think about the
  1914. big questions of computability.</p>
  1915.  
  1916. <p>Kurt G&#x000F6;del proved that a formal language capable of expressing
  1917. arithmetic cannot be both consistent, meaning it does not deduce a
  1918. contradiction, and complete, meaning every sentence in the language
  1919. can be either proven or disproven.  The method of proof is remarkably
  1920. simple: as a language uses a countable set of symbols, operations, and
  1921. relations, we can enumerate all terms in the language.  We can then
  1922. use this enumeration to create self-referential sentences which must
  1923. be independent of the system.</p>
  1924.  
  1925. <p>The idea is to use the fundamental theorem of arithmetic.  Finite
  1926. lists of natural numbers can be represented faithfully as single
  1927. natural numbers, using an encoding with prime powers: order the primes
  1928. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">{</mo><msub><mi>p</mi> <mi>i</mi></msub><mo stretchy="false">}</mo></mrow><annotation encoding='application/x-tex'>\{p_i\}</annotation></semantics></math>, and define the embedding</p>
  1929.  
  1930. <div class="numberedEq"><span>(8)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>f</mi><mo>:</mo><msup><mi>&#x02115;</mi> <mi>k</mi></msup><mo>&#x02192;</mo><mi>&#x02115;</mi></mrow><annotation encoding='application/x-tex'>f:\mathbb{N}^k\to \mathbb{N}</annotation></semantics></math></div>
  1931.  
  1932. <div class="numberedEq"><span>(9)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mo stretchy="false">[</mo><msub><mi>n</mi> <mn>1</mn></msub><mo>,</mo><mi>&#x02026;</mi><mo>,</mo><msub><mi>n</mi> <mi>k</mi></msub><mo stretchy="false">]</mo><mo>&#x021A6;</mo><munder><mo lspace="0.16667em" rspace="0.16667em">&#x0220F;</mo> <mi>i</mi></munder><msubsup><mi>p</mi> <mi>i</mi> <mrow><msub><mi>n</mi> <mi>i</mi></msub></mrow></msubsup><mo>.</mo></mrow><annotation encoding='application/x-tex'>[n_1,\dots,n_k]\mapsto \prod_i p_i^{n_i}.</annotation></semantics></math></div>
  1933.  
  1934. <p>This can be applied recursively, to represent lists of lists of
  1935. numbers, giving encoding functions <em>enc</em> for any depth and length of
  1936. nested lists.  The decoding, <em>dec</em>, is repeated factorization, forming a tree
  1937. of primes.  For example,</p>
  1938.  
  1939. <div class="numberedEq"><span>(10)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>enc</mi><mo stretchy="false">(</mo><mo stretchy="false">[</mo><mo stretchy="false">[</mo><mn>1</mn><mo>,</mo><mn>4</mn><mo>,</mo><mn>8</mn><mo>,</mo><mn>2</mn><mo stretchy="false">]</mo><mo>,</mo><mo stretchy="false">[</mo><mn>1</mn><mo>,</mo><mn>3</mn><mo stretchy="false">]</mo><mo stretchy="false">]</mo><mo stretchy="false">)</mo><mo>=</mo><msup><mn>2</mn> <mrow><mn>2</mn><mo>&#x022C5;</mo><msup><mn>3</mn> <mn>4</mn></msup><mo>&#x022C5;</mo><msup><mn>5</mn> <mn>8</mn></msup><mo>&#x022C5;</mo><msup><mn>7</mn> <mn>2</mn></msup><mo>&#x022C5;</mo><msup><mn>3</mn> <mrow><mn>2</mn><mo>&#x022C5;</mo><msup><mn>3</mn> <mn>3</mn></msup></mrow></msup></mrow></msup></mrow><annotation encoding='application/x-tex'>enc([[1,4,8,2],[1,3]]) = 2^{2\cdot 3^4\cdot 5^8\cdot 7^2\cdot
  1940. 3^{2\cdot 3^3}}</annotation></semantics></math></div>
  1941.  
  1942. <div class="numberedEq"><span>(11)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>dec</mi><mo stretchy="false">(</mo><mn>3553</mn><mo stretchy="false">)</mo><mo>=</mo><mo stretchy="false">[</mo><mn>0</mn><mo>,</mo><mn>0</mn><mo>,</mo><mn>0</mn><mo>,</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo>,</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo>,</mo><mn>1</mn><mo stretchy="false">]</mo><mo>.</mo></mrow><annotation encoding='application/x-tex'>dec(3553) = [0,0,0,0,1,0,1,1].</annotation></semantics></math></div>
  1943.  
  1944. <p>We can then enumerate the partial recursive functions: because they
  1945. are generated by three basic functions and three basic operators, we
  1946. can represent them as lists of natural numbers by the following
  1947. recursive encoding &#8220;#&#8221;:</p>
  1948.  
  1949. <div class="numberedEq"><span>(12)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mtable displaystyle="false" rowspacing="0.5ex" columnalign="left left"><mtr><mtd><mo>#</mo><msub><mi>C</mi> <mi>k</mi></msub></mtd> <mtd><mo>=</mo><mo stretchy="false">[</mo><mn>1</mn><mo>,</mo><mi>k</mi><mo stretchy="false">]</mo></mtd></mtr> <mtr><mtd><mo>#</mo><mi>S</mi></mtd> <mtd><mo>=</mo><mo stretchy="false">[</mo><mn>2</mn><mo stretchy="false">]</mo></mtd></mtr> <mtr><mtd><mo>#</mo><msubsup><mi>P</mi> <mi>i</mi> <mi>k</mi></msubsup><mo stretchy="false">(</mo><msub><mi>x</mi> <mn>1</mn></msub><mo>,</mo><mi>&#x02026;</mi><mo>,</mo><msub><mi>x</mi> <mi>k</mi></msub><mo stretchy="false">)</mo></mtd> <mtd><mo>=</mo><mo stretchy="false">[</mo><mn>3</mn><mo>,</mo><mi>k</mi><mo>,</mo><mi>i</mi><mo stretchy="false">]</mo></mtd></mtr> <mtr><mtd/></mtr> <mtr><mtd><mo>#</mo><msubsup><mi>S</mi> <mi>k</mi> <mi>n</mi></msubsup><mo stretchy="false">(</mo><mi>h</mi><mo>,</mo><msub><mi>g</mi> <mn>1</mn></msub><mo>,</mo><mi>&#x02026;</mi><mo>,</mo><msub><mi>g</mi> <mi>n</mi></msub><mo stretchy="false">)</mo></mtd> <mtd><mo>=</mo><mo stretchy="false">[</mo><mn>4</mn><mo>,</mo><mo>#</mo><mi>h</mi><mo>,</mo><mo>#</mo><msub><mi>g</mi> <mn>1</mn></msub><mo>,</mo><mi>&#x02026;</mi><mo>,</mo><mo>#</mo><msub><mi>g</mi> <mi>n</mi></msub><mo stretchy="false">]</mo></mtd></mtr> <mtr><mtd><mo>#</mo><msup><mi>R</mi> <mi>k</mi></msup><mo stretchy="false">(</mo><mi>g</mi><mo>,</mo><mi>h</mi><mo stretchy="false">)</mo></mtd> <mtd><mo>=</mo><mo stretchy="false">[</mo><mn>5</mn><mo>,</mo><mi>k</mi><mo>,</mo><mo>#</mo><mi>g</mi><mo>,</mo><mo>#</mo><mi>h</mi><mo stretchy="false">]</mo></mtd></mtr> <mtr><mtd><mo>#</mo><mi>M</mi><mo stretchy="false">(</mo><mi>f</mi><mo stretchy="false">)</mo></mtd> <mtd><mo>=</mo><mo stretchy="false">[</mo><mn>6</mn><mo>,</mo><mo>#</mo><mi>f</mi><mo stretchy="false">]</mo></mtd></mtr></mtable></mrow><annotation encoding='application/x-tex'>\begin{array}{ll} \#C_k &amp; = [1,k]\\ \#S &amp; = [2]\\
  1950.      \#P_i^k(x_1,\dots,x_k) &amp; = [3,k,i]\\\\ \#S_k^n(h,g_1,\dots,g_n)
  1951.      &amp; = [4,\#h,\#g_1,\dots ,\#g_n]\\ \#R^k(g,h) &amp; = [5,k,\#g,\#h]\\
  1952.      \#M(f) &amp; = [6,\#f] \end{array}</annotation></semantics></math></div>
  1953.  
  1954. <p>Then, a partial recursive function gives a list of lists, which can be
  1955. encoded with G&#x000F6;del numbering. For example, </p>
  1956.  
  1957. <div class="numberedEq"><span>(13)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mtable displaystyle="false" rowspacing="0.5ex" columnalign="left left"><mtr><mtd><mi>add</mi></mtd> <mtd><mo>=</mo><msup><mi>R</mi> <mn>2</mn></msup><mo stretchy="false">(</mo><msubsup><mi>P</mi> <mn>1</mn> <mn>1</mn></msubsup><mo>,</mo><msubsup><mi>S</mi> <mn>1</mn> <mn>3</mn></msubsup><mo stretchy="false">(</mo><mi>S</mi><mo>,</mo><msubsup><mi>P</mi> <mn>2</mn> <mn>3</mn></msubsup><mo stretchy="false">)</mo><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd><mo>#</mo><mi>add</mi></mtd> <mtd><mo>=</mo><mo stretchy="false">[</mo><mn>5</mn><mo>,</mo><mn>2</mn><mo>,</mo><mo stretchy="false">[</mo><mn>3</mn><mo>,</mo><mn>2</mn><mo>,</mo><mn>2</mn><mo stretchy="false">]</mo><mo>,</mo><mo stretchy="false">[</mo><mn>4</mn><mo>,</mo><mo stretchy="false">[</mo><mn>2</mn><mo stretchy="false">]</mo><mo>,</mo><mo stretchy="false">[</mo><mn>3</mn><mo>,</mo><mn>4</mn><mo>,</mo><mn>3</mn><mo stretchy="false">]</mo><mo stretchy="false">]</mo><mo stretchy="false">]</mo></mtd></mtr> <mtr><mtd><mi>enc</mi><mo stretchy="false">(</mo><mo>#</mo><mi>add</mi><mo stretchy="false">)</mo></mtd> <mtd><mo>=</mo><msup><mn>2</mn> <mn>5</mn></msup><mo>&#x022C5;</mo><msup><mn>3</mn> <mn>2</mn></msup><mo>&#x022C5;</mo><msup><mn>5</mn> <mrow><msup><mn>2</mn> <mn>3</mn></msup><mo>&#x022C5;</mo><mn>3</mn><mo>&#x022C5;</mo><mn>2</mn><mo>&#x022C5;</mo><msup><mn>5</mn> <mn>2</mn></msup></mrow></msup><mo>&#x022C5;</mo><msup><mn>7</mn> <mrow><msup><mn>2</mn> <mn>4</mn></msup><mo>&#x022C5;</mo><msup><mn>3</mn> <mrow><msup><mn>2</mn> <mn>2</mn></msup></mrow></msup><mo>&#x022C5;</mo><msup><mn>5</mn> <mrow><msup><mn>2</mn> <mn>3</mn></msup><mo>&#x022C5;</mo><msup><mn>3</mn> <mn>4</mn></msup><mo>&#x022C5;</mo><msup><mn>5</mn> <mn>3</mn></msup></mrow></msup></mrow></msup><mtext>.</mtext></mtd></mtr></mtable></mrow><annotation encoding='application/x-tex'>\begin{array}{ll}
  1958. add &amp; = R^2(P_1^1,S_1^3(S,P_2^3))\\ \#add &amp; =
  1959. [5,2,[3,2,2],[4,[2],[3,4,3]]]\\ enc(\#add) &amp; = 2^5\cdot 3^2\cdot
  1960. 5^{2^3\cdot 3\cdot 2\cdot 5^2}\cdot 7^{2^4\cdot 3^{2^2}\cdot
  1961. 5^{2^3\cdot 3^4\cdot 5^3}}\text{.}  \end{array}</annotation></semantics></math></div>
  1962.  
  1963. <p>So why do we want to enumerate all partial recursive functions?  In
  1964. contrast to the incompleteness theorems, this gives the theory of
  1965. computability a very positive kind of self-reference, in the form of
  1966. two theorems which characterize a &#8220;good&#8221; enumeration of partial
  1967. recursive functions&#8212;this &#8220;good&#8221; means &#8220;effective&#8221; in a technical
  1968. sense, namely that the kinds of operations one performs on functions,
  1969. such as composition, can be computed on the level of codes.</p>
  1970.  
  1971. <h3>Kleene&#8217;s Recursion Theorems</h3>
  1972.  
  1973. <p>There is an enumeration of partial recursive functions <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>R</mi><mo>=</mo><mo stretchy="false">{</mo><msub><mi>&#x03D5;</mi> <mi>i</mi></msub><mo stretchy="false">}</mo></mrow><annotation encoding='application/x-tex'>R =
  1974. \{\phi_i\}</annotation></semantics></math>, such that the following theorems hold.</p>
  1975.  
  1976. <p><strong>Universality</strong>: The functions <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>&#x03D5;</mi> <mrow><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo></mrow></msup></mrow><annotation encoding='application/x-tex'>\phi^{(n)}</annotation></semantics></math> are partial recursive:
  1977. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>&#x03D5;</mi> <mrow><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo></mrow></msup><mo stretchy="false">(</mo><mi>e</mi><mo>,</mo><msub><mi>x</mi> <mn>1</mn></msub><mo>,</mo><mi>&#x02026;</mi><mo>,</mo><msub><mi>x</mi> <mi>n</mi></msub><mo stretchy="false">)</mo><mo>=</mo><msub><mi>&#x03D5;</mi> <mi>e</mi></msub><mo stretchy="false">(</mo><msub><mi>x</mi> <mn>1</mn></msub><mo>,</mo><mi>&#x02026;</mi><mo>,</mo><msub><mi>x</mi> <mi>n</mi></msub><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\phi^{(n)}(e,x_1,\dots ,x_n) = \phi_e(x_1,\dots ,x_n)</annotation></semantics></math>.</p>
  1978.  
  1979. <p><strong>Parameter</strong>: There are total recursive functions <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msubsup><mi>S</mi> <mi>m</mi> <mi>n</mi></msubsup></mrow><annotation encoding='application/x-tex'>S_m^n</annotation></semantics></math> such that
  1980. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>&#x03D5;</mi> <mrow><mo stretchy="false">(</mo><mi>n</mi><mo>+</mo><mi>m</mi><mo stretchy="false">)</mo></mrow></msup><mo stretchy="false">(</mo><mi>e</mi><mo>,</mo><msub><mi>x</mi> <mn>1</mn></msub><mo>,</mo><mi>&#x02026;</mi><mo>,</mo><msub><mi>x</mi> <mi>m</mi></msub><mo>,</mo><msub><mi>u</mi> <mn>1</mn></msub><mo>,</mo><mi>&#x02026;</mi><mo>,</mo><msub><mi>u</mi> <mi>n</mi></msub><mo stretchy="false">)</mo><mo>=</mo><msup><mi>&#x03D5;</mi> <mrow><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow></msup><mo stretchy="false">(</mo><msubsup><mi>S</mi> <mi>m</mi> <mi>n</mi></msubsup><mo stretchy="false">(</mo><mi>e</mi><mo>,</mo><msub><mi>x</mi> <mn>1</mn></msub><mo>,</mo><mi>&#x02026;</mi><mo>,</mo><msub><mi>x</mi> <mi>m</mi></msub><mo stretchy="false">)</mo><mo>,</mo><msub><mi>u</mi> <mn>1</mn></msub><mo>,</mo><mi>&#x02026;</mi><mo>,</mo><msub><mi>u</mi> <mi>n</mi></msub><mo stretchy="false">)</mo><mo>.</mo></mrow><annotation encoding='application/x-tex'>\phi^{(n+m)}(e,x_1,\dots ,x_m,u_1,\dots ,u_n)=
  1981. \phi^{(m)}(S_m^n(e,x_1,\dots ,x_m),u_1,\dots ,u_n).</annotation></semantics></math></p>
  1982.  
  1983. <p>The first says <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x02115;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{N}</annotation></semantics></math> is a &#8220;universal computer&#8221;&#8212;we have
  1984. partial <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>&#x03D5;</mi> <mrow><mo stretchy="false">(</mo><mi>k</mi><mo stretchy="false">)</mo></mrow></msup></mrow><annotation encoding='application/x-tex'>\phi^{(k)}</annotation></semantics></math> for each arity, which takes (the code of) a
  1985. program and (the code of) input data, and computes (the code of) the
  1986. result. The second says this computer has generalized currying&#8212;there
  1987. are total <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msubsup><mi>S</mi> <mi>m</mi> <mi>n</mi></msubsup></mrow><annotation encoding='application/x-tex'>S_m^n</annotation></semantics></math> for each arity, which transforms <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>n</mi><mo>+</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(n+m)</annotation></semantics></math>-ary
  1988. universal programs into <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>m</mi></mrow><annotation encoding='application/x-tex'>m</annotation></semantics></math>-ary ones, by taking the first <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>m</mi><mo>+</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'>m+1</annotation></semantics></math>
  1989. arguments and returning the code of another program.</p>
  1990.  
  1991. <p>This is a remarkable fact&#8212;imagine having a computer which comes
  1992. preloaded with every conceivable program, and one simply inputs the
  1993. number of the program, and the number of the data. Furthermore, if one
  1994. does not know which program to use, one can determine even that one
  1995. step at a time.</p>
  1996.  
  1997. <p>Turing categories are meant to provide a minimal setting in which
  1998. these two theorems hold. The Universality Theorem describes the
  1999. universal property of the Turing object/morphism pair, and the
  2000. Parameter Theorem describes the fact that the factorizations of the
  2001. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>n</mi></mrow><annotation encoding='application/x-tex'>n</annotation></semantics></math>-ary functions are determined by that of the unary ones, via the
  2002. Turing morphism.</p>
  2003.  
  2004. <h2>Restriction Categories</h2>
  2005.  
  2006. <p>We have already discussed that a notion of partiality is necessary to
  2007. model computation because not all computations halt at all inputs.
  2008. This notion is concrete captured through the notion of <em>partial
  2009. functions</em>.  Partiality can be categorically described through
  2010. restriction categories.</p>
  2011.  
  2012. <p>Formally, a <strong>restriction category</strong> is a category <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi></mrow><annotation encoding='application/x-tex'>C</annotation></semantics></math> endowed with a
  2013. combinator <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mover><mrow><mo stretchy="false">(</mo><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mo stretchy="false">)</mo></mrow><mo>&#x000AF;</mo></mover></mrow><annotation encoding='application/x-tex'>\overline{(&#x2d;)}</annotation></semantics></math>, sending </p>
  2014.  
  2015. <div class="numberedEq"><span>(14)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mo stretchy="false">(</mo><mi>f</mi><mo>:</mo><mi>A</mi><mo>&#x02192;</mo><mi>B</mi><mo stretchy="false">)</mo><mo>&#x021A6;</mo><mo stretchy="false">(</mo><mover><mi>f</mi><mo>&#x000AF;</mo></mover><mo>:</mo><mi>A</mi><mo>&#x02192;</mo><mi>A</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(f:A\to B) \mapsto
  2016. (\overline{f}:A\to A)</annotation></semantics></math></div>
  2017.  
  2018. <p>such that the following axioms are satisfied.</p>
  2019.  
  2020. <div class="numberedEq"><span>(15)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mtable displaystyle="false" rowspacing="0.5ex" columnalign="left left left"><mtr><mtd><mtext>1 </mtext></mtd> <mtd><mi>f</mi><mover><mi>f</mi><mo>&#x000AF;</mo></mover><mo>=</mo><mi>f</mi></mtd> <mtd/></mtr> <mtr><mtd/></mtr> <mtr><mtd><mtext>2 </mtext></mtd> <mtd><mover><mi>f</mi><mo>&#x000AF;</mo></mover><mover><mi>g</mi><mo>&#x000AF;</mo></mover><mo>=</mo><mover><mi>g</mi><mo>&#x000AF;</mo></mover><mover><mi>f</mi><mo>&#x000AF;</mo></mover></mtd> <mtd><mi>dom</mi><mo stretchy="false">(</mo><mi>f</mi><mo stretchy="false">)</mo><mo>=</mo><mi>dom</mi><mo stretchy="false">(</mo><mi>g</mi><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd/></mtr> <mtr><mtd><mtext>3 </mtext></mtd> <mtd><mover><mrow><mi>g</mi><mover><mi>f</mi><mo>&#x000AF;</mo></mover></mrow><mo>&#x000AF;</mo></mover><mo>=</mo><mover><mi>g</mi><mo>&#x000AF;</mo></mover><mover><mi>f</mi><mo>&#x000AF;</mo></mover></mtd> <mtd><mi>dom</mi><mo stretchy="false">(</mo><mi>f</mi><mo stretchy="false">)</mo><mo>=</mo><mi>dom</mi><mo stretchy="false">(</mo><mi>g</mi><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd/></mtr> <mtr><mtd><mtext>4 </mtext></mtd> <mtd><mover><mi>g</mi><mo>&#x000AF;</mo></mover><mi>f</mi><mo>=</mo><mi>f</mi><mover><mi>gf</mi><mo>&#x000AF;</mo></mover></mtd> <mtd><mi>cod</mi><mo stretchy="false">(</mo><mi>f</mi><mo stretchy="false">)</mo><mo>=</mo><mi>dom</mi><mo stretchy="false">(</mo><mi>g</mi><mo stretchy="false">)</mo></mtd></mtr></mtable></mrow><annotation encoding='application/x-tex'>\begin{array}{lll} \text{1 } &amp; f\overline{f} = f &amp;\\\\ \text{2 } &amp;
  2021. \overline{f}\overline{g} = \overline{g}\overline{f} &amp;
  2022. dom(f)=dom(g)\\\\ \text{3 } &amp; \overline{g\overline{f}} =
  2023. \overline{g}\overline{f} &amp; dom(f)=dom(g)\\\\ \text{4 } &amp; \overline{g}f
  2024. = f\overline{gf} &amp; cod(f)=dom(g) \end{array}</annotation></semantics></math></div>
  2025.  
  2026. <p>The first axiom states that precomposing with the domain of a map does
  2027. not change or otherwise restrict the original.  The second axiom
  2028. states that restricting two functions behaves similarly to
  2029. intersection in the sense that they commute.  The third axiom states
  2030. that taking the intersection of two domains is the same as taking
  2031. either map and restricting it to the domain of the <em>other</em> map.  The
  2032. fourth axiom states that restricting a map in some other domain means
  2033. that you restrict it on some other composite.</p>
  2034.  
  2035. <p>Some examples of restriction categories are: </p>
  2036.  
  2037. <div class="numberedEq"><span>(16)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mtable displaystyle="false" rowspacing="0.5ex" columnalign="left left"><mtr><mtd><mstyle mathvariant="sans-serif"><mi>Par</mi></mstyle></mtd> <mtd><mtext>sets and partial functions.</mtext></mtd></mtr> <mtr><mtd/> <mtd><mover><mi>f</mi><mo>&#x000AF;</mo></mover><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mi>x</mi><mspace width="0.27778em"/><mtext> if </mtext><mspace width="0.27778em"/><mi>f</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mspace width="0.27778em"/><mtext> is defined,
  2038.    else </mtext><mspace width="0.27778em"/><mo>&#x022A5;</mo><mo>.</mo></mtd></mtr> <mtr><mtd><mstyle mathvariant="sans-serif"><mrow><mi>Par</mi><mo stretchy="false">(</mo><mi>C</mi><mo>,</mo><mi>M</mi><mo stretchy="false">)</mo></mrow></mstyle></mtd> <mtd><mstyle mathvariant="sans-serif"><mrow><mi>ob</mi><mo stretchy="false">(</mo><mi>C</mi><mo stretchy="false">)</mo></mrow></mstyle><mspace width="0.27778em"/><mtext> and
  2039.    left-monic spans.</mtext></mtd></mtr> <mtr><mtd><mstyle mathvariant="sans-serif"><mi>PR</mi></mstyle></mtd> <mtd><msup><mo lspace="0em" rspace="0.16667em">N</mo> <mi>k</mi></msup><mspace width="0.27778em"/><mtext> and partial
  2040.    recursive functions.</mtext></mtd></mtr></mtable></mrow><annotation encoding='application/x-tex'>\begin{array}{ll}
  2041.    \mathsf{Par} &amp; \text{sets and partial functions.}\\ &amp;
  2042.    \overline{f}(x) = x \; \text{ if }\; f(x) \; \text { is defined,
  2043.    else }\; \bot.\\ \mathsf{Par(C,M)} &amp; \mathsf{ob(C)}\; \text{ and
  2044.    left&#x2d;monic spans.}\\ \mathsf{PR} &amp; \N^k \; \text{ and partial
  2045.    recursive functions.}  \end{array}</annotation></semantics></math></div>
  2046.  
  2047. <p>If <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mover><mi>f</mi><mo>&#x000AF;</mo></mover><mo>=</mo><msub><mn>1</mn> <mi>A</mi></msub></mrow><annotation encoding='application/x-tex'>\overline{f}=1_A</annotation></semantics></math>, then <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi></mrow><annotation encoding='application/x-tex'>f</annotation></semantics></math> is <em>total</em>. Note that all monics are
  2048. total. The total maps form a subcategory <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Tot</mi><mo stretchy="false">(</mo><mi>C</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>Tot(C)</annotation></semantics></math>, which is of
  2049. interest in the accompanying paper <a href="https://mysite.science.uottawa.ca/phofstra/Totals.pdf">Total Maps of Turing
  2050. Categories</a> by
  2051. Hofstra, Cockett, and Hrube\v{s}. If <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>e</mi><mo>=</mo><mover><mi>e</mi><mo>&#x000AF;</mo></mover></mrow><annotation encoding='application/x-tex'>e=\overline{e}</annotation></semantics></math>, then <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>e</mi></mrow><annotation encoding='application/x-tex'>e</annotation></semantics></math> is a
  2052. <strong>domain of definition</strong>. For any <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>a</mi><mo>&#x02208;</mo><mi>C</mi></mrow><annotation encoding='application/x-tex'>a\in C</annotation></semantics></math> Denote by <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>O</mi><mo stretchy="false">(</mo><mi>a</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>O(a)</annotation></semantics></math> the set of
  2053. domains of definition of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>a</mi></mrow><annotation encoding='application/x-tex'>a</annotation></semantics></math>. For these examples: </p>
  2054.  
  2055. <div class="numberedEq"><span>(17)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mtable displaystyle="false" rowspacing="0.5ex" columnalign="left left"><mtr><mtd><mstyle mathvariant="sans-serif"><mi>Par</mi></mstyle></mtd> <mtd><mi>O</mi><mo stretchy="false">(</mo><mi>X</mi><mo stretchy="false">)</mo><mo>=</mo><mo stretchy="false">{</mo><mtext>subsets of </mtext><mspace width="0.27778em"/><mi>X</mi><mo stretchy="false">}</mo><mo>.</mo></mtd></mtr> <mtr><mtd><mstyle mathvariant="sans-serif"><mrow><mi>Par</mi><mo stretchy="false">(</mo><mi>C</mi><mo>,</mo><mi>M</mi><mo stretchy="false">)</mo></mrow></mstyle></mtd> <mtd><mi>O</mi><mo stretchy="false">(</mo><mi>c</mi><mo stretchy="false">)</mo><mo>=</mo><mo stretchy="false">{</mo><mtext>subobjects of </mtext><mspace width="0.27778em"/><mi>c</mi><mo stretchy="false">}</mo><mo>.</mo></mtd></mtr> <mtr><mtd><mstyle mathvariant="sans-serif"><mi>PR</mi></mstyle></mtd> <mtd><mi>O</mi><mo stretchy="false">(</mo><msup><mo lspace="0em" rspace="0.16667em">N</mo> <mi>k</mi></msup><mo stretchy="false">)</mo><mo>=</mo><mo stretchy="false">{</mo><mtext>recursively enumerable subsets of </mtext><mspace width="0.27778em"/><msup><mo lspace="0em" rspace="0.16667em">N</mo> <mi>k</mi></msup><mo stretchy="false">}</mo><mo>.</mo></mtd></mtr></mtable></mrow><annotation encoding='application/x-tex'>\begin{array}{ll}
  2056. \mathsf{Par} &amp; O(X) = \{ \text{subsets of }\; X\}.\\ \mathsf{Par(C,M)}
  2057. &amp; O(c) = \{ \text{subobjects of }\; c\}.\\ \mathsf{PR} &amp; O(\N^k) = \{
  2058. \text{recursively enumerable subsets of }\; \N^k\}.  \end{array}</annotation></semantics></math></div>
  2059.  
  2060. <h3>Enrichment and Cartesian Structure</h3>
  2061.  
  2062. <p>The notion of restriction entails a partial order on homsets&#8212;given
  2063. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi><mo>,</mo><mi>g</mi><mo>:</mo><mi>A</mi><mo>&#x02192;</mo><mi>B</mi></mrow><annotation encoding='application/x-tex'>f,g:A\to B</annotation></semantics></math>, define <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mo stretchy="false">(</mo><mi>f</mi><mo>&#x02264;</mo><mi>g</mi><mo stretchy="false">)</mo><mo>&#x02254;</mo><mo stretchy="false">(</mo><mi>f</mi><mo>=</mo><mi>g</mi><mover><mi>f</mi><mo>&#x000AF;</mo></mover><mo stretchy="false">)</mo><mo>.</mo></mrow><annotation encoding='application/x-tex'>(f\leq g) \coloneqq (f=g\overline{f}).</annotation></semantics></math>
  2064. Intuitively this means that the domain of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi></mrow><annotation encoding='application/x-tex'>f</annotation></semantics></math> is contained in the
  2065. domain of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>g</mi></mrow><annotation encoding='application/x-tex'>g</annotation></semantics></math>. In the enrichment, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>O</mi><mo stretchy="false">(</mo><mi>X</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>O(X)</annotation></semantics></math> forms a meet semilattice.</p>
  2066.  
  2067. <p>Accordingly, to define the cartesian structure we need to weaken the
  2068. terminal object and product to the poset-enriched case.</p>
  2069.  
  2070. <p><strong>Partial Terminal Object</strong>. Once we have partial maps, the terminal
  2071. object acts like a &#8220;domain classifier&#8221;. Rather than having a unique
  2072. map, we have a natural bijection <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi><mo stretchy="false">(</mo><mi>A</mi><mo>,</mo><mn>1</mn><mo stretchy="false">)</mo><mo>&#x02243;</mo><mi>O</mi><mo stretchy="false">(</mo><mi>A</mi><mo stretchy="false">)</mo><mo>.</mo></mrow><annotation encoding='application/x-tex'>C(A,1)\simeq O(A).</annotation></semantics></math> For partial
  2073. recursive functions over <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x02115;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{N}</annotation></semantics></math>, we have precisely the
  2074. <em>recursively enumerable</em> subsets. The partial terminal object
  2075. satisfies the weaker universal property that given a domain <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>e</mi><mo>&#x02208;</mo><mi>O</mi><mo stretchy="false">(</mo><mi>A</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>e\in
  2076. O(A)</annotation></semantics></math> and a map <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi><mo>:</mo><mi>A</mi><mo>&#x02192;</mo><mi>B</mi></mrow><annotation encoding='application/x-tex'>f:A\to B</annotation></semantics></math>, the domain of the composite with any
  2077. domain of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>B</mi></mrow><annotation encoding='application/x-tex'>B</annotation></semantics></math> is contained in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>e</mi></mrow><annotation encoding='application/x-tex'>e</annotation></semantics></math>.</p>
  2078.  
  2079. <p>The restriction terminal object, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mn>1</mn></mrow><annotation encoding='application/x-tex'>1</annotation></semantics></math>, is then describing the case when
  2080. there is a unique total map <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mo>!</mo> <mi>A</mi></msub><mo>:</mo><mi>A</mi><mo>&#x02192;</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'>!_A: A \rightarrow 1</annotation></semantics></math> such that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mo>!</mo> <mn>1</mn></msub><mo>=</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'>!_1 =
  2081. 1</annotation></semantics></math>. Furthermore, for each <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi><mo>:</mo><mi>A</mi><mo>&#x02192;</mo><mi>B</mi></mrow><annotation encoding='application/x-tex'>f: A \rightarrow B</annotation></semantics></math> this family of maps
  2082. must have <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mo>!</mo> <mi>B</mi></msub><mi>f</mi><mo>=</mo><msub><mo>!</mo> <mi>A</mi></msub><mover><mi>f</mi><mo stretchy="false">&#x000AF;</mo></mover></mrow><annotation encoding='application/x-tex'>!_B f = !_A \bar{f}</annotation></semantics></math> to make the following diagram commute.</p>
  2083.  
  2084. <p><img width="40%" class="center"
  2085. src="https://raw.githubusercontent.com/cbw124/actpngs/master/pngs/resTerminal.png"
  2086. alt=""/></p>
  2087.  
  2088. <p><strong>Partial Product</strong>. The partial product has the property that maps
  2089. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">&#x027E8;</mo><mi>f</mi><mo>,</mo><mi>g</mi><mo stretchy="false">&#x027E9;</mo></mrow><annotation encoding='application/x-tex'>\langle f, g \rangle</annotation></semantics></math> into the product, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi><mo>&#x000D7;</mo><mi>B</mi></mrow><annotation encoding='application/x-tex'>A \times B</annotation></semantics></math>, which has the
  2090. domain contained in that of both <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi></mrow><annotation encoding='application/x-tex'>f</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>g</mi></mrow><annotation encoding='application/x-tex'>g</annotation></semantics></math>. This is to account for
  2091. the case in which computing <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi></mrow><annotation encoding='application/x-tex'>f</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>g</mi></mrow><annotation encoding='application/x-tex'>g</annotation></semantics></math> simultaneously might produce a
  2092. result that either does not halt in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi></mrow><annotation encoding='application/x-tex'>f</annotation></semantics></math> or <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>g</mi></mrow><annotation encoding='application/x-tex'>g</annotation></semantics></math>. Therefore, the domain
  2093. of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">&#x027E8;</mo><mi>f</mi><mo>,</mo><mi>g</mi><mo stretchy="false">&#x027E9;</mo></mrow><annotation encoding='application/x-tex'>\langle f, g \rangle</annotation></semantics></math> needs to be the intersection of the
  2094. corresponding domains of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi></mrow><annotation encoding='application/x-tex'>f</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>g</mi></mrow><annotation encoding='application/x-tex'>g</annotation></semantics></math>.</p>
  2095.  
  2096. <p><img width="40%" class="center"
  2097. src="https://raw.githubusercontent.com/cbw124/actpngs/master/pngs/resProduct.png"
  2098. alt=""/></p>
  2099.  
  2100. <h3>Splitting Idempotents</h3>
  2101.  
  2102. <p>Turing categories are essentially meant to describe collections that
  2103. can be computed by the maps of the category.  This can be expressed
  2104. with idempotent splitting. For example, in the &#8220;Turing category of
  2105. computable maps on <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x02115;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{N}</annotation></semantics></math>&#8221;, explained later, a restriction
  2106. idempotent <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>e</mi><mo>:</mo><mi>&#x02115;</mi><mo>&#x02192;</mo><mi>&#x02115;</mi></mrow><annotation encoding='application/x-tex'>e:\mathbb{N}\to \mathbb{N}</annotation></semantics></math> is a recursively enumerable
  2107. set. Therefore the <em>splitting</em> of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>e</mi></mrow><annotation encoding='application/x-tex'>e</annotation></semantics></math>, if it exists, makes this subset
  2108. explicit as an object of the category. Hence, the idempotent
  2109. completion of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi mathvariant="normal">Comp</mi><mo stretchy="false">(</mo><mi>&#x02115;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\mathrm{Comp}(\mathbb{N})</annotation></semantics></math> yields the category whose
  2110. objects are all recursively enumerable sets of natural numbers. This
  2111. will imply that these categories of computable maps are determined
  2112. uniquely <em>up to</em> Morita equivalence.</p>
  2113.  
  2114. <p>There is, however, a big difference between split restriction
  2115. categories and general restriction categories.  In the former, all
  2116. domains are &#8220;out in the open&#8221;, rather than &#8220;hiding&#8221; as idempotents on
  2117. some object.  If we completely understood the idempotent completion of
  2118. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Comp</mi><mo stretchy="false">(</mo><mi>&#x02115;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>Comp(\mathbb{N})</annotation></semantics></math>, we would know all recursively enumerable subsets
  2119. of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x02115;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{N}</annotation></semantics></math>; one could argue that the study of computability would
  2120. be complete. However, Turing categories are meant to abstract away
  2121. from the natural numbers, in order to distinguish what is essential
  2122. about computation, and remove anything about arithmetic that might be
  2123. contingent.</p>
  2124.  
  2125. <h2>Turing Categories</h2>
  2126.  
  2127. <p>Turing categories provide an abstract framework for computability: a
  2128. &#8220;category with partiality&#8221; equipped with a &#8220;universal computer&#8221;, whose
  2129. programs and codes thereof constitute the objects of interest.</p>
  2130.  
  2131. <p>Let <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi></mrow><annotation encoding='application/x-tex'>C</annotation></semantics></math> be a cartesian restriction category, and let
  2132. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C4;</mi> <mrow><mi>X</mi><mo>,</mo><mi>Y</mi></mrow></msub><mo>:</mo><mi>A</mi><mo>&#x000D7;</mo><mi>X</mi><mo>&#x02192;</mo><mi>Y</mi></mrow><annotation encoding='application/x-tex'>\tau_{X,Y}:A\times X\to Y</annotation></semantics></math>.  A morphism <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi><mo>:</mo><mi>Z</mi><mo>&#x000D7;</mo><mi>X</mi><mo>&#x02192;</mo><mi>Y</mi></mrow><annotation encoding='application/x-tex'>f:Z\times X\to Y</annotation></semantics></math> admits a
  2133. <strong><math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C4;</mi> <mrow><mi>X</mi><mo>,</mo><mi>Y</mi></mrow></msub></mrow><annotation encoding='application/x-tex'>\tau_{X,Y}</annotation></semantics></math>-index</strong> when there exists <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>h</mi><mo>:</mo><mi>Z</mi><mo>&#x02192;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>h: Z\to A</annotation></semantics></math> such that the
  2134. following commutes.</p>
  2135.  
  2136. <p><img width="40%" class="center"
  2137. src="https://raw.githubusercontent.com/cbw124/actpngs/master/pngs/tauindex.png"
  2138. alt=""/></p>
  2139.  
  2140. <p>The <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C4;</mi> <mrow><mi>X</mi><mo>,</mo><mi>Y</mi></mrow></msub></mrow><annotation encoding='application/x-tex'>\tau_{X, Y}</annotation></semantics></math>-index can be thought of as an evaluation function
  2141. and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>h</mi></mrow><annotation encoding='application/x-tex'>h</annotation></semantics></math> as the function <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>&#x003BB;</mi> <mo>*</mo></msup><mo stretchy="false">(</mo><mi>f</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\lambda^*(f)</annotation></semantics></math>. When every <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi><mo>:</mo><mi>Z</mi><mo>&#x000D7;</mo><mi>X</mi><mo>&#x02192;</mo><mi>Y</mi></mrow><annotation encoding='application/x-tex'>f: Z \times X
  2142. \rightarrow Y</annotation></semantics></math> admits such an evaluation; that is <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C4;</mi> <mrow><mi>X</mi><mo>,</mo><mi>Y</mi></mrow></msub></mrow><annotation encoding='application/x-tex'>\tau_{X, Y}</annotation></semantics></math>-index,
  2143. then <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C4;</mi> <mrow><mi>X</mi><mo>,</mo><mi>Y</mi></mrow></msub></mrow><annotation encoding='application/x-tex'>\tau_{X, Y}</annotation></semantics></math> is universal. If the object <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math> does this for any
  2144. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>X</mi><mo>,</mo><mi>Y</mi></mrow><annotation encoding='application/x-tex'>X, Y</annotation></semantics></math> then <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi></mrow><annotation encoding='application/x-tex'>C</annotation></semantics></math> is a Turing category and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math> is a Turing object.</p>
  2145.  
  2146. <p>Given such a Turing category, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi></mrow><annotation encoding='application/x-tex'>C</annotation></semantics></math>, an <em>applicative family</em> for the
  2147. Turing object <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math> is a family of maps <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C4;</mi><mo>=</mo><mo stretchy="false">{</mo><msub><mi>&#x003C4;</mi> <mrow><mi>X</mi><mo>,</mo><mi>Y</mi></mrow></msub><mo>:</mo><mi>A</mi><mo>&#x000D7;</mo><mi>X</mi><mo>&#x02192;</mo><mi>Y</mi><mo lspace="0.22222em" rspace="0.22222em">&#x02223;</mo><mi>X</mi><mo>,</mo><mi>Y</mi><mo stretchy="false">}</mo></mrow><annotation encoding='application/x-tex'>\tau = \{\tau_{X, Y}: A \times
  2148. X \rightarrow Y\mid X, Y\}</annotation></semantics></math>, where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>X</mi></mrow><annotation encoding='application/x-tex'>X</annotation></semantics></math>, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Y</mi></mrow><annotation encoding='application/x-tex'>Y</annotation></semantics></math> range over all objects in
  2149. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi></mrow><annotation encoding='application/x-tex'>C</annotation></semantics></math>. An applicative family for <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math> is universal if for every <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>X</mi><mo>,</mo><mi>Y</mi></mrow><annotation encoding='application/x-tex'>X,Y</annotation></semantics></math>, we
  2150. have that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C4;</mi> <mrow><mi>X</mi><mo>,</mo><mi>Y</mi></mrow></msub></mrow><annotation encoding='application/x-tex'>\tau_{X, Y}</annotation></semantics></math> is universal. In such a case <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C4;</mi></mrow><annotation encoding='application/x-tex'>\tau</annotation></semantics></math> is a
  2151. Turing structure on <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math>. We can then think of a Turing structure on
  2152. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi></mrow><annotation encoding='application/x-tex'>C</annotation></semantics></math> as a pair <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>A</mi><mo>,</mo><mi>&#x003C4;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(A, \tau)</annotation></semantics></math>.</p>
  2153.  
  2154. <p>We can further express the universality of the Turing object in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi></mrow><annotation encoding='application/x-tex'>C</annotation></semantics></math> by
  2155. taking every object of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>X</mi><mo>&#x02208;</mo><mi>C</mi></mrow><annotation encoding='application/x-tex'>X\in C</annotation></semantics></math> is a retract of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math>, by taking the
  2156. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C4;</mi> <mrow><mn>1</mn><mo>,</mo><mi>X</mi></mrow></msub></mrow><annotation encoding='application/x-tex'>\tau_{1, X}</annotation></semantics></math>-index for <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C0;</mi> <mi>X</mi></msub></mrow><annotation encoding='application/x-tex'>\pi_X</annotation></semantics></math>.</p>
  2157.  
  2158. <p><img width="30%" class="center"
  2159. src="https://raw.githubusercontent.com/cbw124/actpngs/master/pngs/retract.png"
  2160. alt=""/></p>
  2161.  
  2162. <p>This extends to all finite powers <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mn>1</mn><mo>,</mo><mi>A</mi><mo>,</mo><msup><mi>A</mi> <mn>2</mn></msup><mo>,</mo><msup><mi>A</mi> <mn>3</mn></msup><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo></mrow><annotation encoding='application/x-tex'>1, A, A^2, A^3,...</annotation></semantics></math>, which
  2163. indicates two important points about the Turing object:</p>
  2164.  
  2165. <ul>
  2166. <li>The cardinality of the elements of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math>, is either one or infinite;
  2167. and</li>
  2168. <li>There is an internal pairing operation <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi><mo>&#x000D7;</mo><mi>A</mi><mo>&#x02192;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>A\times A\to A</annotation></semantics></math>, which is a
  2169. section.</li>
  2170. </ul>
  2171.  
  2172. <p>The latter morphism generalizes and abstracts the G&#x000F6;del pairing
  2173. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x02115;</mi><mo>&#x000D7;</mo><mi>&#x02115;</mi><mo>&#x02192;</mo><mi>&#x02115;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{N}\times \mathbb{N}\to \mathbb{N}</annotation></semantics></math>.</p>
  2174.  
  2175. <p>So given such a universal object <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math> and a Turing structure
  2176. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">{</mo><mi>&#x003C4;</mi><mo stretchy="false">}</mo></mrow><annotation encoding='application/x-tex'>\{\tau\}</annotation></semantics></math>, it is natural to wonder if a <em>universal self-application
  2177. map</em> <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C4;</mi> <mrow><mi>A</mi><mo>,</mo><mi>A</mi></mrow></msub></mrow><annotation encoding='application/x-tex'>\tau_{A,A}</annotation></semantics></math> is special. It is indeed, and it is called a
  2178. <strong>Turing morphism</strong> <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x02022;</mo><mo>:</mo><mi>A</mi><mo>&#x000D7;</mo><mi>A</mi><mo>&#x02192;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>\bullet:A\times A\to A</annotation></semantics></math>. Such a map, plus the
  2179. universal property of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math>, is in fact enough to reconstruct the entire
  2180. Turing structure of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mstyle mathvariant="sans-serif"><mi>C</mi></mstyle></mrow><annotation encoding='application/x-tex'>\mathsf{C}</annotation></semantics></math>.</p>
  2181.  
  2182. <p>The classic example is Kleene application <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x02115;</mi><mo>&#x000D7;</mo><mi>&#x02115;</mi><mover><mo>&#x02192;</mo><mo>&#x02022;</mo></mover><mi>&#x02115;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{N}\times
  2183. \mathbb{N}\xrightarrow{\bullet}\mathbb{N}</annotation></semantics></math>. In general it can be
  2184. thought of as a &#8220;universal Turing machine&#8221; that takes in a program (a
  2185. Turing machine) and a datum, and computes the result.</p>
  2186.  
  2187. <p>This Turing morphism is the heart of the whole structure&#8212;we can
  2188. construct all other universal applications <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C4;</mi> <mrow><mi>X</mi><mo>,</mo><mi>Y</mi></mrow></msub><mo>:</mo><mi>A</mi><mo>&#x000D7;</mo><mi>X</mi><mo>&#x02192;</mo><mi>Y</mi></mrow><annotation encoding='application/x-tex'>\tau_{X, Y}: A \times X
  2189. \rightarrow Y</annotation></semantics></math> by <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>A</mi><mo>&#x000D7;</mo><mi>X</mi><mover><mo>&#x02192;</mo><mrow><mi>A</mi><mo>&#x000D7;</mo><msub><mi>m</mi> <mi>x</mi></msub></mrow></mover><mi>A</mi><mo>&#x000D7;</mo><mi>A</mi><mover><mo>&#x02192;</mo><mo>&#x02022;</mo></mover><mi>A</mi><mover><mo>&#x02192;</mo><mrow><msub><mi>r</mi> <mi>y</mi></msub></mrow></mover><mi>Y</mi></mrow><annotation encoding='application/x-tex'>A \times X \xrightarrow{A \times m_x} A \times A
  2190. \xrightarrow{\bullet} A \xrightarrow{r_y} Y</annotation></semantics></math> where pairs <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><msub><mi>m</mi> <mi>X</mi></msub><mo>,</mo><msub><mi>r</mi> <mi>X</mi></msub><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(m_X, r_X)</annotation></semantics></math>
  2191. and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><msub><mi>m</mi> <mi>Y</mi></msub><mo>,</mo><msub><mi>r</mi> <mi>Y</mi></msub><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(m_Y, r_Y)</annotation></semantics></math> retractions on <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Y</mi></mrow><annotation encoding='application/x-tex'>Y</annotation></semantics></math> respectively.</p>
  2192.  
  2193. <p>To verify that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C4;</mi> <mrow><mi>A</mi><mo>,</mo><mi>A</mi></mrow></msub></mrow><annotation encoding='application/x-tex'>\tau_{A,A}</annotation></semantics></math> is a universal application, consider the
  2194. following commutative diagram, which shows that all subsets can be
  2195. represented as formal objects and all computable functions, like <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi></mrow><annotation encoding='application/x-tex'>f</annotation></semantics></math>,
  2196. can be computed by representing them in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x02115;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{N}</annotation></semantics></math>.</p>
  2197.  
  2198. <p><img width="60%" class="center"
  2199. src="https://raw.githubusercontent.com/cbw124/actpngs/master/pngs/retractindex.png"
  2200. alt=""/></p>
  2201.  
  2202. <p>The important idea is that a Turing object represents the collection
  2203. of (codes of) all programs in some formal system; the universal
  2204. applicative family is a method of encoding, and the Turing morphism is
  2205. the universal program which implements all others. The innovation of
  2206. Turing categories is that they abstract away from <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi mathvariant="normal">Set</mi></mrow><annotation encoding='application/x-tex'>\mathrm{Set}</annotation></semantics></math>, and
  2207. can therefore describe programs which are not explicitly
  2208. set-theoretical (not necessarily <em>extensional</em>, only intensional).</p>
  2209.  
  2210. <p>The axioms of a Turing structure correspond precisely to the
  2211. Universality and Parameter theorems. This fact culminates in the
  2212. <strong>Recognition Theorem</strong>: a cartesian restriction category <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi></mrow><annotation encoding='application/x-tex'>C</annotation></semantics></math> is a
  2213. Turing category iff there is an object <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math> of which every object is a
  2214. retract, and for which there exists a Turing morphism <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi><mo>&#x000D7;</mo><mi>A</mi><mover><mo>&#x02192;</mo><mo>&#x02022;</mo></mover><mi>A</mi></mrow><annotation encoding='application/x-tex'>A \times A
  2215. \xrightarrow{\bullet} A</annotation></semantics></math>.</p>
  2216.  
  2217. <h2>Partial Combinatory Algebras</h2>
  2218.  
  2219. <p>From the Recognition Theorem, we know that Turing categories are
  2220. essentially generated by a single object equipped with a universal
  2221. binary application.  We can alternatively take the internal view,
  2222. starting with a magma object <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>A</mi><mo>,</mo><mo>&#x02022;</mo><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(A,\bullet)</annotation></semantics></math> in a cartesian restriction
  2223. category <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi></mrow><annotation encoding='application/x-tex'>C</annotation></semantics></math>, and consider maps <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>A</mi> <mi>n</mi></msup><mo>&#x02192;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>A^n \to A</annotation></semantics></math> which are &#8220;computable&#8221;
  2224. with respect to <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x02022;</mo></mrow><annotation encoding='application/x-tex'>\bullet</annotation></semantics></math>.  These maps form a category, and indeed a
  2225. Turing category, iff <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math> is <em>combinatory complete</em>&#8212;essentially
  2226. meaning that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>A</mi><mo>,</mo><mo>&#x02022;</mo><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(A,\bullet)</annotation></semantics></math> is expressive enough to represent the
  2227. (partial) lambda calculus.  First, we should understand combinators.</p>
  2228.  
  2229. <h3>Combinatory Logic</h3>
  2230.  
  2231. <p>The practice of variable binding is subtle: when a computation uses a
  2232. set of symbols as variables, one must distinguish between <em>bound</em> and
  2233. <em>free</em> variables&#8212;the former being placeholders, and the latter being
  2234. data. In formal languages, preserving this distinction requires
  2235. conditions of the semantic rules, which can add baggage to otherwise
  2236. simple systems. In the <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BB;</mi></mrow><annotation encoding='application/x-tex'>\lambda</annotation></semantics></math>-calculus, beta reduction <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>&#x003B2;</mi><mo>:</mo><mo stretchy="false">(</mo><mi>&#x003BB;</mi><mi>x</mi><mo>.</mo><mi>M</mi><mspace width="0.27778em"/><mi>N</mi><mo stretchy="false">)</mo><mo>&#x02192;</mo><mi>M</mi><mo stretchy="false">[</mo><mi>x</mi><mo>:</mo><mo>=</mo><mi>N</mi><mo stretchy="false">]</mo></mrow><annotation encoding='application/x-tex'>\beta:
  2237. (\lambda x.M\; N) \to M[x:=N]</annotation></semantics></math> precludes &#8220;variable
  2238. capture&#8221;&#8212;accidentally substituting free into bound, e.g.: <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mo stretchy="false">(</mo><mi>&#x003BB;</mi><mi>y</mi><mo>.</mo><mo stretchy="false">(</mo><mi>&#x003BB;</mi><mi>z</mi><mo>.</mo><mo stretchy="false">(</mo><mi>y</mi><mspace width="0.27778em"/><mi>z</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mspace width="0.27778em"/><mi>z</mi><mo stretchy="false">)</mo><mo>&#x02192;</mo><mi>&#x003BB;</mi><mi>z</mi><mo>.</mo><mo stretchy="false">(</mo><mi>z</mi><mspace width="0.27778em"/><mi>z</mi><mo stretchy="false">)</mo><mo>.</mo></mrow><annotation encoding='application/x-tex'>(\lambda
  2239. y.(\lambda z.(y\;z))\; z) \to \lambda z.(z\; z).</annotation></semantics></math> One must rename the
  2240. bound variables of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>M</mi></mrow><annotation encoding='application/x-tex'>M</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>N</mi></mrow><annotation encoding='application/x-tex'>N</annotation></semantics></math> so they are distinct from variables in
  2241. both terms: <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mo stretchy="false">(</mo><mi>&#x003BB;</mi><mi>y</mi><mo>.</mo><mo stretchy="false">(</mo><mi>&#x003BB;</mi><mi>z</mi><mo>.</mo><mo stretchy="false">(</mo><mi>y</mi><mspace width="0.27778em"/><mi>z</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mspace width="0.27778em"/><mi>z</mi><mo stretchy="false">)</mo><mo>&#x02261;</mo><mo stretchy="false">(</mo><mi>&#x003BB;</mi><mi>y</mi><mo>.</mo><mo stretchy="false">(</mo><mi>&#x003BB;</mi><mi>a</mi><mo>.</mo><mo stretchy="false">(</mo><mi>y</mi><mspace width="0.27778em"/><mi>a</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mspace width="0.27778em"/><mi>z</mi><mo stretchy="false">)</mo><mo>&#x02192;</mo><mi>&#x003BB;</mi><mi>a</mi><mo>.</mo><mo stretchy="false">(</mo><mi>z</mi><mspace width="0.27778em"/><mi>a</mi><mo stretchy="false">)</mo><mo>.</mo></mrow><annotation encoding='application/x-tex'>(\lambda y.(\lambda z.(y\;z))\; z) \equiv (\lambda
  2242. y.(\lambda a.(y\;a))\; z) \to \lambda a.(z\; a).</annotation></semantics></math></p>
  2243.  
  2244. <p>This problem was originally confronted by Moses Schonfinkel in the
  2245. 1920s, who created a theory of <em>combinators</em>&#8212;primitive units of
  2246. computation defined only by function application. Lambda terms can be
  2247. translated into combinators by a process of <em>abstraction elimination</em>,
  2248. which does away with variables completely. This can be understood by
  2249. observing that we only need to handle the three basic things that
  2250. occur within <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BB;</mi></mrow><annotation encoding='application/x-tex'>\lambda</annotation></semantics></math>-abstraction: variables, application, and
  2251. further abstraction. These are represented by the fundamental
  2252. combinators <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>S</mi></mrow><annotation encoding='application/x-tex'>S</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>K</mi></mrow><annotation encoding='application/x-tex'>K</annotation></semantics></math>: </p>
  2253.  
  2254. <div class="numberedEq"><span>(18)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mtable displaystyle="false" rowspacing="0.5ex" columnalign="left left"><mtr><mtd><mo stretchy="false">(</mo><mo stretchy="false">(</mo><mo stretchy="false">(</mo><mi>S</mi><mspace width="0.27778em"/><mi>x</mi><mo stretchy="false">)</mo><mspace width="0.27778em"/><mi>y</mi><mo stretchy="false">)</mo><mspace width="0.27778em"/><mi>z</mi><mo stretchy="false">)</mo></mtd> <mtd><mo>=</mo><mo stretchy="false">(</mo><mo stretchy="false">(</mo><mi>x</mi><mspace width="0.27778em"/><mi>z</mi><mo stretchy="false">)</mo><mspace width="0.27778em"/><mo stretchy="false">(</mo><mi>y</mi><mspace width="0.27778em"/><mi>z</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd><mo stretchy="false">(</mo><mo stretchy="false">(</mo><mi>K</mi><mspace width="0.27778em"/><mi>x</mi><mo stretchy="false">)</mo><mspace width="0.27778em"/><mi>y</mi><mo stretchy="false">)</mo></mtd> <mtd><mo>=</mo><mi>x</mi></mtd></mtr> <mtr><mtd/></mtr></mtable></mrow><annotation encoding='application/x-tex'>\begin{array}{ll} (((S\; x)\; y)\; z) &amp; =
  2255. ((x\; z)\; (y\; z))\\ ((K\; x)\; y) &amp; = x\\ \end{array}</annotation></semantics></math></div>
  2256.  
  2257. <p>We can then define a recursive translation of terms:</p>
  2258.  
  2259. <div class="numberedEq"><span>(19)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mtable displaystyle="false" rowspacing="0.5ex" columnalign="left left left"><mtr><mtd><mi>T</mi><mo stretchy="false">[</mo><mi>x</mi><mo stretchy="false">]</mo></mtd> <mtd><mo>=</mo><mi>x</mi></mtd> <mtd/></mtr> <mtr><mtd><mi>T</mi><mo stretchy="false">[</mo><mo stretchy="false">(</mo><mi>M</mi><mspace width="0.27778em"/><mi>N</mi><mo stretchy="false">)</mo><mo stretchy="false">]</mo></mtd> <mtd><mo>=</mo><mo stretchy="false">(</mo><mi>T</mi><mo stretchy="false">[</mo><mi>M</mi><mo stretchy="false">]</mo><mspace width="0.27778em"/><mi>T</mi><mo stretchy="false">[</mo><mi>N</mi><mo stretchy="false">]</mo><mo stretchy="false">)</mo></mtd> <mtd/></mtr> <mtr><mtd><mi>T</mi><mo stretchy="false">[</mo><mi>&#x003BB;</mi><mi>x</mi><mo>.</mo><mi>M</mi><mo stretchy="false">]</mo></mtd> <mtd><mo>=</mo><mo stretchy="false">(</mo><mi>K</mi><mspace width="0.27778em"/><mi>T</mi><mo stretchy="false">[</mo><mi>M</mi><mo stretchy="false">]</mo><mo stretchy="false">)</mo></mtd> <mtd><mtext>(x not free in M)</mtext></mtd></mtr> <mtr><mtd><mi>T</mi><mo stretchy="false">[</mo><mi>&#x003BB;</mi><mi>x</mi><mo>.</mo><mi>x</mi><mo stretchy="false">]</mo></mtd> <mtd><mo>=</mo><mo stretchy="false">(</mo><mo stretchy="false">(</mo><mi>S</mi><mspace width="0.27778em"/><mi>K</mi><mo stretchy="false">)</mo><mspace width="0.27778em"/><mi>K</mi><mo stretchy="false">)</mo></mtd> <mtd/></mtr> <mtr><mtd><mi>T</mi><mo stretchy="false">[</mo><mi>&#x003BB;</mi><mi>x</mi><mo>.</mo><mi>&#x003BB;</mi><mi>y</mi><mo>.</mo><mi>M</mi><mo stretchy="false">]</mo></mtd> <mtd><mo>=</mo><mi>T</mi><mo stretchy="false">[</mo><mi>&#x003BB;</mi><mi>x</mi><mo>.</mo><mi>T</mi><mo stretchy="false">[</mo><mi>&#x003BB;</mi><mi>y</mi><mo>.</mo><mi>M</mi><mo stretchy="false">]</mo><mo stretchy="false">]</mo></mtd> <mtd><mtext>(x free in M)</mtext></mtd></mtr> <mtr><mtd><mi>T</mi><mo stretchy="false">[</mo><mi>&#x003BB;</mi><mi>x</mi><mo>.</mo><mo stretchy="false">(</mo><mi>M</mi><mspace width="0.27778em"/><mi>N</mi><mo stretchy="false">)</mo><mo stretchy="false">]</mo></mtd> <mtd><mo>=</mo><mo stretchy="false">(</mo><mo stretchy="false">(</mo><mi>S</mi><mspace width="0.27778em"/><mi>T</mi><mo stretchy="false">[</mo><mi>&#x003BB;</mi><mi>x</mi><mo>.</mo><mi>M</mi><mo stretchy="false">]</mo><mo stretchy="false">)</mo><mspace width="0.27778em"/><mi>T</mi><mo stretchy="false">[</mo><mi>&#x003BB;</mi><mi>x</mi><mo>.</mo><mi>N</mi><mo stretchy="false">]</mo><mo stretchy="false">)</mo></mtd> <mtd><mtext>(x
  2260.    free in M)</mtext></mtd></mtr> <mtr><mtd/></mtr></mtable></mrow><annotation encoding='application/x-tex'>\begin{array}{lll} T[x] &amp; = x &amp; \\ T[(M\; N)] &amp; = (T[M]\; T[N]) &amp;\\
  2261.    T[\lambda x.M] &amp; = (K\; T[M]) &amp; \text{(x not free in M)}\\
  2262.    T[\lambda x.x] &amp; = ((S\; K)\; K) &amp;\\ T[\lambda x.\lambda y.M] &amp; =
  2263.    T[\lambda x.T[\lambda y.M]] &amp; \text{(x free in M)}\\ T[\lambda
  2264.    x.(M\; N)] &amp; = ((S\; T[\lambda x.M])\; T[\lambda x.N]) &amp; \text{(x
  2265.    free in M)}\\ \end{array}</annotation></semantics></math></div>
  2266.  
  2267. <p>For example, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi><mo stretchy="false">[</mo><mi>&#x003BB;</mi><mi>x</mi><mo>.</mo><mi>&#x003BB;</mi><mi>y</mi><mo>.</mo><mo stretchy="false">(</mo><mi>y</mi><mspace width="0.27778em"/><mi>x</mi><mo stretchy="false">)</mo><mo stretchy="false">]</mo><mo>=</mo><mo stretchy="false">(</mo><mo stretchy="false">(</mo><mi>S</mi><mspace width="0.27778em"/><mo stretchy="false">(</mo><mi>K</mi><mspace width="0.27778em"/><mo stretchy="false">(</mo><mi>S</mi><mspace width="0.27778em"/><mi>I</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mspace width="0.27778em"/><mo stretchy="false">(</mo><mo stretchy="false">(</mo><mi>S</mi><mspace width="0.27778em"/><mo stretchy="false">(</mo><mi>K</mi><mspace width="0.27778em"/><mi>K</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mspace width="0.27778em"/><mi>I</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>T[\lambda x.\lambda y. (y\; x)] = ((S\; (K\; (S\; I))\;
  2268. ((S\; (K\; K))\; I))</annotation></semantics></math>. This translation preserves exactly the way this
  2269. term acts in the <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BB;</mi></mrow><annotation encoding='application/x-tex'>\lambda</annotation></semantics></math> calculus.  For more information, see <a href="https://en.wikipedia.org/wiki/To_Mock_a_Mockingbird">To
  2270. Mock a
  2271. Mockingbird</a>, and
  2272. <a href="https://golem.ph.utexas.edu/category/2017/06/eliminating_binders_for_easier.html">Eliminating Binders for Easier Operational
  2273. Semantics</a>.</p>
  2274.  
  2275. <h2>Applicative Systems and Computable Maps</h2>
  2276.  
  2277. <p>Let <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi></mrow><annotation encoding='application/x-tex'>C</annotation></semantics></math> be a cartesian restriction category, and let
  2278. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi><mo>=</mo><mo stretchy="false">(</mo><mi>A</mi><mo>,</mo><mo>&#x02022;</mo><mo>:</mo><msup><mi>A</mi> <mn>2</mn></msup><mo>&#x02192;</mo><mi>A</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\mathbb{A}=(A,\bullet:A^2\to A)</annotation></semantics></math> be a magma object, a.k.a. an
  2279. <strong>applicative system</strong>, in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi></mrow><annotation encoding='application/x-tex'>C</annotation></semantics></math>. A guiding example is Kleene
  2280. application, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>&#x03D5;</mi> <mrow><mo stretchy="false">(</mo><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mo stretchy="false">)</mo></mrow></msup><mo>:</mo><mi>&#x02115;</mi><mo>&#x000D7;</mo><mi>&#x02115;</mi><mo>&#x02192;</mo><mi>&#x02115;</mi></mrow><annotation encoding='application/x-tex'>\phi^{(&#x2d;)}:\mathbb{N}\times \mathbb{N}\to
  2281. \mathbb{N}</annotation></semantics></math>. While we care about those which intuitively &#8220;act as
  2282. universal Turing machines&#8221;, these are in fact a far more general
  2283. concept. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{A}</annotation></semantics></math> will be seen to generate a &#8220;category of
  2284. computations&#8221;.</p>
  2285.  
  2286. <h3>Comp(A)</h3>
  2287.  
  2288. <p>A morphism <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi><mo>:</mo><msup><mi>A</mi> <mi>n</mi></msup><mo>&#x02192;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>f:A^n\to A</annotation></semantics></math> is <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{A}</annotation></semantics></math>-<math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mstyle mathvariant="bold"><mi>computable</mi></mstyle></mrow><annotation encoding='application/x-tex'>\mathbf{computable}</annotation></semantics></math>, or
  2289. simply computable, when there exists a total point <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>p</mi><mo>:</mo><mn>1</mn><mo>&#x02192;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>p:1\to A</annotation></semantics></math>, meaning
  2290. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mover><mi>p</mi><mo>&#x000AF;</mo></mover><mo>=</mo><msub><mi>id</mi> <mn>1</mn></msub></mrow><annotation encoding='application/x-tex'>\overline{p}=id_1</annotation></semantics></math> has total domain, which provides the &#8220;code&#8221; for
  2291. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi></mrow><annotation encoding='application/x-tex'>f</annotation></semantics></math> (like the <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C4;</mi></mrow><annotation encoding='application/x-tex'>\tau</annotation></semantics></math>-index):</p>
  2292.  
  2293. <p><img width="40%" class="center"
  2294. src="https://raw.githubusercontent.com/cbw124/actpngs/master/pngs/computable.png"
  2295. alt=""/></p>
  2296.  
  2297. <p>This code <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>p</mi></mrow><annotation encoding='application/x-tex'>p</annotation></semantics></math> picks out a program, i.e. an element of the universal
  2298. Turing machine, which implements the function <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi></mrow><annotation encoding='application/x-tex'>f</annotation></semantics></math> by application. When
  2299. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>n</mi><mo>&#x02265;</mo><mn>2</mn></mrow><annotation encoding='application/x-tex'>n\geq 2</annotation></semantics></math>, we also require that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mo>&#x02022;</mo> <mrow><mi>n</mi><mo>&#x02212;</mo><mn>1</mn></mrow></msup><mo>&#x02218;</mo><mo stretchy="false">(</mo><mi>p</mi><mo>&#x000D7;</mo><mn>1</mn><mo stretchy="false">)</mo><mo>:</mo><mn>1</mn><mo>&#x000D7;</mo><msup><mi>A</mi> <mrow><mi>n</mi><mo>&#x02212;</mo><mn>1</mn></mrow></msup><mo>&#x02192;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>\bullet^{n&#x2d;1}\circ (p\times 1):
  2300. 1\times A^{n&#x2d;1}\to A</annotation></semantics></math> is total. A morphism <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>A</mi> <mi>n</mi></msup><mo>&#x02192;</mo><msup><mi>A</mi> <mi>m</mi></msup></mrow><annotation encoding='application/x-tex'>A^n \to A^m</annotation></semantics></math> is computable
  2301. if all components are, and a morphism <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>A</mi> <mi>n</mi></msup><mo>&#x02192;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>A^n\to A</annotation></semantics></math> is computable if its
  2302. domain is (as a map <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>A</mi> <mi>n</mi></msup><mo>&#x02192;</mo><msup><mi>A</mi> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>A^n\to A^n</annotation></semantics></math>).</p>
  2303.  
  2304. <p>By weakening this diagram from commuting to being filled by a
  2305. restriction 2-cell, i.e. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi><mo>&#x02264;</mo><mo>&#x02022;</mo><mo stretchy="false">(</mo><mi>p</mi><mo>&#x000D7;</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>f \leq \bullet (p\times 1)</annotation></semantics></math>, we generalize
  2306. from computability to the <em>realizability</em> of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi></mrow><annotation encoding='application/x-tex'>f</annotation></semantics></math>, meaning that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi></mrow><annotation encoding='application/x-tex'>f</annotation></semantics></math> can
  2307. be implemented or &#8220;realized&#8221; by restricting the code-application
  2308. composite to the domain of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi></mrow><annotation encoding='application/x-tex'>f</annotation></semantics></math>, even if the former is defined more
  2309. generally.</p>
  2310.  
  2311. <p>Of course in defining a morphism, we intend to form a category. With
  2312. this general definition of computability, however, categorical
  2313. structure does not come for free&#8212;for <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{A}</annotation></semantics></math>-computable
  2314. morphisms to include identities and to be closed under composition,
  2315. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{A}</annotation></semantics></math> needs to have the right structure. This structure is
  2316. directly connected to combinatory logic.</p>
  2317.  
  2318. <p>Let <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Poly</mi><mo stretchy="false">(</mo><mi>&#x1D538;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>Poly(\mathbb{A})</annotation></semantics></math> by the sub- (cartesian restriction) category of
  2319. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi></mrow><annotation encoding='application/x-tex'>C</annotation></semantics></math> generated by all total points <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mn>1</mn><mo>&#x02192;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>1\to A</annotation></semantics></math> and application. These
  2320. morphisms are called <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{A}</annotation></semantics></math>-<em>polynomial morphisms</em>. This
  2321. essentially represents &#8220;all computations that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{A}</annotation></semantics></math> knows how
  2322. to do&#8221;. We should like that these are all computable, i.e. there
  2323. exists codes for all of these &#8220;computations&#8221;. An applicative system is
  2324. combinatory complete if every polynomial morphism is computable.</p>
  2325.  
  2326. <p>When is this true? Precisely when <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{A}</annotation></semantics></math> has the combinators S
  2327. and K; that is, the following morphisms are <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{A}</annotation></semantics></math>-computable.</p>
  2328.  
  2329. <div class="numberedEq"><span>(20)</span><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mtable displaystyle="false" rowspacing="0.5ex" columnalign="left left"><mtr><mtd><msub><mi>k</mi> <mn>0</mn></msub><mo>=</mo><msub><mi>&#x003C0;</mi> <mn>0</mn></msub><mo>:</mo><mi>A</mi><mo>&#x000D7;</mo><mi>A</mi><mo>&#x02192;</mo><mi>A</mi></mtd></mtr> <mtr><mtd><mo stretchy="false">(</mo><mi>K</mi><mo stretchy="false">(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo stretchy="false">)</mo><mo>=</mo><mi>a</mi><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd><msub><mi>s</mi> <mn>0</mn></msub><mo>:</mo><mi>A</mi><mo>&#x000D7;</mo><mi>A</mi><mo>&#x000D7;</mo><mi>A</mi><mover><mo>&#x02192;</mo><mrow><mo stretchy="false">&#x027E8;</mo><msub><mi>&#x003C0;</mi> <mn>13</mn></msub><mo>,</mo><msub><mi>&#x003C0;</mi> <mn>23</mn></msub><mo stretchy="false">&#x027E9;</mo></mrow></mover><mo stretchy="false">(</mo><mi>A</mi><mo>&#x000D7;</mo><mi>A</mi><mo stretchy="false">)</mo><mo>&#x000D7;</mo><mo stretchy="false">(</mo><mi>A</mi><mo>&#x000D7;</mo><mi>A</mi><mo stretchy="false">)</mo><mover><mo>&#x02192;</mo><mrow><mo>&#x02022;</mo><mo>&#x000D7;</mo><mo>&#x02022;</mo></mrow></mover><mi>A</mi><mo>&#x000D7;</mo><mi>A</mi><mover><mo>&#x02192;</mo><mo>&#x02022;</mo></mover><mi>A</mi></mtd></mtr> <mtr><mtd><mo stretchy="false">(</mo><mi>S</mi><mo stretchy="false">(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>,</mo><mi>c</mi><mo stretchy="false">)</mo><mo>=</mo><mo stretchy="false">(</mo><mo stretchy="false">(</mo><mi>a</mi><mo>&#x02022;</mo><mi>b</mi><mo stretchy="false">)</mo><mo>&#x02022;</mo><mo stretchy="false">(</mo><mi>a</mi><mo>&#x02022;</mo><mi>c</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mo stretchy="false">)</mo></mtd></mtr></mtable></mrow><annotation encoding='application/x-tex'>\begin{array}{ll} k_0= \pi_0: A\times A\to A\\ (K(a,b) = a)\\ s_0:
  2330. A\times A\times A \xrightarrow{\langle \pi_{13}{,} \pi_{23} \rangle}
  2331. (A\times A)\times (A\times A) \xrightarrow{\bullet\times \bullet}
  2332. A\times A \xrightarrow{\bullet} A\\ (S(a,b,c) = ((a\bullet b)\bullet
  2333. (a\bullet c))) \end{array}</annotation></semantics></math></div>
  2334.  
  2335. <p>Let&#8217;s think about why this is true. As in the original use of
  2336. combinators, we give a translation from <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{A}</annotation></semantics></math>-polynomial
  2337. morphisms to composites of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>s</mi> <mn>0</mn></msub><mo>,</mo><msub><mi>k</mi> <mn>0</mn></msub></mrow><annotation encoding='application/x-tex'>s_0,k_0</annotation></semantics></math>, application, and cartesian
  2338. structure. This suffices because the generators of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Poly</mi><mo stretchy="false">(</mo><mi>&#x1D538;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>Poly(\mathbb{A})</annotation></semantics></math>,
  2339. the total points <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>p</mi><mo>:</mo><mn>1</mn><mo>&#x02192;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>p:1\to A</annotation></semantics></math>, are computable; then the polynomial
  2340. construction essentially makes all possible application trees of these
  2341. codes&#8212;and this is exactly what <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>s</mi></mrow><annotation encoding='application/x-tex'>s</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>k</mi></mrow><annotation encoding='application/x-tex'>k</annotation></semantics></math> do.</p>
  2342.  
  2343. <p>So, we define a <strong>partial combinatory algebra</strong> (PCA) to be an
  2344. applicative system which is combinatory complete. We can now prove the
  2345. simple categorical characterization of this completeness:</p>
  2346.  
  2347. <p><strong>Theorem</strong>: For an applicative system <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi><mo>=</mo><mo stretchy="false">(</mo><mi>A</mi><mo>,</mo><mo>&#x02022;</mo><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\mathbb{A} = (A,\bullet)</annotation></semantics></math> in a
  2348. cartesian restriction category <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi></mrow><annotation encoding='application/x-tex'>C</annotation></semantics></math>, the following are equivalent:</p>
  2349.  
  2350. <ul>
  2351. <li><p><math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{A}</annotation></semantics></math> is combinatory complete.</p></li>
  2352. <li><p><math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{A}</annotation></semantics></math>-computable morphisms form a cartesian restriction
  2353. category.</p></li>
  2354. </ul>
  2355.  
  2356. <p>(The forward direction: computable is a special case of being
  2357. polynomial. The backward direction: the code of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>id</mi> <mi>A</mi></msub></mrow><annotation encoding='application/x-tex'>id_A</annotation></semantics></math> is the code of
  2358. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x02022;</mo></mrow><annotation encoding='application/x-tex'>\bullet</annotation></semantics></math>.)</p>
  2359.  
  2360. <p>What about the <em>restriction</em> structure? That is, given computable <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi></mrow><annotation encoding='application/x-tex'>f</annotation></semantics></math>
  2361. how do we know that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mover><mi>f</mi><mo>&#x000AF;</mo></mover></mrow><annotation encoding='application/x-tex'>\overline{f}</annotation></semantics></math> is computable? This is actually
  2362. given by the combinator <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>k</mi></mrow><annotation encoding='application/x-tex'>k</annotation></semantics></math>:</p>
  2363.  
  2364. <p><img width="40%" class="center"
  2365. src="https://raw.githubusercontent.com/cbw124/actpngs/master/pngs/kexample.png"
  2366. alt=""/></p>
  2367.  
  2368. <p>i.e., <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mover><mi>f</mi><mo>&#x000AF;</mo></mover><mo>=</mo><msub><mi>k</mi> <mn>0</mn></msub><mo stretchy="false">&#x027E8;</mo><mn>1</mn><mo>,</mo><mi>f</mi><mo stretchy="false">&#x027E9;</mo></mrow><annotation encoding='application/x-tex'>\overline{f} = k_0\langle 1{,}f\rangle</annotation></semantics></math>.</p>
  2369.  
  2370. <p>Pairing a function with <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>id</mi> <mi>A</mi></msub></mrow><annotation encoding='application/x-tex'>id_A</annotation></semantics></math> and projecting onto the first component
  2371. gives the subdomain of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math> on which the function is defined, and this
  2372. operation is computable by the existence of the code <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>k</mi></mrow><annotation encoding='application/x-tex'>k</annotation></semantics></math>. These
  2373. combinators are humble but very useful.</p>
  2374.  
  2375. <p>Hence, we have a direct equivalence between the classical notion of
  2376. combinatory completeness and the general, abstract computability
  2377. concept of cartesian restriction category. (Like many
  2378. &#8220;generalizations&#8221; in abstract mathematics, it&#8217;s really more an
  2379. <em>extension</em> than generalization, because we still depend on the
  2380. original idea of combinatory completeness; but &#8220;grounding&#8221; the latter
  2381. by seeing it as a natural structure in a fully abstract setting
  2382. demonstrates essential understanding, and connects the concept to the
  2383. rest of category theory and computer science.)</p>
  2384.  
  2385. <h3>Examples</h3>
  2386.  
  2387. <p>The most important example of a category of computable maps is
  2388. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Comp</mi><mo stretchy="false">(</mo><mi>&#x02115;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>Comp(\mathbb{N})</annotation></semantics></math>, of natural numbers and Kleene application.</p>
  2389.  
  2390. <p>Another example is the (partial) lambda calculus, modelled by a
  2391. reflexive object <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math> as mentioned in the introduction.</p>
  2392.  
  2393. <p>One can generalize these examples by adding further expressive power
  2394. such as <a href="https://en.wikipedia.org/wiki/Oracle_machine">oracles</a>, or by
  2395. considering &#8220;basic recursive function theories&#8221; which are sets of
  2396. functions satisfying the Universality and Parameter theorems.</p>
  2397.  
  2398. <h3>Structure Theorem</h3>
  2399.  
  2400. <p>Now, for the unsurprising and important conclusion: given a PCA
  2401. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{A}</annotation></semantics></math>, the computable maps <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Comp</mi><mo stretchy="false">(</mo><mi>&#x1D538;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>Comp(\mathbb{A})</annotation></semantics></math> form not only a
  2402. cartesian restriction category, but a <em>Turing category</em>. The
  2403. application <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x02022;</mo><mo>:</mo><mi>A</mi><mo>&#x000D7;</mo><mi>A</mi><mo>&#x02192;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>\bullet:A\times A\to A</annotation></semantics></math> is the Turing morphism, and the
  2404. codes are the indices. The pairing operator <em>pair</em>: <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi><mo>&#x02192;</mo><mi>A</mi><mo>&#x000D7;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>A\to A\times A</annotation></semantics></math>
  2405. is represented by the lambda term <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BB;</mi><mi>xyz</mi><mo>.</mo><mo stretchy="false">(</mo><mo stretchy="false">(</mo><mi>zx</mi><mo stretchy="false">)</mo><mi>y</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\lambda xyz.((zx)y)</annotation></semantics></math>, and
  2406. projections <em>fst</em>,<em>snd</em>:<math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi><mo>&#x000D7;</mo><mi>A</mi><mo>&#x02192;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>A\times A\to A</annotation></semantics></math> are given by <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BB;</mi><mi>xy</mi><mo>.</mo><mi>x</mi></mrow><annotation encoding='application/x-tex'>\lambda xy.x</annotation></semantics></math>,
  2407. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BB;</mi><mi>xy</mi><mo>.</mo><mi>y</mi></mrow><annotation encoding='application/x-tex'>\lambda xy.y</annotation></semantics></math>. One can check that these satisfy <em>fst</em> <em>pair</em> =
  2408. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C0;</mi> <mn>0</mn></msub></mrow><annotation encoding='application/x-tex'>\pi_0</annotation></semantics></math> and <em>snd</em> <em>pair</em> = <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x003C0;</mi> <mn>1</mn></msub></mrow><annotation encoding='application/x-tex'>\pi_1</annotation></semantics></math>. We then have (<em>pair</em>,<math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">&#x027E8;</mo></mrow><annotation encoding='application/x-tex'>\langle</annotation></semantics></math>
  2409. <em>fst</em>, <em>snd</em> <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">&#x027E9;</mo><mo stretchy="false">)</mo><mo>:</mo><mi>A</mi><mo>&#x000D7;</mo><mi>A</mi><mo>&#x025C3;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>\rangle): A\times A \triangleleft A</annotation></semantics></math> gives the product
  2410. as a retract of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math>, and this extends to <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>A</mi> <mi>n</mi></msup></mrow><annotation encoding='application/x-tex'>A^n</annotation></semantics></math>. Hence, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{A}</annotation></semantics></math> is
  2411. a Turing object, and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Comp</mi><mo stretchy="false">(</mo><mi>&#x1D538;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>Comp(\mathbb{A})</annotation></semantics></math> is a Turing category.</p>
  2412.  
  2413. <p>Thus, we have the main theorem:</p>
  2414.  
  2415. <p><strong>Structure Theorem</strong></p>
  2416.  
  2417. <p>Let <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi></mrow><annotation encoding='application/x-tex'>C</annotation></semantics></math> be a cartesian restriction category with applicative system
  2418. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi><mo>=</mo><mo stretchy="false">(</mo><mi>A</mi><mo>,</mo><mo>&#x02022;</mo><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\mathbb{A}=(A,\bullet)</annotation></semantics></math>.</p>
  2419.  
  2420. <ol>
  2421. <li><p>When <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{A}</annotation></semantics></math> is a <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>PCA</mi></mrow><annotation encoding='application/x-tex'>PCA</annotation></semantics></math> in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi></mrow><annotation encoding='application/x-tex'>C</annotation></semantics></math>, then <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Comp</mi><mo stretchy="false">(</mo><mi>&#x1D538;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>Comp(\mathbb{A})</annotation></semantics></math> is a
  2422. Turing category with Turing object <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{A}</annotation></semantics></math>.</p></li>
  2423. <li><p>If <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi></mrow><annotation encoding='application/x-tex'>C</annotation></semantics></math> is a Turing category and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{A}</annotation></semantics></math> is a Turing object,
  2424. then <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D538;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{A}</annotation></semantics></math> is a <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>PCA</mi></mrow><annotation encoding='application/x-tex'>PCA</annotation></semantics></math> in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi></mrow><annotation encoding='application/x-tex'>C</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>C</mi></mrow><annotation encoding='application/x-tex'>C</annotation></semantics></math> is Morita-equivalent to
  2425. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Comp</mi><mo stretchy="false">(</mo><mi>&#x1D538;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>Comp(\mathbb{A})</annotation></semantics></math>.</p></li>
  2426. </ol>
  2427.  
  2428. <h2>Conclusion</h2>
  2429.  
  2430. <p>We learned some about the roots of computability theory, and discussed
  2431. how Turing categories abstract these ideas, using the guiding example
  2432. of natural numbers and partial recursive functions. Every Turing
  2433. category arises from a partial combinatory algebra, in particular the
  2434. natural numbers with Kleene application. Conversely, every partial
  2435. combinatory algebra determines a Turing category, establishing the
  2436. latter and raising the former into more general abstraction. Turing
  2437. categories remain an active area of research, and our group looks
  2438. forward to studying and contributing to this work.</p>
  2439.  
  2440.      </div>
  2441.    </content>
  2442.  </entry>
  2443.  <entry>
  2444.    <title type="html">Graphical Regular Logic</title>
  2445.    <link rel="alternate" type="application/xhtml+xml" href="https://golem.ph.utexas.edu/category/2019/08/graphical_regular_logic.html" />
  2446.    <updated>2019-08-17T08:03:04Z</updated>
  2447.    <published>2019-08-16T08:03:35+00:00</published>
  2448.    <id>tag:golem.ph.utexas.edu,2019:%2Fcategory%2F3.3135</id>
  2449.    <summary type="text"> guest post by Sophie Libkind and David Jaz Myers This post continues the series from the Adjoint School of Applied Category Theory 2019....</summary>
  2450.    <author>
  2451.      <name>john</name>
  2452.      <uri>http://math.ucr.edu/home/baez/</uri>
  2453.      <email>[email protected]</email>
  2454.    </author>
  2455.    <category term="Categories" />
  2456.    <content type="xhtml" xml:base="https://golem.ph.utexas.edu/category/2019/08/graphical_regular_logic.html">
  2457.      <div xmlns="http://www.w3.org/1999/xhtml">
  2458. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  2459.  
  2460. <p><em>guest post by <strong><a href="https://mathematics.stanford.edu/people/sophie-libkind">Sophie Libkind</a> and <a href="http://davidjaz.com/about/">David Jaz Myers</a></strong></em></p>
  2461.  
  2462. <p>This post continues the series from the <a href="http://www.appliedcategorytheory.org/adjoint-school-act-2019/">Adjoint School</a> of <a href="http://www.cs.ox.ac.uk/ACT2019/">Applied Category Theory
  2463. 2019</a>.  </p>
  2464.  
  2465. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  2466.  
  2467. <h1>Graphical Regular Logic</h1>
  2468.  
  2469. <p><em>guest post by <strong><a href="https://mathematics.stanford.edu/people/sophie-libkind">Sophie Libkind</a> and <a href="http://davidjaz.com/about/">David Jaz Myers</a></strong></em></p>
  2470.  
  2471. <p>This post continues the series from the <a href="http://www.appliedcategorytheory.org/adjoint-school-act-2019/">Adjoint School</a> of
  2472. <a href="http://www.cs.ox.ac.uk/ACT2019/">Applied Category Theory
  2473. 2019</a>.  </p>
  2474.  
  2475. <p>Now that we have self-driving cars and talking watches, holographic data analysis should be the next innovation inspired by Hollywood spy films. Think of when Tom Cruise in <em>Minority Report</em> shuffles information around a 3D screen. As a step towards this future, Fong and Spivak formulated a graphical system for doing regular logic in their paper <a href="https://arxiv.org/abs/1812.05765">Graphical Regular Logic</a>. You can see Spivak give a talk about it <a href="https://www.youtube.com/watch?time_continue=87&amp;v=Ft0_l_PPO4w">here.</a> This visual knowledge representation system has the potential to be an intuitive user-interface for regular logic. It would allow laypeople to harness the power of regular logic without the clunkiness of the formal language.</p>
  2476.  
  2477. <p>The road from regular logic to graphical regular logic has two major stops: regular categories and regular calculi.</p>
  2478.  
  2479. <p><img width="100%"  src="https://raw.githubusercontent.com/slibkind/autopoiesis/master/post_images/roadmap.png" alt=""/></p>
  2480.  
  2481. <p>In this post, we&#8217;ll start on the right with graphical regular logic and work our way leftwards to regular categories.  </p>
  2482.  
  2483. <h2>Graphical Regular Logic: A User&#8217;s Guide</h2>
  2484.  
  2485. <p>Graphical Regular Logic is meant to be broadly applicable and easy-to-use. So in this user&#8217;s guide we will  apply it to something as non-mathy as a neighborhood watch program that is run by beings as gibberishy as a clan of minions.</p>
  2486.  
  2487. <h3>Building blocks</h3>
  2488.  
  2489. <p>When we imagine the headquarters of the neighborhood watch
  2490. program, there&#8217;s a big  screen with glowing blue dots to
  2491. move, connect, and zoom in and out of. In graphical regular
  2492. logic, these orbs are called <strong>shells</strong>. A shell has finitely many ports
  2493. labeled with a type and wires can connect ports of the same
  2494. type. In the neighborhood watch program, we care about types
  2495. like <code>person</code> and <code>location</code> and use shells like the
  2496. following.</p>
  2497.  
  2498. <p><img width="80%"  src="https://raw.githubusercontent.com/slibkind/autopoiesis/master/post_images/shells.png" alt=""/></p>
  2499.  
  2500. <p>A shell is the foundation for talking about a relationship between the types labeled on the ports.  A relationship between a person and a location (more formally <em>a predicate in context <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x00393;</mi> <mrow><mtext>person</mtext><mo>,</mo><mtext>location</mtext></mrow></msub></mrow><annotation encoding='application/x-tex'> \Gamma_{\text{person}, \text{location}}</annotation></semantics></math></em>) is like a Madlibs with a blank space for a person and a location:</p>
  2501.  
  2502. <p><img width="50%"  src="https://raw.githubusercontent.com/slibkind/autopoiesis/master/post_images/madlibs.png" alt=""/></p>
  2503.  
  2504. <p>To represent such a relationship, we take a shell with a port for each blank space and fill the shell with the corresponding predicate.</p>
  2505.  
  2506. <p><img width="100%"  src="https://raw.githubusercontent.com/slibkind/autopoiesis/master/post_images/filled_shells.png" alt=""/></p>
  2507.  
  2508. <p>We would read the right cell as &#8220;There exists a person <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>p</mi></mrow><annotation encoding='application/x-tex'>p</annotation></semantics></math> and a location <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x02113;</mi></mrow><annotation encoding='application/x-tex'>\ell</annotation></semantics></math> such that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>p</mi></mrow><annotation encoding='application/x-tex'>p</annotation></semantics></math> works at <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x02113;</mi></mrow><annotation encoding='application/x-tex'>\ell</annotation></semantics></math>&#8221;. Every shell represents a possible relationship between the wires coming out of it. There is no implied directionality on these wires.</p>
  2509.  
  2510. <h3>Operations</h3>
  2511.  
  2512. <p>Now comes the fun part where we really get to feel like Tom Cruise. How do we manipulate the filled shells in a way that reflects logical moves?</p>
  2513.  
  2514. <h4>Operation 1: Substitution</h4>
  2515.  
  2516. <p>The most basic operation is to substitute one filled shell for another. If someone lives in a location, then it&#8217;s also true that they have visited that location. Therefore, if we see the filled shell corresponding to <em>(person) lives in (location)</em> then we should be able to replace it with the filled shell corresponding to <em>(person) has visited (location)</em>. The red arrows below indicate when we can substitute one filled shell with another.</p>
  2517.  
  2518. <p><img width="80%"  src="https://raw.githubusercontent.com/slibkind/autopoiesis/master/post_images/substitution.png" alt=""/></p>
  2519.  
  2520. <p>In general, we are allowed to substitute in the midst of a more complicated diagram.</p>
  2521.  
  2522. <h4>Operation 2: Zooming out</h4>
  2523.  
  2524. <p>Sometimes we want a coarser view of the neighborhood, so we will zoom out and blur two shells together. For example, suppose we have two relationships:</p>
  2525.  
  2526. <ul>
  2527. <li>Bob works at Gru&#8217;s house</li>
  2528. <li>Edith has a roommate</li>
  2529. </ul>
  2530.  
  2531. <p>And we want to turn them in to one relationship:</p>
  2532.  
  2533. <ul>
  2534. <li>Bob works at Gru&#8217;s house and Edith has a roommate</li>
  2535. </ul>
  2536.  
  2537. <p>So we start with a relationship between a person and a location and a relationship on one person. And we want to transform these into one relationship about two people and a location. This process is called <strong>trench coating</strong> and goes as follows: (1) stack the two shells, (2) enclosed them in a trench coat, (3) ignore the coat&#8217;s interior.</p>
  2538.  
  2539. <p><img width="100%"  src="https://raw.githubusercontent.com/slibkind/autopoiesis/master/post_images/trenchcoat.png" alt=""/></p>
  2540.  
  2541. <p>At last the true purpose of this example comes to light:</p>
  2542.  
  2543. <p><img width = "50%" src = "https://danielmichaelcicala.github.io/act2019/assets/trenchcoating.jpg" alt = " "/></p>
  2544.  
  2545. <p>Now filling the inner shells with predicates, determines a predicate for the trench coat in a way that corresponds with logical AND.</p>
  2546.  
  2547. <p><img width="100%"  src="https://raw.githubusercontent.com/slibkind/autopoiesis/master/post_images/filled_trench.png" alt=""/></p>
  2548.  
  2549. <p>We will discuss this parallel more deeply when we show how to put a logic on the graphical calculus.</p>
  2550.  
  2551. <h4>Operation 3: Zooming in</h4>
  2552.  
  2553. <p>If we can zoom out, then we should also be able to zoom in to get a more fine-grained view of the neighborhood. Suppose we have a predicate which fills a trench coat. Then it defines a predicate on the inner shells by a process called <strong>dotting off</strong>.</p>
  2554.  
  2555. <p><img width="100%"  src="https://raw.githubusercontent.com/slibkind/autopoiesis/master/post_images/dotoff.png" alt=""/></p>
  2556.  
  2557. <p>Note that zooming in and out do not compose to the identity. In fact, in the next section we will show that they are adjoint operations.</p>
  2558.  
  2559. <p><img width="100%"  src="https://raw.githubusercontent.com/slibkind/autopoiesis/master/post_images/zooming.png" alt=""/></p>
  2560.  
  2561. <h4>Operation 4: Connecting Shells</h4>
  2562.  
  2563. <p>To really tell a story about the neighborhood we need to be able to combine information and build  complicated relationships out of the basic ones. For example, suppose we have two relationships:</p>
  2564.  
  2565. <ul>
  2566. <li>Agnes lives with Margo</li>
  2567. <li>Margo lives in Gru&#8217;s house</li>
  2568. </ul>
  2569.  
  2570. <p>And we want to derive the relationship:</p>
  2571.  
  2572. <ul>
  2573. <li>Agnes lives in Gru&#8217;s house</li>
  2574. </ul>
  2575.  
  2576. <p><strong>Step 1</strong> Draw the shells corresponding to the input, inside of the shell corresponding to the output</p>
  2577.  
  2578. <p><img width="50%"  src="https://raw.githubusercontent.com/slibkind/autopoiesis/master/post_images/connect1.png" alt=""/></p>
  2579.  
  2580. <p><strong>Step 2</strong> Draw an intermediate shell labeled with ports for the wires to attach through.</p>
  2581.  
  2582. <p><img width="50%"  src="https://raw.githubusercontent.com/slibkind/autopoiesis/master/post_images/connect2.png" alt=""/></p>
  2583.  
  2584. <p><strong>Step 3</strong> Connect the wires.</p>
  2585.  
  2586. <p><img width="50%"  src="https://raw.githubusercontent.com/slibkind/autopoiesis/master/post_images/connect3.png" alt=""/></p>
  2587.  
  2588. <p>Once we have hooked up shells, any choice of predicates for the inner shells defines a relationship for the outer shell. In the example above, we have the entailment:</p>
  2589.  
  2590. <p><img width="100%"  src="https://raw.githubusercontent.com/slibkind/autopoiesis/master/post_images/filled_connect1.png" alt=""/></p>
  2591.  
  2592. <p>However if we fill the inner shells differently, we may get a different filling for the outer shell.</p>
  2593.  
  2594. <p><img width="100%"  src="https://raw.githubusercontent.com/slibkind/autopoiesis/master/post_images/filled_connect2.png" alt=""/></p>
  2595.  
  2596. <p>We would read the bottom left diagram as &#8220;There exists a person <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>p</mi><mn>1</mn></mrow><annotation encoding='application/x-tex'>p1</annotation></semantics></math>, a person <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>p</mi><mn>2</mn></mrow><annotation encoding='application/x-tex'>p2</annotation></semantics></math> and a location <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x02113;</mi></mrow><annotation encoding='application/x-tex'>\ell</annotation></semantics></math> such that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>p</mi><mn>1</mn></mrow><annotation encoding='application/x-tex'>p1</annotation></semantics></math> lives with <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>p</mi><mn>2</mn></mrow><annotation encoding='application/x-tex'>p2</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>p</mi><mn>1</mn></mrow><annotation encoding='application/x-tex'>p1</annotation></semantics></math> works at <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x02113;</mi></mrow><annotation encoding='application/x-tex'>\ell</annotation></semantics></math>&#8221;.</p>
  2597.  
  2598. <p>With these four operations, we can visually represent any deduction in regular logic. Next, we give a taste of how a graphical calculus presents a regular logic.</p>
  2599.  
  2600. <h4>Putting a Logic on a Graphical Calculus</h4>
  2601.  
  2602. <p>Before we dive into the particular relationship between the graphical calculus and regular categories, let&#8217;s take a little bit to dwell on some abstract ruminations.</p>
  2603.  
  2604. <p>Lawvere divides logic into two opposing modes: <em>subjective</em> and <em>objective</em>.</p>
  2605.  
  2606. <ul>
  2607. <li><em>Subjective</em> logic is the logic we use to reason with &#x2013; the syntax and the rules of inference. For example, the axioms of a boolean algebra.</li>
  2608. <li><em>Objective</em> logic is the logical arrangement of the objects we are interested in studying. For example, the power set of a given set.</li>
  2609. </ul>
  2610.  
  2611. <p>We use the subjective logic to describe and reason about the objective logic at hand. This gives us a transformation which is sometimes called <em>semantics</em> from subjective to objective reasoning. For example, we can use the axioms of a boolean algebra to reason about the subsets of a given a set.</p>
  2612.  
  2613. <p>In nice cases, we can &#8220;objectify&#8221; our subjective logic by freely  generating objective situations of our syntax. By stretching what we mean by syntax, we can also build subjective logics out of our objective situations. If everything goes perfectly, these two processes are inverse. A case where everything does go perfectly is <a href="http://www.math.mcgill.ca/rags/ZML/ZML.PDF">Seely&#8217;s equivalence between first order (constructive) theories and hyperdoctrines</a>, where the subjective first order constructive logic is interpreted into the objective logic of a <em>hyperdoctrine</em>.</p>
  2614.  
  2615. <p>In the situation at hand, the graphical calculus is our subjective logic for dealing with the objective logic of a regular category.  We would like to put a logic back on our calculus &#x2013; that is, build a regular category from a graphical calculus. However, we can&#8217;t do it with the pictures alone; we have to give a way for the pictures to <em>mean something</em>. How should we go about this?</p>
  2616.  
  2617. <h4>Ajax Functors</h4>
  2618.  
  2619. <p>The objects under consideration in predicate logic are the
  2620. <em>parts of a domain of discourse</em>. The association of each
  2621. object to its order of parts gives something akin to a
  2622. <a href="https://ncatlab.org/nlab/show/hyperdoctrine"><em>hyperdoctrine</em></a>. A
  2623. hyperdoctrine is just an axiomatization of this association
  2624. for first order constructive logic. We need something like
  2625. this to add meaning to our pictures.</p>
  2626.  
  2627. <p>But hyperdoctrines are notoriously complex; they have a
  2628. number of axioms that on a first read seem unmotivated (or,
  2629. at least, they seemed that way to us). While they all turn
  2630. out to directly correspond to features of the logic being
  2631. modeled, it would be nice to have a more basic, conceptual
  2632. axiomatization from which the desired properties follow. In
  2633. the case of regular logic&#x02014;the logic of &#8220;true&#8221;, &#8220;and&#8221;,
  2634. and &#8220;exists&#8221;&#x02014;David and Brendan find this conceptual
  2635. axiomatization in the form of <em>ajax functors</em>. The
  2636. definition of an ajax functor is not terribly complicated,
  2637. but to understand why it does what we want takes a bit of
  2638. work. So we&#8217;ll meander our way to the definition.</p>
  2639.  
  2640. <p>Regular logic is the logic of &#8220;truth&#8221;, &#8220;and&#8221; and &#8220;exists&#8221; &#x2013; let&#8217;s bring them into the ajax frame in that order. Our ambient setting will be the category <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo lspace="0em" rspace="0.16667em">textbf</mo><mi>Order</mi></mrow><annotation encoding='application/x-tex'>\textbf{Order}</annotation></semantics></math> of ordered sets and order preserving maps. In fact, we will think of this as a <em>2-category</em> where the arrows between order preserving maps <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi><mo>,</mo><mspace width="0.16667em"/><mi>g</mi><mo>:</mo><mi>A</mi><mo>&#x02192;</mo><mi>B</mi></mrow><annotation encoding='application/x-tex'>f,\, g : A \to B</annotation></semantics></math> are <em>dominations</em> <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi><mo>&#x022A2;</mo><mi>g</mi></mrow><annotation encoding='application/x-tex'>f \vdash g</annotation></semantics></math>, that is, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x02200;</mo><mi>a</mi><mo>.</mo><mspace width="0.16667em"/><mi>f</mi><mo stretchy="false">(</mo><mi>a</mi><mo stretchy="false">)</mo><mo>&#x022A2;</mo><mi>g</mi><mo stretchy="false">(</mo><mi>a</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\forall a.\, f(a) \vdash g(a)</annotation></semantics></math> (since we are thinking logically, I&#8217;ll denote the order relation by <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>a</mi><mo>&#x022A2;</mo><mi>b</mi></mrow><annotation encoding='application/x-tex'>a \vdash b</annotation></semantics></math>, which you can read as <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>a</mi></mrow><annotation encoding='application/x-tex'>a</annotation></semantics></math> <em>entails</em> <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>b</mi></mrow><annotation encoding='application/x-tex'>b</annotation></semantics></math> if you like). If you are familiar with enriched category theory, this is the 2-category of Boolean-enriched categories.</p>
  2641.  
  2642. <p>&#8220;Truth&#8221;, or <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x022A4;</mo></mrow><annotation encoding='application/x-tex'>\top</annotation></semantics></math>, in an order theoretic sense, is the most general proposition. It has a mapping-in property; namely, from any proposition <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>p</mi></mrow><annotation encoding='application/x-tex'>p</annotation></semantics></math>, one can infer <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x022A4;</mo></mrow><annotation encoding='application/x-tex'>\top</annotation></semantics></math>. If <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>E</mi></mrow><annotation encoding='application/x-tex'>E</annotation></semantics></math> is our ordered set of propositions and entailments, then <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x022A4;</mo><mo>:</mo><mn>1</mn><mo>&#x02192;</mo><mi>E</mi></mrow><annotation encoding='application/x-tex'>\top : 1 \to E</annotation></semantics></math> would be an order preserving function from the terminal order. To say that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x022A4;</mo></mrow><annotation encoding='application/x-tex'>\top</annotation></semantics></math> has the universal property we expect, we can ask that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x022A4;</mo><mo>:</mo><mn>1</mn><mo>&#x02192;</mo><mi>E</mi></mrow><annotation encoding='application/x-tex'>\top : 1 \to E</annotation></semantics></math> be <em>right adjoint</em> to the terminal functor <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>!</mo><mo>:</mo><mi>E</mi><mo>&#x02192;</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'>! : E \to 1</annotation></semantics></math>. In other words, we ask that that the top holds if and only if the bottom holds</p>
  2643.  
  2644. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mfrac><mrow><mi>p</mi><mo>&#x022A2;</mo><mo>&#x022A4;</mo></mrow><mrow><mo>&#x0002A;</mo><mo>&#x022A2;</mo><mo>&#x0002A;</mo></mrow></mfrac></mrow><annotation encoding='application/x-tex'>\frac{p \vdash \top}{\ast \vdash \ast}</annotation></semantics></math></p>
  2645.  
  2646. <p>where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x022A2;</mo></mrow><annotation encoding='application/x-tex'>\vdash</annotation></semantics></math> is our ordering and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>\ast</annotation></semantics></math> is the unique element of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mn>1</mn></mrow><annotation encoding='application/x-tex'>1</annotation></semantics></math>. Since per the axioms of an ordering, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x0002A;</mo><mo>&#x022A2;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>\ast \vdash \ast</annotation></semantics></math> always, we always have that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>p</mi><mo>&#x022A2;</mo><mo>&#x022A4;</mo></mrow><annotation encoding='application/x-tex'>p \vdash \top</annotation></semantics></math>, as we wanted.</p>
  2647.  
  2648. <p>&#8220;And&#8221;, or <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x02227;</mo></mrow><annotation encoding='application/x-tex'>\wedge</annotation></semantics></math>, in an order theoretic sense, is the <em>meet</em> of two elements. The proposition <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>p</mi><mo>&#x02227;</mo><mi>q</mi></mrow><annotation encoding='application/x-tex'>p \wedge q</annotation></semantics></math> is the most general proposition which proves both <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>p</mi></mrow><annotation encoding='application/x-tex'>p</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>q</mi></mrow><annotation encoding='application/x-tex'>q</annotation></semantics></math>. Its mapping in property can be expressed by</p>
  2649.  
  2650. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mfrac><mrow><mi>x</mi><mo>&#x022A2;</mo><mi>p</mi><mo>,</mo><mspace width="1em"/><mi>x</mi><mo>&#x022A2;</mo><mi>q</mi></mrow><mrow><mi>x</mi><mo>&#x022A2;</mo><mi>p</mi><mo>&#x02227;</mo><mi>q</mi></mrow></mfrac></mrow><annotation encoding='application/x-tex'>\frac{x \vdash p,\quad x \vdash q}{x \vdash p \wedge q}</annotation></semantics></math></p>
  2651.  
  2652. <p>or, in other words, that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x02227;</mo><mo>:</mo><mi>E</mi><mo>&#x000D7;</mo><mi>E</mi><mo>&#x02192;</mo><mi>E</mi></mrow><annotation encoding='application/x-tex'>\wedge : E \times E \to E</annotation></semantics></math> is right adjoint to the diagonal map <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x00394;</mi><mo>:</mo><mi>E</mi><mo>&#x02192;</mo><mi>E</mi><mo>&#x000D7;</mo><mi>E</mi></mrow><annotation encoding='application/x-tex'>\Delta : E \to E \times E</annotation></semantics></math>.</p>
  2653.  
  2654. <p>Now, it won&#8217;t come as a surprise that &#8220;truth&#8221; and &#8220;and&#8221;
  2655. together form a monoid, but we can give a slick proof of
  2656. this knowing that they are right adjoints. This is because
  2657. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>!</mo><mo>:</mo><mi>E</mi><mo>&#x02192;</mo><mn>1</mn></mrow><annotation encoding='application/x-tex'>! : E \to 1</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x00394;</mi><mo>:</mo><mi>E</mi><mo>&#x02192;</mo><mi>E</mi><mo>&#x000D7;</mo><mi>E</mi></mrow><annotation encoding='application/x-tex'>\Delta : E \to E \times E</annotation></semantics></math> give <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>E</mi></mrow><annotation encoding='application/x-tex'>E</annotation></semantics></math> the
  2658. structure of a <em>comonoid</em> and taking right adjoints is
  2659. contravariantly functorial. Monoids like this are common
  2660. enough that we have a name for them:</p>
  2661.  
  2662. <p><strong>Definition:</strong> In a monoidal 2-category, an <em>adjoint
  2663. monoid</em> is a monoid whose unit and multiplication are right
  2664. adjoints.</p>
  2665.  
  2666. <p>We just saw that all meet semi-lattices are adjoint monoids
  2667. in the 2-category of orders, but we can flip the argument on
  2668. its head to see that every adjoint monoid is a meet
  2669. semi-lattice as well. This is because the 2-category of
  2670. orders is <em>cartesian</em>, and in a cartesian category every
  2671. object has a unique comonoid structure given by <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>!</mo></mrow><annotation encoding='application/x-tex'>!</annotation></semantics></math> and
  2672. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x00394;</mi></mrow><annotation encoding='application/x-tex'>\Delta</annotation></semantics></math>. Since the left adjoints of the structure maps of
  2673. an adjoint monoid form a comonoid, the right adjoints must
  2674. be the top and meet.</p>
  2675.  
  2676. <p>&#8220;Exists&#8221; is a quantifier, and quantification is all about
  2677. changing the domain of discourse. So we can&#8217;t really talk
  2678. about &#8220;exists&#8221; without bringing in a system of domains of
  2679. discourse, and this means bringing in a <a href="https://ncatlab.org/nlab/show/regular+category">regular
  2680. category</a>. Let&#8217;s
  2681. get back to regular categories now. A regular category is a category in which we can
  2682. use the logic of &#8220;truth&#8221; (a terminal object), &#8220;and&#8221;,
  2683. (pullbacks), and &#8220;exists&#8221; (images), and it all works the
  2684. right way (see the nLab page for a formal defintion).</p>
  2685.  
  2686. <p>Recall that a <em>subobject</em> of an object <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math> is a monomorphism <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>S</mi><mo>&#x021AA;</mo><mi>A</mi></mrow><annotation encoding='application/x-tex'>S \hookrightarrow A</annotation></semantics></math>, considered up to isomorphism over <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math>. A subobject <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>S</mi></mrow><annotation encoding='application/x-tex'>S</annotation></semantics></math> is contained in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi></mrow><annotation encoding='application/x-tex'>T</annotation></semantics></math> when there is a map <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>S</mi><mo>&#x02192;</mo><mi>T</mi></mrow><annotation encoding='application/x-tex'>S \to T</annotation></semantics></math> over <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math>; this makes the subobjects of any object into an order. A relation <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>R</mi><mo>:</mo><mi>A</mi><mo>&#x02192;</mo><mi>B</mi></mrow><annotation encoding='application/x-tex'>R : A \to B</annotation></semantics></math> is a subobject <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>R</mi><mo>&#x021AA;</mo><mi>A</mi><mo>&#x000D7;</mo><mi>B</mi></mrow><annotation encoding='application/x-tex'>R \hookrightarrow A \times B</annotation></semantics></math> of a product; using variables, we say <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>R</mi><mo stretchy="false">(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>R(a, b)</annotation></semantics></math> when the pair <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(a, b)</annotation></semantics></math> is in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>R</mi></mrow><annotation encoding='application/x-tex'>R</annotation></semantics></math>.</p>
  2687.  
  2688. <p>In a regular catgory, relations can be composed by &#8220;existing out the middle&#8221;
  2689. <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>RS</mi><mo stretchy="false">(</mo><mi>a</mi><mo>,</mo><mi>c</mi><mo stretchy="false">)</mo><mo>&#x02254;</mo><mo>&#x02203;</mo><mi>b</mi><mo>.</mo><mspace width="0.16667em"/><mi>R</mi><mo stretchy="false">(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo stretchy="false">)</mo><mo>&#x02227;</mo><mi>S</mi><mo stretchy="false">(</mo><mi>b</mi><mo>,</mo><mi>c</mi><mo stretchy="false">)</mo><mo>.</mo></mrow><annotation encoding='application/x-tex'>RS(a, c) \coloneqq \exists b.\, R(a, b) \wedge S(b, c).</annotation></semantics></math>
  2690. This gives a category of relations, which we will call <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x0211B;</mi></mrow><annotation encoding='application/x-tex'>\mathcal{R}</annotation></semantics></math>.</p>
  2691.  
  2692. <p>Note that a subobject of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi></mrow><annotation encoding='application/x-tex'>A</annotation></semantics></math> is equivalently a relation
  2693. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>S</mi><mo>&#x02208;</mo><mi>&#x0211B;</mi><mo stretchy="false">(</mo><mi>I</mi><mo>,</mo><mi>A</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>S \in \mathcal{R}(I, A)</annotation></semantics></math>, where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>I</mi></mrow><annotation encoding='application/x-tex'>I</annotation></semantics></math> is the terminal object
  2694. of the regular category. Therefore, the functor</p>
  2695.  
  2696. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>Sub</mi><mo stretchy="false">(</mo><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mo stretchy="false">)</mo><mo>&#x02254;</mo><mi>&#x0211B;</mi><mo stretchy="false">(</mo><mi>I</mi><mo>,</mo><mo lspace="0.11111em" rspace="0em">&#x02212;</mo><mo stretchy="false">)</mo><mo>:</mo><mi>&#x0211B;</mi><mo>&#x02192;</mo><mo lspace="0em" rspace="0.16667em">textbf</mo><mi>Order</mi></mrow><annotation encoding='application/x-tex'>{Sub}(&#x2d;) \coloneqq \mathcal{R}(I, &#x2d;) : \mathcal{R} \to\textbf{Order}</annotation></semantics></math></p>
  2697.  
  2698. <p>represented by <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>I</mi></mrow><annotation encoding='application/x-tex'>I</annotation></semantics></math> sends an object to its order of subobjects.</p>
  2699.  
  2700. <p>This functor (or, really, 2-functor, since it respects the
  2701. ordering of relations) gets a lax monoidal structure from
  2702. the cartesian product of the regular category from which we built the category of relations <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x0211B;</mi></mrow><annotation encoding='application/x-tex'>\mathcal{R}</annotation></semantics></math>. I&#8217;ll write
  2703. this product as <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>&#x02297;</mo></mrow><annotation encoding='application/x-tex'>\otimes</annotation></semantics></math> as a reminder that it isn&#8217;t
  2704. cartesian in the category of relations; that is,
  2705. <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>A</mi><mo>&#x02297;</mo><mi>B</mi><mo>=</mo><mi>A</mi><mo>&#x000D7;</mo><mi>B</mi></mrow><annotation encoding='application/x-tex'>A \otimes B = A \times B</annotation></semantics></math> on objects, but it doesn&#8217;t have the same universal property in the category of relations. So, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>I</mi><mo>&#x02297;</mo><mi>I</mi><mo>&#x02245;</mo><mi>I</mi></mrow><annotation encoding='application/x-tex'>I \otimes I \cong I</annotation></semantics></math>, and
  2706. therefore we get a lax monoidal structure</p>
  2707.  
  2708. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>&#x0211B;</mi><mo stretchy="false">(</mo><mi>I</mi><mo>,</mo><mi>A</mi><mo stretchy="false">)</mo><mo>&#x000D7;</mo><mi>&#x0211B;</mi><mo stretchy="false">(</mo><mi>I</mi><mo>,</mo><mi>B</mi><mo stretchy="false">)</mo><mo>&#x02192;</mo><mi>&#x0211B;</mi><mo stretchy="false">(</mo><mi>I</mi><mo>&#x02297;</mo><mi>I</mi><mo>,</mo><mi>A</mi><mo>&#x02297;</mo><mi>B</mi><mo stretchy="false">)</mo><mo>&#x02245;</mo><mi>&#x0211B;</mi><mo stretchy="false">(</mo><mi>I</mi><mo>,</mo><mi>A</mi><mo>&#x02297;</mo><mi>B</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\mathcal{R}(I, A) \times \mathcal{R}(I, B) \to \mathcal{R}(I \otimes I, A \otimes B) \cong \mathcal{R}(I, A \otimes B)</annotation></semantics></math></p>
  2709.  
  2710. <p>which on the level of logic looks like <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>&#x03D5;</mi><mo stretchy="false">(</mo><mi>a</mi><mo stretchy="false">)</mo><mo>,</mo><mspace width="0.16667em"/><mi>&#x003C8;</mi><mo stretchy="false">(</mo><mi>b</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mo>&#x021A6;</mo><mi>&#x03D5;</mi><mo stretchy="false">(</mo><mi>a</mi><mo stretchy="false">)</mo><mo>&#x02227;</mo><mi>&#x003C8;</mi><mo stretchy="false">(</mo><mi>b</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(\phi(a),\, \psi(b)) \mapsto \phi(a) \wedge \psi(b)</annotation></semantics></math>. We also have the identity relation on <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>I</mi></mrow><annotation encoding='application/x-tex'>I</annotation></semantics></math></p>
  2711.  
  2712. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mo>&#x022A4;</mo><mo>:</mo><mo>&#x0002A;</mo><mo>&#x02192;</mo><mi>&#x0211B;</mi><mo stretchy="false">(</mo><mi>I</mi><mo>,</mo><mi>I</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\top : \ast \to \mathcal{R}(I,I)</annotation></semantics></math></p>
  2713.  
  2714. <p>which is logically &#8220;truth&#8221;.</p>
  2715.  
  2716. <p>There&#8217;s something special about these laxators: they have universal properties! In particular, they are both <em>right adjoints</em>, with left adjoints</p>
  2717.  
  2718. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mo stretchy="false">(</mo><msub><mi>&#x003C0;</mi> <mn>1</mn></msub><mo>,</mo><msub><mi>&#x003C0;</mi> <mn>2</mn></msub><mo stretchy="false">)</mo><mo>:</mo><mi>&#x0211B;</mi><mo stretchy="false">(</mo><mi>I</mi><mo>,</mo><mi>A</mi><mo>&#x02297;</mo><mi>B</mi><mo stretchy="false">)</mo><mo>&#x02192;</mo><mi>&#x0211B;</mi><mo stretchy="false">(</mo><mi>I</mi><mo>,</mo><mi>A</mi><mo stretchy="false">)</mo><mo>&#x000D7;</mo><mi>&#x0211B;</mi><mo stretchy="false">(</mo><mi>I</mi><mo>,</mo><mi>B</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(\pi_1, \pi_2) : \mathcal{R}(I, A \otimes B) \to \mathcal{R}(I, A) \times \mathcal{R}(I, B)</annotation></semantics></math></p>
  2719.  
  2720. <p>and</p>
  2721.  
  2722. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mi>&#x0211B;</mi><mo stretchy="false">(</mo><mi>I</mi><mo>,</mo><mi>I</mi><mo stretchy="false">)</mo><mo>&#x02192;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>\mathcal{R}(I, I) \to \ast</annotation></semantics></math></p>
  2723.  
  2724. <p>or, logically, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C7;</mi><mo stretchy="false">(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo stretchy="false">)</mo><mo>&#x021A6;</mo><mo stretchy="false">(</mo><mo>&#x02203;</mo><mi>b</mi><mo>.</mo><mspace width="0.16667em"/><mi>&#x003C7;</mi><mo stretchy="false">(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo stretchy="false">)</mo><mo>,</mo><mo>&#x02203;</mo><mi>a</mi><mo>.</mo><mspace width="0.16667em"/><mi>&#x003C7;</mi><mo stretchy="false">(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\chi(a, b) \mapsto (\exists b.\, \chi (a, b), \exists a.\, \chi (a, b))</annotation></semantics></math>, and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BD;</mi><mo>&#x021A6;</mo><mo>&#x0002A;</mo></mrow><annotation encoding='application/x-tex'>\nu \mapsto \ast</annotation></semantics></math>. That these are adjoint means we have the following correspondences:</p>
  2725.  
  2726. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow><mfrac><mrow><mo>&#x02203;</mo><mi>b</mi><mo>.</mo><mspace width="0.16667em"/><mi>&#x003C7;</mi><mo stretchy="false">(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo stretchy="false">)</mo><mo>&#x022A2;</mo><mi>&#x03C6;</mi><mo stretchy="false">(</mo><mi>a</mi><mo stretchy="false">)</mo><mspace width="1em"/><mo>&#x02203;</mo><mi>a</mi><mo>.</mo><mspace width="0.16667em"/><mi>&#x003C7;</mi><mo stretchy="false">(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo stretchy="false">)</mo><mo>&#x022A2;</mo><mi>&#x003C8;</mi><mo stretchy="false">(</mo><mi>b</mi><mo stretchy="false">)</mo></mrow><mrow><mi>&#x003C7;</mi><mo stretchy="false">(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo stretchy="false">)</mo><mo>&#x022A2;</mo><mi>&#x03C6;</mi><mo stretchy="false">(</mo><mi>a</mi><mo stretchy="false">)</mo><mo>&#x02227;</mo><mi>&#x003C8;</mi><mo stretchy="false">(</mo><mi>b</mi><mo stretchy="false">)</mo></mrow></mfrac></mrow><annotation encoding='application/x-tex'>\frac{\exists b.\, \chi(a, b) \vdash \varphi(a)  \quad \exists a.\, \chi(a, b) \vdash \psi(b)}{\chi(a, b) \vdash \varphi(a) \wedge \psi(b)}</annotation></semantics></math></p>
  2727.  
  2728. <p>These are just the introduction rules for truth and existensial quantification!</p>
  2729.  
  2730. <p>We call these kinds of functors <em>ajax</em> for <em>adjoint lax</em>.</p>
  2731.  
  2732. <p><strong>Definition:</strong> A lax monoidal 2-functor <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>F</mi><mo>:</mo><mi>&#x1D49C;</mi><mo>&#x02192;</mo><mi>&#x0212C;</mi></mrow><annotation encoding='application/x-tex'>F: \mathcal{A} \to \mathcal{B}</annotation></semantics></math> between monoidal 2-categories is <em>ajax</em> if its laxators are right adjoints.</p>
  2733.  
  2734. <p>Ajax functors are very interesting objects in their own right, and we&#8217;d love to just ramble on about them for a good while. But we won&#8217;t.</p>
  2735.  
  2736. <p>Except for one thing. Just as lax functors preserve monoids, ajax functors preserve adjoint monoids. Now a regular category is in particular cartesian, so every object has a unique comonoid structure given by <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo>!</mo></mrow><annotation encoding='application/x-tex'>!</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x00394;</mi></mrow><annotation encoding='application/x-tex'>\Delta</annotation></semantics></math>, and the regular category can be embedded contravariantly in its category of relations by sending <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi><mo>:</mo><mi>A</mi><mo>&#x02192;</mo><mi>B</mi></mrow><annotation encoding='application/x-tex'>f : A \to B</annotation></semantics></math> to its &#8220;backwards graph&#8221; <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>b</mi><mo>=</mo><mi>f</mi><mo stretchy="false">(</mo><mi>a</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>b = f(a)</annotation></semantics></math>. This gives every object of the category of relations a (not necessarily unique) <em>monoid</em> structure. But, there is also a covariant embedding into the category of relations, sending <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi><mo>:</mo><mi>A</mi><mo>&#x02192;</mo><mi>B</mi></mrow><annotation encoding='application/x-tex'>f : A \to B</annotation></semantics></math> to its &#8220;graph&#8221; <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>f</mi><mo stretchy="false">(</mo><mi>a</mi><mo stretchy="false">)</mo><mo>=</mo><mi>b</mi></mrow><annotation encoding='application/x-tex'>f(a) = b</annotation></semantics></math>, and the &#8220;graph&#8221; and &#8220;backwards graph&#8221; of a function are adjoints in the category of relations. So every object of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x0211B;</mi></mrow><annotation encoding='application/x-tex'>\mathcal{R}</annotation></semantics></math> is in fact an <em>adjoint monoid</em>, and is therefore preserved by the ajax functor <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Sub</mi></mrow><annotation encoding='application/x-tex'>{Sub}</annotation></semantics></math>!</p>
  2737.  
  2738. <p>This shows that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Sub</mi><mo stretchy="false">(</mo><mi>A</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>{Sub}(A)</annotation></semantics></math> is in fact always a meet semi-lattice. So, in conclusion, the fact that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Sub</mi></mrow><annotation encoding='application/x-tex'>{Sub}</annotation></semantics></math> is ajax not only gives us &#8220;exists&#8221;, but &#8220;truth&#8221; and &#8220;and&#8221; as well. This is the structure we will adorn our graphical calculus with.</p>
  2739.  
  2740. <h4>Regular Calculi, There and Back Again</h4>
  2741.  
  2742. <p>If you&#8217;re a mathematician (and not a minion), then while reading the user&#8217;s guide to graphical regular logic you may have wondered &#8220;where does the entailment between predicates come from?&#8221; or &#8220;when a choice of predicates for some shells determines the predicate for another shell, where does that mapping live?&#8221;  A regular calculus explicitly defines the structure between predicates that we  use implicitly in the game of graphical calculus. In this section, we will see how different aspects of a regular calculus underpin the building blocks and operations of the graphical calculus. The major parallels are:</p>
  2743.  
  2744. <ul>
  2745. <li>labels for ports and wires - a set of types <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi></mrow><annotation encoding='application/x-tex'>T</annotation></semantics></math></li>
  2746. <li>shells - objects of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D53D;</mi><mtext>Rb</mtext><mo stretchy="false">(</mo><mi>T</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\mathbb{F}\text{Rb}(T)</annotation></semantics></math>, the category of relations of the free regular category on the set of &#8220;types&#8221; <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi></mrow><annotation encoding='application/x-tex'>T</annotation></semantics></math></li>
  2747. <li>filling shells with predicates - a pofunctor <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>P</mi><mo>:</mo><mi>&#x1D53D;</mi><mtext>Rb</mtext><mo stretchy="false">(</mo><mi>T</mi><mo stretchy="false">)</mo><mo>&#x02192;</mo><mo lspace="0em" rspace="0.16667em">textbf</mo><mi>Order</mi></mrow><annotation encoding='application/x-tex'>P: \mathbb{F}\text{Rb}(T)\to\textbf{Order}</annotation></semantics></math></li>
  2748. <li>zooming in and out - <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>P</mi></mrow><annotation encoding='application/x-tex'>P</annotation></semantics></math> satisfies the <em>ajax condition</em></li>
  2749. <li>connecting shells - morphisms in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D53D;</mi><mtext>Rb</mtext><mo stretchy="false">(</mo><mi>T</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\mathbb{F}\text{Rb}(T)</annotation></semantics></math></li>
  2750. </ul>
  2751.  
  2752. <p>Intuitively, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D53D;</mi><mtext>Rb</mtext><mo stretchy="false">(</mo><mi>T</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\mathbb{F}\text{Rb}(T)</annotation></semantics></math> is isomorphic to the category with (1) objects given by  shells (2) morphisms given by connecting shells, and (3) monoidal structure given by trench coating. An overview of this isomorphism can be found in detail in <a href="https://arxiv.org/abs/1812.05765">Graphical Regular Logic</a> and in pictures below:</p>
  2753.  
  2754. <p><img width="100%"  src="https://raw.githubusercontent.com/slibkind/autopoiesis/master/post_images/frgt.png" alt=""/></p>
  2755.  
  2756. <p>So this is the regular categorical incarnation of our pictures, and we will adorn it with a structure that mimics the behavior of the ajax functor <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Sub</mi></mrow><annotation encoding='application/x-tex'>{Sub}</annotation></semantics></math> and corresponds to the graphical actions of filling shells.</p>
  2757.  
  2758. <p><strong>Definition:</strong> A <em>regular calculus</em> is a pair <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>T</mi><mo>,</mo><mi>P</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(T, P)</annotation></semantics></math> where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>T</mi></mrow><annotation encoding='application/x-tex'>T</annotation></semantics></math> is a set and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>P</mi><mo>:</mo><mi>&#x1D53D;</mi><mtext>Rb</mtext><mo stretchy="false">(</mo><mi>T</mi><mo stretchy="false">)</mo><mo>&#x02192;</mo><mo lspace="0em" rspace="0.16667em">textbf</mo><mi>Order</mi></mrow><annotation encoding='application/x-tex'>P : \mathbb{F}\text{Rb}(T) \to \textbf{Order}</annotation></semantics></math> is an ajax functor. A morphism of regular calculi is a pair <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>F</mi><mo>,</mo><msup><mi>F</mi> <mo>&#x0266F;</mo></msup><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(F, F^{\sharp})</annotation></semantics></math> where <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>F</mi><mo>:</mo><mi>T</mi><mo>&#x02192;</mo><mi>T</mi><mo>&#x02032;</mo></mrow><annotation encoding='application/x-tex'>F : T \to T&apos;</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msup><mi>F</mi> <mo>&#x0266F;</mo></msup></mrow><annotation encoding='application/x-tex'>F^{\sharp}</annotation></semantics></math> is a monoidal natural transformation</p>
  2759.  
  2760. <p><img  src="https://raw.githubusercontent.com/DavidJaz/DavidJaz.github.io/master/images/Diagram-Regular-Calculus.png" alt=""/></p>
  2761.  
  2762. <p>that is strict in every respect.</p>
  2763.  
  2764. <p>The functor <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>P</mi></mrow><annotation encoding='application/x-tex'>P</annotation></semantics></math> defines an ordering on the predicates that can fill each shell. Given a context  <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x00393;</mi></mrow><annotation encoding='application/x-tex'>\Gamma</annotation></semantics></math>, the elements of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>P</mi><mo stretchy="false">(</mo><mi>&#x00393;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>P(\Gamma)</annotation></semantics></math> behave as predicates on <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x00393;</mi></mrow><annotation encoding='application/x-tex'>\Gamma</annotation></semantics></math> and the partial ordering corresponds to entailment. For example,</p>
  2765.  
  2766. <p><img width="100%"  src="https://raw.githubusercontent.com/slibkind/autopoiesis/master/post_images/ordering.png" alt=""/></p>
  2767.  
  2768. <p>Thus filling a shell <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x00393;</mi></mrow><annotation encoding='application/x-tex'>\Gamma</annotation></semantics></math> with a predicate is equivalent  to choosing an element of the poset <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>P</mi><mo stretchy="false">(</mo><mi>&#x00393;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>P(\Gamma)</annotation></semantics></math>. Furthermore, we are allowed to substitute one predicate for another according to the ordering of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>P</mi><mo stretchy="false">(</mo><mi>&#x00393;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>P(\Gamma)</annotation></semantics></math>.</p>
  2769.  
  2770. <p>The next operations are trench coating and dotting off.  Recall that in graphical regular logic filling the inner shells, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x00393;</mi></mrow><annotation encoding='application/x-tex'>\Gamma</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x00393;</mi><mo>&#x02032;</mo></mrow><annotation encoding='application/x-tex'>\Gamma&apos;</annotation></semantics></math>, of a trench coat defines a predicate for the coat, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x00393;</mi><mo>&#x02295;</mo><mi>&#x00393;</mi><mo>&#x02032;</mo></mrow><annotation encoding='application/x-tex'>\Gamma \oplus \Gamma&apos;</annotation></semantics></math>. Now that we know filling a shell <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x00393;</mi></mrow><annotation encoding='application/x-tex'>\Gamma</annotation></semantics></math> corresponds to picking an element of the poset <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>P</mi><mo stretchy="false">(</mo><mi>&#x00393;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>P(\Gamma)</annotation></semantics></math>, the process of trench coating translates to: Picking an element of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>P</mi><mo stretchy="false">(</mo><mi>&#x00393;</mi><mo stretchy="false">)</mo><mo>&#x000D7;</mo><mi>P</mi><mo stretchy="false">(</mo><mi>&#x00393;</mi><mo>&#x02032;</mo><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>P(\Gamma) \times P(\Gamma&apos;)</annotation></semantics></math> gives an element of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>P</mi><mo stretchy="false">(</mo><mi>&#x00393;</mi><mo>&#x02295;</mo><mi>&#x00393;</mi><mo>&#x02032;</mo><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>P(\Gamma \oplus \Gamma&apos;)</annotation></semantics></math>. In other words we have a monotonic laxator <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C1;</mi><mo>:</mo><mi>P</mi><mo stretchy="false">(</mo><mi>&#x00393;</mi><mo stretchy="false">)</mo><mo>&#x000D7;</mo><mi>P</mi><mo stretchy="false">(</mo><mi>&#x00393;</mi><mo>&#x02032;</mo><mo stretchy="false">)</mo><mo>&#x02192;</mo><mi>P</mi><mo stretchy="false">(</mo><mi>&#x00393;</mi><mo>&#x02295;</mo><mi>&#x00393;</mi><mo>&#x02032;</mo><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\rho: P(\Gamma) \times P(\Gamma&apos;) \to P(\Gamma \oplus \Gamma&apos;)</annotation></semantics></math>. Monotonicity implies that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C1;</mi></mrow><annotation encoding='application/x-tex'>\rho</annotation></semantics></math> commutes with entailment.</p>
  2771.  
  2772. <p><img width="80%"  src="https://raw.githubusercontent.com/slibkind/autopoiesis/master/post_images/rho.png" alt=""/></p>
  2773.  
  2774. <p>Since dotting off is a pseudo-inverse to trench coating, dotting off corresponds to an adjoint <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BB;</mi><mo>:</mo><mi>P</mi><mo stretchy="false">(</mo><mi>&#x00393;</mi><mo>&#x02295;</mo><mi>&#x00393;</mi><mo>&#x02032;</mo><mo stretchy="false">)</mo><mo>&#x02192;</mo><mi>P</mi><mo stretchy="false">(</mo><mi>&#x00393;</mi><mo stretchy="false">)</mo><mo>&#x000D7;</mo><mi>P</mi><mo stretchy="false">(</mo><mi>&#x00393;</mi><mo>&#x02032;</mo><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\lambda: P(\Gamma \oplus \Gamma&apos;) \to P(\Gamma) \times P(\Gamma&apos;)</annotation></semantics></math>.</p>
  2775.  
  2776. <p><img width="80%"  src="https://raw.githubusercontent.com/slibkind/autopoiesis/master/post_images/lambda.png" alt=""/></p>
  2777.  
  2778. <p>Note that dotting off and then trench coating possibly loses information. In the example below, this composition maps the predicate &#8220;live together&#8221; to the weaker predicate &#8220;both have roommates&#8221;.</p>
  2779.  
  2780. <p><img width="100%"  src="https://raw.githubusercontent.com/slibkind/autopoiesis/master/post_images/zooming2.png" alt=""/></p>
  2781.  
  2782. <p>Since <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>a</mi></mrow><annotation encoding='application/x-tex'>a</annotation></semantics></math> entails <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C1;</mi><mo>&#x02218;</mo><mi>&#x003BB;</mi><mo stretchy="false">(</mo><mi>a</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\rho \circ \lambda (a)</annotation></semantics></math>, <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003BB;</mi></mrow><annotation encoding='application/x-tex'>\lambda</annotation></semantics></math> is a right adjoint for <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C1;</mi></mrow><annotation encoding='application/x-tex'>\rho</annotation></semantics></math>. This is why <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>P</mi></mrow><annotation encoding='application/x-tex'>P</annotation></semantics></math> must be <em>ajax</em>!</p>
  2783.  
  2784. <p>The last operation is connecting shells. Suppose we have an wiring diagram corresponding to <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x003C9;</mi><mo>:</mo><msub><mi>&#x00393;</mi> <mtext>in</mtext></msub><mo>&#x02192;</mo><msub><mi>&#x00393;</mi> <mtext>out</mtext></msub></mrow><annotation encoding='application/x-tex'>\omega: \Gamma_{\text{in}} \to \Gamma_{\text{out}}</annotation></semantics></math>. Like in trench coating, filling the inner shells of a wired diagram defines a predicate for the outer shell. Thus we have a map <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>P</mi><mo stretchy="false">(</mo><msub><mi>&#x00393;</mi> <mtext>in</mtext></msub><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>P(\Gamma_{\text{in}})</annotation></semantics></math> to <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>P</mi><mo stretchy="false">(</mo><msub><mi>&#x00393;</mi> <mtext>out</mtext></msub><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>P(\Gamma_{\text{out}})</annotation></semantics></math> which is given by <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>P</mi><mo stretchy="false">(</mo><mi>&#x003C9;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>P(\omega)</annotation></semantics></math>.</p>
  2785.  
  2786. <p>If the free regular category is an incarnation of our graphical syntax, then we can think of a regular calculus as the way we stretch our definition of syntax to encompass semantics.</p>
  2787.  
  2788. <p>In particular, every regular category gives us an example of a regular calculus. If <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x0211B;</mi></mrow><annotation encoding='application/x-tex'>\mathcal{R}</annotation></semantics></math> is the category of relations of a regular category, then there is an &#8220;interpretation&#8221; functor <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D53D;</mi><mtext>Rb</mtext><mo stretchy="false">(</mo><mtext>ob</mtext><mi>&#x0211B;</mi><mo stretchy="false">)</mo><mo>&#x02192;</mo><mi>&#x0211B;</mi></mrow><annotation encoding='application/x-tex'>\mathbb{F}\text{Rb}(\text{ob}\mathcal{R}) \to \mathcal{R}</annotation></semantics></math>; composing this with <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Sub</mi><mo>:</mo><mi>&#x0211B;</mi><mo>&#x02192;</mo><mo lspace="0em" rspace="0.16667em">textbf</mo><mi>Order</mi></mrow><annotation encoding='application/x-tex'>{Sub} : \mathcal{R} \to \textbf{Order}</annotation></semantics></math> gives us a regular calculus whose &#8220;types&#8221; are just the objects of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x0211B;</mi></mrow><annotation encoding='application/x-tex'>\mathcal{R}</annotation></semantics></math>.</p>
  2789.  
  2790. <p><strong>Definition:</strong> The functor <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>prd</mi><mo>:</mo><mtext>RegCat</mtext><mo>&#x02192;</mo><mtext>RegCalc</mtext></mrow><annotation encoding='application/x-tex'>{prd} : \text{RegCat} \to \text{RegCalc}</annotation></semantics></math> is the functor sending a regular category whose category of relations is <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x0211B;</mi></mrow><annotation encoding='application/x-tex'>\mathcal{R}</annotation></semantics></math> to <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Sub</mi><mo>&#x02218;</mo><mi>Interpret</mi><mo>:</mo><mi>&#x1D53D;</mi><mtext>Rb</mtext><mo stretchy="false">(</mo><mtext>ob</mtext><mi>&#x0211B;</mi><mo stretchy="false">)</mo><mo>&#x02192;</mo><mo lspace="0em" rspace="0.16667em">textbf</mo><mi>Order</mi></mrow><annotation encoding='application/x-tex'>{Sub} \circ {Interpret} : \mathbb{F}\text{Rb}(\text{ob}\mathcal{R}) \to \textbf{Order}</annotation></semantics></math>.</p>
  2791.  
  2792. <p>The bulk of the paper is devoted to constructing a left adjoint to this functor, and proving that it is fully faithful. We&#8217;ll just give a sketch of the idea.</p>
  2793.  
  2794. <p>If we have a regular calculus <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>P</mi><mo>:</mo><mi>&#x1D53D;</mi><mtext>Rb</mtext><mo stretchy="false">(</mo><mi>T</mi><mo stretchy="false">)</mo><mo>&#x02192;</mo><mo lspace="0em" rspace="0.16667em">textbf</mo><mi>Order</mi></mrow><annotation encoding='application/x-tex'>P : \mathbb{F}\text{Rb}(T) \to \textbf{Order}</annotation></semantics></math>, we can try and think of it as assigning to each context (object of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x1D53D;</mi><mtext>Rb</mtext><mo stretchy="false">(</mo><mi>T</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\mathbb{F}\text{Rb}(T)</annotation></semantics></math>) its order of &#8220;subobjects&#8221;. So the objects of our &#8220;syntactic&#8221; regular category <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>syn</mi><mo stretchy="false">(</mo><mi>P</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>{syn}(P)</annotation></semantics></math> should be these &#8220;subobjects&#8221;, reified. So, for any <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x00393;</mi><mo>&#x02208;</mo><mi>&#x1D53D;</mi><mtext>Rb</mtext><mo stretchy="false">(</mo><mi>T</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\Gamma \in \mathbb{F}\text{Rb}(T)</annotation></semantics></math> and any <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>&#x03D5;</mi><mo>&#x02208;</mo><mi>P</mi><mo stretchy="false">(</mo><mi>&#x00393;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>\phi \in P(\Gamma)</annotation></semantics></math>, we should have an object <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">{</mo><mi>x</mi><mo>:</mo><mi>&#x00393;</mi><mo lspace="0.22222em" rspace="0.22222em">&#x02223;</mo><mi>&#x03D5;</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo stretchy="false">}</mo></mrow><annotation encoding='application/x-tex'>\{ x : \Gamma \mid \phi(x) \}</annotation></semantics></math> of <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>syn</mi><mo stretchy="false">(</mo><mi>P</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>{syn}(P)</annotation></semantics></math>. This is just a fancy name for the pair <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mo stretchy="false">(</mo><mi>&#x00393;</mi><mo>,</mo><mi>&#x03D5;</mi><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>(\Gamma, \phi)</annotation></semantics></math>, one that tells us how to think of this pair.</p>
  2795.  
  2796. <p>A relation <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>R</mi><mo>:</mo><mo stretchy="false">{</mo><mi>x</mi><mo>:</mo><msub><mi>&#x00393;</mi> <mn>1</mn></msub><mo lspace="0.22222em" rspace="0.22222em">&#x02223;</mo><msub><mi>&#x03D5;</mi> <mn>1</mn></msub><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo stretchy="false">}</mo><mo>&#x02192;</mo><mo stretchy="false">{</mo><mi>x</mi><mo>:</mo><msub><mi>&#x00393;</mi> <mn>2</mn></msub><mo lspace="0.22222em" rspace="0.22222em">&#x02223;</mo><msub><mi>&#x03D5;</mi> <mn>2</mn></msub><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo stretchy="false">}</mo></mrow><annotation encoding='application/x-tex'>R : \{x : \Gamma_1 \mid \phi_1(x)\} \to \{x :
  2797. \Gamma_2 \mid \phi_2(x)\}</annotation></semantics></math> should be a subobject of the
  2798. product of the two objects represented by <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x03D5;</mi> <mn>1</mn></msub></mrow><annotation encoding='application/x-tex'>\phi_1</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x03D5;</mi> <mn>2</mn></msub></mrow><annotation encoding='application/x-tex'>\phi_2</annotation></semantics></math>, or <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>R</mi><mo>&#x02208;</mo><mi>P</mi><mo stretchy="false">(</mo><msub><mi>&#x00393;</mi> <mn>1</mn></msub><mo>&#x02295;</mo><msub><mi>&#x00393;</mi> <mn>2</mn></msub><mo stretchy="false">)</mo></mrow><annotation encoding='application/x-tex'>R \in P(\Gamma_1 \oplus \Gamma_2)</annotation></semantics></math>. This should
  2799. restrict nicely to <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x03D5;</mi> <mn>1</mn></msub></mrow><annotation encoding='application/x-tex'>\phi_1</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><msub><mi>&#x03D5;</mi> <mn>2</mn></msub></mrow><annotation encoding='application/x-tex'>\phi_2</annotation></semantics></math> in the sense that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>P</mi><mo stretchy="false">(</mo><msub><mi>&#x003C0;</mi> <mn>1</mn></msub><mo stretchy="false">)</mo><mo stretchy="false">(</mo><mi>R</mi><mo stretchy="false">)</mo><mo>&#x022A2;</mo><msub><mi>&#x03D5;</mi> <mn>1</mn></msub></mrow><annotation encoding='application/x-tex'>P(\pi_1)(R)
  2800. \vdash \phi_1</annotation></semantics></math> and <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>P</mi><mo stretchy="false">(</mo><msub><mi>&#x003C0;</mi> <mn>2</mn></msub><mo stretchy="false">)</mo><mo stretchy="false">(</mo><mi>R</mi><mo stretchy="false">)</mo><mo>&#x022A2;</mo><msub><mi>&#x03D5;</mi> <mn>2</mn></msub></mrow><annotation encoding='application/x-tex'>P(\pi_2)(R) \vdash \phi_2</annotation></semantics></math>. Functions
  2801. can now be defined as functional relations, and with no
  2802. small effort one can check that this gives a regular
  2803. category.</p>
  2804.  
  2805. <p>The syntactic regular category of a predicate regular calculus is equivalent to the original regular category. This means that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>prd</mi></mrow><annotation encoding='application/x-tex'>{prd}</annotation></semantics></math> is a reflective inclusion of regular categories into regular calculi, and justifies us using the graphical calculus, equipped with an order of &#8220;propositions&#8221; for each object varying with each signature, as a tool for reasoning about regular categories.</p>
  2806.  
  2807. <p>The reason that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>prd</mi></mrow><annotation encoding='application/x-tex'>{prd}</annotation></semantics></math> is not an equivalence is that <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>syn</mi></mrow><annotation encoding='application/x-tex'>{syn}</annotation></semantics></math> changes the &#8220;types&#8221; of a graphical calculus. Perhaps if types were considered up to isomorphism in a &#8220;univalent&#8221; way, we could get an equivalence of categories; but as we move toward an equivalence between our subjective and objective logics, the less &#8220;syntactical&#8221; our subjective logic becomes.</p>
  2808.  
  2809.      </div>
  2810.    </content>
  2811.  </entry>
  2812.  <entry>
  2813.    <title type="html">Evil Questions About Equalizers</title>
  2814.    <link rel="alternate" type="application/xhtml+xml" href="https://golem.ph.utexas.edu/category/2019/08/evil_questions_about_equalizer.html" />
  2815.    <updated>2019-08-16T07:02:24Z</updated>
  2816.    <published>2019-08-16T07:31:08+00:00</published>
  2817.    <id>tag:golem.ph.utexas.edu,2019:%2Fcategory%2F3.3134</id>
  2818.    <summary type="text">Does the process of converting a category with finite colimits into a symmetric monoidal category give a functor from Rex to SMC that preserves equalizers?</summary>
  2819.    <author>
  2820.      <name>john</name>
  2821.      <uri>http://math.ucr.edu/home/baez/</uri>
  2822.      <email>[email protected]</email>
  2823.    </author>
  2824.    <category term="Categories" />
  2825.    <content type="xhtml" xml:base="https://golem.ph.utexas.edu/category/2019/08/evil_questions_about_equalizer.html">
  2826.      <div xmlns="http://www.w3.org/1999/xhtml">
  2827. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  2828.  
  2829. <p>I have a few questions about equalizers.   I have my own reasons for wanting to know the answers, but I&#8217;ll admit right away that these questions are <a href="https://ncatlab.org/nlab/show/principle+of+equivalence">evil</a> in the technical sense.   So, investigating them requires a certain morbid curiosity&#8230; and have a feeling that some of you will be better at this than I am.</p>
  2830.  
  2831. <p>Here are the categories:</p>
  2832.  
  2833. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Rex</mi></mrow><annotation encoding='application/x-tex'>Rex</annotation></semantics></math>  = [categories with finite colimits, functors preserving finite colimits] </p>
  2834.  
  2835. <p><math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>SMC</mi></mrow><annotation encoding='application/x-tex'>SMC</annotation></semantics></math> = [symmetric monoidal categories, strong symmetric monoidal functors] </p>
  2836.  
  2837. <p>Both are brutally truncated stumps of very nice 2-categories!  </p>
  2838.  
  2839. <div><a href="http://golem.ph.utexas.edu/~distler/blog/mathml.html"><img class="mathlogo" src="https://golem.ph.utexas.edu/~distler/blog/images/MathML.png" alt="MathML-enabled post (click for more details)." title="MathML-enabled post (click for details)." /></a></div>
  2840.  
  2841. <p>My questions:</p>
  2842.  
  2843. <p>1) Does <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Rex</mi></mrow><annotation encoding='application/x-tex'>Rex</annotation></semantics></math> have equalizers?</p>
  2844.  
  2845. <p>2) Does <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>SMC</mi></mrow><annotation encoding='application/x-tex'>SMC</annotation></semantics></math> have equalizers?</p>
  2846.  
  2847. <p>3) We can get a functor <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>F</mi><mo lspace="0.11111em">&#x0003A;</mo><mi>Rex</mi><mo>&#x02192;</mo><mi>SMC</mi></mrow><annotation encoding='application/x-tex'>F \colon Rex \to SMC</annotation></semantics></math> by arbitrarily choosing an initial object for each category in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Rex</mi></mrow><annotation encoding='application/x-tex'>Rex</annotation></semantics></math> to serve as the unit of the tensor product and arbitrarily choosing a binary coproduct for each pair of objects to serve as their tensor product.   Do this.  Does the resulting <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>F</mi></mrow><annotation encoding='application/x-tex'>F</annotation></semantics></math> preserve equalizers?</p>
  2848.  
  2849. <p>You see, I have some equalizers that exist in <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>Rex</mi></mrow><annotation encoding='application/x-tex'>Rex</annotation></semantics></math>, and I know <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow><mi>F</mi></mrow><annotation encoding='application/x-tex'>F</annotation></semantics></math> preserves them, but I know this by direct computation.  If 1) were true I&#8217;d know these equalizers exist on general grounds, and if 3) were true I&#8217;d know they&#8217;re preserved on general grounds.   This might help me avoid a bit of extra fiddliness as I walk on the dark side of mathematics and engage in some evil maneuvers&#8230; especially if there&#8217;s some reference I can just cite. </p>
  2850.  
  2851. <p>2) is just my morbid curiosity acting up.   I&#8217;m pretty sure the category of symmetric monoidal categories and <em>strict</em> symmetric monoidal functors has equalizers, but <em>strong</em>?</p>
  2852.  
  2853.      </div>
  2854.    </content>
  2855.  </entry>
  2856.  
  2857. </feed>
  2858.  

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid Atom 1.0" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

http://www.feedvalidator.org/check.cgi?url=http%3A//golem.ph.utexas.edu/category/atom10.xml

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda