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.

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 component | Why it matters | Typical invalidation |
|---|---|---|
| Board position | Determines planar knight reachability | Destination cannot be reached in the remaining moves |
| Altitude | Changes both move legality and score operation | Proposed move has the wrong 3D delta |
| Score | Must land exactly on the published clue values | Division is not exact or a clue score is missed |
| Visited squares | The knight cannot revisit a space | Segment reuses an earlier square |
| Tower by region | Exactly one tower belongs to each region | Two altitude-1 squares are assigned to one region |
| Schedule | Determines which moves must hit clue squares | A 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.
- ArithmeticSchedulesTiming bounds
- Score statesPublished scores
- GeometrySegmentsLegal knight paths
- One routeGlobal consistency
37 ÷ 8Not an integer37 + 8 = 45Still needs a legal path37 × 8 = 296Still needs a legal path
View as a table
| Stage | Input | What it rejects before the next stage |
|---|---|---|
| Schedule enumeration | Two post-18 timing interpretations and candidate K values | Schedules that cannot place the required recordings within the move bound |
| Score-state search | Move number, score, altitude, remaining clue scores | Arithmetic sequences that cannot reproduce the published clues |
| Geometric segment search | Forced clue endpoints and exact move counts | Knight paths that violate reachability, score, no-repeat, or tower consistency |
| Global stitching | Candidate segments | Locally valid segments that conflict when combined into one route |
Forced clues divide the search
Once a clue order and schedule are fixed, consecutive clue states provide a start square, end square, start score, end score, and exact number of moves between them. The private solver searches those intervals as segments instead of exploring every 54-move route from the start.
Before recursion, it precomputes the board’s knight-neighbor graph and shortest-path distances. During a segment search, a branch is dropped if the target clue is farther away than the number of moves remaining. It also rejects repeated squares, early visits to other nonzero clue squares, impossible score transitions, and conflicting tower assignments inside a region.
Stitching carries global square status, tower commitments, and completed regions from one segment to the next. An internally valid segment is rejected if it contradicts an earlier one. Local pruning can therefore stay aggressive without overwriting global constraints.
The distance test must remain a lower bound. A relaxed neighbor graph may allow tower choices or revisits that a completed route cannot use. Its distance is therefore optimistic: if even that distance is too large, the legal route cannot reach the target in time. It does not make a distance-feasible segment valid. Conversely, pruning with an over-restrictive graph could remove a real solution. The proof obligation is that every legal continuation is represented in the relaxation.
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.
| Check | Failure caught |
|---|---|
| Board / regions | Malformed 8×8 map, wrong region count, or wrong region sizes |
| Tower placement | Missing region, tower outside its region, or duplicate tower square |
| Path uniqueness | A square is visited more than once |
| 3D move legality | Coordinate deltas are not a permutation of 0, 1, and 2 |
| Score transition | Wrong add/multiply operation or non-integral downward division |
| Clue schedule | Wrong clue score, skipped scheduled clue, or clue reached off schedule |
| Stopping rule | All towers are reached before the path actually stops |
| Final answer | Neighbor sums do not recompute to the recorded result |
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.
- Move 0: recorded score 0
- Move 3: recorded score 1
- Move 6: recorded score 16
- Move 9: recorded score 23
- Move 12: recorded score 528
- Move 15: recorded score 37
- Move 18: recorded score 88
- Move 25: recorded score 138
- Move 32: recorded score 272
- Move 39: recorded score 449
- Move 46: recorded score 750
- Move 53: recorded score 1,100
- Move 54: last tower, after the final recorded clue. The neighbor-sum answer is a separate calculation.
| Move | Recorded score |
|---|---|
| 0 | 0 |
| 3 | 1 |
| 6 | 16 |
| 9 | 23 |
| 12 | 528 |
| 15 | 37 |
| 18 | 88 |
| 25 | 138 |
| 32 | 272 |
| 39 | 449 |
| 46 | 750 |
| 53 | 1,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.
| Unvisited square | Adjacent visited scores | Neighbor sum |
|---|---|---|
| A8 | A7 44 | 44 |
| B8 | C8 33 + B7 541 | 574 |
| G8 | H8 1,100 + F8 37 + G7 299 | 1,436 |
| B6 | C6 410 + A6 489 + B7 541 + B5 572 | 2,012 |
| G5 | H5 264 + F5 335 + G6 1,047 | 1,646 |
| G4 | H4 995 + F4 894 + G3 1 | 1,890 |
| H2 | G2 944 + H3 8,976 + H1 5 | 9,925 |
| D1 | E1 7,440 + C1 248 + D2 704 | 8,392 |
| F1 | G1 240 + E1 7,440 + F2 10 | 7,690 |
| Total | 33,609 |
Only edge-adjacent visited squares contribute. Each unvisited square receives its own sum, so a visited score may appear in multiple rows.
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.pyThe 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
- Jane Street—July 2026 puzzle: ‘Pent-Up’ Frustration 3 / Knight Moves 7Verified Sep 15, 2026
- Jane Street: July 2026 official solutionVerified Sep 15, 2026
- Jane Street: puzzle archiveVerified Sep 15, 2026
- 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.
- 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.
- 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.