Values

Numbers avoid numbers

In a position with a number in it and anything else, the number is never the right move. That is a theorem rather than a heuristic, and it is the closest this subject comes to advice a player can carry into a real game.

A value says who wins and by how much. It does not say what to play, and the gap between the two is where most of the practical difficulty in this subject lives.

There is one exception, and it is worth the whole essay. In a position that decomposes into a number and something that is not a number, a player should never move in the number. Not usually, not on average — never, in the sense that a move in the number is at least as bad as some move elsewhere, and often strictly worse.

Why nobody moves in the numberA hot position added to a number. Left wins the sum whoever moves — but only by moving in the fight. Spending the move on the number instead hands the position back as a first-player win, with Right to move, which throws the win away. The theorem says this is always so, and here it is happening.{2 | 0} + 1worth 3 | 1, outcome L — Left wins whoever movesLeft moves in the fight{2 | }worth 3outcome Lstill a win for LeftLeft moves in the number{2 | 0}worth 2 | 0outcome Nnow whoever moves next wins — and it is Right's turnthe number was worth a whole point and moving in it cost the gamea number is never the right move while anything that is not a number is available
Fig. 1 A fight added to a number. The sum is a win for Left whoever moves. Left’s move in the fight keeps the win; Left’s move in the number hands back a position where whoever moves next wins — and it is Right’s turn. One move has converted a certainty into a loss.

The demonstration

The position is {20}+1\{2 \mid 0\} + 1.

The first component is a fight: Left would like to move there and get 22, Right would like to move there and hold it to 00, and both want to move first. The second component is a number, worth exactly one point to Left, and neither player gains anything by touching it.

The whole thing is worth {31}\{3 \mid 1\} and is a win for Left whoever moves — Left wins it moving first by taking the fight, and wins it moving second because Right’s best is to take the fight down to 00, leaving 11, which is still positive.

Now watch what a move in the number does. The number 11 is the game {0 }\{0 \mid\ \}: Left may move it to 00, and Right has no move in it at all. If Left plays there, the position becomes {20}+0\{2 \mid 0\} + 0, which is {20}\{2 \mid 0\}, and that is a first-player win. It is Right’s turn. Right takes the fight, the position is worth 00, and Left has lost a game that was won.

Nothing subtle happened. Left spent a move on a component where nothing was at stake, and Right spent theirs on the component where two points were.

It is worth noticing what was not lost. The number did not become worth less to Left in any accounting sense — Left cashed one point and the position is a point poorer, which is exactly what the value {20}+1{20}\{2\mid0\}+1 \to \{2\mid0\} records. The loss was of the turn. Left had a move in hand that Right could not match, spent it on nothing, and arrived at the fight second instead of first.

That distinction is why the theorem is about moves and not about points. A player counting only material would see the position drop from {31}\{3\mid1\} to {20}\{2\mid0\} — one point, which sounds survivable — and would miss that the one point was the entire margin.

The statement

The theorem — numbers avoid numbers, in Conway’s phrase — is this.

Let xx be a number and GG a game that is not a number. Then in x+Gx + G, every player has an optimal move in GG. Formally: if Left has any winning move at all in x+Gx + G, then Left has a winning move that is a move in GG.

The two conditions matter and both are frequently dropped in casual statements.

GG must not be a number. If both components are numbers the sum is a number, nobody has anything worth doing, and the theorem says nothing because there is nothing to say. A player forced to move in a sum of numbers is simply losing points.

xx must be a number. If both components are fights the theorem does not apply and the question of which one to move in is a genuine question with no easy answer.

Which part to move inA sum, and every move one player has in it. Each row is a component, the option taken in it, and what the whole position becomes. The values of the parts say who wins; they do not say where to play, and the winning move here is in the component worth the least.{2 | 0} + 1worth 3 | 1, outcome LLeft to movemove inleavingthe whole position becomesverdict{2 | 0}23wins102 | 0losesexactly one of the 2 moves wins, and it is in {2 | 0}each verdict is the outcome of the whole position after the move, computed rather than judged
Fig. 2 Every move Left has in the same sum, with the outcome of the whole position after each. Three of the four moves keep the win and one throws it away, and the one that throws it away is the move in the number. Each verdict is the outcome of the position after the move, computed rather than argued for.

Why it is true

The proof is the mirroring argument, applied to the number.

Suppose Left’s best move in x+Gx + G were a move in xx, taking it to some xL<xx^L < x. The claim is that Left’s corresponding move in GG is at least as good, and the reason is that a number is cold: every Left option of a number is strictly smaller than the number itself, so moving in xx makes Left’s own position strictly worse by a definite amount and gains nothing anywhere else.

Meanwhile GG is not a number, which means precisely that Left has an option GLG^L with GLGG^L \geq G — a move that does not lose ground. That is the working definition of “not a number” and it is worth taking seriously: a number is exactly a game in which both players’ moves damage them, and anything else is a game where at least one player has a move that does not.

So Left has a move that costs nothing and a move that costs something, and the theorem follows. The formal induction has some care in it — the options of GG may themselves be numbers, and the argument has to descend correctly — but the mechanism is that one sentence.

Move where it is hottestFour independent components of one position, ordered by temperature. The temperature is how much a player loses by moving somewhere else instead, so the hottest component is the one to take — and a component that is already a number has no temperature at all, because nobody gains by moving in it.{6 | 0}t = 3a big fight{2 | 0}t = 1a smaller one{1 | 0}t = 1/2small change{0 | 1}no temperaturesettled — a numbercomponenthow much is at stakethe whole position is worth {{{19/2 | 17/2} | {15/2 | 13/2}} | {{7/2 | 5/2} | {3/2 | 1/2}}}and the first move goes in the hottest part, which is a theorem up to a small error rather than a rule of thumb
Fig. 3 The same fact from the practical end. A component that is already a number has no temperature at all, because there is nothing to be gained by moving in it — and the ordering of components by what is at stake puts numbers last, every time.

What the solver computed, and how

Nothing on this page is asserted from the argument above. The figure builds three positions and evaluates all of them.

The sum {20}+1\{2 \mid 0\} + 1 is constructed by add from the two components, and its value and outcome class come out of the same recursion that produces every value on this site. The position after Left takes the fight is 2+12 + 1, built the same way. The position after Left moves in the number is {20}+0\{2 \mid 0\} + 0, again built rather than reasoned about.

The outcome classes are then read off: the sum is in class L, meaning Left wins whichever player moves; the position after the good move is still L; the position after the bad move is N, meaning whoever moves next wins. Since it is Right’s turn, N is a loss.

The site’s gate makes the general claim rather than the particular one. It builds a family of sums of a number and a non-number, finds Left’s winning moves in each by the recursion, and checks that at least one of them is a move in the non-number component. A single counterexample would fail the build.

The check is also given something to refuse. Sums of two numbers are fed to the same test, and there the property is vacuous — every move loses ground, and the machinery must not report that some move is safe. A test that passed on those as well would be testing nothing.

What “not a number” is doing in the hypothesis

The theorem’s condition is stated negatively, which makes it easy to skim past. It deserves a positive reading, because that reading is the whole mechanism.

A number is a game in which both players’ moves make things worse for the mover. That is not a definition dressed up — it is equivalent to the usual one. If xx is a number then every xL<xx^L < x and every xR>xx^R > x, so Left moving in xx loses ground and so does Right.

A game that is not a number therefore has a player with a move that does not lose ground: some GLGG^L \geq G or some GRGG^R \leq G. That option is a free move — a move that changes whose turn it is without costing anything.

Four things a position can beEvery position falls into one of four outcome classes, and only three of them correspond to a comparison with zero. The fourth — first player wins — is a position confused with zero, neither greater, smaller nor equal, and it is where the subject departs from arithmetic.0outcome P= 0whoever must move, loses10outcome L> 0Left wins, whoever starts-10outcome R< 0Right wins, whoever starts00outcome N‖ 0whoever moves first, winsblue edges are Left's moves, red are Right'sthree of the four are comparisons with zero; the fourth is not
Fig. 4 The four ways a position can sit against zero. A number occupies exactly one of the first three; the fourth, confused with zero, is available only to games where somebody has a move that costs nothing. The whole theorem is the difference between those two situations.

Framed that way the theorem is nearly obvious. A player holding both a free move and a costly one plays the free one, and a number is by construction a component that offers only costly moves. What takes work is showing that the free move remains at least as good once the whole recursion is unrolled — that a component’s free move cannot be a trap two moves deep — and that is where the induction on birthdays is needed.

This also explains a fact that otherwise looks arbitrary: the theorem’s contrapositive is a way of detecting numbers. If a component is one in which every move is a loss for the mover, the component is a number, and the machinery on this site uses exactly that test rather than trying to recognise a fraction.

The value of LRL is computed, not readOne string with every option drawn. Left's moves are the blue edges she may cut, Right's the red ones; each leaves the part of the string still standing. The value follows from those options by the same recursion that defines every game in the subject.3/4the positionLeft cuts blue, leaving01/2Right cuts red, leaving1{1/2 | 1}
Fig. 5 A component of a real game where the same thing can be watched. Every cut a player makes in a blue-red string moves the value against them — which is the picture of a number, and the reason a string with no green edge in it is never worth playing in while anything else remains.

Where the model stops

It says a move exists, not which one. The theorem guarantees that some optimal move lies in the non-number component. If that component is itself a sum of several fights, the theorem is silent about which fight, and that question is genuinely hard.

It is about optimal play, not about play against a person. Against an opponent who blunders, spending a move on a number can be right, because it changes whose turn it is at the moment the fight is resolved. Values are a theory of perfect play against perfect play and they are not always the correct guide against anything else.

It needs the sum to be a genuine decomposition. The components must be independent — a move in one leaves the other untouched. In a real game the regions are only independent once they are separated, and establishing that separation is itself part of the play.

Normal play, as always. The claim that a number is cold rests on the fact that having fewer options is bad, which is a theorem about who moves last. Under misère play it fails along with everything else.

Two positions, one valueA Hackenbush sprig and an abstract game with the same value. Being equal means more than being worth the same in isolation: either can be substituted for the other inside any larger position, and nothing about who wins will change.1/2a blue edge with a red one above=verified, not asserted{0 | 1}1/2the number one halfequal means interchangeable in every sum, which is a much stronger claimtheir difference is 0, and its outcome is P
Fig. 6 The reason the theorem can be stated about values at all. Two positions with the same value are interchangeable in any sum, so “the component is a number” is a statement about what the component is worth rather than about what it looks like — and the theorem applies to every position of that value.

What the theorem is worth in a real game

The reason this result is quoted more than any other in the subject is that real positions are mostly numbers.

A game of Go in its last thirty moves is a dozen or so regions. Most of them are settled: the territory is decided, both players know the count, and any move played there simply fills in a point that was already accounted for. A few are unsettled, and those are where the game is decided. The theorem says, exactly and without qualification, that a player should not touch a settled region while an unsettled one remains — and that a player who does has handed the opponent a free move.

Strong players call this not filling in dame, and it was folklore for centuries before it was a theorem. What the theorem adds is the boundary of the advice: it holds against perfect play, it holds regardless of how large the number is, and it stops holding the moment the “settled” region turns out to have something at stake after all.

That last clause is where a real player’s judgement goes. Deciding whether a region is genuinely a number is the hard part, and the theory does not help with it — the recursion can tell a number from a fight only after the region has been written down completely, which for a region of any size is not possible.

So the theorem’s practical content is conditional on a classification the theory cannot perform, and its value is that once the classification is made, the conclusion is exact rather than probable. That is a fair description of what combinatorial game theory offers a player in general.

The generalisation

The theorem has a stronger relative, and the relationship between them says something about how this subject grows.

Numbers avoid numbers is the special case, at temperature zero, of a much more general principle: a player should move in the component with the most at stake. A number has nothing at stake — its temperature is negative by convention, and the convention is chosen precisely so that numbers sort last — so “move in the hot part rather than the number” is the same instruction as “move where it is hottest”, restricted to the case where one part is cold.

The difference is that the general principle is only correct up to a bounded error, and this special case is exact. That pattern recurs: the exact results in this subject are the ones about the extremes, and the middle is where approximations live.

There is a second direction of generalisation. Replace “number” with “any game all of whose options are worse for their owner”, and much of the argument survives. The class that results — games that are cold in this sense without being numbers — is where the theory of cooling gets its grip.

Who found it, and when

The result is in On Numbers and Games, and the phrase is Conway’s. It is one of the few results in the subject with a name that is also its statement.

The context matters for understanding what it is for. Conway and Berlekamp were analysing Go endgames, in which a real position genuinely decomposes into independent regions and some of those regions really are settled — worth a definite number of points with nothing left to fight over. A rule that says “never play in a settled region while an unsettled one remains” is not an abstraction there; it is the single most valuable piece of advice the theory produces, and strong players had it as folklore long before it had a proof.

Berlekamp’s later work on Go endgames turned this and its refinements into a method that beat professional players in constructed endgame positions, which is about as direct a vindication as a piece of combinatorial game theory has ever received.

The ladder from here

This anchor has run from what a number is worth through what “simplest” means to a statement about how numbers behave in company.

Later rungs: the proof in full, with the induction on birthdays done properly. The cold games that are not numbers, and what survives about them. The theorem’s failure under misère play, which is instructive because the failure is specific rather than general. And the quantitative version — how much a move in a number actually costs, which is the difference between the theorem and the temperature theory that generalises it.

The thing worth carrying is the shape of the claim. This is not “usually a bad idea”. It is a theorem with hypotheses, and the hypotheses are the interesting part.