Sulayman Bowles
Back to writing

Algorithms & verification

Checking Jane Street’s official route

The July 2026 Jane Street answer is 33,609 because it adds neighboring scores around nine unvisited squares, allowing a visited square’s score to contribute more than once when it borders different unvisited squares. The route ends at 59,400. The downloadable Python checker recomputes both results from the official route.

The July 2026 answer is 33,609, and the route ends at 59,400. My Python checker recomputes both from the official route.

Monochrome generative point study “Rising Bell,” a mathematical form rendered in black and white.

My checker accepts Jane Street’s official route: 54 moves with K = 7, scoring 33,609. I use that route to walk through how each tower’s placement steers the knight, raises or lowers its altitude, and changes the score at every one of the 54 moves. I verify the public route.

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 began by asking which score sequences were even possible, leaving coordinates aside. That gave the geometric search fixed clue states to connect, and global stitching checked whether the resulting segments could coexist. The verifier then retraced the proposed route. Assigning these jobs to different stages made the search smaller, while shared helper code left a specific risk: search and verification could inherit the same reading of a rule.

Method & limits

The July 2026 private solver and September 15 implementation review supply the reported path and 33,609 result. An October 23 transcription of Jane Street’s official public route, a standalone checker, and eleven corruption checks supply the public-certificate evidence. These checks leave the private solver’s execution and its coordinate match with the public route unverified. Certifying-computation sources were checked October 25, 2026. Image transcription, rule interpretation, and shared-helper error remain limits; no independent human review or Jane Street code review is claimed. Exporting and independently checking the private route remain proposals.

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

Score arithmetic before coordinates

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 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 a narrower task: realize each surviving order as a legal three-dimensional knight path. The score sequence no longer has to be guessed alongside the route.

A small arithmetic example shows why this helps. If the score before move 8 is 37, a downward move would require 37 ÷ 8 and is impossible under the integer-score rule. A level move yields 45; an upward move yields 296. This state is invented for the example; the private route is not asserted to pass through it. Arithmetic can reject the division before a coordinate is chosen, while the two remaining values still need a legal geometric realization.

The arithmetic pass is a relaxation of the puzzle; solving it still leaves the full route to find. It is allowed to retain schedules that geometry will later reject. Its safety depends on the opposite condition: every legal complete route must leave an arithmetic trace that survives. A smaller search is useful only while the reductions preserve the answer being sought.

Filter timing and scores first. Search board geometry only for surviving schedules.
Why the search is staged
View as a table
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

The route has to pass every rule

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; the search’s “found” flag cannot substitute for those checks.

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.

Certifying-computation research describes a producer supplying an output and witness for a checker to test against the input. Alkassar and colleagues’ formalization exposed a checker missing a necessary graph-membership condition. I take a concrete lesson from that example: reusing the search’s move routine can make two programs agree on the same wrong rule.

There is an important asymmetry between the claims. A fully checked route demonstrates feasibility under the modeled rules. It cannot show that a pruning rule never discarded a different valid route, that the solution is unique, or that no shorter route exists. Those claims would need additional certificates or an argument about the search space. I do not obtain them merely by validating that route.

What the 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

Recorded 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 recorded 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. Reaching the last tower completes the route. The last path score belongs to that verified route, while the puzzle answer comes from a separate neighbor-sum calculation over the squares the knight never visited.

The path has 54 moves and recomputes to 33,609, matching Jane Street’s official July 2026 answer.

  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

The official route has a downloadable checker

The October 23, 2026 public check makes a complete public route available to inspect. Codex transcribed the 55 visited squares, 13 shaded towers and printed scores from Jane Street’s official July solution image, using the original puzzle board for regions and clues. The certificate and Python checker use files A–H from left to right and ranks 1–8 from bottom to top; A1 is the start.

The standalone checker recomputes every three-dimensional move and score, compares all 12 clue recordings, checks one tower per region, and requires the route to stop when the last tower is first reached. The public fixture passes: 54 moves, K = 7 and tower completion at move 54. Eleven selected corruption checks reject damaged towers, coordinates, timing, scores and other constraints. These results concern the transcribed official route. They leave the private solver’s execution and coordinate match unchecked.

The final path score is 59,400. The puzzle answer is the sum below: 33,609 across nine unvisited squares. A visited score can contribute to more than one neighbor sum. E1’s 7,440 counts beside both D1 and F1; deduplicating that contribution would change the requested calculation. The full route audit and the bundle’s clue, board and neighbor tables expose the intermediate values.

