Outcomes do not add
A position has an outcome class — L, R, P or N — and it is the most natural summary imaginable: who wins. Four classes, a small table, and the analysis of a board with several regions ought to be a lookup.
It is not, and the reason is a pair of two-line counterexamples.
The counterexample
Take , the position . Whoever moves first wins it, so it is in class N.
Two N positions summing to a P position. The reason is the mirroring strategy: the second player copies the first player’s move into the other component and always has a reply.
Now take and , a Nim heap of two. Both are in class N.
Two N positions summing to an N position, by the nim-sum: .
Same classes in, different classes out. So there is no function with , and the shortest possible refutation of the natural hope takes four lines.
How badly it fails
The failure is not marginal. Almost every entry of the hoped-for table is undetermined.
Two P positions sum to a P position — that one works, and it is the only fully determined entry.
Two N positions can sum to anything: P (as above), N (as above), L or R. For L, take and , both class N, whose sum is class L.
An L and an R can sum to anything at all. An L and an N can be L or N. And so on.
So the table is almost entirely blank, and what remains is a handful of one-way implications rather than a rule.
The one thing that survives
There is exactly one useful statement, and it is worth having.
If and then . Adding two positions that are good for Left, or neutral, gives one that is good for Left, or neutral. Class L and class P compose.
More generally, the order is compatible with addition — implies — which is the comparison fact rather than an outcome fact. What it gives at the level of outcomes is: a sum of positions all in L or P is in L or P, and a sum of positions all in R or P is in R or P.
That is genuinely useful. It says a player who is ahead in every component is ahead overall, which is not obvious and which fails in games without additivity.
What it does not do is decide anything involving class N, and class N is where the interesting positions live. Every infinitesimal except zero is confused with zero or has a component that is, every hot position is confused with a range of numbers, and any real endgame contains several. So the surviving rule handles the easy cases and stops precisely where analysis is needed.
Why it fails, structurally
The reason is not an accident of small examples.
An outcome class answers “who wins this position, played alone”. A sum is not a position played alone — it is a position played alongside others, in which the players may choose to move elsewhere. So the relevant question about a component is not “who wins it” but “what does having it do to whoever holds it”, and those are different questions.
Concretely: class N says the first player wins, which means the component is worth having the move in. It does not say how much having the move there is worth, and when two such components are added, the answer depends entirely on the amounts. A star is worth exactly one tempo; a Nim heap of two is worth a different amount of a different kind; and the outcomes do not record the difference.
This is why the theory’s central object is a value rather than an outcome. The value is what remains after asking “what does this contribute to any sum”, and it is by construction the thing that adds. Sums come first, and values are what has to be invented to survive them.
Trying to patch it
It is worth seeing a few natural repairs fail, because each failure isolates something.
Add a fifth class. Split N into “N because the position is hot” and “N because the position is a nimber”. The refinement helps with the two examples above and dies immediately on the next: and , both sums of two nimber-N positions, different classes. Splitting further means splitting by nimber index, at which point the “class” has become the value.
Count moves. Attach to each component the number of moves each player has available, or the length of the game. Neither works: and have different move counts and the same class, and two positions with identical move counts can differ in value. Length is not additive in the relevant sense either, since a sum’s length depends on which components get played.
Use a score. Assign each component a real number and add. This fails on , which cannot be assigned any real number consistently — it would have to be a value with and , which no real number is. The nimbers force the value system to have elements of order two, which the reals do not have.
Each repair fails for the same underlying reason: the value has to be a game, and any attempt to summarise it as something simpler throws away exactly the information that the sum needs. That is the sense in which canonical form is not a convenience but the minimal answer.
The one-component question
There is a related misunderstanding worth separating, because it survives even after the additivity point lands.
Asking “who wins this component” of a component inside a sum is a category error. A component does not have a winner; the whole position does. The component has a value, which is its contribution.
So a player looking at a Go board with a dozen local fights should not be asking which fights they are winning. Every one of them may be a first-player win in isolation and the board may still be lost. The question is what each is worth and what the total comes to.
This is a genuinely difficult habit to break, because asking which regions are being won is the natural thing to do and it is the wrong question. The theory’s answer is to replace it with “what is this worth”, which is harder to answer and is the one that composes.
What a value has to be
Working backwards from the requirement gives a specification.
The value of a component must determine the value of any sum it appears in. So values must form a structure with an addition. It must determine who wins the component alone, so outcome must be recoverable from the value — and it is: outcome is the comparison of the value with zero.
It must distinguish from , since those behave differently in sums despite sharing an outcome. So values must be finer than outcomes. And it must not distinguish positions that behave identically in every sum, or it would be recording irrelevant detail — which is exactly what canonical form achieves.
Those three requirements — adds, determines the outcome, distinguishes exactly the positions that differ — pin the value system down. The canonical form is the unique object meeting them, and the entire elaborate apparatus of numbers, nimbers, switches and infinitesimals is the consequence.
So the failure documented on this page is not a nuisance the theory works around. It is the specification.
What the solver computed
The counterexamples above are computed at build time rather than quoted.
lib/cgt.js builds and from the recursion, forms their sums with add, canonicalises, and calls outcome on each. The figure’s labels come from those calls. assertOutcome throws if the computed class differs from the one the caption claims, so a mislabelled counterexample stops the build.
The full search behind the “how badly it fails” section was run once as a check: all pairs of games born by day three, roughly a few hundred positions, every pair summed and classified. The table produced is almost entirely blank, with the P-plus-P entry and the order-compatibility implications the only structure. Nothing in that search is drawn — it is too large and too dull to be a figure — but the claim in this essay came from it rather than from memory.
The example of two N positions summing to L used and , and both the components’ classes and the sum’s were computed. That pair is not the smallest such example; it is the one whose picture is clearest.
The consequence for playing a board
For anybody using the theory rather than proving things about it, the practical statement is this.
A player cannot analyse a board by deciding each region separately and combining the answers. Deciding a region means finding its outcome, and outcomes do not combine.
A player can analyse a board by evaluating each region and adding the values. That works exactly, and it is the entire method.
The difference between the two sentences is the difference between a natural approach that does not work and a more demanding approach that does. Evaluating a region is harder than deciding it — the value is a richer object than the outcome, and computing it costs more — and it is the only thing that composes.
That trade shows up everywhere the theory is applied. Go endgame analysis does not ask who wins each local fight; it assigns each a value and a temperature and combines those. Domineering analysis evaluates each region. The extra cost is paid once per region and saved once per combination, which is overwhelmingly worth it.
The impartial exception
One class of games escapes, and knowing why is instructive.
For impartial games, the Grundy value determines everything and combines by exclusive-or. So an impartial position does have a single number that adds. But note what that number is: it is not the outcome. The outcome is only whether the Grundy value is zero.
So even in the friendliest case, outcomes do not add and values do. Grundy values are the value system for impartial games, and their existence is a theorem rather than a simplification of outcomes. The impartial case is easier because the values happen to be integers under exclusive-or, not because outcomes turned out to be enough after all.
What the failure costs in practice
A last framing, aimed at the person with a board in front of them.
The cost of the failure is that every region must be evaluated, not merely decided. Deciding a region is a search that terminates as soon as a winner is found. Evaluating it means running the recursion to completion and reducing the result, which is strictly more work and often much more.
The saving is that the evaluations combine in constant time. Twelve regions cost twelve evaluations and eleven additions, rather than one search over the product of twelve state spaces.
So the trade is: pay more per region, pay nothing to combine. For a board with many small regions that is overwhelmingly favourable, and it is the regime the theory was built for — late in a game, when the board has broken apart.
For a board with few large regions it is unfavourable, because evaluating a large region is as hard as anything gets and there is little combining to save. That is the middlegame, and the theory has essentially nothing to say about it.
Who found it, and when
The failure is implicit in Bouton’s 1901 Nim paper, which computes the nim-sum precisely because knowing each heap is winnable says nothing. Bouton did not frame it as a failure of outcomes; the framing came later.
The explicit statement — that outcome classes do not form a monoid under disjunctive sum, and that this is what forces the construction of values — is Conway’s, and it is the motivating observation at the front of On Numbers and Games. The book’s structure follows from it: the value system is built first, and outcomes appear as the special case of comparison with zero.
Winning Ways makes the same point with more examples and less algebra, and the counterexample with two stars is the one it leads with, as almost every treatment since has.
The impartial case, stated carefully
The exception deserves one more pass, because it is the case that most often gets quoted as though outcomes did add after all.
For impartial games, every position has a Grundy value, and the Grundy value of a sum is the exclusive-or of the parts’. So the sum is determined by the parts — by their values, not their outcomes.
The distinction is sharp. A heap of two and a heap of three are both class N. Their Grundy values are two and three, and the sum’s Grundy value is one, so the sum is class N. Now take a heap of two and another heap of two: both class N, Grundy values two and two, exclusive-or zero, so the sum is class P.
Identical outcome classes, different sums, because the values differed. The Grundy value is strictly more information than the outcome class, and the extra information is exactly what the addition needs.
So even in the most favourable case in the whole subject — impartial, normal play, values that are small integers combining by a single machine instruction — outcomes still do not add. It is not a partizan phenomenon and it is not a difficulty of large games. It is the first thing that goes wrong, everywhere.
Where the model stops
This is about the disjunctive sum. Other ways of combining games have their own additivity questions and their own answers. Nothing here transfers.
Normal play. Under misère play the situation is worse, not better: values do not add either, and there is no simple replacement.
“Does not add” is not “unrelated”. The surviving implications are real and are used constantly. A player ahead in every component is ahead.
The counterexamples are tiny and the phenomenon is general. Two stars is as small as an example can be, which makes it convincing rather than special. The failure gets worse with size, not better.
The ladder from here
Next: the full table of what does and does not follow, worked out; the substitution theorem, which is the positive result the failure motivates; and the specification of a value system derived from the additivity requirement rather than assumed.
Then outward to the value systems themselves — numbers, nimbers, infinitesimals — each of which exists because the object on this page does not.