Breaking the rules

As might be expected, the rules of the game are an important concept in game theory. But the way that game theory treats its all-important rules is very un-subtle: it is firmly built into the epistemic foundations that the rules are common knowledge, which makes it extremely difficult to talk about breaking the rules. If any player breaks the rules, or even if any player suspects another player of breaking the rules (up to any level of epistemic reasoning), you are simply outside the scope of your model. Of course the possibility of breaking any individual rule, and the consequences for doing so, can be manually built into your game, but then it is unclear whether it can reasonably be called a ‘rule’ any more.

Continue reading “Breaking the rules”

Patch for ‘Coherence for lenses and open games’

I have been working on referee reports from version 1 (which was rejected for good reasons). I have uploaded an intermediate state of corrections, for the benefit of the reviewers of my extended abstract for STRING’17. This put me in the awkward position of uploading a paper that I know probably still contains some errors, although it’s less wrong than the previous version.

A generalisation of Nash’s theorem with higher-order functionals

This is my first paper, written in the first few months of my Ph.D. and published quickly. Four and a half years later it is still technically my best paper by the usual (wrong) metrics. Obviously now I wouldn’t dare to do something as outrageous as submitting a paper to such a highly-ranked journal.

Continue reading “A generalisation of Nash’s theorem with higher-order functionals”

Blockchains with institutions

This is the first in a series about social aspects of blockchains. I began writing an article that launched straight into an application, but it was too confusing without first laying some general groundwork on ‘blockchains with institutions’, the subject of this article. As a teaser, the article I had begun was discussing a design for a democracy that is significantly harder to overthrow than existing designs, by making democratic institutions inseparable from a nation’s currency.

I strongly feel that the surprising discovery of Turing-complete blockchain computation by Vitalik Buterin in 2013 is a huge and completely unforeseen game-changer in social philosophy, and that there is far too little awareness of its implications among philosophers, economists and other social theorists.

Continue reading “Blockchains with institutions”

On compositionality

This post is copied (with some small modifications and additional comments) from section 0.4 of my Ph.D. thesis, Towards compositional game theory. It is loosely based on a talk I gave at Logic for Social Behaviour 2016 in Zürich.

The term compositionality is commonplace in computer science, but is not well-known in other subjects. Compositionality is the principle that a system should be designed by composing together smaller subsystems, and reasoning about the system should be done recursively on its structure. When I thought more deeply, however, I realised that there is more to this principle than first meets the eye, and even a computer scientist may not be aware of its nuances.

Continue reading “On compositionality”

Abusing the continuation monad

(Recall that monads are not a good topic for your first blog post.)

I intend to bootstrap a blog by writing about 2 of my old papers, Monad Transformers for Backtracking Search and The Selection Monad as a CPS Transformation. (Wall Street will be spared for the time being.)

I’m going to write about this little bit of Haskell code:

import Control.Monad.Cont
sat n = runCont $ sequence $ replicate n $ cont $ \k -> k $ k True

It’s a SAT solver: you give it a boolean function, and the number of variables to search, and it decides whether that function will ever return true for any values of those variables.

How does this work? Haven’t the foggiest. If anyone can explain what it does at runtime, there’s probably a research paper in it for you. If you can also predict how long it takes, that’s a big deal.

Continue reading “Abusing the continuation monad”