a bird's-eye perspective on program equilibria
January 22, 2026
The concept of "program equilibrium" was first introduced by Tenneholtz in 2004, where he notices that the program
cooperates with itself in the Prisoner's Dilemma, and moreover given a state of two players adopting this program in the Prisoner's Dilemma there is no incentive for either to deviate.
Unfortunately, this result as stated only holds on the basis of syntactic analysis: essentially, given two .txt files each representing a player's program, check line by line that they're equivalent and if so cooperate. (More sophisticated versions of syntactic analysis exist but all suffer from needing to coordinate on a shared language, transmission mechanism, etc.). In an ideal world, you'd replace
I'm aware of two ways of doing this:
(1) Simulation. Perhaps the most straightforward way to verify the behavior of a program is to run it. The most naive implementation of the simulation-based approach, running
(2) Proof search. "If I can prove that you cooperate with me, then I cooperate. Otherwise I defect." Typically you parametrize programs as logical sentences taking the outputs of the other programs in the game as parameters, and use some Lobian-like theorem to prove cooperation. (Interesting is Critch's proof this holds even with access to only bounded provers).
These are not the only methods for robustly achieving
Recommended: Oesterheld's annotated bibliography.