Opening the page…

Sulayman Bowles

Verifying a 54-move exact search.

How I reconstructed a three-dimensional knight path, reduced the search, and checked the result against the puzzle rules.

· · Updated

Monochrome generative point study “Rising Bell,” a mathematical form rendered in black and white.
Rising Bell · @yuruyurau ↗
Find your answer

How do I check that a puzzle solver’s winning answer is valid?

Recompute the submitted route’s moves, clues, scoring, and constraints from the puzzle specification instead of trusting the search routine’s final score. In the retained July 2026 solve, arithmetic pruning reduced the schedule search before geometric segments were explored; the resulting 33,609 matched Jane Street’s published solution. The verifier still shares helpers with the solver, so agreement establishes a checked result within that implementation, rather than a fully independent proof of correctness.

Evidence: Jane Street puzzle specification · Jane Street official solution

My retained solution to Jane Street’s July 2026 puzzle yields 33,609, the answer in Jane Street’s published solution. Reaching that number was only part of the work. The knight moves on an 8-by-8 board divided into 13 regions, with one tower per region. Tower placement changes altitude and scoring: a level move adds the move number, an upward move multiplies by it, and a downward move divides only when the score is exactly divisible. Clues appear every three moves through move 18, then every K moves for an unknown K greater than three.

I used score arithmetic to reject inconsistent clue schedules before searching coordinates. The geometric search then worked between forced clue states, and a stitching step reconciled the segments with the route’s global constraints. This avoided asking one brute-force traversal to guess the schedule, path, and towers at once.

A separate verifier recomputed legal moves, scores, clue timing, tower completion, and the unvisited-square neighbor sums from the proposed solution. Its path table and clue audit make the result inspectable. It shares some helpers with the search, however, so agreement between the two is not a formally independent proof.

Board
64 squares / 13 regions
Recovered schedule
K = 7
Path
54 moves
Published answer
33,609
Scope and assumptions

This article describes my retained July 2026 solver and verifier using private implementation records plus Jane Street’s public puzzle, archive, and solution pages. I am not publishing the private source repository or claiming that Jane Street reviewed my code. Jane Street’s official solution confirms the puzzle answer 33,609. The implementation details reported here were checked against the retained solver on September 15, 2026; this publication run did not freshly execute that private solver.

Tower placement changes both moves and scores

Each board square has a two-dimensional coordinate, but the tower decision gives it an altitude of either zero or one. A legal move therefore has absolute coordinate differences {0, 1, 2} across x, y, and z. The same planar jump can be legal or illegal depending on whether one endpoint is a tower.

The score creates a second dependency. At move n, staying at the same altitude adds n, moving up multiplies by n, and moving down requires exact divisibility by n before dividing. Because clue scores occur only on scheduled moves, the route must satisfy geometry, score arithmetic, clue timing, and tower placement at the same time.

The knight must stop when it has visited all 13 towers. A route that continues afterward is invalid even if every move is legal. The verifier checks the first point of completion rather than assuming that reaching every tower is sufficient.

State carried by the reconstruction
State componentWhy it mattersTypical invalidation
Board positionDetermines planar knight reachabilityDestination cannot be reached in the remaining moves
AltitudeChanges both move legality and score operationProposed move has the wrong 3D delta
ScoreMust land exactly on the published clue valuesDivision is not exact or a clue score is missed
Visited squaresThe knight cannot revisit a spaceSegment reuses an earlier square
Tower by regionExactly one tower belongs to each regionTwo altitude-1 squares are assigned to one region
ScheduleDetermines which moves must hit clue squaresA clue is reached on an unscheduled move

Reject impossible score schedules before searching the board

After move 18, the puzzle says scores are recorded every K moves for some larger K, but the wording admits two natural timing interpretations. The retained search evaluates both. For each mode it tries K values from 4 upward while the required clue schedule still fits inside the board-length bound.

The first reduction ignores board geometry entirely. A dynamic program tracks score, altitude, which nonzero clue scores have already been consumed, and the order in which those scores could appear on scheduled moves. Every transition applies the exact add, multiply, or divisible-only divide rule. If a scheduled move does not produce one of the remaining clue values, that state dies immediately.

The surviving states specify arithmetic-consistent clue orders. Geometry then has one narrower job: realize those orders as legal three-dimensional knight paths, rather than guess the score sequence and route together.

Filter timing and scores first. Search board geometry only for surviving schedules.
Why the search is staged
StageInputWhat it rejects before the next stage
Schedule enumerationTwo post-18 timing interpretations and candidate K valuesSchedules that cannot place the required recordings within the move bound
Score-state searchMove number, score, altitude, remaining clue scoresArithmetic sequences that cannot reproduce the published clues
Geometric segment searchForced clue endpoints and exact move countsKnight paths that violate reachability, score, no-repeat, or tower consistency
Global stitchingCandidate segmentsLocally valid segments that conflict when combined into one route

