Numbers avoid numbers
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.
The demonstration
The position is .
The first component is a fight: Left would like to move there and get , Right would like to move there and hold it to , 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 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 , leaving , which is still positive.
Now watch what a move in the number does. The number is the game : Left may move it to , and Right has no move in it at all. If Left plays there, the position becomes , which is , and that is a first-player win. It is Right’s turn. Right takes the fight, the position is worth , 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 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 to — 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 be a number and a game that is not a number. Then in , every player has an optimal move in . Formally: if Left has any winning move at all in , then Left has a winning move that is a move in .
The two conditions matter and both are frequently dropped in casual statements.
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.
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.
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 , which is a number Right may move in and Left may not — and ask for Right’s moves.
Why it is true
The proof is the mirroring argument, applied to the number.
Suppose Left’s best move in were a move in , taking it to some . The claim is that Left’s corresponding move in 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 makes Left’s own position strictly worse by a definite amount and gains nothing anywhere else.
Meanwhile 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 with — 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: 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 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 dominates.
The formal induction has real care in it — the options of 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.
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.
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.
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 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 , built the same way. The position after Left moves in the number is , 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.
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 is a number then every and every , so Left moving in 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 or some . 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
- The answer that starts another fight hot game, move selection, switch, temperature, tempo
- Big is not the same as hot hot game, move selection, switch, temperature
- Sente is a fact about the rest of the board hot game, move selection, switch, temperature
- The switch a player is imagining hot game, move selection, switch, temperature
- Two hot fights that add to a cold number endgame, hot game, switch, temperature
- What a move nobody makes is worth hot game, move selection, temperature, tempo