POKER 51 · RIEMANN v0.6 · WORKING NOTE · 1 OCTOBER 2026 · RH OPEN
Solving Riemann.
Until v0.5 the Poker 51 dealer bet by a read-and-threshold policy. Since v0.6 it bets from a solved strategy: the whole hand, your draw included, was written as one two-player game on an abstraction of Poker 51 and solved. The tables are published in full, and every decision can be replayed. The rules you play by did not change.
Riemann is a name, not a claim. Nothing here uses zeta data or bears on the Riemann hypothesis. Nothing on this page is PROVED.
The result
Riemann’s average jbits per hand; the ante is 1 jbit each.
| Game | Classes · your draw states | Value of the game | What the v0.6 table guarantees | A perfect player gains at most | The same against v0.5 | Four modelled types, fresh real-card deals: v0.5 → v0.6 |
|---|---|---|---|---|---|---|
| Standard | 19 · 46 | +0.015 | −0.099 | 0.115 | 3.055 | +0.554 → +1.281 |
| Wild Ⅰ | 28 · 67 | +0.005 | −0.108 | 0.114 | 3.009 | +0.612 → +1.169 |
| The bug | 36 · 81 | +0.031 | −0.087 | 0.118 | 3.030 | +0.362 → +0.954 |
- COMPUTEDThe value of each game and what each table guarantees, in the abstraction. A script rebuilds each abstraction from its seed, decodes the table published on the Poker page and lets a perfect player best-respond to it (receipt).
- EVIDThe last column. The four player types are a language model’s answers to written descriptions of each spot, not people.
- OPENReturns against real players. Not measured.
- NOT CLAIMEDAn equilibrium, optimality or any return for the real card game.
How it was done
- One game. You choose your draw and act first; Riemann answers knowing your draw count; both draw; you act first again; showdown. Both betting rounds use the v0.5 tree: check or bet 1, 2, 4 or 8, Riemann’s 2-jbit bet when checked to, one raise and one re-raise.
- An abstraction. Dealt hands are grouped into classes (19 in the standard game, 28 for Wild Ⅰ, 36 for the bug), with exact frequencies. Final hands fall into 40 strength buckets. Your draw options are the House-rule draw, standing pat, keeping a kicker, and keeping two high cards. Card removal between the hands is ignored and stacks are deep.
- A solver. CFR+ with perfect recall, 3,000 iterations for each equilibrium; the two sides’ possible gains from deviating sum to less than 0.001 jbits per hand.
- A model of players. A language model (TypeSafe System One,
jev-1.13.0) was asked, as a judge and in poker words, how four player types would draw, bet and answer: default, cautious, aggressive and calling station. 45,113 questions in all. Arithmetic stayed in code. - A restricted Nash response. Riemann assumes that with probability p it faces that population and otherwise a player who knows its table and plays perfectly against it. p = 0 is the equilibrium. The published tables use p = 0.5.
- A check on fresh deals. New whole hands, real cards, the model playing each type in full.
The trade-off, game by game
“A perfect player takes” is computed in the abstraction. The other columns are Riemann’s expected jbits per hand against each modelled type on fresh real-card deals.
Standard · 600 fresh deals per type
| Riemann | a perfect player takes | vs default | vs cautious | vs aggressive | vs calling station | average |
|---|---|---|---|---|---|---|
| v0.5 policy (read and threshold) | 3.055 | +0.603 | +0.268 | +0.541 | +0.806 | +0.554 |
| equilibrium of the abstraction | 0.000 | +0.645 | +0.468 | +0.869 | +0.826 | +0.702 |
| restricted Nash response, p = 0.25 | 0.024 | +0.954 | +0.550 | +1.875 | +1.044 | +1.106 |
| restricted Nash response, p = 0.5 (published as v0.6) | 0.114 | +1.026 | +0.572 | +2.426 | +1.097 | +1.281 |
| restricted Nash response, p = 0.75 | 0.699 | +1.184 | +0.654 | +3.396 | +1.208 | +1.611 |
| restricted Nash response, p = 0.9 | 2.031 | +1.328 | +0.728 | +4.391 | +1.193 | +1.910 |
Wild Ⅰ · 300 fresh deals per type
| Riemann | a perfect player takes | vs default | vs cautious | vs aggressive | vs calling station | average |
|---|---|---|---|---|---|---|
| v0.5 policy (read and threshold) | 3.009 | +0.660 | +0.235 | +0.824 | +0.727 | +0.612 |
| equilibrium of the abstraction | 0.000 | +0.518 | +0.425 | +0.782 | +0.548 | +0.568 |
| restricted Nash response, p = 0.25 | 0.017 | +0.864 | +0.528 | +1.729 | +0.778 | +0.975 |
| restricted Nash response, p = 0.5 (published as v0.6) | 0.113 | +0.993 | +0.576 | +2.250 | +0.859 | +1.169 |
| restricted Nash response, p = 0.75 | 0.576 | +1.183 | +0.665 | +3.093 | +0.968 | +1.477 |
The bug · 300 fresh deals per type
| Riemann | a perfect player takes | vs default | vs cautious | vs aggressive | vs calling station | average |
|---|---|---|---|---|---|---|
| v0.5 policy (read and threshold) | 3.030 | +0.449 | +0.191 | +0.346 | +0.463 | +0.362 |
| equilibrium of the abstraction | 0.000 | +0.445 | +0.409 | +0.480 | +0.482 | +0.454 |
| restricted Nash response, p = 0.25 | 0.024 | +0.705 | +0.490 | +1.141 | +0.593 | +0.732 |
| restricted Nash response, p = 0.5 (published as v0.6) | 0.118 | +0.845 | +0.532 | +1.684 | +0.754 | +0.954 |
| restricted Nash response, p = 0.75 | 0.771 | +1.130 | +0.736 | +2.793 | +0.835 | +1.373 |
The curve bends in the same place in all three games. Up to p = 0.5 the win against the modelled players rises quickly while a perfect player gains little; past it, the exposure grows faster than the win. Because the table is published, the exposure is the price of publishing, so it is kept near 0.1. The choice of p is a design choice.
What the solve says about the game
- The game is nearly fair. With perfect play a standard hand is worth about +0.015 jbits to Riemann, the value of acting second. Everything beyond that comes from the other side’s mistakes.
- Draw counts are hiding places. At equilibrium you keep two high cards with no pair and draw three, hiding among the pairs; with a small pair you keep a kicker about two times in three, hiding among three of a kind. A stand-pat is a made hand only 39% of the time. The v0.5 policy took every draw count at its word, and that was its 3-jbit leak.
- A signal is only as believable as its honest version is common. An honest stand-pat happens on 0.78% of deals. If just 1% of weak hands stand pat as a bluff, a stand-pat is a bluff 53% of the time.
- Minimum defence frequency. Against a bet B into a pot P, folding more than B/(P + B) of the time hands any bluff a profit. The v0.5 policy continued against an 8-jbit bet into a 2-jbit pot with 44% of its hands; the solved last round continues with about 20%.
Limits
- The players are a language model, and the same four types were used to build the population and to check it. Real players will differ.
- The guarantee is a statement about the abstraction. A player using exact cards, card removal or stack sizes may take more than 0.1 jbits per hand at the real table; how much more is not measured.
- A short stack goes all in at the real table. The solved game has no all-ins; Riemann then reads the nearest bet size and never raises a player who is all in.
- Riemann’s draw is not solved. It is the published House rule, as before.
Files
Working note (unpublished; no DOI yet): the abstraction, the solver, the model, every table and the limits.
| File | What it is |
|---|---|
| poker51-riemann-v0-6.js | the published lookup and the public mixing hash |
| standard · Wild Ⅰ · the bug | the three tables, each with its SHA-256 |
| poker51-table-v0-6.js | the v0.5 hand with the solved decisions |
| verify-poker51-v0-6.mjs · receipt | the table module plays the tables exactly and keeps the v0.5 rules (9 checks, 9,000 hands) |
| guarantee-v0-6.mjs · receipt | what each published table guarantees, recomputed from this site alone |
| fullgame.mjs · fullgame2.mjs | the standard abstraction, CFR+, restricted Nash response and best responses |
| vabs.mjs · vsolve.mjs | the same for Wild Ⅰ and the bug |
| popmodel.mjs · packsite.mjs | the population model from the language model’s answers; a solved strategy to a published table |
The language model’s answers, the questions, the solved strategies and every score table are a data bundle prepared for deposit with Project 51. It is not on this site and has no DOI yet.
node tests/v4_1/verify-poker51-v0-6.mjs node research/project-51/poker-51/riemann-v0-6/guarantee-v0-6.mjs
Part of Project 51: Reading the Record Across Rules · 10.5281/zenodo.23048482; this note is not in that record. RH STATUS: OPEN.