Where it stops

What a component has to carry

Three impartial games on this site break the sum, and they break it for the same reason: a component cannot say what its own legal moves are. Measured with one instrument — one number per part, exclusive-ored — the failure rate runs from a quarter to nearly half, against a control where the same recipe is a theorem and is never wrong.

Assumes: The heap is not the position · A move that must be answered

Every impartial game is supposed to be a Nim heap. That is the theorem two people found four years apart, and it is the single most useful fact in the subject: compute one number per component, exclusive-or them, and the board is decided.

Three games on this site are impartial and are not covered by it. Each has a rule under which a component cannot answer what are my legal moves? on its own — it has to be told something about the past, or about the rest of the board. The heap is not the position named the class and left the question standing:

All three break the sum for the same reason — a component that cannot say what its own legal moves are — and what they have in common is a question nobody here has asked.

What a component has to carry. Four impartial games, one of which is Nim. In the other three a component cannot say what its own legal moves are without knowing something about the past or about the rest of the board, so the Sprague–Grundy recipe does not apply — and the table says by how much. Every outcome was obtained by solving the sum outright rather than by any formula.
Fig. 1 Four impartial games, one of which is Nim. In the other three the Sprague–Grundy recipe does not apply, and the table says by how much: every outcome was obtained by solving the sum outright rather than by any formula.

A quarter, a quarter, and nearly a half. Against a control where the same recipe cannot be wrong.

The numbers are worth reading twice before the mechanisms, because a reader’s expectation is usually one of two things and both are wrong. The pessimistic expectation is that a game outside the theorem is a game the theorem says nothing about, so the recipe should be no better than a coin. It is much better than a coin: three sums in four on two of the three games. The optimistic expectation is that a small departure from the rules produces a small departure from the answer. It does not: a single pass token, added to a game the theorem covers exactly, makes the recipe wrong nearly half the time.

The instrument, and why it is the same one

Putting three different games on one axis needs the axis to mean the same thing in each, so it is worth being exact.

In every row the recipe is identical: look at each component alone, take the number it carries in isolation, exclusive-or the numbers, and read the outcome off the total — nought means the player to move loses, anything else means they win. For ordinary Nim that recipe is the Sprague–Grundy theorem and is a proof. For the other three it is a recipe applied to a game it was never proved for.

The control row is not decoration. It is asserted in the code: if Nim’s own recipe disagreed with Nim’s own outcomes on any sum, the instrument would be broken and the other three rows would be measuring nothing. It has never fired.

The recipe it is a control on is Sprague–Grundy: every impartial position is equivalent to a single Nim heap, and that equivalence is the whole of why one number per component is enough. A game where the recipe fails is a game where a component is not a number.

An instrument that has been run once has been run on one pool, so it is worth running again on a smaller one before any of its readings are compared.

What a component has to carry. Four impartial games, one of which is Nim. In the other three a component cannot say what its own legal moves are without knowing something about the past or about the rest of the board, so the Sprague–Grundy recipe does not apply — and the table says by how much. Every outcome was obtained by solving the sum outright rather than by any formula.
Fig. 2 The identical table over heaps to eight rather than to twelve. Nim’s control is nought here as well, which is the point of running it. What is not identical is Fibonacci Nim: two failures in twenty-eight pairs against seventeen in sixty-six, so the same game reads seven per cent on this pool and twenty-six on the other. The bottom two rows have not moved at all, and the reason is the last section of this essay.

What differs between the rows is only which number a component carries in isolation, and each choice is the honest one a reader would make.

What each game carries

It is worth holding on to what a component looks like when it carries nothing. In a subtraction game a heap has one number, that number depends on the heap size and on nothing else, and the sequence of numbers repeats for ever. The three games below lose all three properties together, and they lose them for one reason.

Fibonacci Nim carries a cap. A move may take at most twice what the previous move took, so a heap’s legal moves depend on what was played in that heap last. In isolation, a heap of nn is a loss for whoever moves in it exactly when nn is a Fibonacci number — that is the whole of the one-heap theory — so the honest number is nought for a Fibonacci heap and one for everything else.

Top Entails carries an obligation. Splitting a heap compels the opponent to reply in one of the two new heaps — and the two new heaps are in this component, so a move here dictates where the whole board answers. In isolation a heap has a naive Grundy value, computed as though the compulsion did not reach outside.