The public check tests consistency between the transcribed certificate and the encoded rules. Independent review of the image transcription and rule interpretation would strengthen it.

The public-certificate check is implemented for the official route. Exporting and independently checking the private solver’s route remain unimplemented proposals.

Nine unvisited squares in the transcribed official July 2026 route. Coordinates use A1 at the bottom left.
Unvisited squareAdjacent visited scoresNeighbor sum
A8A7 4444
B8C8 33 + B7 541574
G8H8 1,100 + F8 37 + G7 2991,436
B6C6 410 + A6 489 + B7 541 + B5 5722,012
G5H5 264 + F5 335 + G6 1,0471,646
G4H4 995 + F4 894 + G3 11,890
H2G2 944 + H3 8,976 + H1 59,925
D1E1 7,440 + C1 248 + D2 7048,392
F1G1 240 + E1 7,440 + F2 107,690
Total33,609

Only edge-adjacent visited squares contribute. Each unvisited square receives its own sum, so a visited score may appear in multiple rows.

Run the public-certificate check

Extract the bundle, then run these commands with Python 3.8 or later. Both scripts use only the standard library and need no network access or private solver files.

python3 july_2026_knight_verifier.py
python3 check_negative_cases.py

The next verifier needs its own assumptions

The public-route certificate is downloadable. For my private solver, I would publish the region map, tower positions, path, K, timing interpretation, and answer calculation in a stable input record that a second checker can read directly, deriving its own coordinate and score logic from the puzzle instead of borrowing the search helpers. More randomized search would leave a common interpretation error untouched.

I would challenge a private-route checker with plausible wrong paths. An altered tower can leave the planar path unchanged while changing altitude and score. Inexact downward division, shifted clue timing, repeated squares, and continuation beyond tower completion should each fail for their own reasons. The public bundle rejects eleven named corruptions; small synthetic boards could exercise cases missing from that route.

A formal checker would be a stronger alternative for assurance about the encoded rules. It would still leave the translation of Jane Street’s prose into those rules to review. For the private solver, independently implemented certificate checking remains the immediate useful step: make its existing path portable before making a broader claim about the search.

A route someone else can check

Finding the route took a staged search. Explaining the private route should require much less machinery: the board, tower assignment, timing rule, and those 54 moves. The public-route bundle exposes a portable certificate and checker; the private route still needs that independent check. Uniqueness, optimality, and safe pruning concern the paths never taken. A checked route establishes the one that was.

Sources

  1. Jane Street—July 2026 puzzle: ‘Pent-Up’ Frustration 3 / Knight Moves 7Verified Sep 15, 2026
  2. Jane Street: July 2026 official solutionVerified Sep 15, 2026
  3. Jane Street: puzzle archiveVerified Sep 15, 2026
  4. Jane Street: July 2026 original puzzle board imageVerified Oct 23, 2026

    Source for the region boundaries and 12 original clue cells in the October 23 public transcription.

  5. Jane Street: July 2026 official public solution imageVerified Oct 23, 2026

    Source for 55 move numbers, 55 printed scores and 13 shaded tower cells, transcribed by Codex for the October 23 check.

  6. Alkassar, Böhme, Mehlhorn and Rizkallah: A Framework for the Verification of Certifying ComputationsarXiv · 2013-01-30Verified Oct 25, 2026

    Introduction and methodology distinguish a producer, a witness and a trusted checker. Their formal case studies do not certify this private puzzle solver.

Supporting material

  • Jane Street July 2026 puzzle ↗The original puzzle statement, including the 13 regions, towers, three-dimensional knight moves, scoring rules, and changing clue schedule.
  • Jane Street official solution ↗Jane Street’s published July 2026 solution, including the solved path graphic and final answer of 33,609.
  • Jane Street official solution and correct submissions ↗Jane Street’s July solution and solver list, including Sulayman Bowles (UT ’28). The listing verifies a correct submission; it does not review the implementation.
  • July 2026 public certificate and checker ↗Source-attributed transcription of the official public route, standard-library Python checker, 11 corruption checks, and all audit tables. It checks the supplied public certificate; it does not rerun the private solver.
  • Full July 2026 route audit ↗55 visited-square rows with coordinates, region, tower height, operation, recomputed score, printed score and clue flag. Coordinates use A1 at the bottom left.

Read next