Recompute the route from its coordinates

The verifier receives the board regions, clue dictionary, recovered K and schedule mode, tower placements, and path coordinates. It reconstructs the moves and raises an error on the first broken rule; a “found” flag from the search carries no weight.

It checks the 8-by-8 region map, the twelve five-square regions plus the one four-square region, one valid tower location per region, the required starting square, uniqueness of every visited square, and every three-dimensional knight delta. It then recomputes the full score path, including exact divisibility on downward moves.

Next it checks that each scheduled recording lands on the correct clue square with the correct score, that no nonzero clue is reached off schedule, and that all towers are first completed on the final move rather than earlier. Only after those checks does it calculate the answer by summing the scores of orthogonally adjacent visited squares around each unvisited square.

The verifier is separate, but not formally independent: the search reuses some of its coordinate and score-transition helpers. A second implementation derived from the puzzle statement, or a certificate checked without shared helpers, would reduce the risk of both programs accepting the same interpretation error.

What the retained verifier recomputes
CheckFailure caught
Board / regionsMalformed 8×8 map, wrong region count, or wrong region sizes
Tower placementMissing region, tower outside its region, or duplicate tower square
Path uniquenessA square is visited more than once
3D move legalityCoordinate deltas are not a permutation of 0, 1, and 2
Score transitionWrong add/multiply operation or non-integral downward division
Clue scheduleWrong clue score, skipped scheduled clue, or clue reached off schedule
Stopping ruleAll towers are reached before the path actually stops
Final answerNeighbor sums do not recompute to the recorded result
Solution record

Retained solver output.

{
  "K": 7,
  "schedule_mode": "natural_after_18",
  "path_length": 54,
  "answer": 33609
}

K = 7 fixes the schedule; neighbor sums give the answer

The retained reconstruction uses the natural “after move 18” interpretation with K = 7. The recorded clue moves are 0, 3, 6, 9, 12, 15, 18, 25, 32, 39, 46, and 53. The route then makes move 54 onto the last tower. That distinction is useful: the last path score is part of the verified route, while the puzzle answer comes from a separate neighbor-sum calculation over the squares the knight never visited.

The retained path has 54 moves and produces 33,609 after the neighbor sums are recomputed. Jane Street’s official July 2026 solution independently publishes the same final answer. That corroborates the numerical result; it does not establish that Jane Street inspected this implementation, this search strategy, or this verifier.

The useful review questions concern the route: which branches arithmetic rejects before geometric search, how tower and score state survive stitching, and which checks can be repeated without trusting the search that produced it. The number 33,609 alone answers none of those questions.

  1. Move 0: recorded score 0
  2. Move 3: recorded score 1
  3. Move 6: recorded score 16
  4. Move 9: recorded score 23
  5. Move 12: recorded score 528
  6. Move 15: recorded score 37
  7. Move 18: recorded score 88
  8. Move 25: recorded score 138
  9. Move 32: recorded score 272
  10. Move 39: recorded score 449
  11. Move 46: recorded score 750
  12. Move 53: recorded score 1,100
  13. Move 54: last tower, after the final recorded clue. The neighbor-sum answer is a separate calculation.
The final tower comes one move after the last recorded clue. Scores are listed below.
Recovered recording schedule
MoveRecorded score
00
31
616
923
12528
1537
1888
25138
32272
39449
46750
531,100

Remove shared assumptions from the next verifier

The retained package reconstructs and checks one solution. The next improvement is a second verifier written from the puzzle statement, without shared score or coordinate helpers. That would reduce the chance of an interpretation bug surviving both search and verification.

Second, I would add property tests around move legality, score transitions, schedule generation, and answer recomputation. Third, I would emit a compact solution certificate with the path, tower placements, K, schedule mode, and a content hash so another implementation could validate the same artifact deterministically.

These additions would make the result easier to audit rather than make the search faster. Once the solver has an answer, independent checks offer more value than another optimization that merely finds the same answer sooner.

Publish the checkable route alongside the answer

The evidence consists of the puzzle specification, an explicit 54-move path, recomputed scores and clues, tower completion, and the neighbor-sum calculation. Jane Street’s published solution confirms 33,609, but does not validate my code. A second verifier built without shared helpers would strengthen the retained result.

Sources

  1. Jane Street — July 2026 puzzle: ‘Pent-Up’ Frustration 3 / Knight Moves 7

    Verified Sep 15, 2026

  2. Jane Street — July 2026 official solution

    Verified Sep 15, 2026

  3. Jane Street — puzzle archive

    Verified Sep 15, 2026

Supporting material

Read next