A held pass carries a token. The pass may be used once and may not end the game, so whether it is legal at all depends on whether anything else on the board can move. In isolation, a pass that may be taken freely is exactly a Nim heap of one, so the honest prediction is the nim-sum exclusive-ored with one.

Top Entails, one heap at a time. Each heap with the outcome of playing it alone, the Grundy value an ordinary solver would give it, and the moves that win from it. Taking the top coin of a heap forces the opponent to answer in that heap, which is a kind of move no other game on this site has.
Fig. 3 The middle case, on its own terms. A split in Top Entails is not a move into a smaller position — it is a move that hands the opponent an obligation, and the obligation is what a component cannot describe without describing the board.

Three different things carried, three different mechanisms, and one instrument.

Each of those three isolation numbers is the right one to use, and none of them is arbitrary. That matters because the measurement would be worthless if the recipe had been handed a number nobody would actually pick: the point is not that some per-component number fails but that the natural one does, and that the natural one is in each case the answer the game’s own one-component theory supplies.

The smallest failures

Counts say how bad, and the smallest witness says why.

Three smallest failures. The smallest position in each family at which one number per component gets the outcome of the sum wrong, found by search rather than chosen. In every case the recipe is the Sprague–Grundy one and every case is a game that recipe does not cover, so the failures are the expected kind — what is worth reading is how small each of them is.
Fig. 4 The smallest position in each family at which one number per component gets the outcome wrong, found by search rather than chosen. All three are tiny.

Fibonacci Nim breaks at 4+64 + 6. Neither four nor six is a Fibonacci number, so each carries a one, and the recipe says the two cancel and the mover loses. The mover wins. The reason is that the cap crosses no boundary — a move in the four does nothing to the six’s cap — but the timing does: a player forced to make a small move in one heap has their next move in that heap capped, and can play the other heap instead, which no per-heap number records.

Top Entails breaks at 2+22 + 2. A game added to itself, which every impartial game without entailing moves settles at nought — copy the opponent in the other heap and always have an answer. That fails here because after a split the reply is compelled to be in the split component, and the mirror image is not a legal answer. A move that must be answered is the essay about that, and its smallest instance is the smallest instance here.

The held pass breaks at a single heap of one against three heaps of one. Both have nim-sum 11, so under ordinary Nim they are the same game and either may be substituted for the other inside anything. With the pass on the board they are worth 22 and 00.

That last one is the sharpest, because it is not a failure of a prediction — it is a failure of substitution. Two positions with the same value are supposed to be interchangeable, and here they are not.

The order, and what it says

The three failure rates on the pool the first table uses are twenty-six per cent, twenty-five per cent and forty-five per cent, and one comparison among them survives changing the pool and the other does not.

The one that survives is that the pass is worst. It reads forty-five per cent on every pool tried, and it is above both of the others on every one of them.

The one that does not is the near-tie at the top. Twenty-six against twenty-five is not two readings of one scale: on heaps to eight Fibonacci Nim reads seven per cent and on heaps to sixteen it reads thirty-two, so it crosses Top Entails somewhere in between and the ordering of those two is a fact about where the pool was cut. What is stable is that both of them are far better than chance, which is the claim the section makes.

Fibonacci Nim and Top Entails carry something about the component: a cap on this heap, an obligation to reply in this heap. The information is local even though the theorem does not survive it, and on the pools measured here a per-component number gets between two-thirds and nine-tenths of the sums right.

A held pass carries something about the board: whether the pass is legal depends on whether anything else can move, which is a question no component can be asked. That is the most severe of the three failures, and it is the one where the notion of a component has stopped applying rather than merely become inaccurate.

Poker Nim from 3, 4, 5, with reserves of 2 and 2. Nim with one extra kind of move: a player may put any number of counters back onto a heap from a private reserve. It looks as though a losing player could stall for ever. They cannot, and the winner is decided by exactly the same nim-sum as ordinary Nim — checked here over every position within a stated range rather than argued.
Fig. 5 The contrast that makes the point. Poker Nim lets a player put counters back — a rule that looks far more disruptive than a single pass — and the theory absorbs it without effort, because a returned counter is a move the opponent can undo and the value is unchanged. What breaks a sum is not how strange the rule looks but whether a component can state its own legal moves.

The move that gives counters back is the standing example of a rule that looks like it should break everything and breaks nothing. Set beside the pass, it isolates the property that matters.

What the pass is actually asking about

The third failure is worth one more turn, because naming the missing information makes it a familiar quantity rather than a mystery.

