Skip to content

Import Fitzharding's Lean proof that s(17) = L as T-154 (#565), and the n = 11 and n = 17 announcement posts - #588

Merged
jlevy merged 18 commits into
mainfrom
claude/stoic-clarke-jhfnru
Oct 13, 2026
Merged

jlevy merged 18 commits into
mainfrom
claude/stoic-clarke-jhfnru

Conversation

@jlevy

@jlevy jlevy commented Oct 13, 2026 •

Copy link
Copy Markdown
Owner

What this branch cost

This branch imports Oscar Fitzharding’s Lean 4 proof that Bidwell’s 1998 packing of 17
squares is optimal (#565), through stages 1 to 3 of the result-import runbook, and
records the announcement posts of the n = 11 and n = 17 results that the owner asked
for. Three sub-agent lanes did most of it: an adversarial review (0.6 h), the retention
of the source and posts (0.42 h, in parallel), and the register entries (1.28 h), with
this session’s triage, integration and merge of main around them.
Nothing was compiled and nothing was replayed: the proof’s 13,343 native checks and its
4,951-module build are reported by the source, not repeated here.

Claude branch-derived rollups

on-branch logs only by turn share every log that touched it
agent turns 1,190 1,190 1,190
tool calls 560 675 1,297
generated tokens 23,871 290,316 1,724,294
cache reads 253,146,921 347,801,511 857,222,079
wall time 2.3 h 5.5 h 22.9 h

Turn counts are exact; everything else is bounded. 3 logs sit entirely on
claude/stoic-clarke-jhfnru and contribute exactly.
1 straddle branches, and ClaudeEfficiencyRollup counts tokens and tool calls per log
rather than per branch — so the first column drops them, the last charges this branch
for all of their work including what happened elsewhere, and the middle prorates them by
the share of their turns spent here.
The middle is an estimate, the outer two are measurements, and the record cannot do
better than this without a branch-aware token count.

Model use

model @ thinking turns output thinking cache read
claude-opus-5-5 @ xhigh 2,556 1,227,242 497,052 857,222,079
<synthetic> @ None 1 0 0 0

Over every log that touched this branch, including the other-branch work of the
straddling ones — the third column above, not the second.
Token columns are recorded per thinking level rather than per model, so a level that ran
more than one model is split by that level’s turn share; where each level ran one model
the split is the identity and the figures are the record’s own.

Every tool used

tool calls share time share of tool time
Bash 1,078 83.1% 3.7 h 30.7%
Edit 50 3.9% 5.3 s 0.0%
ReadNotifications 38 2.9% 0.6 s 0.0%
Read 30 2.3% 4.3 s 0.0%
Grep 16 1.2% 3.4 s 0.0%
Agent 13 1.0% 2 m 0.3%
Write 12 0.9% 0.9 s 0.0%
ToolSearch 8 0.6% 0.3 s 0.0%
TaskCreate 5 0.4% 0.1 s 0.0%
TaskUpdate 5 0.4% 12.8 s 0.0%
mcp__claude-code-remote__send_later 5 0.4% 2.3 s 0.0%
mcp__github__pull_request_read 5 0.4% 10.6 s 0.0%
Monitor 4 0.3% 1.9 s 0.0%
mcp__github__issue_read 4 0.3% 3.2 s 0.0%
AskUserQuestion 3 0.2% 8.3 h 68.8%
SubagentHandback 3 0.2% 1.7 s 0.0%
mcp__claude-code-remote__add_repo 3 0.2% 14.4 s 0.0%
mcp__claude-code-remote__subscribe_pr_activity 3 0.2% 4.7 s 0.0%
mcp__claude-code-remote__unsubscribe_pr_activity 3 0.2% 10.9 s 0.0%
TaskStop 2 0.2% 0.1 s 0.0%
WebSearch 2 0.2% 23.4 s 0.1%
SendMessage 1 0.1% 0.3 s 0.0%
mcp__claude-code-remote__delete_trigger 1 0.1% 2.4 s 0.0%
mcp__claude-code-remote__get_session 1 0.1% 0.2 s 0.0%
mcp__claude-code-remote__list_triggers 1 0.1% 0.2 s 0.0%
mcp__github__get_release_by_tag 1 0.1% 0.2 s 0.0%
26 tools 1,297 12.0 h

Same scope as the model table: every log that touched this branch.
23 calls returned an error and 7 were denied. 109 of the calls ran code written for
a single measurement (0.2 h) — OR-1 says a measurement worth repeating belongs in a
tool rather than in a heredoc, so this is the number that says how often that rule was
not followed.

Generated from 4 Claude rollups, harness 2.1.296.

Generated by devtools.render_pr_rollup --branch claude/stoic-clarke-jhfnru from
packing/campaign/resource-usage/. Session-by-session figures are in
session-close-report.yaml.

New Results and Their Significance

Result Kind V C Status S Rubric anchor
T-154, s(17) = 4.67553009360455… by a second route, a Lean 4 proof with no premise left (Fitzharding, #565) simplification of T-153 V0, claimed or recorded only C1, read reviewed S5, proposed for the owner’s confirmation Movement on a central open case or broad external adoption
T-153, Overbeck’s candidate (unchanged rungs) optimality V0 C1 reviewed S5 Movement on a central open case or broad external adoption

Which came first. Overbeck’s candidate was public first: his repository at 13:46:05Z
and release large-files-v1 at 14:24:20Z on 12 October 2026, and his announcement post
at 14:52:55Z. Fitzharding’s sq17-lean followed later that day: its first commit at
20:42:00Z, the repository public at 20:42:08Z, release v1.0.0 at 22:06:23Z, issue #565
at 22:23:37Z, and his post at 00:06:56Z on 13 October: the repository about six hours
after large-files-v1, and release v1.0.0 about seven and three-quarter hours after it.
His README and #565 name Overbeck’s candidate as independent and published on 12
October; the order rests on GitHub’s server-side times, not on the source’s words.
The two are separate proofs by different routes, not a proof and its formalization:
Overbeck’s is a candidate that, by its own statement, rests on 15 mathematical premises;
Fitzharding’s is, among the reports this record holds, the first of a complete
machine-checked proof, within its stated trust boundary (Lean’s kernel for the geometry,
Lean’s compiler and native evaluator for 13,343 native_decide facts).
So T-153 keeps the first report and n = 17’s reported lower bound, and T-154 registers
Fitzharding’s proof as a result of its own, the record’s kind for a second proof of a
value it holds. Both entries and n = 17’s priority notes state both dates.

For the owner: the kind. T-154 is registered as a simplification of T-153, by
epistemics.md’s rule that a second proof of a value the record holds is one; the
alternative is a second optimality entry beside T-153. Review A (A1) found that the
kind would have broken at T-154’s next rung, and the standing code now carries it
through its later rungs, but the choice is yours, as is the S5 score.

Results and Dispositions

Work or result What was established Evidence Why it stopped Disposition and follow-up
T-154 registered (think-hcqr) A second, independent proof of T-153’s s(17) = L, credited to Oscar Fitzharding (the owner’s definitive name), at V0/C1: the source’s clean-build receipt is its own run, so the evidence is reported and moves no rung packing/frontier/results.yaml T-154; E-n017-fitzharding-lean-report; V-fitzharding-n17-lean Stage 3 complete continue: stage 4 needs the full build replayed (think-r109, a large machine and an owner budget)
Adversarial review (think-xjb2) Accepted: the Lean statement says s(17) = L in this record’s sense; EndpointGeometry.side is the record’s L by identity of definition (the same F, G, box and side map as exp-237’s chart); the statement and the upper half are kernel-only; no certificate-acceptance or case-exclusion premise is left. F-1 (major, attribution): the proof runs on this project’s 24-cell cover, endpoint chart, 52-row local recipe and certified sub-patterns, some of them wand125’s, which the source does not credit specifically docs/project/reviews/review-2026-10-13-fitzharding-n17-lean.md Complete retire-success; F-1 and F-2 go to the author in the drafted reply (think-mxhc)
Retention (think-acbk) The packet at e6ee548, the three v1.0.0 archives pinned by size and SHA-256 (they match manifest.json and GitHub’s asset digests), the bibliography key [Fitzharding n17 Lean 2026] and Oscar Fitzharding’s person record packing/resources/web/fitzharding-n17-lean-2026-10-13/ Complete retire-success
Announcement posts Retained as X’s syndication endpoint returned them: Fitzharding’s n = 17 post, Overbeck’s n = 17 candidate post (address supplied by the owner) and his two n = 11 posts of 22 September; Ahmed’s n = 11 posts were already retained the packets’ receipts/announcement/ and acquisition/ Complete retire-success; Overbeck’s September n = 17 bound posts, if any, were not identified (think-7b2i)
Issue #565 Its request entry, mapped to T-154; the intake label; the reply drafted packing/campaign/result-requests.yaml Reply owed defer-dependency: posted after merge on the owner’s word (think-mxhc)
Review round 1 Review A (senior, review): 3 Medium, 12 Low; review B (correctness, review): 2 Medium, 5 Low, including a reproduced hole in the new standing exemption (B1). All fixed except A14 (the acknowledgement waits on the owner’s word; pricing the replay needs Lean installed) d3cfe11dd…818324990; dispositions A and B Complete retire-success; follow-up C and fresh senior D, correctness E and security F approve at the current head
The review’s comparisons retained (A2) The endpoint identity with exp-237 and H-255, the 24-cell cover against exp-247’s UNIQUE_24, the 32-of-35 pattern comparison and the native-free closures, as first-party programs with their receipts receipts/programs/ and receipts/{endpoint-comparison,cover-comparison,closures}.json in the packet; V-fitzharding-n17-premise-comparisons Complete retire-success
Standing rule A simplification that restates its case’s reported value is a reported second certificate; before, the derivation called T-154 superseded and check_standing refused it packing/devtools/check_standing.py, render_recent_results.py, three test files Complete retire-success

Changes by Purpose

Area Result Principal files or interfaces
Source and credit Packet, bibliography key and note, resources README, the person record (Oscar Fitzharding, GitHub ofitzharding, X @ofitzharding), a project card for sq17-lean packing/resources/, packing/atlas/known-best/credit-attributions.json, packing/devtools/overview_sections.py
Review The adversarial review, mapped as a retained review docs/project/reviews/review-2026-10-13-fitzharding-n17-lean.md, docs/project/document-map.yaml
Register T-154; T-153’s next_rung and notes name the newer route; n = 17’s priority notes, reported-lane note and evidence list; evidence, verifiers and coverage; the #565 request packing/frontier/{results,evidence,verifiers,source-coverage}.yaml, packing/frontier/n-017.md, packing/campaign/result-requests.yaml
Standing code The reported second certificate packing/devtools/check_standing.py, packing/devtools/render_recent_results.py, tests
Posts Overbeck’s n = 17 and n = 11 posts, Fitzharding’s n = 17 post receipts/announcement/ in the two n = 17 packets; acquisition/ in the n = 11 packet
Views and usage RESULTS, INVENTORY, STATUS, VERIFIERS, the synopsis, the URL register, the data pin; this session’s and its sub-agents' rollups renderers named in the commits; packing/campaign/resource-usage/

Validation

  • Final merge gate at bc0fab085: Packing validation
    (38467779877),
    Certificate page
    (38467779920), and the
    full deferred checkpoint
    (38472184064) all pass.
    The checkpoint merge tree is identical to the reviewed head.
    Fresh reviews
    D (senior),
    E
    (correctness), and
    F (security)
    approve with no findings.
    Review D ran 189 focused tests with no skips and reproduced the endpoint and cover
    receipts. No source change was needed to clear CI: earlier failures were HTTP 502
    responses from GitHub APIs.

  • Local, on the stage 3 head a5ab76221: packing-validate --records (49 of 107 steps)
    and --edit (65 of 107) exit 0; --push exits 1 on 4 tests of 17,677, all
    environmental: the two process-group reaping tests (test_fixed_core_packet*), which
    fail at the base too, and two test_site_column_measurement.py tests that need a
    Chromium build this host lacks.
    validate_schemas, check_results (154 results), check_standing and
    check_prose_ceremony pass; the standing tests pass (98).

  • Local, after merging main at 9310284ba (review: verification gaps in the drawn packings and the upper-bound register #581, research: assess Evan Daniel's regularization and plan its adaptation to n = 1..324 (think-kl2v) #497; only the document map, its
    SYNOPSIS block and the pin conflicted) and adding Overbeck’s post:
    packing-validate --records exit 0 (49 of 107); acquire_source --check prints
    PACKET_MATCHES_ITS_CONTRACT for both n = 17 packets; release_pin --check passes at
    9ca7270af. packing-validate --edit on 8c189d89a: exit 0, 65 of 107 steps.

  • Local, at the fix head 818324990: packing-validate --records and --edit (65 of
    107) pass; pytest on the 12 touched or related test modules: 434 passed, 28 skipped
    (Chromium build 1234 is not on this host); check_standing --list prints the same
    standings for all 154 results as at 8c189d89a. After merging main at 7d51fdd85
    (vendor: Evan Daniel's regularizer at evand/square-packing@675a5ea, with credit and a pin check (think-csds) #509, no conflicts) in bc0fab085: packing-validate --records exit 0 (50 of 108
    steps), the data pin and the document map current.

  • Hosted, at 818324990: Packing validation passed; four Certificate page jobs died at
    artifact join failed: gh: Server Error (HTTP 502) before any test ran, on attempt 1
    and the one re-run, during a GitHub API outage
    (comment);
    bc0fab085 passes both workflows on attempt 3.

  • Hosted, at 8c189d89a, first attempt: 31 pass, 26 skipping (the deferred, exhaustive
    and deploy lanes), 0 failing.
    Runs: Deferred checkpoint 38457513674 (skipped), Certificate page 38457513653
    (success), Packing validation 38457514478 (success), Branch mergeability 38457313837
    (success).

Documentation and Replanning

Limits

Nothing here built the proof.
The 13,343 native checks, the checker-soundness modules the review did not read (about
140) and two of the three certificate archives were not examined, so T-154 records a
reported proof with a read, not a confirmation, and the verified lanes of n = 17 do not
move. The significance S5 is proposed, not confirmed.
A failed replay, or a defect in the native checks or the unread soundness proofs, would
make T-154 incomplete.

🤖 Generated with Claude Code

https://claude.ai/code/session_012JUyoHafZq55vksGxE4vPP

claude added 12 commits October 13, 2026 18:21
…iography key (think-acbk)

Stage 2 of the import of Oscar Fitzharding's Lean 4 proof that s(17) = L
(issue #565): the packet fitzharding-n17-lean-2026-10-13 at head
e6ee548090dc1dbf938ecf8590481de837a6a454, with the statement-bearing
modules, the build pins, the source's clean-build receipt and axiom
report, and the three v1.0.0 certificate archives pinned by size and
SHA-256 only. The key [Fitzharding n17 Lean 2026], and the person record
the owner set on 13 October: Oscar Fitzharding, GitHub ofitzharding,
X @ofitzharding. His announcement post of 13 October is retained as
X's syndication endpoint returned it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012JUyoHafZq55vksGxE4vPP
…them (think-acbk)

The two posts of 22 September 2026 (2102358756591907112 and its
continuation 2102358760471564308), until now kept only as text
transcripts, are retained as the JSON X's syndication endpoint returned
on 13 October, beside the transcripts. The owner asked for the
announcement posts of the n = 11 and n = 17 results from Ahmed,
Overbeck and Fitzharding; Ahmed's were already retained.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012JUyoHafZq55vksGxE4vPP
… (think-xjb2)

Accepted on the statement, the endpoint, the trust boundary and the
claim that no premise is left; nothing was compiled and the 13,343
native checks were not replayed. The endpoint is T-153's L by identity
of definition: the same F, G, box and side map as exp-237's chart. The
major finding is attribution: the proof runs on this project's 24-cell
cover, endpoint chart, 52-row local recipe and certified sub-patterns
without crediting them. It records the chronology: Overbeck's candidate
was public about six hours before sq17-lean.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012JUyoHafZq55vksGxE4vPP
…mplification) at V0/C1, S5 proposed (think-hcqr)

Stage 3 of the sq17-lean import, on the packet of b418c52 and the review
of 9a8f2c4.

- T-154, simplification, n = 17: Oscar Fitzharding's Lean 4 proof,
  Sq17.square17_optimality, of s(17) = 4.67553009360455095163..., T-153's
  value, by a route separate from T-153's argument. The claim says
  EndpointGeometry.side is T-153's L by identity of definition (H-255's F
  and G, exp-237's box, the same side map), gives the route, the trust
  boundary (13,343 native_decide facts) and the source's own clean-build
  report, and credits the source in its own words, AI assistance included.
- Rungs V0/C1, as T-153's: the source's build receipt is the author's, so
  the evidence entry is reported; C1 is the review of 13 October as its
  external_review. S5 with the draft rationale, proposed for the owner.
  The full build (think-r109) is the one unfinished C3 item; it carries no
  estimated_cost, since the source publishes no CPU time.
- Priority stated, not defended: T-153 was public about six hours earlier
  and keeps the case's reported lower bound; T-154's notes say so, T-153's
  notes gain a paragraph naming the newer route, and its next_rung says
  T-154 does not formalize its argument. n-017's priority notes carry one
  entry for each proof, with the timestamps in their published fields
  (check_prose_ceremony keeps clocks out of reader prose).
- The review's attribution findings F-1 (the proof runs on this project's
  cover, census, patterns, endpoint chart and local recipe, uncredited) and
  F-2 (Ahmed's s(11) proof) are in T-154's notes and the bibliography note;
  lineage stays credits-project, as the source's files state it.
- Evidence E-n017-fitzharding-lean-report (reported,
  proof-assistant-checked, source-author, external, not-attempted, axiom
  log as axioms_receipt, proof block with the review as audit_record).
  Verifiers V-fitzharding-n17-lean (external, the source's build) and
  V-fitzharding-n17-source-manifest (first-party premises, the packet's
  consistency check). Coverage fitzharding-n17-lean-2026.
- n-017: the reported lower bound's note names T-154 (proved_by and
  source_key stay Overbeck's), a prose paragraph links the proof as #565
  asks, evidence and resource added. The frontier README's gap note names
  T-154.
- result-requests: #565, result-report, triage done, mapped to T-154 and
  its evidence; the n = 17 page link done, the #405 link queued on the
  answer bead think-mxhc.
- The packet README and the resources README said no issue asked; they now
  cite #565. The review is mapped in the document map.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012JUyoHafZq55vksGxE4vPP
… a reported second certificate (think-hcqr)

T-154, Fitzharding's Lean proof of s(17) = L, is a simplification at C1 of
the value T-153 holds in n = 17's reported lane, and holds no bound
itself. The derivation called it superseded, and check_standing refused
that, rightly, since its stated value ties the reported bound. A second
certificate was derived only for a proved case's value.

- render_recent_results.standing: a simplification that holds no bound and
  restates, at every case and direction, the bound its case record carries
  in the lane it can hold (check_standing.restates: reported for C0/C1,
  verified otherwise) is a second certificate, reported where unreplayed.
  T-054 and T-055 still derive it by the proved-case rule.
- check_standing: restates(); a reported second certificate may state the
  reported value instead of the verified one; the summary names the lane.
- Tests: T-154's standing in test_recent_results; a check_standing test of
  the rule, its replayed and bound-kind counterparts; the site filter
  test's set of kept standings gains the reported second certificate.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012JUyoHafZq55vksGxE4vPP
…ynopsis and the URL registry (think-hcqr)

Rendered from the record of the two commits before: render_results,
render_evidence_inventory, render_research_tables, render_results_headline,
render_verifiers, audit_t007_consumers --update and site_urls --write (the
new result page). build_bound_citations, render_case_verifiers and
render_document_map had nothing to change. The synopsis research-status
row is reconciled to 154 registered, 124 by others.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012JUyoHafZq55vksGxE4vPP
…jects (think-hcqr)

The source-coverage register now reviews ofitzharding/sq17-lean
(fitzharding-n17-lean-2026), and tests/test_overview.py holds
OTHER_PROJECTS to every source repository it reviews. The card follows
Overbeck's candidate and credits Oscar Fitzharding by the owner's
definitive name.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012JUyoHafZq55vksGxE4vPP
Both sides added a review at the top of the document map; the map keeps
both and the SYNOPSIS block is re-rendered from it. release.py conflicted
only in DATA_REVISION; the re-pin follows in its own commit.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012JUyoHafZq55vksGxE4vPP
The post of 12 October 2026 at 14:52:55Z announcing the candidate proof
that s(17) = L ("A proof candidate for 17 squares: the 1998 packing
cannot be beaten"), whose address the owner supplied, retained as X's
syndication endpoint returned it, in the packet's receipts/announcement/,
and cited in the packet README, the bibliography note and n = 17's
priority note. It credits Codex and Claude and thanks Levy, Mira,
Guzhou0806 and Ahmed for the work it builds on.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012JUyoHafZq55vksGxE4vPP
…ean import (think-hcqr)

This session's log, refreshed, and the ten sub-agent logs not yet rolled
up: the addressing lanes of #571 and #577 and the three lanes of this
import (review, retention, record). close_session --render carries them
into the session report and the synopsis totals.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012JUyoHafZq55vksGxE4vPP

@jlevy jlevy left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review A (senior engineering review, round 1) · head 8c189d8 · base main at 9310284
Reviewer: strong tier, requested claude-opus-5-5 (tbd-strong sub-agent; no reasoning level stated in the brief) · Channel: formal review
Coverage: 76 of 76 changed files. Read in full: the register, evidence, verifier, coverage, case-record, requests, bibliography, credit and resources-README hunks; the packet README, declaration, sources, consistency program and receipt; the review document; the code and test changes; the PR description. Read in part or checked by digest only: the upstream Lean files (statement and endpoint files read; the rest checked by acquire_source --check), the upstream scripts and lake pins; the 11 resource-usage rollups (branch attribution, span and thinking level only); the generated views (RESULTS, INVENTORY, STATUS, VERIFIERS, SYNOPSIS, site URLs), checked against their sources rather than line by line.
Tests run: from packing/, pytest -p no:cacheprovider tests/test_check_standing.py tests/test_recent_results.py (77 passed); pytest tests/test_site_result_filters.py -k checkbox_starts (1 skipped: no Chromium on this host; CI runs it); devtools.check_results (exit 0: 154 results, 11 recorded, 4 reviewed, 138 confirmed, 1 incomplete); devtools.check_standing --list --cases (OK; T-154 second certificate, reported); devtools.acquire_source <packet> --check for both n = 17 packets (PACKET_MATCHES_ITS_CONTRACT twice); devtools.release_pin --check (pin is the last data commit, 142d483236a3); devtools.check_requests (exit 0; #565 reply due); devtools.check_pr_description --file <body> (ok). Scratch scripts, under -I where they read packet bytes: recount of the retained axiom log (13,346 entries: the 3 standard axioms and 13,343 distinct native_decide facts, no sorryAx, SHA-256 equal to the receipt's); the Lean midpoint, radius, polynomial0 and polynomial1 compared with exp-237's run-001/certificate.json (all four exactly equal); the snowflake timestamps of the four retained posts (they match the recorded times); T-154's derived standing probed at C0 to C3 (A1). Not run: packing-validate and the renderers (per the brief), and nothing from the upstream source.

Summary and verdict

The import is careful and well evidenced. The packet matches its contract. The statement and endpoint identity reproduce exactly, and the axiom report is what the record says. Credit is read from the source's own files, the AI assistance is stated in the source's words, and both dates are stated in every priority note. The standing change is small and tested. The register, evidence, verifier, coverage and requests entries are complete for stages 1 to 3. The checks I could run pass, and hosted CI is green at the head (30 pass, 17 skipped).

Three Medium findings need a fix or an explicit disposition before merge. A1: the simplification kind will contradict itself, and fail check_standing, at T-154's own next rung. A2: the review's load-bearing comparisons were left in scratch code (OR-1). A3: the record calls the source's spelling of Ahmed's name a misspelling while its own canonical spelling is that one. The Low findings are wording and bookkeeping.

Verdict: approve once A1 to A3 are fixed or dispositioned. No Blocker or High finding.

Findings

A1 — Medium — simplification will not survive T-154's next rung, and the standing derivation refuses it there
packing/devtools/render_recent_results.py:555-562, packing/devtools/check_standing.py:111,117-121,248-268,271-282, packing/frontier/results.yaml:17465,17595-17612, epistemics.md:413

epistemics.md defines a simplification as a result that "moves no bound" (line 413). T-154's planned next step, the full build (think-r109, unfinished_confirmations at C3), would make it the first proof of n = 17 that this record can verify. Stage 4 would then move n = 17's verified lower bound onto a "simplification" of a V0 candidate. Until the case records adopt that bound, the derivation has no path for a replayed simplification of an open case:

  • restates reads the verified lane at C2 and above, where n = 17's lower bound is below L, so it returns False;
  • improvements returns nothing for a kind outside KIND_DIRECTIONS;
  • standing therefore falls through to SUPERSEDED, and check_standing.problems refuses it.

A probe at this head with {**T-154, "confirmation": c} gives second certificate, reported at C0 and C1, and at C2 and C3 gives superseded, refused with "T-154 is superseded, yet at n = 17 its stated bound is no worse than the verified one". The new test checks restates(C3) is False (packing/tests/test_check_standing.py:292) but not the standing that follows from it. The kind also departs from the definition's "shorter, cleaner or more elementary route". The owner said he was unsure whether these are "one as a formalization and one as the new proof". The description puts S5 to the owner but presents the kind as settled.

Fix (pick one):

  • (a) Keep simplification, and give a replayed simplification that states a strictly better bound than its case record the directions its claim states, so that it reads as PENDING_ADOPTION rather than SUPERSEDED. Add a test for T-154 at C3. Then add a sentence to T-154's next_rung and to epistemics.md's kind rules on what happens when a simplification's build lands before the result it proves again: the kind is revisited, with the site-URL identity amended.
  • (b) Put the kind (simplification of T-153, or optimality beside it) to the owner explicitly with S5, before T-154 reaches main.

A2 — Medium — the review's load-bearing comparisons exist only in scratch code (OR-1)
docs/project/reviews/review-2026-10-13-fitzharding-n17-lean.md:572-612 ("none is retained in the repository", line 577), relied on at packing/frontier/results.yaml:17478-17482,17651-17660, packing/frontier/evidence.yaml:31974-31975, packing/resources/bibliography.yaml:2085-2096

The review computed several results that the register now relies on:

  • endpoint_compare.py: the identity of definition with exp-237 and H-255, the 60-place value, the contraction margins;
  • cells_compare.py: 24 of 24 cells equal UNIQUE_24;
  • the pattern comparison: 32 of 35 patterns equal admitted ledger entries;
  • closure.py: no native_decide in the statement and upper-bound closures.

These results carry the claim's "T-153's L by identity of definition", the evidence note, and finding F-1, which the record intends to put to the author as an attribution finding. None of the programs is retained, so neither a reader nor the author can re-derive the evidence for F-1. Only the manifest check went into the packet. The description's own count, 109 calls that ran one-off measurement code, is this rule not being followed.

Fix: retain the comparisons as a first-party premise check. Either write a devtools.audit_n17_lean_endpoint beside devtools.audit_n11_lean, or add the programs and their JSON outputs to the packet's receipts/programs/ as check_source_manifest.py is. Register it in verifiers.yaml and list it in the evidence entry's verifiers. The endpoint half needs no checkout: I reproduced it from the retained EndpointRootData.lean and exp-237's certificate with a short script.

A3 — Medium — the record treats "Mannaseh" as the source's misspelling while its own canonical spelling is "Mannaseh"
packing/frontier/results.yaml:17661-17664, packing/resources/bibliography.yaml:2094-2096, docs/project/reviews/review-2026-10-13-fitzharding-n17-lean.md:393-394,520, against packing/atlas/known-best/credit-attributions.json:306 ("full_name":"Mannaseh Ahmed", user-confirmed), README.md:58, and the packet README's own voice at packing/resources/web/fitzharding-n17-lean-2026-10-13/README.md:86 ("@ManassehA06 is Mannaseh Ahmed")

F-2, and the register and bibliography notes that carry it to the author, say that sq17-lean "spells his name 'Mannaseh'". At this head, "Mannaseh" is the record's canonical full name, and the root README and the n = 11 paper print it. The author probably took the spelling from this project. The owner's correction to "Manasseh" (2026-10-13) is in open PR #578, which has not merged. This PR uses both spellings in its own voice: "Manasseh" in the review, "Mannaseh" in the packet README and the resources README.

Fix: drop the spelling clause from F-2's carriers in results.yaml and bibliography.yaml, or say that the record itself used that spelling until #578. Use one spelling in the record's own voice, whichever #578 makes canonical, and note the merge order with #578 in the description.

A4 — Low — priority wording attributes to the source what it does not say
packing/frontier/results.yaml:17443-17444,17641-17643, packing/frontier/n-017.md:117-118, and the PR description ("both name Overbeck's as earlier and independent")

The README (line 119 of the retained copy) says Overbeck "published an independent candidate proof … on 12 October 2026". #565 says "also published … today". Neither says "earlier". Separately, "the first report of a proof … that leaves no premise open" is stated in the record's voice with no recorded search. The source's README search covered Lean proofs only.

Fix: write "names it as independent and already published on 12 October". Scope the "first report" to what this record holds, or cite the source's search as the source's.

A5 — Low — the review record does not name its reasoning setting, though the record shows it
packing/frontier/results.yaml:17566-17569, packing/frontier/evidence.yaml:31965

epistemics.md, Review Records: "The reviewer names the model and its reasoning setting." The entry says "not told its reasoning setting". Both lanes that ran at 17:44 (agent-a45ab9e0e00fe9076, agent-acdab8c31142d473a) record claude-opus-5-5 @ xhigh for every turn. This will matter when a second review is counted toward rung 4.

Fix: name xhigh in reviewer and reviewed_by, citing the rollup. Leave the review document as written.

A6 — Low — the significance by names a review that did not score it
packing/frontier/results.yaml:17534-17536

by lists the intake draft and the review document. The review has no significance section, so it neither kept nor changed S5. Naming it reads as a confirmation by the reviewing lane, which epistemics.md's scoring rules make the step that turns a draft into a score.

Fix: keep by to the intake draft (think-hcqr) until a reviewing lane or the owner confirms.

A7 — Low — the case record gives the wrong reason for the kind
packing/frontier/n-017.md:408-410

"nothing here has built it, so it is recorded as a simplification of T-153": the kind follows from its being a second proof of a value the record holds, not from the missing build. The missing build is why the verified bounds do not move. The register's notes give the right reason.

Fix: "it is recorded as a simplification of T-153 …; nothing here has built it, so the verified bounds and the status are unchanged."

A8 — Low — the evidence limitations contradict the composition
packing/frontier/evidence.yaml:31987-31989 against packing/frontier/results.yaml T-154 composition

"the entry is reported and counts toward neither V nor C" is copied from E-n011-lean-formalization-report. That was true there because T-060 rests on other evidence. Here this is T-154's only entry, and its external_review sets C1 ("it sets both rungs").

Fix: "counts toward no rung above C1, which its external_review sets".

A9 — Low — the claim links the pin while the notes say the record cites the release
packing/frontier/results.yaml:17505-17507 against :17672-17673 (F-8)

The claim's link is tree/e6ee548…, the 13 October citation-only head, beside the words "12 October 2026, release v1.0.0". The notes say the record cites the release.

Fix: link releases/tag/v1.0.0 (or 0a7167e) in the claim, or reword the notes to "cites the pinned head, whose proof files are the release's".

A10 — Low — stale refusal message for a reported second certificate
packing/devtools/check_standing.py:356-370

A reported second certificate may now state the reported value, but the refusal still says "does not state the verified value".

Fix: "does not state the verified value, or the reported one" when reported_ok.

A11 — Low — main will reserve T-154 for another PR after this merge
docs/project/policies/regularization-policy.md:386-389

The policy says #549's batch "is to be registered as one batch result, T-154". #587, stacked on that line, builds "by monotonicity from T-154" and takes T-155. The description's id-collision note names #549 only.

Fix: change the policy line to "under the next free id" in this PR, and name #587 beside #549 in the description.

A12 — Low — the requests summary overstates F-1
packing/campaign/result-requests.yaml:5834

"runs on this project's n = 17 plan and data without crediting it": the README credits the Squares Project and #565 thanks its contributors. F-1 is that the credit is not specific.

Fix: "without crediting its components specifically (F-1)".

A13 — Low — the n = 11 packet's manifest omits the two new captures
packing/resources/web/external-square-certificates-2026-09-22/acquisition/sources.json:196-210, README lines 16-29

The README calls sources.json the acquisition manifest, and its social_sources lists the September captures. The two JSON captures added here are not listed. The README says so, but the manifest is then incomplete.

Fix: add both to social_sources with path, retrieval time and SHA-256.

A14 — Low — stage 1's acknowledgement and price are not done
packing/campaign/result-requests.yaml #565 (replies: []), packing/frontier/results.yaml:17613-17624

result-import.md, stage 1 asks for an acknowledgement within a day, with no id and no rung, and a priced validation plan. The acknowledgement is folded into the post-merge reply (think-mxhc), and think-r109 is unpriced.

Fix: on the owner's word, post a short acknowledgement now. Price think-r109 from the review's cheap check 4, one ordinary-case module with the native libraries, so the owner can set a budget.

A15 — Low — the PR description is stale
PR body, Validation and "Which came first"

"packing-validate --edit on 8c189d89a: running" and "Hosted: pending" are out of date: hosted CI is green at the head. "Earlier and independent" is A4.

Fix: refresh both lines when the fixes land.

Design assessment

Registering Fitzharding's proof as its own result is right: it is not a formalization of Overbeck's argument, and the review's §4.3 supports that well. Keeping T-153 as the first report, with both dates in every priority note, follows "priority is stated, not defended". Taking the credit from the source's own files, with credits-project rather than the review's broader lineage, also follows the policy. Leaving F-1 to the author rather than writing it into the credit line is the policy too.

The weaker part is the kind, and the code change made for it (A1). The rule "a second proof of a value the record holds is a simplification" fits T-054 and T-055, which re-prove proved cases. It does not fit a complete proof of a value the record holds only as a V0 candidate. The standing patch (restates) covers the current state and none of the states after it, and three docstrings in the two modules name T-154, which an id renumbering after #549 would also have to touch. A small generalization would serve better: let a simplification's claimed relations stand in for KIND_DIRECTIONS, so that the same rule handles C1, C3-unadopted and adopted, with T-154 as a test case rather than a docstring example. If the owner prefers optimality, the same generalization handles it.

Documentation

  • epistemics.md, Result Kinds (line 413) and Status: whichever way A1 goes, say what happens to a simplification whose build lands before that of the result it proves again.
  • The description's Validation and priority wording (A4, A15).

False positives / do not fix

  • relationship_to_generator: same-implementation on a source's report of its own build follows the closest precedent, E-n011-lean-formalization-report, and 174 of the 199 source-author reported entries. T-153's report uses not-applicable, a pre-existing inconsistency that is not this PR's.
  • V0 rather than V3 despite the source's passing build receipt: epistemics.md, "A reported result enters at V0/C0, or C1", and the n = 11 precedent.
  • lineage: credits-project despite F-1: correct, "as the source itself says".
  • The credit Fitzharding after Levy, Ahmed, MacIver matches the README's Credits section. Bidwell is left out as the finder of the packing that is the result's subject, and Friedman as a survey.
  • The long claim, with credits, AI quotes and the state of the read, follows T-153's form. The free-text published in n-017's claims is allowed by the schema and has precedent in n-006 to n-018.
  • Endpoint identity, axiom counts, post times and packet digests: all reproduced (Tests run).
  • 7 of the 10 new agent rollups ran on other branches of the same session (…-k17-review-2, detached HEAD). The cost block attributes by branch (3 on-branch logs and 1 straddling) and is right; committing the other rollups here is session bookkeeping.
  • The upstream scripts/*.py under packing/resources/ are excluded from Ruff and BasedPyright and are never run. check_source_manifest.py living in the packet has the kleddamag packet's precedent, and it needs a checkout of the pin, so it cannot be a gate step.
  • restates at C0/C1 changes no other entry's standing: T-054 and T-055 (C3) derive second certificate as before.

Dedicated reviews

Correctness applies, because the standing derivation changes how the record classifies results (persisted classification). Review B covers it. Security does not: nothing from the source is executed, and the retained scripts are data. Performance does not.

CI status

At 8c189d8, when this review was published: 30 checks pass, 17 skipped (deferred or conditional jobs), none failing or pending.


Generated by Claude Code

@jlevy jlevy left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review B (correctness review, round 1) · head 8c189d8 · base main at 9310284
Reviewer: strong tier (tbd-strong), model claude-opus-5-5, reasoning level not stated in the brief · Channel: formal review
Coverage: 76 changed files. 40 read in full or as full diffs: the standing code and its three tests, release.py, overview_sections.py, the T-153/T-154 entries, evidence.yaml, n-017.md, verifiers.yaml, source-coverage.yaml, bibliography.yaml, result-requests.yaml, credit-attributions.json, the T-007 audit, the six generated views, the review document, the packet's README, acquisition records, program and receipts, the source's README, receipt and statement files, and the four retained posts. 20 more retained upstream files were byte-verified at the pin (acquire_source --checkout), not read line by line. Skipped as outside the correctness focus: the 11 resource-usage rollups, session-close-report.yaml, site-urls.yaml, site-urls.md, document-map.yaml and packing/resources/README.md.
Tests run: pytest tests/test_check_standing.py tests/test_recent_results.py tests/test_site_result_filters.py: 77 passed, 28 skipped. The skips are the Chromium tests, which want chromium_headless_shell-1234 (this host has 1194), so the changed assertion at test_site_result_filters.py:157 did not run here. check_standing --list: OK, 154 results, 123 read. packing-validate --records: exit 0, 49 of 107 steps. packing-validate --fast: exit 1, five steps failed, all from this host. 399 site tests could not launch Chromium 1234. The browser floor and the workbench step had no npm ci (biome, eslint, tsc, esbuild missing). One unchanged test breached the 12 s wall ceiling at 30.75 s on four cores. Two process-group reaping tests in modules this PR does not touch (test_fixed_core_packet.py, test_fixed_core_packet_calibration.py) failed in this container. None touches the changed code, and CI passed the same surface (below). Five scratch probes (below). check_source_manifest.py re-run under -I against a fresh clone at e6ee548: byte-identical to receipts/source-consistency.json. acquire_source --check: PACKET_MATCHES_ITS_CONTRACT; --checkout re-derives the record from the clone. GitHub API reads of both repositories' created_at, release published_at and asset digests, and of issue #565.

Summary and verdict

The standing change does what it says. Applying the base derivation and the head derivation to all 154 results of the head record changes exactly one standing: T-154 moves from superseded to second certificate, reported. T-054 and T-055 stay second certificate, and the new branch is reachable only by kind simplification. A simplification that claims more than its lane, or whose case record later moves past it, still derives superseded and fails the gate.

One hole was reproduced. The relaxed rule for a reported second certificate never consults the verified lane. A report that restates a reported bound the verified lane has already beaten is therefore accepted, where the base code refused it (B1).

On the record, the rungs (V0/C1), the kind, the value form, the case lanes and every count, digest and server-side time I could trace match their sources. That includes the three release-asset digests, which the packet lane could not compare. The exception is the priority wording: three places say the source names Overbeck's candidate "as earlier", and neither the README nor issue #565 says so (B2).

Verdict: approve after B1 and B2 are fixed. B3 to B6 are Low and can be fixed or declined. No Blocker.

Findings

B1 (Medium). A reported second certificate is accepted even where the verified lane beats its value. packing/devtools/check_standing.py:278-282 (restates) and :359-365 (problems).
For a report (C0/C1), restates() reads only the reported lane. The new exemption in problems() accepts any finding whose reported relation is equal, whatever its verified relation, so a stated bound that is beaten in the verified lane passes. That happens wherever a case's reported bound lags its verified one. n = 11 has such a lag today: its reported lower bound is the display value 3.87708359002281 with exact_form: null, read as exact, below the exact verified T.
Reproduction (probe_beaten.py): a C1 simplification scoped to n = 11 whose headline is `s(11) >= 3.87708359002281` gives the finding lower: verified beaten, reported equal. It derives second certificate, reported and problems() returns []. At the base it derived superseded, and the gate refused it ("no worse than the reported one"). That is a real supersession hidden behind a second-certificate label, the case this check exists to catch.
Fix: for a report, require f.reported == EQUAL and f.verified != BEATEN in restates(). Apply the same guard to the exemption in problems(): reported_ok and f.reported == EQUAL and f.verified != BEATEN. Add the probe as a red test. I patched the guard in memory (probe_fix.py): it changes no standing or problem list among the 154 results, and the probe then derives superseded and is refused.

B2 (Medium). The record says the source names Overbeck's candidate "as earlier", and the source does not say that. packing/frontier/results.yaml:17444 (T-153 notes), :17641 (T-154 notes), packing/frontier/n-017.md:117.
The README says "Marc Overbeck published an independent candidate proof of seventeen-square optimality on 12 October 2026". Issue #565 says "Marc Overbeck also published a candidate proof of s(17) optimality today (12 October 2026) … This proof was developed independently". Neither says earlier. The PR's own request record (result-requests.yaml, #565 notes) has it right: "the issue and the README name it as related work developed independently". The order is established by GitHub's times, which I re-read: the candidate was created at 13:46:05Z and its release published at 14:24:20Z; sq17-lean was created at 20:42:08Z and v1.0.0 published at 22:06:23Z. The source's words do not establish it. The record says "Priority, stated and not defended", so the attribution should be exact.
In the same priority note, n-017.md:115-116 says "Its repository and its release v1.0.0 were public … about six hours after Overbeck's candidate". The six hours holds for the repository (6 h 18 min after large-files-v1), but the release came 7 h 42 min after it.
Fix: say that the source names the candidate as independent and dates it 12 October, and that GitHub's times put it first. Give the release its own time, or say "the repository about six hours after, the release v1.0.0 later that evening".

B3 (Low, latent). The two modules split the C2 rung differently, and restates() now combines them. packing/devtools/check_standing.py:111 (UNREPLAYED = {C0, C1}, so C2 counts as replayed), :279, :391-394; packing/devtools/render_recent_results.py:151 (REPLAYED_RUNGS = {C3, C4, C5}, so C2 counts as not replayed), :560.
For a C2 simplification, restates() judges the verified lane and standing() labels the result second certificate, reported. summary() then reports the reported lane. Probe (probe_edges.py): T-054 and T-055 at C2 read "second certificate, reported … equals the reported bound", while T-154 at C2 derives superseded and the gate fails. Nothing is wrong today, since no simplification sits at C2 (the two C2 results are T-036, restricted optimality, and T-112, uniqueness), but the two predicates now feed one decision.
Fix: decide C2 once. For example, have restates() and the label use one predicate, or define one in terms of the other with C2 placed explicitly. Pin it with a test of a C2 simplification.

B4 (Low). The archive "member count" is described as checked here, but it is internal to manifest.json. packing/frontier/evidence.yaml:32005, packing/frontier/verifiers.yaml:1579, packing/resources/web/fitzharding-n17-lean-2026-10-13/README.md:199; the code is at receipts/programs/check_source_manifest.py:81-94.
The program reads members from manifest.json's own archives entry and compares it with the modules manifest.json assigns to that archive. No archive is opened, and only generated-sources.tar.gz was counted against its real contents, by the review (§3.2). The verifier summary also says root files are held to "size and SHA-256", but :72-76 compares SHA-256 only.
Fix: write "the member count manifest.json records for each archive equals the modules it assigns to that archive", and either drop "size" for root files or add the size comparison.

B5 (Low). n-017's prose makes the kind follow from the missing build. packing/frontier/n-017.md:407-409: "nothing here has built it, so it is recorded as a simplification of T-153".
The kind follows from the record already holding the value (epistemics.md, Result Kinds, the fourth rule), as T-154's notes say. A build here would change the rungs, not the kind.
Fix: "it is recorded as a simplification of T-153, which …; nothing here has built it, so the verified bounds and the status are unchanged."

B6 (Low). The new test endorses a standing the gate refuses. packing/tests/test_check_standing.py:293 asserts that view.standing({**record, "kind": "optimality"}) == view.SUPERSEDED, and the docstring says "a bound kind with the same words is superseded". check_standing.problems() refuses exactly that standing: "T-154 is superseded, yet at n = 17 its stated bound is no worse than the reported one" (probe_misc.py).
Fix: also assert that problems() refuses it, and reword the docstring to say that a tied bound kind derives superseded, which the check refuses until the tie is cited or recorded as a simplification.

Suggestions

B7 (Low). packing/frontier/results.yaml:17546 says "endpoint_plainPacking, whose 18-module closure holds no native_decide". endpoint_plainPacking is declared in PackingStatement.lean (lines 34-35), whose closure is 241 modules. The 18-module closure belongs to EndpointPacking, which proves the EndpointGeometry.endpoint_packing it wraps. Both closures are free of native_decide (review §3.2), so the conclusion stands. Name the module whose closure is meant.

Invariants checked

# Invariant Holds? How shown
1 The code change moves no standing but T-154's Yes probe_old_new.py: base and head derivation over all 154 results; only T-154 changes (superseded → second certificate, reported)
2 T-054 and T-055 keep second certificate Yes Same probe; both restates too, at C3
3 Only a simplification reaches the new branch Yes kind == SIMPLIFICATION guard; the probe lists every non-simplification that restates, and none changes
4 A simplification that claims more than its lane, or whose case record moves past it, is not a second certificate Yes probe_edges.py: headline s(17) = 4.6756 and n = 17's reported lower reverted to R071 both derive superseded, and the gate refuses them
5 A reported second certificate is not beaten in the verified lane No B1, probe_beaten.py
6 One rung partition across the two modules No (latent) B3, probe_edges.py
7 T-154 holds no case bound; n = 17's reported lane stays on T-153; the verified lanes are unchanged Yes held(17): verified T-065 and T-093, reported T-153; T-007 audit sources unchanged
8 V0/C1 follow epistemics.md's predicates and precedent Yes replay_status: not-attempted and assurance: reported set no rung, as for E-n011-lean-formalization-report, T-081 and T-124; C1's external_review is complete
9 The headline is in the form check_standing reads Yes `s(17) = 4.67553009360455…` is read; equal to the reported lower …095163 and the reported upper, exceeds the verified lower 18641771/4000000, equal to the verified upper
10 The packet matches its upstream and its own receipts Yes source-consistency.json re-derived byte-identical from a clone at e6ee548; --check and --checkout pass; asset sizes and digests match GitHub's
11 Every count, time and digest in the new prose matches a source Yes, except B2 and B4 24 cells; 35 patterns; 2,781 = 2,776 + 4 + 1; 13,346 = 3 + 13,343; 4,951 and 4,953 modules; 1,215 + 12 + 2 = 1,229 tracked files; 1,203 = 1,215 - 12; 32 = 3 + 18 + 11; the archive bytes and module bytes sum to the stated totals; commit times from the clone; created and published times and issue #565 from the API

False positives / do not fix

  • V0 despite a passing build receipt from the source. The record's precedent is that a source's own reported proof-assistant run sets no rung (E-n011-lean-formalization-report, T-081, T-124).
  • relationship_to_generator: same-implementation on a report with no replay. This is the same precedent; VERIFIERS.md renders it as "the source's own run".
  • Bibliography dated: '2026-10-13' beside published: '2026-10-12'. The schema defines dated as the retained revision's commit date in UTC, and e6ee548 was committed at 2026-10-13T01:59:58Z.
  • "seven hours 25 minutes" in the review's §5. It is measured from the 14:41:30Z push: 7 h 24 min 53 s.
  • Free-text priority_notes[].published. Established convention (n-007, n-010, n-018).
  • Packing-relative local in source-coverage.yaml. The file's convention throughout.
  • T-154 at C2 or C3 derives superseded and fails the gate. That is the right direction: a replay would have to move the verified lane first.
  • n = 11's reported lower sitting below its verified lower. Pre-existing and not from this PR; it only makes B1 reachable.
  • summary() now reports the reported lane for a C0/C1 second certificate of a proved case. This is cosmetic and agrees with the label.

CI status

At 8c189d8, when this was written: 31 checks passed and 26 were skipped (deferred, exhaustive, deploy and post-merge lanes); none failed or was pending. packing-validation.yml:126 installs Chromium, so the site tests skipped here, including the changed assertion at test_site_result_filters.py:157, run in CI.

Design assessment

Deriving T-154's standing from its kind and from equality in its own lane is the least intrusive route, and it keeps n = 17's reported lane on the first report. The alternative was to cite both reports in the case record, which would have made T-154 current best, reported and blurred the priority the record states. The cost is that the kind now carries weight: if T-153 were withdrawn, T-154 would derive superseded and the gate would fail (probe). That is the right signal, since the record would then have to re-kind T-154 and move the lane to it.


Generated by Claude Code

…s directions (think-s4bn)

Review A (A1, A10) and review B (B1, B3, B6) of PR #588.

- `check_standing.directions`: a simplification states the relation of the
  result it proves again, so every direction its words state is a claim of its
  own, where a bound kind's come from `KIND_DIRECTIONS`. T-154 at C1 stays a
  reported second certificate; replayed at C2 or C3 before the case record
  adopts it, it is pending adoption rather than superseded; adopted, it holds
  the bound. All three are pinned by test.
- `restates`: a report must also not be beaten in the verified lane, and the
  second-certificate exemption in `problems` carries the same guard (B1); the
  refusal names the reported value where it was allowed (A10).
- One rung partition, `render_recent_results.UNREPLAYED` (below
  `result_status.CONFIRMED_FROM`), decides both the lane an entry is held to
  and the word a second certificate takes (B3); `REPLAYED_RUNGS` is gone.
- The optimality-kind case of T-154 is asserted refused, not merely derived
  (B6). The docstrings describe the case generically instead of naming T-154.

check_standing --list prints the same line for all 154 results before and
after.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012JUyoHafZq55vksGxE4vPP
…rograms and receipts (think-s4bn)

Review A (A2) and review B (B4) of PR #588.

The review's load-bearing comparisons with this project's n = 17 data were
scratch programs. They are retained in the packet's receipts/programs/ beside
check_source_manifest.py, each reading the source's files as text and running
nothing from it, with their outputs:

- compare_endpoint.py -> receipts/endpoint-comparison.json: the endpoint's
  polynomials, midpoint, radius and side map against exp-237 and H-255, the
  Lean's contraction certificate recomputed, the side to 60 places, exp-245's
  enclosure and the verified ceiling.
- compare_cover.py -> receipts/cover-comparison.json: the 24 cells equal
  UNIQUE_24 (exp-247) and none of the other three designs; 32 of the 35
  patterns equal admitted ledger entries up to D4, the other 3 strictly inside
  admitted entries.
- check_closures.py -> receipts/closures.json: on a clone of the pin and the
  release's generated-sources.tar.gz (size and SHA-256 as manifest.json gives),
  every module of PackingStatement's 241-module and EndpointPacking's 18-module
  closures matches manifest.json and uses no native_decide in code.

The two data files compare_cover.py reads, ExactCellCoverData.lean and
RepresentativeCaseData.lean, are added to the declaration's scope and the
packet re-derived with acquire_source --checkout from the clone at e6ee548;
--check passes.

check_source_manifest.py now holds root files to their size as well as their
SHA-256, and its docstring says the archive member counts are manifest.json's
own (B4); re-run on the clone, receipts/source-consistency.json is
byte-identical.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012JUyoHafZq55vksGxE4vPP
…r carriers (think-s4bn)

- A1: T-154's next_rung, and epistemics.md's Result Kinds, say what happens
  when a simplification's build lands before that of the result it proves
  again: pending adoption until the case record adopts it, then the kind is
  revisited and the result page's registered identity amended.
- A2: E-n017-fitzharding-lean-report lists V-fitzharding-n17-premise-comparisons,
  registered in verifiers.yaml; the claim, the evidence note, the bibliography
  note and T-154's artifacts point at the packet's three new receipts.
- A3: F-2's "spells his name Mannaseh" clause is dropped from the register and
  the bibliography; the record's own voice keeps Mannaseh Ahmed.
- A4, B2: the source names Overbeck's candidate as independent and published
  on 12 October, and GitHub's times put it first: the repository about six
  hours after large-files-v1, release v1.0.0 about seven and three-quarter
  hours after it. "First report of a proof that leaves no premise open" is
  scoped to this record's holdings, beside the source's own Lean-only search.
  T-153 and T-154 notes, n-017's priority notes and prose, the requests
  summary.
- A5: the review record names reasoning xhigh from the lane's rollup.
- A6: significance `by` is the intake draft alone.
- A7, B5: n-017 gives the kind's reason (a value the record holds), and the
  missing build as the reason the bounds do not move.
- A8: the evidence limitations count toward no rung above C1.
- A9: the claim links release v1.0.0's commit 0a7167e, as the notes say.
- A11: the regularization policy registers #549's batch under the next free
  result id.
- A12: the requests summary says F-1 is about specific credit.
- A13: the n = 11 packet's sources.json lists both 13 October captures.
- B4: evidence and verifier prose say the archive member counts are
  manifest.json's own, and root files are held to size and SHA-256.
- B7: the composition names PackingStatement's 241-module closure and
  EndpointPacking's 18-module one.
- Retained-module counts move from 1,203 to 1,201 in coverage and verifiers.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012JUyoHafZq55vksGxE4vPP
… the URL registry (think-s4bn)

Rendered from the register commit before: render_results --update,
render_evidence_inventory --update, render_verifiers --update and
site_urls --write. T-154's result URL is not on main, so its unpublished row
was regenerated with the new artifacts rather than carrying an amendment.
render_research_tables, render_results_headline, audit_t007_consumers,
build_bound_citations, render_case_verifiers and render_document_map had
nothing to change. packing-validate --records passes.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012JUyoHafZq55vksGxE4vPP
@jlevy

jlevy commented Oct 13, 2026 •

Copy link
Copy Markdown
Owner Author

CI on #588 is red because of degraded GitHub Actions APIs, not because of this change.

  • What failed:
    • At 818324990 (20:50Z and its one re-run at 20:56Z), print-layout, browser-geometry (webkit), font-loading (webkit) and pages-required died at artifact join failed: gh: Server Error (HTTP 502) before any test body ran. pdf hit the same 502 and passed on the re-run.
    • At bc0fab085 (the merge of main's vendor: Evan Daniel's regularizer at evand/square-packing@675a5ea, with credit and a pin check (think-csds) #509, 21:06Z), the Certificate page jobs failed at the same step, again before any test ran.
    • On the same head, every test job of Packing validation passed: validate, suite-a to suite-d, frontend, typecheck, geometry, sweeps, measure-verifier and macos-portability. Only the packing-required aggregate failed, twice, at check_pr_wall: GET actions/runs/38467779877/jobs?filter=latest… answered 502: Bad Gateway.
  • Why it is not this PR's: every Certificate page run in this repository since 20:48Z has failed, on three other branches as well (claude/busy-pascal-vgiccb-record, -register and -518). From this session at 21:16Z, the same jobs endpoint answered 502, 200, then 502 for this run, 502 for an unrelated run, and 504 without the filter. githubstatus.com reports all systems operational.
  • What happens next: the re-runs are spent. The next code push, the formalization-kind change the owner asked for, starts fresh runs. The merge waits for every check to pass.

Generated by Claude Code

jlevy commented Oct 13, 2026

Copy link
Copy Markdown
Owner Author

Dispositions for review A at 8183249

Fix commits: d3cfe11 (standing code and tests), 75a0a94 (packet programs and receipts), 9ab8f8d (register and carriers), 8bd9767 (rendered views), 8183249 (DATA_REVISION re-pin, alone). Beads: parent think-s4bn, one child per finding.

  • A1: fixed in d3cfe11 and 9ab8f8d, by option (a). The fix keeps simplification. check_standing.directions lets a simplification's stated relations stand in for KIND_DIRECTIONS, and improvements reads it. The same rule now gives:

    • T-154 at C1: second certificate, reported;
    • replayed at C2 or C3 but not adopted: pending adoption, with problems() == [];
    • adopted (n = 17's verified lower bound citing E-n017-fitzharding-lean-report): current best.

    T-154's next_rung and epistemics.md's Result Kinds now each say what happens when a simplification's build lands first: pending adoption, then the kind is revisited and the result page's registered identity is amended. The two modules' docstrings no longer name T-154 or T-153. Confirmed by the new test_a_simplification_keeps_a_standing_through_its_later_rungs, red before the change (assert [] == [(17, 'lower')]). check_standing --list prints the same line for all 154 results before and after. B1, B3 and B6 are in the same commit.

  • A2: fixed in 75a0a94 and 9ab8f8d. The comparisons are retained as first-party programs in the packet's receipts/programs/, beside check_source_manifest.py. Each reads the source as text under -I and runs nothing from it:

    • compare_endpoint.py writes receipts/endpoint-comparison.json. Polynomials, midpoint and radius equal exp-237 and H-255, and the side map is the record's. The contraction certificate holds, both Newton identities are exact, side_60 is the review's 60 places, the residuals are 6.4e-201 and 8.6e-201, and the ceiling minus side is 1.0358e-22.
    • compare_cover.py writes receipts/cover-comparison.json. 24 of 24 cells equal UNIQUE_24, in the same order and under the same names, and 0 of 24 equal the other three designs. 32 of the 35 patterns equal admitted entries up to D4: A, W7 and SW9; 18 from exp-251, exp-254 and exp-256; and 11 from exp-317 (n17: 12 sub-pattern kernel certificates admitted (exp-317, #475) #472). The other 3 lie strictly inside admitted entries.
    • check_closures.py writes receipts/closures.json, read from a clone at e6ee548 and the downloaded generated-sources.tar.gz. The archive's 718,897,665 bytes and SHA-256 5e0f823f… match manifest.json. All 241 modules of PackingStatement (219 tree, 22 archived) and all 18 of EndpointPacking match the manifest and use no native_decide in code. The one raw match is the comment at InteriorCellCapacity.lean:134.

    ExactCellCoverData.lean and RepresentativeCaseData.lean were added to the acquisition declaration, and the packet was re-derived with acquire_source --checkout; acquire_source --check gives PACKET_MATCHES_ITS_CONTRACT. V-fitzharding-n17-premise-comparisons is registered in verifiers.yaml and listed in E-n017-fitzharding-lean-report.verifiers. The claim, the evidence limitations, the bibliography note and T-154's artifacts point at the three receipts. I used the packet route, not a devtools module: the closure check needs a clone and the 718 MB archive, so it cannot be a gate step. The Overbeck packet's review-2/programs/ and receipts-here/programs/ are the precedent.

  • A3: fixed in 9ab8f8d. The "spells his name 'Mannaseh'" clause is gone from T-154's notes and from the bibliography note. The PR's own voice uses Mannaseh Ahmed, the canonical spelling in credit-attributions.json on main. The dated review document is unchanged. git grep "spells his name" outside that review is empty.

  • A4: fixed in 9ab8f8d, together with B2. Every carrier (T-153 notes, T-154 notes, n-017's two priority notes and its prose, and the requests summary) now says the source names Overbeck's candidate as independent and published on 12 October, and does not say which came first. GitHub's server-side times put it first. "First report of a proof that leaves no premise open" is now scoped to "the reports this record holds", beside the README's own search of 12 October, quoted as the source's. The significance rationale is scoped the same way. The bibliography note and the packet README already quoted the source exactly. git grep finds no "as earlier" outside the review. check_prose_ceremony passes.

  • A5: fixed in 9ab8f8d. T-154's reviews[].reviewer and the evidence entry's reviewed_by name reasoning xhigh "on all 282 of its turns". They cite packing/campaign/resource-usage/agent-a45ab9e0e00fe9076.yaml (claude-opus-5-5 @ xhigh: 282). The review document is unchanged.

  • A6: fixed in 9ab8f8d. significance.by now reads "Intake of 13 October (think-hcqr), draft for the owner". validate_schemas passes.

  • A7: fixed in 9ab8f8d. n-017's prose now gives the kind's reason, that the proof re-proves a value the record holds, and gives the missing build as the reason the bounds and status are unchanged.

  • A8: fixed in 9ab8f8d. The limitations now say the entry "counts toward no rung above C1, which its external_review sets".

  • A9: fixed in 9ab8f8d. The claim links release v1.0.0's commit, tree/0a7167efa8dcae7fa73855890630fb7e2de550ed, and the notes keep "the record cites the release (F-8)". I chose the release commit over releases/tag/v1.0.0 because all 78 GitHub links in results.yaml are tree/<sha>, and a tag can move. check_prose_ceremony passes, with no commit id left in the prose.

  • A10: fixed in d3cfe11. A refused reported second certificate now reads "does not state the verified value, or a reported one the verified bound does not beat". Confirmed by test_a_standing_entry_whose_every_bound_is_beaten_is_refused, which asserts both wordings and was red before.

  • A11: fixed in 9ab8f8d. Item 7 of regularization-policy.md now registers register: exact regularized sides at 59 counts as T-155, and draw the 16 counts they admit with 4 grid-slack replacements #549's batch "under the next free result id". The coordinator names register: s(290) by monotonicity from T-155, with its grid-slack view as its own exact certificate (T-156) #587 beside register: exact regularized sides at 59 counts as T-155, and draw the 16 counts they admit with 4 grid-slack replacements #549 in the description.

  • A12: fixed in 9ab8f8d. The Complete Lean proof of s(17) optimality: registration request #565 summary now says "without crediting its components specifically (F-1)".

  • A13: fixed in 9ab8f8d. social_sources in the n = 11 packet's sources.json lists both captures with path, bytes, SHA-256 and retrieved_utc (17:52:09Z and 17:52:11Z). The recomputed digests and sizes are equal. The README sentence is updated. acquire_source external-square-certificates-2026-09-22 --check returns PACKET_DIFFERS_FROM_ITS_CONTRACT with the same 76 "lacks the required field" lines at main 9310284, at 8c189d8 and after the edit. That packet predates the declaration contract (it has no declaration.json); the edit adds no problem.

  • A14: declined. The acknowledgement on Complete Lean proof of s(17) optimality: registration request #565 is posted only on the owner's word (think-mxhc), and this lane may post nowhere but this PR. Pricing think-r109 needs Lean 4.34.1 and the Mathlib cache, which are not installed on this host; think-s7s4 is the cheap check that would install them and measure a module. Your pricing suggestion (cheap check 4: one ordinary-case module with the five native libraries) is recorded in think-r109's notes.

  • A15: fixed in the PR description. The coordinator updates it; this lane does not edit the description.

Validation at 8183249: packing-validate --records passes, and --edit passes (65 of 107 steps, its tier). pytest passed 434 and skipped 28 over the touched and named modules: check_standing, recent_results, result_status, results_register, site_result_filters, acquire_source, check_requests, prose_ceremony, site_urls, source_coverage, verifier_registry and release_pin. All 28 skips are in test_site_result_filters.py: Chromium chromium_headless_shell-1234 is not installed here, so CI runs them. test_release.py and test_release_pin.py passed 24 of 24 after the re-pin. check_standing --list, check_results, check_prose_ceremony and check_requests all exit 0, and release_pin --check reports that the pin is the last data commit. Ruff and BasedPyright found nothing in the touched modules.

CI at 8183249:

  • Packing validation run 38465695021: success. Branch mergeability: success. Deferred checkpoint: skipped.
  • Certificate page run 38465694781: failure, from GitHub infrastructure, not these commits. In attempt 1, pdf, print-layout, browser-geometry (webkit) and font-loading (webkit) each failed at devtools.wait_for_run_artifact, the API join to the prepare job's prepared-page artifact, with artifact join failed: gh: Server Error (HTTP 502) (20:50:24 to 20:50:58Z). That was before the page was downloaded or any check ran. prepare passed, and the five other consumers of the same artifact passed.
  • The coordinator re-ran the failed jobs (attempt 2). pdf passed. print-layout, browser-geometry (webkit) and font-loading (webkit) failed again with the same HTTP 502 at the same join step, and pages-required failed after them. GitHub's Actions API was also returning HTTP 502 for another branch's concurrent run, 38465886089. All three jobs passed at 8c189d8 (run 38457513653). They remain to be re-run once the API recovers.

Generated by Claude Code

jlevy commented Oct 13, 2026

Copy link
Copy Markdown
Owner Author

Dispositions for review B at 8183249

Fix commits: d3cfe11 (standing code and tests), 75a0a94 (packet program and receipts), 9ab8f8d (register and carriers), 8bd9767 (views), 8183249 (DATA_REVISION re-pin). Beads: parent think-s4bn, one child per finding.

  • B1: fixed in d3cfe11, as proposed. For a report, restates() now requires f.reported == EQUAL and f.verified != BEATEN, and the second-certificate exemption in problems() carries the same guard. Your probe is now test_a_reported_second_certificate_is_not_beaten_in_the_verified_lane: a C1 simplification scoped to n = 11 with `s(11) ≥ 3.87708359002281`. Its finding is (beaten, equal), restates() is False, its standing is superseded, and problems(…, SECOND_CERTIFICATE_REPORTED) refuses it. The test was red before the change (restates returned True). check_standing --list prints the same line for all 154 results before and after.

  • B2: fixed in 9ab8f8d, together with A4. The notes no longer say the source names the candidate "as earlier". Each carrier says the source names Overbeck's candidate as independent and published on 12 October, and that GitHub's server-side times put it first. The release now has its own time. T-154's notes give 13:46:05Z, 14:24:20Z, 20:42:08Z (about six hours after large-files-v1), 22:06:23Z (about seven and three-quarter hours after it) and 22:23:37Z. T-153's notes, n-017's priority notes and prose, and the requests summary are aligned. git grep finds no "as earlier" outside the review.

  • B3: fixed in d3cfe11. There is now one partition, render_recent_results.UNREPLAYED = {C0, C1}, derived from result_status.CONFIRMED_FROM. REPLAYED_RUNGS is removed, check_standing.UNREPLAYED is that object, and reports() uses it. C2, a passed replay (status confirmed), counts as replayed for both the lane and the label. Confirmed by test_one_rung_partition_decides_the_lane_and_the_word, which was red before (no UNREPLAYED):

    • T-054 and T-055 at C2: restates, second certificate, and the summary reads the verified lane;
    • the same at C1: second certificate, reported;
    • T-154 at C2: pending adoption, as at C3.

    No live result changes, since none of the C2 results is a second certificate.

  • B4: fixed in 75a0a94 and 9ab8f8d. check_source_manifest.py now holds root files to their size as well as their SHA-256. Re-run on a clone at e6ee548, receipts/source-consistency.json is byte-identical (cmp). Its docstring, the packet README, the evidence limitations and the verifier summary now say the member count manifest.json records for each archive equals the modules it assigns to that archive, and that no archive is opened there. generated-sources.tar.gz is now also read against its real members by check_closures.py (receipts/closures.json).

  • B5: fixed in 9ab8f8d, together with A7. n-017 now says "It proves again a value the record already holds, so it is recorded as a simplification of T-153 …; nothing here has built it, so the verified bounds and the status are unchanged."

  • B6: fixed in d3cfe11. The T-154 test now asserts that problems() refuses the optimality-kind standing: "T-154 is superseded, yet at n = 17 … no worse than the reported one". The docstring now says a tied bound kind derives superseded, which the check refuses until the tie is cited by the case record or recorded as a simplification.

  • B7: fixed in 9ab8f8d. T-154's composition now reads: endpoint_plainPacking, in PackingStatement, whose 241-module import closure holds no native_decide, wraps EndpointPacking's endpoint_packing, whose 18-module closure holds none either. It cites receipts/closures.json, which reads every module of both closures against manifest.json.

Validation at 8183249: packing-validate --records and --edit pass. pytest passed 434 and skipped 28 over the touched and named modules. All 28 skips are the Chromium tests in test_site_result_filters.py, which want chromium_headless_shell-1234, not installed here; CI runs them, including the assertion at line 157. test_release.py and test_release_pin.py passed 24 of 24. check_standing --list, check_results, check_prose_ceremony and check_requests all exit 0. acquire_source fitzharding-n17-lean-2026-10-13 --check gives PACKET_MATCHES_ITS_CONTRACT.

CI at 8183249:

  • Packing validation run 38465695021: success. Branch mergeability: success. Deferred checkpoint: skipped.
  • Certificate page run 38465694781: failure, from GitHub infrastructure, not these commits. In attempt 1, pdf, print-layout, browser-geometry (webkit) and font-loading (webkit) each failed at devtools.wait_for_run_artifact, the API join to the prepare job's prepared-page artifact, with artifact join failed: gh: Server Error (HTTP 502) (20:50:24 to 20:50:58Z). That was before the page was downloaded or any check ran. prepare passed, and the five other consumers of the same artifact passed.
  • The coordinator re-ran the failed jobs (attempt 2). pdf passed. print-layout, browser-geometry (webkit) and font-loading (webkit) failed again with the same HTTP 502 at the same join step, and pages-required failed after them. GitHub's Actions API was also returning HTTP 502 for another branch's concurrent run, 38465886089. All three jobs passed at 8c189d8 (run 38457513653). They remain to be re-run once the API recovers.

Generated by Claude Code

@jlevy jlevy left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review C (follow-up review, round 2) · head bc0fab085 · base main at 7d51fdd85
Reviewer: Codex coordinator with independent standing-code and record/packet reviewers, inheriting this session's model and reasoning settings · Channel: formal review
Coverage: the 32 fix files between reviewed head 8c189d89a and 818324990, plus the subsequent main merge's effect on those carriers. Unrelated changes already merged through #509 were excluded.
Tests run: project Python 3.14.7, pytest -p no:cacheprovider tests/test_check_standing.py tests/test_recent_results.py: 80 passed. devtools.check_standing --list: all 154 results pass. Independent reviewers recomputed the endpoint and cover comparisons: both match the retained JSON receipts. Both newly indexed n=11 social captures match their recorded byte counts and SHA-256.

Summary and verdict

Approve the follow-up fixes to reviews A and B. No actionable finding remains in this scope. This review is independent of the agents that wrote the fixes.

The reported-second-certificate guard consults the verified lane; the rung partition is shared; a replayed simplification awaiting adoption remains pending adoption. Retained comparison programs and receipts now support the register's comparisons. Priority wording, spelling, reviewer settings, significance attribution, rung limitations, closure descriptions and acquisition metadata agree with the dispositions.

Dispositions checked

Reviews A and B reported no Blocker or High findings. Checked their Medium findings A1–A3 and B1–B2 and the remaining fix dispositions against the actual changes. A14 is explicitly declined: posting the acknowledgement requires the owner's separate instruction, and Lean replay pricing remains tracked in open think-r109 and think-s7s4. No external acknowledgement was posted by this review.

Findings and suggestions

None.

False positives / do not fix

A stale reported simplification beaten by the verified bound derives superseded and is refused by the validator. Review B explicitly requires that refusal as the signal to amend the record; it is not a residual bug.

CI status and limits

Packing validation run 38467779877 now passes after rerunning its aggregator. Certificate page run 38467779920 is finishing its failed-job rerun; earlier failures were directly traced to HTTP 502 responses in artifact retrieval and the jobs API. Deferred checkpoint run 38472184064 was dispatched from the PR branch with pull_request=588 and is running against the immutable PR merge tree. Merge waits for these final checks and source/base identity verification.

Not rerun: the large archive closure comparison or the upstream 4,951-module Lean build. This follow-up assesses the retained import and engineering changes; it does not raise the result's mathematical verification rung.

@jlevy
jlevy marked this pull request as ready for review October 13, 2026 21:41

@jlevy jlevy left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review D (senior engineering review, round 2) · head bc0fab085 · base main at
7d51fdd85

Reviewer: strong tier, requested gpt-6-astra at xhigh · Channel: formal
review

Coverage: 75 of 87 changed files examined at varying depth: production/test
diffs, all four first-party receipt programs,
register/evidence/verifier/case/bibliography and policy changes, packet custody and
documentation, retained statement and endpoint definitions, and prior dispositions.
Generated views were skimmed against their source records; retained numeric tables and
remaining upstream proof/build files received receipt/integrity checks or partial reads,
not a complete formal proof audit.
Skipped: 11 resource-usage rollups and session-close-report.yaml, administrative
evidence already covered by review A.

Tests run: project Python 3.14.7,
pytest -p no:cacheprovider tests/test_check_standing.py tests/test_recent_results.py tests/test_result_status.py tests/test_results_register.py -q
with external-volume --basetemp: 189 passed in 70.82 s, no skips.
Re-executed compare_endpoint.py and compare_cover.py under -I -B, with checkout
module paths injected because this worktree borrows the main checkout’s interpreter;
both JSON outputs are byte-identical to their committed receipts (cmp, exit 0).
python3 -m devtools.acquire_source fitzharding-n17-lean-2026-10-13 --check:
PACKET_MATCHES_ITS_CONTRACT.

Summary and verdict

Verdict: approve this import and its engineering changes.
No new actionable findings.
This is a fresh review of the full PR diff at the pinned
head, independent of the implementation.
The remaining merge gate belongs to the coordinator: finish applicable dedicated reviews
and the already-running deferred checkpoint.

The import keeps T-154 at V0/C1 and leaves the verified n = 17 bounds unchanged.
The record distinguishes the author’s clean-build report from checks performed here.
The exact endpoint and cover comparisons reproduce; they establish the recorded
comparisons, not a replay of the Lean proof.

The standing change now handles both the current reported second certificate and a
replayed simplification awaiting adoption.
It shares the C0/C1 partition with the renderer, consults the verified bound before
accepting a reported restatement, and derives pending adoption when a replayed
simplification claims a stronger bound.
Tests cover those transitions and the refusal case previously reported as B1.

Findings and suggestions

None. Counts: 0 Blocker, 0 High, 0 Medium, 0 Low.

Earlier reviews and dispositions

Read reviews A and B, their marked dispositions at
818324990bc5d884642d4bd286788e9c678cd010, and the newly published
follow-up C.

  • A1/B1/B3/B6: the code and regression tests support the dispositions, including T-154
    at C2/C3 before adoption and the report beaten by the verified lane.
  • A2/B4/B7: the comparisons are retained and registered; the endpoint and cover receipts
    reproduce in this review.
    The closure program and receipt distinguish the 241-module statement closure from the
    18-module endpoint-packing closure.
    I did not download the large archive to re-execute the closure scan.
  • A3–A13, A15 and B2/B5: the current carriers implement the recorded wording,
    attribution, chronology, acquisition-metadata and documentation corrections.
    The dated adversarial review remains a historical record, as the dispositions require.
  • A14: its explicit declined disposition remains appropriate to this import’s scope; the
    acknowledgement and Lean replay pricing remain separate work.
    No author message was sent here.

Neither earlier review had a Blocker or High finding.
Discovery found no inline comments or additional unresolved review issue; the all-state
issue search returned #495 and #366, which contain unrelated certificate intake
discussions.

Design assessment

The change extends the existing standing derivation rather than storing a special status
for T-154. This preserves the first report’s citation while making the second proof
visible and keeping later adoption expressible.
The shared rung partition prevents label/lane disagreement at C2. The register and
epistemics.md now explain the later kind/URL-identity decision.

Keeping upstream proof bytes in a pinned source packet and first-party comparisons
beside their receipts makes the import reviewable without requiring the expensive
upstream build. The source’s own scripts remain archival data and are not added to the
repository’s normal execution surface.
Formal remote stack membership was checked: the API returned [], and this PR targets
main.

Documentation and limits

No additional documentation change is requested.
The result, case record, evidence, bibliography and rendered status agree on the
reported/replayed distinction.
The source’s 13,343 native checks, unread soundness proofs and full 4,951-module build
were not validated by this review; this review does not raise a mathematical
verification or confirmation rung.
No repository file was edited, committed or pushed; the pinned working tree remained
clean.

Dedicated review coverage

Correctness applies to persisted standing classification and exact numerical
comparisons. Review B and follow-up C cover earlier work; a current dedicated pass is
appropriate alongside this fresh senior review.

A narrow security pass also applies to the new first-party readers in
receipts/programs/, especially check_closures.py, because they parse externally
supplied manifest paths and compressed archive members.
That recommendation concerns these readers, not executing the archived Lean/build
scripts. No performance-specific review is indicated: no hot path or broad
data-processing execution surface is added.

CI status

At publication, both current-head workflows are complete and successful:
Packing validation, run 38467779877
and
Certificate page, run 38467779920.
The
deferred checkpoint, run 38472184064,
is still in progress.
All report head bc0fab08514043b69a9facbd41f3fe1c63d7b879; the coordinator must verify
its final checked source/base identity and conclusion before merging.
The PR head was unchanged when this review was published.

@jlevy jlevy left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review E (correctness review, round 2) · head bc0fab085 · base main at
7d51fdd85

Reviewer: strong tier, requested gpt-6-astra at xhigh · Channel: formal review

Coverage: 20 of 87 changed files examined at varying depth: the two standing modules,
three regression-test diffs, the two numerical comparison programs and their receipts,
five retained Lean definition/data files, the packet README, epistemics.md, and the
result/evidence/verifier/n-017 records.
Surrounding root-certificate, catalogue-polynomial, cover-symmetry, layout and
confirmation code was also read.
Generated large tables received partial reads.
The remaining 67 changed files, archive scans and full Lean proof were outside this
dedicated scope; review D covers the broader import.

Tests run: no additional execution of project tests in this pass, as the coordinator
requested reuse of completed validation and new runs only for suspected defects.
Review D, at
this exact head, records project Python 3.14.7 running
pytest -p no:cacheprovider tests/test_check_standing.py tests/test_recent_results.py tests/test_result_status.py tests/test_results_register.py -q:
189 passed, no skips. D also records byte-identical reruns of both comparison
receipts and PACKET_MATCHES_ITS_CONTRACT. Those executions belong to D; this pass
independently inspected the implementation and evidence boundaries.

Summary and Verdict

Verdict: approve within the correctness scope.
No new actionable findings.

The shared confirmation partition and verified-lane guard implement the intended
reported-second-certificate rule.
A replayed simplification awaiting adoption can now claim the directions in its stated
relation. The exact comparison code supports the endpoint identity and the cell/pattern
comparisons recorded in the import.
T-154 remains V0/C1, with n = 17’s verified bounds unchanged.

Findings and Suggestions

None: 0 Blocker, 0 High, 0 Medium, 0 Low.
No Blocker or High IDs.

Invariants Checked

Invariant Assessment and evidence
A reported simplification needs a nonempty set of stated bounds, with every bound tying its reported lane and none beaten by its verified lane. Holds. restates() uses bool(held) and all(held) and the paired equality/not-beaten condition. problems() carries the same verified-lane guard. The n = 11 regression covers the stale reported display from B1.
C2 has the same meaning in the classifier, validator and report filter. Holds. UNREPLAYED derives from CONFIRMED_FROM = 2 and is shared; the C2 second-certificate regression checks the label and summary.
Replaying T-154 before case adoption preserves a live standing; adopting it makes the citation determine the holder. Holds. directions() reads a simplification’s stated relations, improvements() admits the stronger verified lower bound, and standing() checks holders first. The C2/C3 and adoption regression covers the transitions.
Numerical comparisons preserve rational coefficients, signs and inclusive/exclusive boundary semantics. Holds for the inspected inputs. Standing comparisons use Fraction and the existing half-open cut-decimal interval. The endpoint program expands P(m + r p) exactly and checks both Newton identities, determinant and contraction inequalities in rational arithmetic. Floats appear only in diagnostic output.
Endpoint identity rests on the same equations, isolating box and side map. Holds. The retained EndpointRoot selects the unique common zero in that box. EndpointGeometry.side and H-256’s _layout() use (6 + 4t)/(1 + 2t - t*t). The receipt records exact polynomial, midpoint and radius equality to exp-237 and polynomial equality to H-255.
Cover/pattern comparisons respect geometry, cell ordering and symmetry. Holds. Rational vertex sets determine cell equality; names and ordering are reported separately. The pattern reader requires indices 0 through 34 and the expected cell-name order, then compares occupied sets under the existing D4 permutations. The receipt distinguishes 32 equal patterns from three strictly contained patterns.
First-party comparisons do not promote an author’s build report to a local proof replay. Holds. The evidence remains assurance: reported, performed_by: source-author, replay_status: not-attempted; the comparison verifier has role: premises. Case and result records preserve the reported/verified distinction.

No new concurrent writer or persisted-state migration is introduced in these inspected
paths. The numerical programs read inputs and emit JSON; standing is derived from an
in-memory record snapshot.

False Positives / Do Not Fix

  • A stale reported simplification can derive superseded while the standing validator
    refuses the stale reported tie.
    That refusal requires correction of the record and is the intended B1 disposition.
  • The endpoint program’s rounded Newton iterate, small residuals and catalogue sign
    change are numerical diagnostics.
    The exact identification with the catalogue is supplied by the matching chart and
    exp-245’s existing resultant/root-isolation evidence; a sign change alone would not
    establish identity.
  • The cover’s three strict-subset matches are reported separately.
    Exclusion of a larger occupied pattern is not presented as a proof excluding its
    smaller subset.

The design keeps standing derived and reuses the existing exact arithmetic and symmetry
routines. No alternative with a concrete correctness benefit was identified.
No additional documentation gap was found in this scope.

Earlier Reviews and CI

Read the marked A/B dispositions and reviews C/D. The inspected fixes support A1, A2,
B1, B3 and B6; no finding is reopened.
GitHub returned no inline comments and no formal stack membership; the PR targets
main.

gh pr checks 588 --repo jlevy/squares reports the required Packing validation and
Certificate page checks passing.
The separately dispatched
deferred checkpoint, run 38472184064,
still reports in_progress at bc0fab085; the coordinator owns that final merge gate
and its merge-tree identity check.
The PR head was unchanged at publication.

The full Lean build, native evaluation and large archive scans were not repeated.
This review does not raise the mathematical verification rung.
The pinned checkout remained clean; no source was edited, committed or pushed.

@jlevy jlevy left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review F (security review, round 2) · head bc0fab085 · base main at 7d51fdd85

Reviewer: strong tier, requested gpt-6-astra at xhigh · Channel: formal review

Coverage: 9 of 87 changed files examined at varying depth: all four first-party readers
in packing/resources/web/fitzharding-n17-lean-2026-10-13/receipts/programs/, the
packet README, its three acquisition files, and the retained compressed manifest’s path
set. The readers and README were read in full.
Supporting acquisition and Lean-token-scanner code, verifier descriptions, and
control-log names were also inspected.
The remaining changed files are outside this dedicated scope; reviews D and E cover the
broader engineering and correctness work.
Archived Lean and upstream build scripts were treated as source data.

Tests run: no project test suites or receipt reruns in this pass, as the coordinator
requested reuse of completed validation and new execution only for suspected defects.
Data inspection with gzip -dc .../manifest.json.gz | jq ... found 4,953 source paths,
none absolute or containing ..; all 12 root paths and both control-log names are local
relative names. git ls-tree -r HEAD showed no symlink or submodule entries in this
packet.
Review D
records 189 passing tests without skips at this exact head, byte-identical
endpoint/cover receipt reruns, and PACKET_MATCHES_ITS_CONTRACT; those executions
belong to D.

Summary and Verdict

Verdict: approve within the security scope.
No actionable findings.

These programs read the explicitly selected local source packet, checkout and archive
and emit JSON. They parse upstream Lean as text and reuse trusted project functions.
The reviewed paths do not execute upstream scripts, install dependencies, open a network
connection, or extract archive members to the filesystem.
The local pinned-source audit design is appropriate for the documented callers.

Findings and Suggestions

None: 0 Blocker, 0 High, 0 Medium, 0 Low.
No finding IDs.

Surface Reviewed

  • Manifest and control-log paths to local reads. check_source_manifest.py:59 reads
    the retained manifest and receipt, then compares checkout bytes and log digests.
    check_closures.py:57 uses that manifest to select local modules.
    These joins do not enforce containment for an arbitrary replacement manifest.
    The documented inputs are this retained packet and a checkout of its pin; the current
    manifest’s paths and control names were inspected, and no outside-root path was
    present. Neither reader forwards file contents to a remote recipient or performs a
    write. This review does not certify these scripts as general loaders for hostile
    manifests.
  • Tar members to in-memory source text. check_closures.py:107 opens the supplied
    archive in streaming read mode.
    It records and skips absolute names, parent traversal, symbolic links and hard links,
    then calls extractfile only for regular files in the selected path map.
    extractfile supplies bytes for hashing and token counting; no extraction destination
    is created. The report records archive size/digest agreement, per-module mismatches and
    unsafe members.
  • Upstream source text to parsing and arithmetic. compare_endpoint.py and
    compare_cover.py use regular expressions, integer/Fraction conversion and exact
    project routines. The cover ledger uses yaml.safe_load. Neither evaluates source
    expressions. The sys.path additions point to the caller-selected trusted Squares
    repository, or the repository containing the first-party program; the README’s -I
    invocation excludes the upstream checkout from Python’s automatic import path.
  • Acquisition metadata to existing filesystem operations. The new declaration
    selects the fixed sq17-lean directory and explicit retained paths.
    The existing acquisition helper checks the declared source commit, Git file modes and
    blob contents before replacing that packet directory.
    The new records and README preserve the distinction between first-party receipt
    generation and the source author’s build report.
    No upstream build is added to a normal execution path by these readers.

False Positives / Do Not Fix

  • The archive’s stored digest is compared after streaming it.
    That establishes byte identity for the receipt; it is not a decompression resource
    limit. This invocation is a local audit of the named pinned release archive, and it
    does not execute or extract its contents.
    General hostile-upload handling is outside the current caller contract.
  • The programs report mismatches and comparison results in JSON rather than treating
    every false comparison as a process failure.
    They are diagnostic receipt producers, not an authorization or proof-acceptance gate.
    Their recorded comparisons do not elevate T-154 beyond V0/C1.
  • The archived scripts/unpack.py, scripts/reproduce.py, Lean source and build pins
    are retained evidence.
    Their presence does not mean this PR runs them.

No additional documentation change or replacement design with a concrete security
benefit was identified for these callers.

Earlier Reviews and CI

Read the A/B dispositions and current C/D/E reviews; no finding is reopened.
GitHub returned no inline review comments and no formal stack membership ([]); the PR
targets main.

gh pr checks 588 --repo jlevy/squares reports the required Packing validation and
Certificate page checks passing.
The separately dispatched
deferred checkpoint, run 38472184064,
remains in_progress at bc0fab085. The coordinator owns its final conclusion and
merge-tree identity check.

The PR head was unchanged at publication.
This pass did not download the large archives or run Lean, and it does not assess the
full mathematical proof.
The pinned checkout remained clean; no source was edited, committed or pushed.

@jlevy
jlevy merged commit df97672 into main Oct 13, 2026
149 of 169 checks passed
@jlevy
jlevy deleted the claude/stoic-clarke-jhfnru branch October 13, 2026 22:04
jlevy pushed a commit that referenced this pull request Oct 13, 2026
…into the profiles branch

Four conflicts. The document map and the synopsis table keep every row; RESULTS.md is
regenerated from the merged register; release.py keeps this branch's pin until the re-pin
that follows. Three of the landing's new credits take this branch's names: T-154's note
and its bibliography entry credit Hosono for the eleven sub-patterns of issue #472, and
the resources README corrects Ahmed's spelling. The dated review, repository identifiers
and the bibliography's quotation of Fitzharding's README keep the names they print. The
census joins two new spans by reviewed labels and leaves Fitzharding and MacIver
unresolved.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01PutxEsY69F3QeoTtc5jDQ3
jlevy pushed a commit that referenced this pull request Oct 13, 2026
… n = 17 Lean import (think-kf4u)

#588 credits the Lean proof that s(17) = L as "Fitzharding after Levy, Ahmed, MacIver".
oscar-fitzharding takes his name from the release's CITATION.cff and LICENSE, and links
GitHub ofitzharding and X @ofitzharding from the retained announcement and packet.
david-r-maciver takes his from the title pages of his three retained manuscripts, and
links GitHub DRMacIver from the retained commit. Both bios keep the AI-assistance
statements in their sources' terms. The four spans the census had left unresolved, two
for each, are joined on the records' own evidence; their profile pages enter the URL
register.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01PutxEsY69F3QeoTtc5jDQ3
jlevy pushed a commit that referenced this pull request Oct 14, 2026
jlevy pushed a commit that referenced this pull request Oct 14, 2026
…the closed-form root fix) into the record layer

results.yaml: main's T-154 (Fitzharding's Lean proof that s(17) = L) ends the results
list and this layer's generated regularized_drawings block follows it, unchanged
(`regularized_drawings --check`). release.py takes the grid-slack layer's pin and is
re-pinned next. test_regularize_evand.py: the closed-form root test, folded down to the
regularization-tools layer, is kept once, where that layer put it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RXar8v4JCumHp9eHemRgSA
jlevy pushed a commit that referenced this pull request Oct 14, 2026
…ord holds (think-8e0p)

The owner, 13 October 2026, on T-154's kind: "simplification is one thing but
formalization is another"; "let's go with formalization then".

- epistemics.md, Result Kinds: the kind formalization, which proves in a proof
  assistant a result the record already holds, by formalizing an existing
  argument or by a route of its own, and moves no bound by itself. A fifth kind
  rule: its claim names the result it formalizes or proves again; where a
  second proof fits both kinds it is a formalization, one no proof assistant
  checked stays a simplification, and a proof-assistant proof of a value the
  record does not hold takes that value's kind. The standing paragraph #588
  added covers both second-proof kinds. The vocabulary change is recorded,
  dated, where the 2026-10-01 change is.
- results.schema.yaml: formalization in the kind enum, after simplification.
- check_results: KINDS gains formalization; SECOND_PROOF_KINDS is the pair.
  Either may restate its result's relation in its headline and must name that
  result on a shared case. A formalization cites evidence whose method or
  reported_method is proof-assistant-checked, and a simplification that cites
  such evidence is refused.
- check_standing and render_recent_results: a formalization's claimed
  relations stand in for its kind's directions, with the same verified-lane
  guard and rung partition a simplification has.
- audit_t007_consumers: formalization is among the kinds that carry a lower
  bound on s(n).
- The all-results article, paper-design and result-import name the kind.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012JUyoHafZq55vksGxE4vPP
jlevy pushed a commit that referenced this pull request Oct 14, 2026
…ew C fixes) into the register layer

main's #588 registered T-154, Fitzharding's Lean proof that s(17) = L, so this layer's
batch of 59 exact regularized bounds moves to T-155; the next commit renumbers it.

- results.yaml: main's T-154 is kept unchanged and this layer's batch follows it as
  T-155; its T-009 and T-101 notes are this layer's.
- evidence.yaml: main's E-n017-fitzharding-lean-report and this layer's
  E-regularized-bounds-2026-10-12-exact-decision both kept, main's first.
- regularization-policy.md: this layer's item 7, which states the batch as registered,
  with its id as T-155; main had written "under the next free result id".
- release.py takes the record layer's pin and is re-pinned after the renumber.
- SYNOPSIS.md, site-urls.md, site-urls.yaml, RESULTS.md, INVENTORY.md and VERIFIERS.md
  are generated; they take this layer's side here and are regenerated with the
  renumber.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RXar8v4JCumHp9eHemRgSA
jlevy pushed a commit that referenced this pull request Oct 14, 2026
main's #588 registered T-154, Fitzharding's Lean proof that s(17) = L, so this layer's
59 exact regularized bounds take the next id. main's T-154 and every reference to it,
about n = 17, Fitzharding and Lean, are unchanged.

The id is defined once, as register_regularized_bounds.RESULT. The registrar rewrote
the 59 case records, and the renderers regenerated RESULTS.md, INVENTORY.md (which also
counts main's new evidence entry), the synopsis headline, bound-citations.json and the
regularized_drawings block. The URL registry was regenerated from the record layer's copy
against main's history: result/t-155.html is a new registration at the batch's
registration date, with the page-budget exception moved to it, and result/t-154.html
keeps main's binding. This layer's t-154 page was never published on main, so it needs
no forwarder.

Hand-written references to the batch now name T-155: the T-009 and T-101 notes and the
batch's own note on why it has its id (results.yaml); the code comments in
apply_exact_ceilings, catalogue_upper_bounds, generate_frontier_case, regularize_evand
and regularized_drawings; the atlas and regularized_bounds READMEs; the regularization
research report; and the test expectations, the workbench's citations test included.
The synopsis's research-status row counts 155 results, 124 by others.

check_results (T-001..T-155), register_regularized_bounds --check, regularized_drawings
--check and site_urls --check --history-ref origin/main pass.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RXar8v4JCumHp9eHemRgSA
jlevy pushed a commit that referenced this pull request Oct 14, 2026
…e batch renumbered T-155; review C fixes) into the #518 adoption layer

- regularize_evand.run_block: this layer's cost note (`measured_by`) and the record
  layer's reclassified-copy mark (`reclassified_from`, #548 review C, C3) are both kept.
- RESULTS.md is regenerated from the merged register.
- release.py takes the register layer's pin and is re-pinned next.

No hand-written reference to the batch as T-154 is left here: every T-154 in the tree is
main's (Fitzharding's Lean proof that s(17) = L), line for line.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RXar8v4JCumHp9eHemRgSA
jlevy pushed a commit that referenced this pull request Oct 14, 2026
…tch renumbered T-155; review C fixes; the fast identity re-measure) into the selection layer

Brings main's #588 (T-154, Fitzharding's Lean proof that s(17) = L) and #509, the
register layer's renumbering of the stack's regularized-bounds batch to T-155, #548's
review-C fixes and #559's cheaper identity search (`arrangement_gap`) up to the
selection layer.

Conflicts:
- release.py: the lower layer's, re-pinned next.
- regularize_grid_slack.decided: this layer's account of the table (the exact routes,
  the side against s_W and U, and the contact counts decide; rows 6 and 9 retired) with
  the lower layer's `routes`, which admission now runs on the view file as it is
  (`view_decided`, #548 review C, C1). The body merged cleanly: the routes feed this
  layer's exact `verified_bound` comparison unchanged.
- test_regularize_grid_slack: both sides' tests kept (this layer's closed-form bound
  test; the lower layer's report-dated grid run and file-decided admission tests).
- RESULTS.md: regenerated (below).

Kept from this layer: the exact closed-form U through `verified_bound` and
`held_bound`, `stated_bound`, `yield_to_bound`'s exact comparison, and `ABOVE_U` as the
seven named exceptions 18, 26, 66, 85, 110, 241 and 297.

Renamed T-154 -> T-155 where it means the stack's batch: the process guide's
registration paragraph, and packing/resources/README.md's credit of Evan Daniel's
regularizer, which the register layer's renumber missed. Every other T-154 is main's
(n = 17), or the dated review of 13 October, kept as history.

Generated files, with their tools: `--check-atlas` passes on the merged index, so it is
not rebuilt; `regularized_drawings` (86 items, 4 unregistered) now names T-155 at 87,
which the register holds again; `render_results --update`. The case records and the
site URL registry (`site_urls --write --history-ref origin/main`, 971 rows) do not
drift.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RXar8v4JCumHp9eHemRgSA
jlevy pushed a commit that referenced this pull request Oct 14, 2026
…he batch renumbered T-155; review C fixes) into the credit layer

Brings main's #588 (T-154, Fitzharding's Lean proof that s(17) = L), the register
layer's renumbering of the stack's regularized-bounds batch to T-155, #548's review-C
fixes and #559's cheaper identity search up to the credit layer.

Conflicts:
- release.py: the lower layer's, re-pinned next.
- The process guide's register-candidates paragraph: this layer's, which names
  `first_certified_in`, with the batch as T-155.
- RESULTS.md: regenerated (below).

`same_receipt` still reads `reclassified_from`: the field and the zeroed copy cost are
unchanged below.

Renamed T-154 -> T-155 where it means the stack's batch, by hand in what this layer
wrote: the policy's credit sections (question 16 and the modifications paragraph), the
atlas README's credit paragraph, the frontier README's `regularization` field, the two
schemas' descriptions, regularized_drawings' docstrings, and the tests'
fixtures, notes and on-record test (`test_t155_names_daniels_earlier_certificate_...`).
Every other T-154 is main's (n = 17), or the dated review of 13 October, kept as
history.

Generated files, with their tools: `--check-atlas` passes on the merged index;
`regularized_drawings` rewrites the 59 case records' credit notes and items to name
T-155 (59 `registered_in: T-155`; the 33 that name `first_certified_in: T-101` are
unchanged); `render_results --update`. The site URL registry
(`site_urls --write --history-ref origin/main`, 971 rows) does not drift.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RXar8v4JCumHp9eHemRgSA
jlevy pushed a commit that referenced this pull request Oct 14, 2026
…batch renumbered T-155; review C fixes) into the 290 registration layer; n = 290's result renumbered T-156

Main's #588 registered T-154 (Fitzharding's Lean proof that s(17) = L), and the register
layer renumbered the stack's 59-count batch T-154 -> T-155, so this layer's own result
for n = 290, T-155 until now, becomes T-156: the next id after both.

The renumbering was done on this layer's side before merging, in two passes that cannot
collide (one simultaneous substitution): first this layer's own T-155 -> T-156, then its
references to the batch, T-154 -> T-155. Every T-154 this layer wrote meant the batch,
since it predates #588; main's T-154 stays wherever main wrote it. Renamed so:
- T-156: the GRID batch's id in `register_regularized_bounds` (and its docstring and
  `--batch` help), the T-156 record, its regularization notes and the n-290 case
  record, the policy's question 16 example, the regularized-bounds README, the process
  guide, regularized_drawings' docstrings, the resources README's credit line, and the
  tests (`test_t156s_note_says_its_bound_follows_from_t155_by_monotonicity` among them).
- T-155 (the batch): "by monotonicity from T-155", T-156's `implied_by` results
  (selection.json) and composition, notes and evidence limitations, the n-290 case
  record, question 16, the README, the process guide and the tests
  (`test_n290s_bound_already_followed_from_t155s_certificate_at_n291`).

Conflicts, beyond the ids:
- release.py: the lower layer's, re-pinned next.
- regularize_grid_slack.decided: the lower layer's `routes` (admission's verdicts on
  the view file) and exact `verified_bound`, with this layer's keyword `upper`, which
  the registrar gives to ask how a view is decided once its side is the bound. A given
  `upper` is held as a rational `VerifiedBound`, so `below_bound` decides against it;
  otherwise the case record's U is held exactly, as below. Both imports kept
  (`grid_written_method`, `git_blob`).
- test_regularize_grid_slack and test_regularized_drawings: both sides' tests kept.
- SYNOPSIS.md's results row: 156 registered, 124 by others, as `check_synopsis` reads
  the merged register.
- INVENTORY.md, VERIFIERS.md and RESULTS.md: regenerated (below).

Generated files, with their tools: `register_regularized_bounds` (60 records and
receipts current), `--check-atlas`, `regularized_drawings` (no case record changes),
`render_results --update`, `render_verifiers --update`, `render_evidence_inventory
--update`, and `site_urls --write --history-ref origin/main`: 972 rows, result/t-156.html
a new registration with no forwarder, since it was never on main. `check_results` holds
T-001..T-156, contiguous.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RXar8v4JCumHp9eHemRgSA
jlevy pushed a commit that referenced this pull request Oct 14, 2026
…581, #507, #497, #509) into layer 5

Main's records are authoritative: T-153 (#557, n = 17), T-154
(Fitzharding's Lean proof, #588), T-155 (the regularized batch at 59
counts), #558's replies and #576's moves under docs/project/<kind>/ come
from main unchanged. Layer 5's rung reviews, significance confirmation,
intake rule, renderer and rollups sit on top. No layer 5 file was moved
by #576: its three reviews already live under docs/project/reviews/ with
lowercase names, and every relative link in them resolves on the merged
tree.

Conflicts, resolved by intent and re-rendered, never by hand:

- SYNOPSIS.md (glance rows and rollup rows): main's text kept, then the
  generated blocks re-rendered with devtools.render_results_headline,
  devtools.render_document_map and devtools.close_session --render. The
  glance rows carry main's T-155 and layer 5's three moved scores (T-053
  S4 to S3, T-063 S1 to S3, T-065 S3 to S2).
- packing/frontier/RESULTS.md: re-rendered with devtools.render_results
  --update.
- packing/campaign/session-close-report.yaml: re-rendered with
  devtools.close_session --render.

results.yaml merged without a textual conflict and was checked entry by
entry against the merge base. Main changed claim, composition or
next_rung in T-037 to T-043, T-047, T-059, T-061 and T-065 (the
Overbeck naming of think-ugbi and #571's review fixes); layer 5 changed
only their significance. Both are kept, and T-037's rationale carries
main's "Overbeck's" with layer 5's confirmation paragraph.

Layer 5 judgements that main overtakes:

- The confirmed rationales of T-038 and T-065 called the author of the
  n = 11 certificate and the n = 17 rational witness "Kleddamag's". Main's
  think-ugbi rule names him Overbeck in register prose, keeping the handle
  for identifiers and quotations, so both now read "Overbeck's". Scores
  unchanged.
- RR-6 of review-2026-10-11-recent-register-rungs.md quotes the
  next_rung of T-132 and T-142 to T-144 as queued "after the
  regularization work (#497)". Main has since reworded all
  four to "after the regularization of every packing (think-ux1v,
  planned in #497)". The review is dated and writes no
  record; its quotation stands as of 11 October, and its fix (the branch,
  the owner activity, T-142's held control, T-144's price basis) is still
  unapplied on main.
- T-155's notes on main supersede T-009 and T-101 as ceilings. Layer 5
  scored both (S3 and S2) against other entries; supersession moves no
  score, so neither changes. T-153, T-154 and T-155 postdate the
  significance review and keep main's scores.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01UXZs37jGv5vqVGADH7Gkn8
jlevy pushed a commit that referenced this pull request Oct 14, 2026
; T-153 to T-156) into layer 6 (think-cq95)

Main registered T-153 (the n = 17 candidate proof), T-154 (Fitzharding's Lean proof),
T-155 (the 59 exact regularized sides) and T-156 (s(290) by monotonicity) while this layer
was open; the commit before this one renumbered the layer's four entries to T-157 to
T-160, so the ids no longer collide. Main's records are authoritative and the layer's
entries and adoptions go on top. Conflicts, by intent:

- results.yaml: main's T-153..T-156, then the layer's T-157..T-160, then main's
  generated regularized_drawings block, rewritten by devtools.regularized_drawings.
- evidence, source coverage, bibliography, archive README, request record: both sides'
  additions kept, main's first. verifiers.yaml: the upper_bound_reports summary in
  main's wrapping with the layer's Rio Calle adapter. Document map: both sets.
  result-import.md: main's wording of the intake-label rule (same meaning).
- Case records 154, 175, 232 and 264: main's records (credit layer, regularization
  notes, T-155's exact ceiling at 264) re-adopted by main's devtools.adopt_houses, so
  the 12 October pass archive (house-adoption-prior-state-2026-10-12) now retains them
  as that pass read them and main's writer-replay test holds. Its coverage sections were
  rewritten from main's by the same run: each displaced house is a superseded row.
- n = 264: T-155 had made its exact regularized side the verified upper bound; T-158 is
  3.44e-03 below it. adopt_houses puts T-155's dated paragraph and section into the past
  (_regularized_certificate, and "As printed it is" in the ceiling section);
  register_regularized_bounds leaves a count a later house holds to adopt_houses
  (readopted) and holds its bound below the view; regularized_drawings does not ask the
  item's first_certified_in of such a count. Tests for each.
- n = 154: the lineage paragraph the layer added by hand is the writer's now (a
  `lineage` field on Prose), so the record is the writer's output.
- n = 102: main's writer owns adopted records, so the layer's hand-written T-159
  priority note and section give way to the writer's "other certificates ... T-159 ...
  stay verified and are not selected"; the T-159 evidence stays on the roster.
- Regularized layer: main's index; regularize_axis_components --update-atlas --n 154
  175 232 264 (175's grid-slack view of T-140 lapsed with its witness; the four views are
  byte-identical to the layer's), render_regularized_atlas --update, default_drawings
  --update (91 views, 80 default), regularized_drawings.
- Credit attributions: Guzhou0806's current sources from the layer, Overbeck's record
  from main. Tests: slow registry keeps main's comments and both sides' functions, the
  #528/#529 decide function added for its marked cases; test_result_status's comment
  both; the conjecture test plans 232 from its first pass, since T-158 re-adopted it.
- Rollups: the later of the two rollups of each shared log; release.py main's pin until
  the re-pin.
- Regenerated by their tools: custody (50 houses, 103 inputs, 32 mutations), rigidity at
  the four counts, case verifier tables, bound citations, RESULTS, INVENTORY, STATUS,
  VERIFIERS, the URL registry (with the layer's t-037 amendment), the synopsis document
  map and session-close rows; the synopsis counts 160 results, 128 by others. Markdown
  formatted with flowmark-rs 0.4.0.

packing-validate --records passes (51 steps).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01UXZs37jGv5vqVGADH7Gkn8
@jlevy jlevy added the S5 Landmark mathematical advance or major resolution label Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S5 Landmark mathematical advance or major resolution

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants