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.

Assumes: The day a number is born · The sum is the object

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 number. A 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.
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 in. A 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.
Fig. 2 Every move Left has in the same sum, with the outcome of the whole position after each. There are two of them, and exactly one wins: taking the fight leaves 33, and moving in the number leaves {20}\{2 \mid 0\} with Right to play, which is a first-player win and therefore a loss. Each verdict is the outcome of the whole position after the move, computed rather than argued for.

The theorem is stated for either player, and nothing in it prefers Left, so the same enumeration should come out the same way with the colours exchanged. Give Right the number instead — a component worth 1-1, which is a number Right may move in and Left may not — and ask for Right’s moves.

Which part to move in. A 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.
Fig. 3 The mirror image: {20}+(1)\{2 \mid 0\} + (-1), worth {11}\{1 \mid -1\}, with Right to move. Right has two moves and exactly one of them wins, and again it is the move in the fight — taking {20}\{2 \mid 0\} down to nought leaves 1-1, which Right wins, while cashing the number leaves {20}\{2 \mid 0\} for Left to take. The whole position is a first-player win here rather than a Left win, so the mirror is not a relabelling of the figure above it; it is the same theorem tested where the stakes are different.

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, and the right way to say what that buys needs care, because the tempting version is false of everything.

The tempting version is Left has an option GLG^L with GLGG^L \geq G — a move that does not lose ground. No game has such an option, ever. An option at least as good as the position it is played from is exactly what the gift horse principle shows never happens: across every option of every value born by day three, not one is as good as the game it belongs to. Every move loses ground, in every game, for the player making it.

What separates a number from a non-number is not whether a move loses ground but how much. In a number, a move loses a definite positive amount: xxLx - x^L is a positive number, with a size. In a game that is not a number, the ground given up need not have a size at all — it can be an infinitesimal, which is smaller than every positive number.

So the comparison the theorem turns on is between two moves, both of which cost something. Moving in the number costs a positive number; moving in GG costs at most something no positive number bounds. The second is cheaper by an amount that cannot be outweighed, and that is why the move in GG dominates.

The formal induction has real care in it — the options of GG may themselves be numbers, and the argument has to descend correctly — and it is the literature’s rather than this page’s. What is worth carrying is the shape: not “one move is free and the other is not”, but “both cost, and only one of the costs is measurable”.

That reading suggests a test the theorem does not actually make, and it is worth killing before it takes hold: that the non-number has to be worth fighting over. It does not. What is at stake in a component is a separate measurement, and the smallest possible amount of it is enough.

Which part to move in. A 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.
Fig. 4 A star added to a number. A star is worth nothing to either player in the sense that matters here — it is not a fight, nobody gains a point by moving in it, and it is confused with nought rather than above or below it. The sum is worth 11\ast and Left wins it, and still only one of Left’s two moves keeps the win: moving in the star leaves 11, and moving in the number leaves \ast with Right to play.

So the hypothesis really is not a number rather than hot. What the star supplies is not stake but a move whose cost has no size, and a cost with no size beats a cost of one point however small the point is made.

What a number actually is, stated so it can be checked

Since the tempting characterisation is false, it is worth putting the true one beside it, because the two are easy to confuse and only one of them is a definition.

G is a number    every GL<every GR, and every option is a number.G \text{ is a number} \iff \text{every } G^L < \text{every } G^R, \text{ and every option is a number.}

The comparison is between the two players’ options, not between an option and the position. That is what makes it checkable — it reads the option lists against each other — and it is what the site’s isNumber computes.

Read it as play: a number is a position where Left’s best is strictly worse for Left than Right’s worst, so neither player has anything to reach for. A non-number is a position where the two players’ claims overlap somewhere, and the overlap is what they fight over.

And the hereditary clause is not decoration. A game whose top-level options happen to be ordered but whose options are not numbers is not a number, and the condition has to be checked all the way down — which is why testing it on an unreduced form gives the wrong answer, and why this site’s censuses apply it to canonical forms.

Which sharpens what the theorem is worth

That correction changes how the theorem should be read, and in the useful direction.

The false version made number-avoidance sound like a triviality: one move is free and the other is not, so take the free one. The true version says something a player would not guess. Every move on the board costs its maker something. What varies is whether the cost is a quantity — and a move whose cost is smaller than every positive number is, for the purposes of any comparison against a number, free.

So the theorem is an instance of the site’s standing theme rather than an exception to it. The infinitesimals decide when the numbers have cancelled, and here they decide when the numbers have not cancelled: a positive number of points against a cost with no size, and the sizeless one wins every time.

It also says exactly where the theorem stops. Two components that are both non-numbers give two moves whose costs are both unmeasurable, and there is nothing to compare — which is why choosing between two fights is a genuine question with no theorem attached. The number-avoidance theorem is not a general principle about move choice; it is the one case where one of the two costs can be written down.

The same enumeration says so directly. Replace the number by a second fight and run it again, and the figure that had one winning move has two.

Which part to move in. A 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.
Fig. 5 Two fights and no number. Left wins the sum whichever component is taken, so both moves are marked winning and the verdict column has stopped separating anything. Nothing here says which move is better, and the answer is that the larger fight is — a fact about how much is at stake rather than about what is a number, and one no outcome class can see.

The verdicts going all one way is the useful thing about that figure. It is the same instrument that picked out a single move a moment ago, and here it declines to choose, because the fact it was reading is not present.

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.

Which part to move in. A 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.
Fig. 6 The refusal case, enumerated like the others. Both components are numbers, the sum is worth 32\tfrac32, and both of Left’s moves win, because a position that far above nought survives either of them. There is no non-number to move in, so the theorem has nothing to say — and an instrument that reported a preferred move here would be reporting something it cannot know.

Two figures on this page mark every move as winning, and they do it for opposite reasons: two fights are both worth taking, and two numbers are both worth leaving alone. Between them sit the sums the theorem is about, where exactly one of the two moves is right and it is never the one in the number.

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.

That is also where the theorem meets the four ways a position can sit against zero. A number occupies exactly one of the first three — greater, less, equal — and never the fourth. The fourth class, the positions confused with nought where whoever moves wins, is available only to games in which somebody holds a move that costs nothing, and 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.

It is worth knowing what that looks like in a game somebody plays. Every cut either player makes in a blue-red Hackenbush string moves the value against the player making it — Left’s cuts lower it and Right’s raise it, with no exceptions anywhere in the family. That is the picture of a number, and it is the reason a string with no green edge in it is never worth playing in while anything else on the board 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.

One more thing has to hold for the theorem to be about values at all, and it is the fact the whole subject stands on: 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 at once — a blue-red string of forty edges as much as the fraction it is worth.

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.

Part 3 of 8

One argument about Numbers. The parts either side of it:

What links here

Essays that reach for this one mid-argument — the half of a link its own author cannot write down, the 8 sharing most with it of 37.

The objects named here

The third axis, after the field and the series: the games, values and theorems themselves, and every essay that touches each one.

Cold positionEndgameHot gameHot positionMove selectionNumber avoidanceSwitchTemperatureTempo