The clause that does the damage is the pass may not be the move that ends the game. So whether the token is legal right now depends on whether anything else on the board can still move — and that is not a question about values. A heap of one and three heaps of one are the same game, worth \ast, interchangeable inside every ordinary sum. They differ in that one of them has one move left in it and the other has three.

The quantity a component would have to carry is its length, and length is precisely what a value is built to discard. What a value leaves out makes that omission a theorem rather than an oversight: length is invisible to every sum, so the equivalence throws it away, and any theory recording it would be separating positions no sum can separate. The held pass is the rule change that makes a sum able to separate them — it reaches into a component and asks is there anything left, which no other rule on this site does.

That reframes the ordering of the three rates. Fibonacci Nim asks a component about its own past and Top Entails asks it about an obligation it created; both are questions a bigger component could answer. The pass asks a component how much life it has left, and the answer is one the value theory deleted on purpose, three layers down, for reasons that were good and that this rule is the price of.

It also explains why the free version breaks nothing. A pass that may end the game asks no such question — it is available whatever else is on the board, so it is a component in its own right, and a component that offers exactly one move is a Nim heap of one. Drop the clause and the token stops being a predicate over the board and becomes a heap, which is the whole difference between a rule the theorem survives and a rule it does not.

Why the sum is what breaks, and not the game

Each of the three games is perfectly well-defined and perfectly solvable on its own. Fibonacci Nim has a complete one-heap theory with a closed form. Top Entails has a solved heap table. Nim with a pass on one heap is a finite game with an outcome.

What fails is decomposition — the ability to solve the parts and add. The board falls apart is the essay about what decomposition buys, and it is the only exponential saving this subject has: six trees walked separately beat one tree of their product by an enormous margin.

So the cost of carrying state is not a wrong answer. It is a lost saving, and the size of the loss is the size of the whole board’s tree against the sum of its parts’ trees.

What decomposition is worth, in states. Fibonacci Nim sums searched two ways: once as a single position, and once component by component with the answers exclusive-ored. The states each route reaches are counted, so the saving decomposition buys is a number rather than an adjective — and it grows with the number of components while the price of re-indexing a component does not.
Fig. 6 What is lost, counted on the one of the three games where both routes exist. A Fibonacci Nim sum can be searched whole or component by component, and the states each route reaches are the two middle columns: 6.3 times as many searched whole over every pair of heaps up to fourteen, and 16.9 times as many over every triple up to ten. The saving is a factor that grows with the number of components, which is what “adding trees against multiplying them” means once it is a number.

What the three cost a solver

The counts above are about correctness. There is a second cost and it is the one a program feels.

A component in ordinary Nim is a number. A component in Fibonacci Nim is a pair — the heap and its cap — so the table a solver keeps is larger by a factor of the number of caps a heap can have, which is bounded by the heap size. That is a polynomial cost and it is survivable.

A component in Top Entails is a heap plus a flag saying whether the board is currently under an obligation, and the flag is not local: it names which component the obligation is in. So the state a solver stores is a state of the whole board, and the table is over boards rather than over components. That is the exponential cost, and it is the one decomposition exists to avoid.

The held pass is between the two in size and worse in kind. The token is a single bit and can be stored cheaply; what cannot be stored cheaply is the fact that its legality is a predicate over everything else on the board, so the bit cannot be attached to any component and has to travel with the whole position.

The two orderings are not the same, and the disagreement is the useful part. By failure rate the pass is worst and Fibonacci Nim and Top Entails are close together; by state kept, Fibonacci Nim is alone in being cheap and Top Entails is the most expensive of the three, with the pass beside it. So the game whose rate is second-worst is the game whose repair is cheapest, and the game that looks best on the instrument is one of the two that cannot be repaired at all. A rate measures how often a recipe misleads; a state count measures whether anything can be done about it, and no amount of the first predicts the second.

Whether the class has a boundary

The obvious question is whether carrying something is one property or three, and the honest answer is that this page has not shown it is one.

What the three share is stated negatively — a component cannot say what its own legal moves are — and negative descriptions are cheap. A positive one would name a quantity the component would have to carry instead of a Grundy value, such that the recipe worked again.

For one of the three that quantity exists and is known: a Fibonacci Nim heap with a cap is a well-defined position, so the state (n,cap)(n, \text{cap}) is a component and the game over those components is a genuine disjunctive sum. The measurement above is what happens when a reader insists on describing a heap by its size alone.

