The Punishment Paradox, Live
One of the Grounded Commitment Learning results is hard to believe on a chart: in a population of agents playing a repeated cooperation game, increasing the penalty for breaking a commitment decreases how much they cooperate. So don't take it on a chart. Run it.
What game theory predicts
The standard reasoning points the other way. In repeated games, the folk theorem says mutual cooperation is sustainable precisely because defection can be punished: a credible threat of retaliation makes cooperating the rational move. Add a real enforcement mechanism and cooperation should hold up better, not worse.
The lab evidence agrees. Fehr & Gächter (2002, Nature) ran a public-goods game with and without a costly-punishment stage: without punishment, contributions decayed toward zero; with it, they climbed toward full cooperation, even though punishing cost the punisher money.
So the intuitive prediction is monotone up, or up then flat: harsher consequences buy you at least as much cooperation. The simulation below will ask you to commit to a direction before you run it.
What just happened
The folk-theorem story assumes an enforcer who can punish a defector without becoming a party to the conflict. This population has no such thing. Punishment here is decentralised peer retaliation: when an agent is defected on, its own willingness to cooperate with that partner drops by the penalty amount — that is the single line coopProb -= violationPenalty in the ported model.
That turns a deterrent into a spiral. A penalised agent meets its punisher again with a lower cooperation probability, so it defects more, so it gets penalised again — and because agents are paired at random, the souring spreads pairwise through the population. The harsher the penalty, the deeper each retaliation cuts, and the faster cooperation bleeds out. Herrmann, Thöni & Gächter (2008, Science) found the same failure mode in human subjects: where retaliation against punishers is available, it wipes out the gains punishment is supposed to produce.
The boundary condition matters. This is a world where no institution can monopolise enforcement — which is exactly the multi-agent setting GCL is built for. Give the population a central, non-retaliating enforcer and the paradox should weaken; that is a separate experiment, not this one.
How honest is this demo?
- It is the real model, not a mock. The engine is a direct TypeScript port of
ablation.pyand experiment 16, with every behavioural constant unchanged. Nothing is tuned to make the collapse look cleaner. - Browser scale is smaller than experiment scale. The demo runs ~40 agents for ~60 rounds so it animates smoothly. The published result is 50 agents, 100 rounds, 30 seeds, reproduced on every push to the research repo in CI: Pearson r = −0.972. The demo lands in the same regime — typically r around −0.9 once you have four points — but it is noisier, and it shows you that noise.
- The old number was worse than the new one. The site previously cited r = −0.951; a 2026-09-01 audit found that value came from a synthetic-data generator, not the simulation. The real simulation, run properly, gives a stronger effect (r = −0.972). This page runs the same corrected path.
Reproduce it at full scale: derive_real_headline_stats.py · github.com/jstiltner/gcl