<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="/atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Mitchell Is Typing</title>
  
  <link href="https://mvr.github.io/atom.xml" rel="self" />
  <link href="https://mvr.github.io" />
  <id>urn:uuid:84a94671-fda4-46c5-a91f-c9188dc0ee67</id>
  <updated>2026-06-16T00:00:00Z</updated>
  <author>
    <name>Mitchell Riley</name>
    
    <email>mitchell.v.riley@gmail.com</email>
    
  </author>
    <entry>
    <title>Geometric Type Theory, Done Two Ways</title>
    <link href="https://mvr.github.io/posts/geometric-type-theory.html" rel="alternate" />
    <id>urn:uuid:bb2446ab-0114-5e80-b360-c8da988fdbaa</id>
    
    <published>2026-06-16T00:00:00Z</published>
    
    <updated>2026-06-16T00:00:00Z</updated>
    <author>
      <name>Mitchell Riley</name>
      
      <email>mitchell.v.riley@gmail.com</email>
      
    </author>
    <summary type="html"><![CDATA[<p>I have a <a href="https://topos.institute/blog/2026-06-15-geometric-type-theory-done-two-ways/">new
post</a>
on the Topos blog.</p>
<blockquote>
<p>A topos can be specified by the geometric theory that it
classifies. Though the sequents of a theory are described formally
and syntactically, its interaction with the world of sets (through
set-indexed disjunctions and axiom schemas) is often a little
hand-wavy. In this post I describe two ways of doing this more
precisely using type theory.</p>
</blockquote><p><a href="/posts/geometric-type-theory.html">&gt; Read Post</a></p>]]></summary>
  </entry>
  <entry>
    <title>Constraining the Period of Officers</title>
    <link href="https://mvr.github.io/posts/officers-sat.html" rel="alternate" />
    <id>urn:uuid:be5e1906-9213-56c9-a90e-b56479995380</id>
    
    <published>2026-03-23T00:00:00Z</published>
    
    <updated>2026-03-23T00:00:00Z</updated>
    <author>
      <name>Mitchell Riley</name>
      
      <email>mitchell.v.riley@gmail.com</email>
      
    </author>
    <summary type="html"><![CDATA[<p>The values of the impartial game <a href="/posts/officers.html">Officers</a> are probably periodic
eventually. Can we say anything about what the period could be?</p><p><a href="/posts/officers-sat.html">&gt; Read Post</a></p>]]></summary>
  </entry>
  <entry>
    <title>No‑Three‑In‑Line, Dumber</title>
    <link href="https://mvr.github.io/posts/no-three-in-line-dumber.html" rel="alternate" />
    <id>urn:uuid:3096047d-0840-5efd-bb46-e9fa91ca8b7c</id>
    
    <published>2026-03-15T00:00:00Z</published>
    
    <updated>2026-03-15T00:00:00Z</updated>
    <author>
      <name>Mitchell Riley</name>
      
      <email>mitchell.v.riley@gmail.com</email>
      
    </author>
    <summary type="html"><![CDATA[
<p>(<a href="/posts/no-three-in-line.html">Previously</a>, <a href="/posts/no-three-in-line-quicker.html">previously</a>)</p>
<p>To not bury the lede, we finally have our first new value for the OEIS sequence <a href="https://oeis.org/A000769">A000769</a>:</p>
<p><span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>a</mi><mo stretchy="false">(</mo><mn>19</mn><mo stretchy="false">)</mo><mo>=</mo><mn>32577</mn></mrow><annotation encoding="application/x-tex"> a(19) = 32577 </annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">a</span><span class="mopen">(</span><span class="mord">19</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">32577</span></span></span></span></span></p>
<p>This was calculated in 255 GPU-hours using eight RTX 4090s rented from
<a href="https://www.runpod.io/">Runpod</a>.</p>
<p>Not only that! With help from <a href="https://webspace.maths.qmul.ac.uk/t.prellberg/">Thomas Prellberg</a> and the <a href="https://docs.hpc.qmul.ac.uk/">GPU cluster</a>
at Queen Mary University of London, we’ve been able to find some
solutions with record-breaking sizes. The largest at the time I’m
writing this is 64×64, shown below, with hopefully more on the way.</p>
<p>[diagram]</p><p><a href="/posts/no-three-in-line-dumber.html">&gt; Read Post</a></p>]]></summary>
  </entry>
  <entry>
    <title>What Makes Tametsi So Satisfying?</title>
    <link href="https://mvr.github.io/posts/tametsi.html" rel="alternate" />
    <id>urn:uuid:0251b026-9180-5b8c-8c98-2e0b68284d4a</id>
    
    <published>2026-01-19T00:00:00Z</published>
    
    <updated>2026-01-19T00:00:00Z</updated>
    <author>
      <name>Mitchell Riley</name>
      
      <email>mitchell.v.riley@gmail.com</email>
      
    </author>
    <summary type="html"><![CDATA[<p>For the last month I’ve been completely addicted to the logic puzzle
game <a href="https://store.steampowered.com/app/709920/Tametsi/">Tametsi</a>. Put briefly, it’s ordinary <a href="https://en.wikipedia.org/wiki/Minesweeper_(video_game)">Minesweeper</a> but with a
set of 160 hand-crafted puzzles rather than a randomly generated
starting board. Beyond the Minesweeper rules that we’re all familiar
with, there are only a couple of additions: non-square/irregular grids
for many of the puzzles, and “global” constraints, such as a fixed
number of mines in cells of a particular colour or along a specified
line.</p>
<p>I finally finished all the available puzzles and so Tametsi has
released its grip on me. I’ve been trying to figure out what made it
so compelling, and here’s the best I could come up with.</p><p><a href="/posts/tametsi.html">&gt; Read Post</a></p>]]></summary>
  </entry>
  <entry>
    <title>All 23-Bit Still Lifes Are Glider Constructible</title>
    <link href="https://mvr.github.io/posts/xs23.html" rel="alternate" />
    <id>urn:uuid:ea29baf2-f143-5c5c-aa91-4381bec7b7fb</id>
    
    <published>2025-12-27T00:00:00Z</published>
    
    <updated>2025-12-27T00:00:00Z</updated>
    <author>
      <name>Mitchell Riley</name>
      
      <email>mitchell.v.riley@gmail.com</email>
      
    </author>
    <summary type="html"><![CDATA[
<p>In the Game of Life, which still lifes can be produced by crashing
gliders together? We’ve known for a few years that the answer cannot
be “all of them”, because in 2022 Ilkka Törmä and Ville Salo <a href="https://conwaylife.com/forums/viewtopic.php?p=140258#p140258">found</a> a
patch of still life that, if it exists in the universe, must have
existed since the beginning of time. And so, there is no way we could
have produced it out of empty space through glider collisions. Similar
such patches have been found since, with the goal of optimising size
or population, and at the time of writing the <a href="https://conwaylife.com/forums/viewtopic.php?f=2&amp;t=6830#p209209">record holder</a> is an
unsynthesizable still life with population 154 produced by forum user
“400spartans”.</p>
<p>Finding syntheses for small still lifes is easy, but at some unknown
point below 154 it becomes impossible. Today, we completed our
collaborative project to notch the lower bound up from 22 to 23, by
giving explicit syntheses for all 1,646,147 (strict) still lifes with population 23.</p><p><a href="/posts/xs23.html">&gt; Read Post</a></p>]]></summary>
  </entry>
  <entry>
    <title>No‑Three‑In‑Line, Quicker</title>
    <link href="https://mvr.github.io/posts/no-three-in-line-quicker.html" rel="alternate" />
    <id>urn:uuid:8d52f56f-48bf-5f2f-b079-f4ef06a2fb20</id>
    
    <published>2025-09-30T00:00:00Z</published>
    
    <updated>2025-09-30T00:00:00Z</updated>
    <author>
      <name>Mitchell Riley</name>
      
      <email>mitchell.v.riley@gmail.com</email>
      
    </author>
    <summary type="html"><![CDATA[
<p>The code in the <a href="/posts/no-three-in-line.html">previous post</a> is
fairly quick, but of course we’d always prefer it to be quicker. I’ll
keep a record here of things I’ve tried and whether they worked.</p><p><a href="/posts/no-three-in-line-quicker.html">&gt; Read Post</a></p>]]></summary>
  </entry>
  <entry>
    <title>No‑Three‑In‑Line</title>
    <link href="https://mvr.github.io/posts/no-three-in-line.html" rel="alternate" />
    <id>urn:uuid:16f67ad5-725b-5b24-b4cd-d24958a1723a</id>
    
    <published>2025-09-01T00:00:00Z</published>
    
    <updated>2025-09-01T00:00:00Z</updated>
    <author>
      <name>Mitchell Riley</name>
      
      <email>mitchell.v.riley@gmail.com</email>
      
    </author>
    <summary type="html"><![CDATA[
<p>The <a href="https://en.wikipedia.org/wiki/No-three-in-line_problem">No-three-in-line
problem</a> asks
how many points can be placed on a <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi><mo>×</mo><mi>n</mi></mrow><annotation encoding="application/x-tex">n \times n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6667em;vertical-align:-0.0833em;"></span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">n</span></span></span></span> grid so that no three
points are on the same line, where the lines considered are of any
slope and not just orthogonal and diagonal. Each row/column can
contain at most 2 points, so clearly the answer is at most <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>2</mn><mi>n</mi></mrow><annotation encoding="application/x-tex">2n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">2</span><span class="mord mathnormal">n</span></span></span></span>. The
real question is, can we actually achieve <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>2</mn><mi>n</mi></mrow><annotation encoding="application/x-tex">2n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">2</span><span class="mord mathnormal">n</span></span></span></span> for every grid size?
It’s <a href="https://doi.org/10.4153%2FCMB-1968-062-3">conjectured</a> that the
answer is “no” for grids large enough, but we don’t know where the
crossover point is and there’s <a href="http://web.archive.org/web/20131027174807/http://wso.williams.edu/~bchaffin/no_three_in_line/index.htm">no
indication</a>
that the number of <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>2</mn><mi>n</mi></mrow><annotation encoding="application/x-tex">2n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">2</span><span class="mord mathnormal">n</span></span></span></span>-point solutions is falling away from
exponential growth, at least up to <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>18</mn><mo>×</mo><mn>18</mn></mrow><annotation encoding="application/x-tex">18 \times 18</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.7278em;vertical-align:-0.0833em;"></span><span class="mord">18</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">18</span></span></span></span>!</p>
<p>To my eye, the configurations that work can be quite balanced and
attractive. Here are some symmetrical ones for <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>14</mn><mo>×</mo><mn>14</mn></mrow><annotation encoding="application/x-tex">14 \times 14</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.7278em;vertical-align:-0.0833em;"></span><span class="mord">14</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">14</span></span></span></span> (though
in general the solutions are not necessarily symmetric in this way):</p>
<p>[diagram]</p>
<p>The most extensive searches for configurations so far have been done
by <a href="http://wwwhomes.uni-bielefeld.de/achim/no3in/readme.html">Achim
Flammenkamp</a>
and later by <a href="https://benchaffin.com/">Ben Chaffin</a>. I’ve <a href="https://github.com/mvr/no-three-in-line">written
some CUDA code</a> of my
own with the goal of pushing things a little further, and I’ll explain
it in the rest of this post.</p><p><a href="/posts/no-three-in-line.html">&gt; Read Post</a></p>]]></summary>
  </entry>
  <entry>
    <title>Linear/Nonlinear Logic and Linear Algebra</title>
    <link href="https://mvr.github.io/posts/lnl.html" rel="alternate" />
    <id>urn:uuid:7f4b793c-0ee8-5068-85e4-1f69dc93abfc</id>
    
    <published>2025-05-29T00:00:00Z</published>
    
    <updated>2025-05-29T00:00:00Z</updated>
    <author>
      <name>Mitchell Riley</name>
      
      <email>mitchell.v.riley@gmail.com</email>
      
    </author>
    <summary type="html"><![CDATA[<!-- \newcommand{\unit}{𝟙} -->
<p>Benton’s <a href="https://ncatlab.org/nlab/files/BentonLinearLogic.pdf">Linear/Nonlinear
Logic</a> has
models in (lax) monoidal adjunctions between monoidal and cartesian
categories.</p>
<p>[diagram]</p>
<p>The tasks performed in GPU kernels often deal with linear and
nonlinear maps between real vector spaces.</p>
<p>[diagram]</p>
<p>I want to take this and run with it: let’s see what it looks like to
define some mixed linear/nonlinear functions in a linear/nonlinear
type theory. This feels to me so obvious that it must be written down
somewhere already. In the literature there is work that gets close
(and I’ll do some comparisons at the end), but none are quite what I
want. Please let me know if I’ve missed something.</p>
<p><strong>Edit</strong>: It’s been pointed out to me that the type theory I’ve put
together is almost exactly the <a href="https://doi.org/10.1093/logcom/exs025">Enriched Effect
Calculus</a>, though I still
haven’t seen the semantics in ordinary vector spaces discussed
anywhere. <!-- And see my [follow-up](/posts/lnl-ad.html)! --></p><p><a href="/posts/lnl.html">&gt; Read Post</a></p>]]></summary>
  </entry>
  <entry>
    <title>Movie Night</title>
    <link href="https://mvr.github.io/posts/movie-night.html" rel="alternate" />
    <id>urn:uuid:4b0a6c5b-69f4-5081-aab7-ca674fbc0799</id>
    
    <published>2025-05-15T00:00:00Z</published>
    
    <updated>2025-05-15T00:00:00Z</updated>
    <author>
      <name>Mitchell Riley</name>
      
      <email>mitchell.v.riley@gmail.com</email>
      
    </author>
    <summary type="html"><![CDATA[<p>For years now I’ve been watching a movie in-person with friends every
weekend that I’ve been able to. The movie selection system is perfect,
crystalline, sacred, with no downsides or exploitable vulnerabilities.</p>
<ol type="1">
<li>The nominator is the person who was previously nominator the
longest ago.</li>
<li>The nominator chooses two movies that haven’t been nominated
before.</li>
<li>Everybody else votes for which to watch. If the vote is tied, the
nominator breaks the tie.</li>
<li>In highly exceptional circumstances, the Benevolent Dictator For
Life may declare a specific movie to be watched, for example, if
we’re all about to go watch a sequel in-theatre and some people
need to get up to speed.</li>
</ol>
<p>Here’s what we’ve watched so far, together
with my ratings using almost the simplest possible system.</p><p><a href="/posts/movie-night.html">&gt; Read Post</a></p>]]></summary>
  </entry>
  <entry>
    <title>The Cars In My Backyard</title>
    <link href="https://mvr.github.io/posts/cars-in-my-backyard.html" rel="alternate" />
    <id>urn:uuid:5a4e2c2e-db5e-5e22-a7af-495474d60214</id>
    
    <published>2025-04-21T00:00:00Z</published>
    
    <updated>2025-04-21T00:00:00Z</updated>
    <author>
      <name>Mitchell Riley</name>
      
      <email>mitchell.v.riley@gmail.com</email>
      
    </author>
    <summary type="html"><![CDATA[<p>When I walk around my neighbourhood, I am struck by the beautiful
character of the houses here: the draughty Queenslanders and timber
fences, the majestic external staircases, I could go on forever. But
something always felt off, and I finally realise what it is. How can I
admire a house with elegant stilts and sweeping verandahs when there
is a bright red 2019 Ford Puma sitting in the driveway? Or appreciate
a compact, postwar masterpiece when it has a Hilux poking out around
the side? In the hours I’ve spent positioning myself on the street so
I can bathe in the heritage of my neighbourhood, I have not found an
angle without some such monstrosity in my field of view.</p>
<p>We’ve spent years fighting the vandals who want to destroy the
heritage of our neighbourhood. Why should we make an exception for
this? I see no other option: we must forbid residents from bringing
any new cars into the area. This is already a compromise, as if I had
my way we would ban every car newer than the house it is parked in
front of. (Of course, some especially old houses would need hitching
posts to be reinstalled.)</p><p><a href="/posts/cars-in-my-backyard.html">&gt; Read Post</a></p>]]></summary>
  </entry>

</feed>