For the other two it does not. Top Entails’ obligation reaches outside the component by construction, and the pass’s legality is a fact about the whole board. Enlarging the state does not help, because there is nothing local to enlarge it with.

None of this is a question about the operation. The sum here is the ordinary disjunctive one in every row — the same combination values were built for — and it is the components rather than the addition that have stopped being independent.

That split is the most useful thing to take away. Carrying history is repairable by enlarging the state; carrying a fact about the rest of the board is not. The first kind of rule costs a bigger table and keeps the theorem; the second kind costs the theorem, and no amount of bookkeeping inside a component buys it back.

What the counts do not settle

The pools are small and deliberately so: pairs of heaps up to twelve for Fibonacci Nim, up to six for Top Entails, and every heap list the pass census enumerates. Nothing here says what the failure rates look like at scale, and a rate measured over pairs is not a rate over boards with six components.

Worse than small, the pools are not the same pool, and only one of them answers to the size the table is asked for.

The same instrument, on three pools. The four rows of the carry table read again with the pool of positions made smaller and larger. Only one row's pool is set by the argument, and its failure rate more than quadruples across the range; the other two are measured on the same positions every time, so the rates the table quotes are not three readings of one scale.
Fig. 7 The four rows read at three pool sizes. Two of them are pinned: Top Entails is measured on heaps up to six whatever the argument says, and the held-pass census takes no size argument at all, so their rates are the same number three times. Fibonacci Nim is the only row the argument reaches, and it climbs from 7% to 32% across the range. The figure refuses to draw a set of sizes on which nothing moves, which is the check that it is reporting a response rather than a repetition.

That is a limit of the instrument rather than of the games, and it is worth stating plainly because it is invisible in a table that quotes one rate per row. Three of the four rows were asked one question each; the fourth was asked three, and it gave three answers.

The Fibonacci Nim version is a modelling choice and the essay should not hide it. A sum of Fibonacci Nim heaps needs a decision about whether the cap is per-heap or shared across the board, and this measurement uses per-heap, because a shared cap is not a disjunctive sum at all — a move in one component would change the legal moves in another. The shared-cap game is a different and harder object, and nobody has solved it here.

And the three rates are not directly comparable as numbers, only as an ordering. They are measured over different families of positions, and a family with more easy sums in it will show a lower rate for reasons that have nothing to do with the rule.

The convention, named

Normal play throughout: the player unable to move loses. Every outcome quoted was obtained by solving the position — the whole sum, not the parts — under that convention, with the state each game carries tracked explicitly through the search.

The held pass is the held version specifically: a player may take the pass at any time, it may be taken only once, and it may not be the move that ends the game. A pass is not a move is where the two versions are separated, and the free version — where the pass may end the game — is exactly a Nim heap of one and breaks nothing.

Where the ladder goes next

memory opens here with the class named and one instrument pointed at all of it.

The rung above answers the positive question this page could only pose, on the one game where an answer exists. What restores the theorem re-indexes the Fibonacci Nim recursion on the pair of heap size and cap rather than on the heap size alone, and the recipe becomes exact on every pair and every triple — the theorem is not weakened by the rule, it was being applied to the wrong object. The number a heap of nine carries turns out to be five rather than the one this page’s isolation reading gives it, which is the measure of how much the honest-looking per-heap number was throwing away.

That result also sharpens the split this page ends on. Fibonacci Nim’s state is repairable because the cap belongs to the heap; enlarging the component restores everything. Top Entails’ obligation names another component and the pass’s legality is a predicate over the board, so there is nothing local to enlarge, and no re-indexing will do for them what it does here.

Beyond that is the general question, and it is a question about rule tables rather than about positions: which rules let a component state its own legal moves? The three here fail it in two different ways, and stating the condition in general is the kind of result that would let a reader classify a new game by reading its rules.

Two neighbours are worth the trip. The heap is not the position is where the class was named, and where the one-heap theory of Fibonacci Nim is complete and beautiful. And a pass is not a move is the sharpest of the three failures, where two positions with the same Nim value are told apart by a single token.

Part 1 of 3

One argument about Memory. 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.

What this makes readable

Essays that declare this one a prerequisite.

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.

AdditivityComponentCounterexampleDecompositionDisjunctive sumEntailing moveExhaustive searchFibonacci nimGrundy valueImpartialLoonyNim-sumRule changeSpare movesSprague–GrundyStateSubstitution