From e950f0eef3586d5a7aae64fd491adfa84ba82176 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 6 Oct 2026 17:27:01 +0000 Subject: [PATCH] Lifetime note TS packet: store the note, its controls, three slice reads, the AMEND successor text and its readback (custody only) Stores lifetime note TS (main#229 6020794123; the kappa <= 1 side of IBA2-009) byte for byte, with its claim, main#259 pickup and pointer, controls comment, read request and summonses, the three Cursor verdicts (B PASS, C PASS, A-D AMEND), the author's successor text applying the AMEND exactly, its readback (PASS) and the read-complete note with this packet's D5 claim (6021671402). ts_exact.py and its stdout are extracted by the stated fence rule. replay.py is Math-#384's replay at 6b4c70e9 with this packet's paths, 13 exact rejection fingerprints and the negative control C4 = 131 -> 130 (fails at S3_constants). Scientific effect NONE. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01NMeKEismAyeqgdB4sy2NJU --- .github/workflows/ts-small-kappa.yml | 64 ++ frontiers/ts_small_kappa_20261006/README.md | 77 +++ .../ts_small_kappa_20261006/SOURCES.json | 271 ++++++++ .../TS/AUTHOR_CONTROLS_COMMENT.md | 484 ++++++++++++++ .../TS/AUTHOR_READ_COMPLETE_AND_CLAIM.md | 28 + ...HOR_SUCCESSOR_TEXT_AND_READBACK_SUMMONS.md | 62 ++ frontiers/ts_small_kappa_20261006/TS/CLAIM.md | 29 + .../TS/DELIVERED_POINTER_main259.md | 15 + .../TS/PICKUP_IBA2_009_main259.md | 20 + frontiers/ts_small_kappa_20261006/TS/PROOF.md | 618 ++++++++++++++++++ .../TS/READBACK_SUCCESSOR_TEXT.md | 25 + .../TS/READ_REQUEST_SLICE_B_SUMMONS.md | 31 + .../TS/REVIEW_SLICES_AD.md | 69 ++ .../TS/REVIEW_SLICES_AD_SUMMONS.md | 24 + .../TS/REVIEW_SLICE_B.md | 41 ++ .../TS/REVIEW_SLICE_C.md | 16 + .../TS/REVIEW_SLICE_C_SUMMONS.md | 20 + .../TS/author_controls.py | 435 ++++++++++++ .../TS/author_controls_stdout.json | 1 + frontiers/ts_small_kappa_20261006/replay.py | 340 ++++++++++ tests/test_ts_small_kappa_replay_evidence.py | 215 ++++++ tests/test_ts_small_kappa_replay_protocol.py | 230 +++++++ 22 files changed, 3115 insertions(+) create mode 100644 .github/workflows/ts-small-kappa.yml create mode 100644 frontiers/ts_small_kappa_20261006/README.md create mode 100644 frontiers/ts_small_kappa_20261006/SOURCES.json create mode 100644 frontiers/ts_small_kappa_20261006/TS/AUTHOR_CONTROLS_COMMENT.md create mode 100644 frontiers/ts_small_kappa_20261006/TS/AUTHOR_READ_COMPLETE_AND_CLAIM.md create mode 100644 frontiers/ts_small_kappa_20261006/TS/AUTHOR_SUCCESSOR_TEXT_AND_READBACK_SUMMONS.md create mode 100644 frontiers/ts_small_kappa_20261006/TS/CLAIM.md create mode 100644 frontiers/ts_small_kappa_20261006/TS/DELIVERED_POINTER_main259.md create mode 100644 frontiers/ts_small_kappa_20261006/TS/PICKUP_IBA2_009_main259.md create mode 100644 frontiers/ts_small_kappa_20261006/TS/PROOF.md create mode 100644 frontiers/ts_small_kappa_20261006/TS/READBACK_SUCCESSOR_TEXT.md create mode 100644 frontiers/ts_small_kappa_20261006/TS/READ_REQUEST_SLICE_B_SUMMONS.md create mode 100644 frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICES_AD.md create mode 100644 frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICES_AD_SUMMONS.md create mode 100644 frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICE_B.md create mode 100644 frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICE_C.md create mode 100644 frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICE_C_SUMMONS.md create mode 100644 frontiers/ts_small_kappa_20261006/TS/author_controls.py create mode 100644 frontiers/ts_small_kappa_20261006/TS/author_controls_stdout.json create mode 100644 frontiers/ts_small_kappa_20261006/replay.py create mode 100644 tests/test_ts_small_kappa_replay_evidence.py create mode 100644 tests/test_ts_small_kappa_replay_protocol.py diff --git a/.github/workflows/ts-small-kappa.yml b/.github/workflows/ts-small-kappa.yml new file mode 100644 index 000000000..ad409c3ad --- /dev/null +++ b/.github/workflows/ts-small-kappa.yml @@ -0,0 +1,64 @@ +name: Lifetime note TS replay + +'on': + pull_request: + paths: + - 'frontiers/ts_small_kappa_20261006/**' + - 'tests/test_ts_small_kappa_replay_protocol.py' + - 'tests/test_ts_small_kappa_replay_evidence.py' + - '.github/workflows/ts-small-kappa.yml' + workflow_dispatch: + +permissions: + contents: read + +jobs: + replay: + runs-on: ubuntu-latest + timeout-minutes: 45 + strategy: + fail-fast: false + matrix: + mode: ['-B -S', '-B -O -S'] + name: replay (python ${{ matrix.mode }}) + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 + with: + persist-credentials: false + - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 + with: + python-version: '3.11.16' + - name: Verify protocol, stored identities, extractions and all published controls + env: + PYTHONDONTWRITEBYTECODE: '1' + shell: bash + run: | + set -euo pipefail + out="$RUNNER_TEMP/qs-replay-evidence" + mkdir -p "$out/logs" + python ${{ matrix.mode }} -m unittest discover -s tests -p test_ts_small_kappa_replay_protocol.py -v 2>&1 | tee "$out/logs/protocol.txt" + python ${{ matrix.mode }} -m unittest discover -s tests -p test_ts_small_kappa_replay_evidence.py -v 2>&1 | tee "$out/logs/process-evidence-tests.txt" + QS_REPLAY_EVIDENCE_DIR="$out/children" python ${{ matrix.mode }} frontiers/ts_small_kappa_20261006/replay.py 2>&1 | tee "$out/logs/replay.txt" + git diff --exit-code + test -z "$(git status --porcelain)" + - name: Preserve exact public sources and available execution logs + if: always() + shell: bash + run: | + set -euo pipefail + out="$RUNNER_TEMP/qs-replay-evidence" + mkdir -p "$out" + cp -a frontiers/ts_small_kappa_20261006 "$out/packet" + cp tests/test_ts_small_kappa_replay_protocol.py "$out/" + cp tests/test_ts_small_kappa_replay_evidence.py "$out/" + cp .github/workflows/ts-small-kappa.yml "$out/" + git rev-parse HEAD > "$out/tested_commit.txt" + printf '%s\n' '${{ matrix.mode }}' > "$out/mode.txt" + printf '%s\n' "$GITHUB_RUN_ID/$GITHUB_RUN_ATTEMPT" > "$out/run.txt" + - name: Retain evidence on success or failure + if: always() + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 + with: + name: qs-replay-${{ strategy.job-index }}-${{ github.run_id }}-${{ github.run_attempt }} + path: ${{ runner.temp }}/qs-replay-evidence/ + if-no-files-found: error diff --git a/frontiers/ts_small_kappa_20261006/README.md b/frontiers/ts_small_kappa_20261006/README.md new file mode 100644 index 000000000..56bef8168 --- /dev/null +++ b/frontiers/ts_small_kappa_20261006/README.md @@ -0,0 +1,77 @@ +# Lifetime note TS: exact records and a replayable checker + +Incorporated on 6 October 2026. **Scientific effect: NONE. No new mathematics and no status change.** + +This packet stores lifetime note TS in the repository, byte for byte. The note was posted on [main#229](https://github.com/d6g8k5htny-coder/main/issues/229), with a pickup and a delivery pointer on [main#259](https://github.com/d6g8k5htny-coder/main/issues/259) (IBA2-009). It holds: +- the frozen note and the author's claim, pickup and delivery pointer; +- the controls comment, and the control script `ts_exact.py` with its stdout, extracted verbatim from it; +- the read request and summonses, every nonauthor pickup and verdict of record, the author's successor text for the one amendment, its readback, and the author's read-complete note. + +Anthropic Claude, who is also the author of the note, incorporated it under claim [6021671402](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6021671402). This is custody only; no proof byte is changed. `SOURCES.json` pins every stored file (16 files, one control script) by byte count and SHA-256, and `replay.py` verifies all of it. + +## Status and attribution + +- **Author.** Anthropic Claude (session `session_01NMeKEismAyeqgdB4sy2NJU`), for Dylan Roy (delegated AI work). The author also wrote [N] (#240), #237, #242–#244 and note TL, which the note consumes. +- **Reads.** Three slices and one readback, each read by a Cursor cloud agent running xAI Grok 4.7 (`grok-4.7-high-fast`; non-Claude, nonauthor), summoned one bounded task at a time under D2 of [6002718035](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6002718035). Slices B and C passed; Slices A–D asked for one amendment, which was applied as successor text and read back PASS. Every read goes through the same GitHub account, so organizational independence is **0** for all of them. None is an owner reading. +- **Verdicts are scoped.** A PASS passes the slice as the note states it, conditional on the cited inputs, and discharges nothing. +- **Amendments of record.** One. The Slices A–D read [6020822268](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020822268) found one false comparison in §1 Step 2 (`|x − M| ≤ r|ξ|`; the correct bound is `r√(1 + r²)|ξ| ≤ r√2`). The author applied it exactly, as three replacements in §1, in the successor text [6021299833](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6021299833) §2. Its readback is PASS ([6021301151](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6021301151)). No constant, exponent or stated bound changes, and the stored note body is the frozen one. +- **Author-side referee.** Before posting, three clean-context referee passes in the same session read the note in three slices. They are not review evidence; their reports are kept in the project archive. +- **Conditionality.** Every statement is conditional on the consumed sources at their stated scopes: + - note TL ([6017975404](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6017975404), read in three slices; its custody packet is Math-#384); + - [N] (#240), #237, #229, #220, #198, [182], #218, #242 and [R] (R5); + - #187, for the last form of (TS.1). + + The note's header lists their blobs. +- **What governs.** The note's own statement, hypotheses and "not claimed" section govern, read with the successor text. The summary below paraphrases them. +- **Not edited here.** No other packet, no `PROOF_INDEX.md`, STATUS, register or graph. + +| Slice | Scope | Verdict (reader) | +|---|---|---| +| B | §2: Lemma W⁻, (2.2⁻), Lemma GE⁻, Proposition RW⁻; control S3 with M4 | PASS (Cursor `bc-fc3c840f…`, [6020812551](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020812551)) | +| C | §§3–4: Lemma Δ⁻ and Steps 1–6 of Theorem TL⁻; S4, S6 with M8, M9 | PASS (Cursor `bc-13c209f1…`, [6020820817](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020820817)) | +| A–D | §1 (Lemma S″), §0 and §§5–7: (5.0), Corollaries TS and TS′, the ledger, the remarks, the header; S1, S2, S5 with their mutants | AMEND, one comparison in §1 Step 2 (Cursor `bc-2bf93428…`, [6020822268](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020822268)) | +| readback | the successor text [6021299833](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6021299833) §2 against the AMEND | PASS (Cursor `bc-8e7c19e7…`, [6021301151](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6021301151)) | + +## What the note states (paraphrase; the note governs) + +The setting is note TL's, which follows [N] §0, #237 §§0–1 and #242 §0. `𝐓_r^{eld}` and `𝐓_r^{rej}` are the elder and rejected kernels integrated over the birth height, `𝓐^{rej}(κ, u)` is the rejected cusp limit (#242), and `κ = k/r`. +- **Lemma S″ (a rescaled elder barrier).** For `0 < k ≤ r`, `E_Q[(W_r/r²)e] ≤ Cr²(κ + r)κ^{2/3}P^N`, so `𝐓_r^{eld} ≤ C(κ + r)κ^{2/3}`. This is #220's Lemma S′ improved by the factor `r^{4/3}`. + - The proof runs [182]'s barrier in [N]'s window coordinates, where the pins make every third derivative `O(𝒩)`. + - The successor text corrects one distance comparison in its Step 2 (`r√(1 + r²)|ξ|` in place of `r|ξ|`). No constant or result changes. +- **Theorem TL⁻ (the rejected kernel for `κ ≤ 1`).** For each `θ ∈ (0, 1)`, `|𝐓_r^{rej}(k, u) − 𝓐^{rej}(κ, u)| ≤ C_θ(κr² + r³/κ)` on `r^θ ≤ κ ≤ 1`. It is note TL's proof with `κ ≤ 1` scalings. +- **The contact cancellation (5.0).** `r^{−2}𝐀₀(κr, u) − 𝓐^{con}(κ, u) = (e^{−a₀k²} − 1)𝓐^{con}(κ, u)` for every `k ≥ 0`. It removes note TL's ledger row `ℓ²ρ^{−7}`. +- **Corollary TS.** + - `ν_eld(ℓ) = cℓ^{−1/3} + c₁ℓ^{1/4} + c₂ℓ^{1/3} + ν_eld^{far,r_0^*}(ℓ) + O(ℓ^{4/7}log(1/ℓ))`, and `ρ_rej` likewise. + - For SIDE24 the relative remainder is `O(ℓ^{19/21}log(1/ℓ))`. +- **Corollary TS′.** Neither the elder nor the rejected density has a term of order `ℓ^{1/2}`. With note TL's `κ ≥ 1` side, this is the global statement IBA2-009 asks for, at the scope of the consumed sources. + +## What the note does not establish + +From the note's "not claimed" section: +- no sharpness of `4/7`; +- nothing pointwise in `b`, and no identification of further terms; +- no certified numerical value, and no uniformity in `d` or `L`; +- whether IBA2-009 closes, which is for the audit's owners. + +## Not included + +- **The consumed sources** (note TL, [N], #237, #229, #220, #198, [182], #218, #242, #187, [R]). The packets are on `main` at their own paths; note TL's custody packet is Math-#384. +- **The clean-context referee reports** and their exploration scripts (same provider and session; not review evidence). They are kept in the project archive. +- **Coordination comments** that record no pickup, verdict or author response. + +## Replay + + python3 -B -S frontiers/ts_small_kappa_20261006/replay.py + python3 -B -O -S frontiers/ts_small_kappa_20261006/replay.py + +`replay.py` uses the standard library only and takes a few seconds per mode. It is Math-#384's replay (itself Math-#360's planar packet replay, and that the QS `d = 3` packet's hardened replay), with this packet's paths, fingerprints and negative control. It runs four checks: +1. **Identities.** Every stored file has the identity pinned in `SOURCES.json`, and the tree holds nothing else. +2. **Extraction.** `TS/author_controls.py` and `TS/author_controls_stdout.json` equal the fenced payloads in the stored controls comment, under the rule it states (that of [5971055189](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-5971055189)). The stdout is a ```` ```json ```` fence. +3. **The checker.** `ts_exact.py` reproduces its published stdout byte for byte under the current interpreter's `-O`/`-S` flags, with empty stderr. + - Each of its 10 mutants and 3 invalid invocations reproduces its exact source-bound rejection: exit code, stdout and stderr fingerprints, with the intended group. An exit code alone does not pass. + - The fingerprint table in `replay.py` was derived from the unchanged checker at incorporation, under both interpreter modes. +4. **Negative controls.** + - A one-byte change to the stored note (`TS/PROOF.md`) is detected. + - A checker with one changed constant (S3's `C₄ = 131` replaced by `130`) is rejected, failing exactly at `S3_constants`. + +The workflow `.github/workflows/ts-small-kappa.yml` runs on Python 3.11.16. It runs the protocol and raw-evidence tests (`tests/test_ts_small_kappa_replay_protocol.py`, `tests/test_ts_small_kappa_replay_evidence.py`), then the replay in both modes, as two jobs. These finite controls support algebra only, as the reads say; they do not prove the analytic statements. diff --git a/frontiers/ts_small_kappa_20261006/SOURCES.json b/frontiers/ts_small_kappa_20261006/SOURCES.json new file mode 100644 index 000000000..afcab7da4 --- /dev/null +++ b/frontiers/ts_small_kappa_20261006/SOURCES.json @@ -0,0 +1,271 @@ +{ + "schema": 2, + "object": "LIFETIME-NOTE-TS-INCORPORATION-20261006-v1", + "kind": "additive incorporation of public native note, review and checker records; no new mathematics; no status change", + "scientific_effect": "NONE", + "incorporated_by": { + "performer": "Anthropic Claude", + "session": "https://claude.ai/code/session_01NMeKEismAyeqgdB4sy2NJU", + "attribution": "Dylan Roy - delegated AI work", + "claim": "https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6021671402", + "note": "the incorporator is also the author of note TS (custody only; no proof byte is changed)" + }, + "source_issues": [ + "https://github.com/d6g8k5htny-coder/main/issues/229", + "https://github.com/d6g8k5htny-coder/main/issues/259" + ], + "extraction_rule": "the rule the controls comment states (that of main#229 comment 5971055189): the control script is the exact text between the first ```python fence after its heading and the next ``` line, plus a final newline; its expected stdout is the single JSON line of the following ```json fence, plus one newline", + "related_packets": { + "frontiers/elder_cusp_parity_20261002/": "[N] (#240): the window coordinates, Lemma Q' and the pathwise decision lemmas that note TS adapts to kappa <= 1", + "frontiers/candidate_parity_rate_20261001/": "#237: Lemmas K, R and U and Theorem P, consumed by Corollary TS and the cancellation (5.0)", + "frontiers/third_order_rate_20261001/": "#229: Proposition W+ ((W+.2)), the typed bound on the intermediate elder mass", + "frontiers/elder_third_order_20261001/": "#220: Lemma H and the proof of Lemma S', which Lemma S'' improves by r^(4/3)", + "frontiers/soft_rejected_pairs_20261002/": "#242: the cusp limit of the rejected kernel, the target of Theorem TL-", + "frontiers/tl_soft_layer_20261006/": "note TL (the kappa >= 1 side), if Math-#384 has landed; otherwise main#229 6017975404" + }, + "excluded": { + "routing comments": "coordination comments that do not record a pickup, verdict or author response are not stored", + "clean-context referee reports": "same-provider, same-session referee reports and exploration scripts (not review evidence) are kept in the project archive, not here" + }, + "objects": [ + { + "tag": "TS", + "directory": "TS/", + "object": "CL-TS-SMALL-KAPPA-20261006-v1", + "title": "Lifetime note TS: the kappa <= 1 side of IBA2-009 (TAIL-S), a rescaled elder barrier, and the elder and rejected densities with remainder l^(4/7) log(1/l)", + "author": "Anthropic Claude (session_01NMeKEismAyeqgdB4sy2NJU), for Dylan Roy (delegated AI work)", + "kind": "Lemma S'' (E_Q[(W_r/r^2) e] <= C r^2 (kappa + r) kappa^(2/3) P^N for 0 < k <= r), Theorem TL- (|T_r^rej(k,u) - A^rej(kappa,u)| <= C_theta (kappa r^2 + r^3/kappa) on r^theta <= kappa <= 1), Lemmas W-, GE-, Delta-, Proposition RW-, the contact cancellation (5.0), Corollary TS (nu_eld and rho_rej with O(l^(4/7) log(1/l))) and Corollary TS' (no l^(1/2) term in either density); the control script checks finite algebra only", + "read_with": "the author successor text https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6021299833 (section 2), which applies the AMEND https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020822268 exactly: three replacements in section 1 (|x - M| <= r sqrt(1 + r^2)|xi| <= r sqrt(2); the (3,0) gradient term sqrt(2) C0 N_r; |Phi(M^ + xi) - M| <= r sqrt(2)|xi| <= L/4); readback PASS https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6021301151. The stored note body is unchanged.", + "nonauthor_reads_as_recorded": [ + "Slice B (section 2; S3, M4): Cursor agent bc-fc3c840f (xAI Grok 4.7; non-Claude, nonauthor), PASS, 6020812551", + "Slice C (sections 3-4; S4, S6, M8, M9): Cursor agent bc-13c209f1 (xAI Grok 4.7; non-Claude, nonauthor), PASS, 6020820817", + "Slices A-D (sections 1, 0, 5-7; S1, S2, S5): Cursor agent bc-2bf93428 (xAI Grok 4.7; non-Claude, nonauthor), AMEND, 6020822268", + "author successor text 6021299833: the AMEND applied exactly (three replacements in section 1; no constant, exponent or result changes)", + "readback of the successor text: Cursor agent bc-8e7c19e7 (xAI Grok 4.7; non-Claude, nonauthor), PASS, 6021301151" + ], + "conditional_on": "note TL (main#229 6017975404; custody packet Math-#384), [N] (#240), #237, #229, #220, #198, [182], #218, #242, [R] (R5) and, for the last form of (TS.1), #187, at their stated scopes (blobs listed in the note header)", + "not_claimed": "no sharpness of 4/7; nothing pointwise in b; no identification of further terms; no certified number; no uniformity in d or L; whether IBA2-009 closes is for the audit's owners", + "organizational_independence": 0, + "stored": [ + { + "path": "TS/CLAIM.md", + "role": "author work claim (note TS)", + "comment": "6019827162", + "url": "https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6019827162", + "created_at": "2026-10-06T15:38:48Z", + "updated_at": "2026-10-06T15:38:48Z", + "bytes": 4431, + "sha256": "c73f1d9fce36bced8c2554a4ee454b379748a52b820d32e5b5e07d3bfcd17aa9" + }, + { + "path": "TS/PICKUP_IBA2_009_main259.md", + "role": "author pickup on main#259 (IBA2-009, the kappa <= 1 side, TAIL-S)", + "comment": "6019832792", + "url": "https://github.com/d6g8k5htny-coder/main/issues/259#issuecomment-6019832792", + "created_at": "2026-10-06T15:39:07Z", + "updated_at": "2026-10-06T15:39:07Z", + "bytes": 2265, + "sha256": "607082cfcca0e49d36b0530b3502e003f3e9ad854ef7d64e61e4aa4eab7b0cb8" + }, + { + "path": "TS/PROOF.md", + "role": "frozen note (lifetime note TS)", + "comment": "6020794123", + "url": "https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020794123", + "created_at": "2026-10-06T16:31:51Z", + "updated_at": "2026-10-06T16:31:51Z", + "bytes": 52499, + "sha256": "add203d64536a5e948ba4e272c14494326f373f26aa99c390a1a6b726f10b400" + }, + { + "path": "TS/AUTHOR_CONTROLS_COMMENT.md", + "role": "author controls comment (contains ts_exact.py and its stdout)", + "comment": "6020799284", + "url": "https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020799284", + "created_at": "2026-10-06T16:32:09Z", + "updated_at": "2026-10-06T16:32:09Z", + "bytes": 24674, + "sha256": "3bc78b5eb2a663d665a9880dc3836a668c47af8729f3c98fcbf7c4d338262bb2" + }, + { + "path": "TS/READ_REQUEST_SLICE_B_SUMMONS.md", + "role": "author read request (three slices) with the Slice B summons of one Cursor agent (D2 of 6002718035); releases the work claim", + "comment": "6020811116", + "url": "https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020811116", + "created_at": "2026-10-06T16:32:50Z", + "updated_at": "2026-10-06T16:32:50Z", + "bytes": 4662, + "sha256": "a53a321da0d4386cd0373a0398910469ae8ae2611be1465d9aeceafdbaf9272d" + }, + { + "path": "TS/REVIEW_SLICE_C_SUMMONS.md", + "role": "Slice C summons (one Cursor agent, D2 of 6002718035)", + "comment": "6020819748", + "url": "https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020819748", + "created_at": "2026-10-06T16:33:20Z", + "updated_at": "2026-10-06T16:33:20Z", + "bytes": 2723, + "sha256": "b50d722ece160799422557cbeb9cf7f62011bba402ac033d3bbcd0fa8bc9ca7d" + }, + { + "path": "TS/REVIEW_SLICES_AD_SUMMONS.md", + "role": "Slices A-D summons (one Cursor agent, D2 of 6002718035)", + "comment": "6020820922", + "url": "https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020820922", + "created_at": "2026-10-06T16:33:24Z", + "updated_at": "2026-10-06T16:33:24Z", + "bytes": 3311, + "sha256": "53858363e7a7f96e51ff45f2250b2d2861ed29ba66b0b7f38c597d15b6224e3d" + }, + { + "path": "TS/DELIVERED_POINTER_main259.md", + "role": "author delivery pointer on main#259", + "comment": "6020826510", + "url": "https://github.com/d6g8k5htny-coder/main/issues/259#issuecomment-6020826510", + "created_at": "2026-10-06T16:33:43Z", + "updated_at": "2026-10-06T16:33:43Z", + "bytes": 2433, + "sha256": "684c52f0075a63d56a3f4b8239d565fe78da7997f1a67dcd11999b0d73444d07" + }, + { + "path": "TS/REVIEW_SLICE_B.md", + "role": "Slice B (section 2; control S3 with mutant M4): PASS, Cursor agent bc-fc3c840f (xAI Grok 4.7); pickup and verdict in one comment, an edit of the cursor[bot] acknowledgement (GitHub refused a new comment)", + "comment": "6020812551", + "url": "https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020812551", + "created_at": "2026-10-06T16:32:55Z", + "updated_at": "2026-10-06T16:43:31Z", + "bytes": 10488, + "sha256": "178d337db501090ba411086e602fa76840a35d6c6dd59df2dd266c3f7dbb1b01" + }, + { + "path": "TS/REVIEW_SLICE_C.md", + "role": "Slice C (sections 3-4; S4, S6, M8, M9): PASS, Cursor agent bc-13c209f1 (xAI Grok 4.7); pickup and verdict in one edited acknowledgement (GitHub refused a new comment)", + "comment": "6020820817", + "url": "https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020820817", + "created_at": "2026-10-06T16:33:24Z", + "updated_at": "2026-10-06T16:43:44Z", + "bytes": 3440, + "sha256": "db95de7b2b4385bdedc187b9ddb422cf7eaa0cb0e709eb689fb917671c33d3f1" + }, + { + "path": "TS/REVIEW_SLICES_AD.md", + "role": "Slices A-D (section 1, section 0 and sections 5-7; S1, S2, S5 and their mutants): AMEND (one comparison in section 1 Step 2; no constant, exponent or stated bound changes), Cursor agent bc-2bf93428 (xAI Grok 4.7); pickup and verdict in one edited acknowledgement", + "comment": "6020822268", + "url": "https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020822268", + "created_at": "2026-10-06T16:33:28Z", + "updated_at": "2026-10-06T16:49:58Z", + "bytes": 11241, + "sha256": "11d38e183e51e4d07c2464550fc75f8f9bc4145c34ec1f2ae82e3caf69f5c83d" + }, + { + "path": "TS/AUTHOR_SUCCESSOR_TEXT_AND_READBACK_SUMMONS.md", + "role": "author round note: the three verdicts, the successor text applying the AMEND exactly (three replacements in section 1), and the readback summons (one Cursor agent, D2 of 6002718035)", + "comment": "6021299833", + "url": "https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6021299833", + "created_at": "2026-10-06T17:01:41Z", + "updated_at": "2026-10-06T17:01:41Z", + "bytes": 6278, + "sha256": "8feda964c7e5b5098963fd797159cc04ed89f8a6b0a549522c8ff71f7c3f8e11" + }, + { + "path": "TS/READBACK_SUCCESSOR_TEXT.md", + "role": "readback of the successor text against the AMEND: PASS, Cursor agent bc-8e7c19e7 (xAI Grok 4.7); pickup and verdict in one edited acknowledgement", + "comment": "6021301151", + "url": "https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6021301151", + "created_at": "2026-10-06T17:01:45Z", + "updated_at": "2026-10-06T17:05:21Z", + "bytes": 4686, + "sha256": "6639953960a1145a3c5a8da506f31afc2ec449abcd7f6732c3df663249c69822" + }, + { + "path": "TS/AUTHOR_READ_COMPLETE_AND_CLAIM.md", + "role": "author note (read-complete in every slice) and D5 claim for this custody packet", + "comment": "6021671402", + "url": "https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6021671402", + "created_at": "2026-10-06T17:23:18Z", + "updated_at": "2026-10-06T17:23:18Z", + "bytes": 2566, + "sha256": "8017c085cc79aca1fbf3102e3087c526d76f7fad598d71aced5f666cd3bbc88f" + }, + { + "path": "TS/author_controls.py", + "role": "control script ts_exact.py, extracted verbatim from the stored controls comment TS/AUTHOR_CONTROLS_COMMENT.md (heading: ### ts_exact.py)", + "extracted_from": "TS/AUTHOR_CONTROLS_COMMENT.md", + "heading": "### ts_exact.py", + "bytes": 20043, + "sha256": "0337e78c58a975e9049550347f2c0e5901f1fae022afcf5abb4da948b55eba59" + }, + { + "path": "TS/author_controls_stdout.json", + "role": "published stdout of TS/author_controls.py, extracted verbatim from TS/AUTHOR_CONTROLS_COMMENT.md (```json fence)", + "extracted_from": "TS/AUTHOR_CONTROLS_COMMENT.md", + "heading": "### ts_exact.py", + "bytes": 185, + "sha256": "f5d11868721c23382ae0a961843ef6ad34c7cf79200108c78d65a5c9e1e17b71" + } + ], + "replays": [ + { + "name": "ts_exact.py (stdout in a ```json fence)", + "script": "TS/author_controls.py", + "stdout": "TS/author_controls_stdout.json", + "args": [], + "mutants": [ + [ + "--mutant", + "M1" + ], + [ + "--mutant", + "M2" + ], + [ + "--mutant", + "M3" + ], + [ + "--mutant", + "M4" + ], + [ + "--mutant", + "M5" + ], + [ + "--mutant", + "M6" + ], + [ + "--mutant", + "M7" + ], + [ + "--mutant", + "M8" + ], + [ + "--mutant", + "M9" + ], + [ + "--mutant", + "M10" + ] + ], + "invalid": [ + [ + "--bogus" + ], + [ + "--mutant", + "M11" + ], + [ + "--mutant" + ] + ] + } + ] + } + ] +} diff --git a/frontiers/ts_small_kappa_20261006/TS/AUTHOR_CONTROLS_COMMENT.md b/frontiers/ts_small_kappa_20261006/TS/AUTHOR_CONTROLS_COMMENT.md new file mode 100644 index 000000000..53644695b --- /dev/null +++ b/frontiers/ts_small_kappa_20261006/TS/AUTHOR_CONTROLS_COMMENT.md @@ -0,0 +1,484 @@ +## Lifetime note TS: author controls, exact executable and stdout + +This publishes the standard-library control script that note TS ([6020794123](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020794123)) cites in §7, so anyone can replay it. It checks the finite algebra of the note: the pin relation (1.1) on pinned polynomial profiles, the window-coordinate rescaling and the barrier algebra of Lemma S″, the constants of Lemmas W⁻, GE⁻ and Δ⁻, Lemma Δ⁻'s edge mechanism on exact polynomial models, the ledger of Corollary TS with every exponent derived from its integral, and the domination of every error monomial of §§2–4 by `κr² + r³/κ`. It does not prove the analytic statements; §7 of the note lists what no control covers. + +Dylan Roy — delegated AI work. Actual performer: Anthropic Claude (session `session_01NMeKEismAyeqgdB4sy2NJU`). Scientific effect: NONE. + +**Extraction rule.** The same as in [5971055189](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-5971055189): the file is the exact text between the first ```` ```python ```` fence after its `###` heading and the next ```` ``` ```` line, plus a final newline. The expected stdout is the single JSON line in the following ```` ```json ```` fence, plus one newline. + +**Identities.** `ts_exact.py`: 20,043 B, SHA-256 `0337e78c58a975e9049550347f2c0e5901f1fae022afcf5abb4da948b55eba59`. Stdout: 185 B, SHA-256 `f5d11868721c23382ae0a961843ef6ad34c7cf79200108c78d65a5c9e1e17b71`. + +**Run.** A full run takes about 0.3 s. +- `python3 -B -S ts_exact.py`: exit 0, with exactly the stdout below. +- `python3 -B -O -S ts_exact.py`: byte-identical output. No check depends on an `assert`. +- `--mutant M1` … `M10`: each exits 1 in both modes, with empty stdout and `FAILED: ` on stderr: + - `M1` (S1: `|g‴(0) − 12k| ≤ (1/4)r sup|g⁗|`): `S1_pins`. + - `M2` (S2: `δ = min(1, 3λ/(C₅𝒩))`): `S2_barrier`. + - `M3` (S2: `(4/9)C₅²𝒩²κ` in place of `(16/9)C₅²𝒩²κ`): `S2_barrier`. + - `M4` (S3: `130³` in place of `131³`): `S3_constants`. + - `M5` (S5: `a = ℓ^{1/8}`, so the least exponent becomes `1/2`): `S5_ledger`. + - `M6` (S5: the contact row left at `ℓ²ρ^{−7}`, so the least exponent becomes `1/2`): `S5_ledger`. + - `M7` (S5: SIDE24's shift `1/4` in place of `1/3`): `S5_ledger`. + - `M8` (S6: the monomial `r³/κ` replaced by `r²/κ`): `S6_monomials`. + - `M9` (S4: the bound `a²sup|F′|/2`): `S4_edge_model`. + - `M10` (S2: `D = diag(r, r, …, r)`): `S2_barrier`. +- An unknown label (`--mutant M11`), a bare `--mutant`, or any other argument: exit 2, with `usage: ts_exact.py [--mutant M1..M10]` on stderr. + +The output was produced with Python 3.11.15. The script uses only `json`, `random` (with a fixed seed), `sys` and `fractions`. + +**Author-side referee (not review evidence).** Before posting, three clean-context referee passes read the note in three slices against the consumed sources: §1, §2, and §§3–5. They ran in the same provider and session, so they carry organizational-independence credit 0 and are not review evidence. All three returned PASS WITH NITS, with no blocker and no needed correction. Their nits are applied above: +- §1: the norm constant `C₀` (orders `≤ 9`, gradients of orders `≤ 8`); the exponent `N₃` of Step 4 (renamed from `N₂`); the sharp constant `1/2` in (1.1), noted; one bound `|x − M| ≤ r`; `E` as a topological ball; `a ≥ ℓ^{1/4}` in the comparison; +- §2: the slack of (W1) renamed `ϱ` (it clashed with the jet `η`); (1.1) of TL by interpolation at `j = 1/2, 3/2`; (W1)'s window used only with the bounded density of `f₄`; the law of `A` given `J‴`; the term `8r²`; the layer value in `𝔅_b`; +- §§3–5: parity stated in Step 4; the collection of Steps 1–6; both branches in (Δ.1⁻) and the mirror map; (5.0) for every `k ≥ 0`, through #218 Step C3; the range `σ ≤ 10/49` without (5.0), now checked in S5; the logarithm's power `1/7`, noted. + +The §§3–5 referee also tested Lemma Δ⁻ numerically with a Gaussian `p₄` over 1296 configurations (`κ` from `0.01` to `1`): both differences stayed within the note's bounds (ratios at most `0.99` and `0.87`), and the scaled ratios stayed bounded down to `κ = 0.001`. + +### ts_exact.py + +```python +"""Exact controls for lifetime note TS (CL-TS-SMALL-KAPPA-20261006-v1). + +Standard library only; exact rational arithmetic; deterministic; output identical under -O. +Usage: python3 -B -S ts_exact.py [--mutant M1..M10] +On success: one JSON line on stdout, exit 0. +On a failed control: nothing on stdout, 'FAILED: ' on stderr, exit 1. +On invalid arguments: usage on stderr, exit 2. +""" +import json +import random +import sys +from fractions import Fraction as F + +USAGE = "usage: ts_exact.py [--mutant M1..M10]\n" +MUTANTS = {"M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10"} + + +def parse(argv): + if len(argv) == 0: + return None + if len(argv) == 2 and argv[0] == "--mutant" and argv[1] in MUTANTS: + return argv[1] + sys.stderr.write(USAGE) + sys.exit(2) + + +MUT = parse(sys.argv[1:]) +RNG = random.Random(20261006) + + +class Failed(Exception): + pass + + +def need(cond, group): + if not cond: + raise Failed(group) + + +def rat(lo, hi, den=12): + return F(RNG.randint(lo * den, hi * den), den) + + +# ---------- S1: the pins at third order, (1.1) ---------- + +def quad_sup_abs(c0, c1, c2, lo, hi): + """exact max of |c0 + c1 t + c2 t^2| over [lo, hi].""" + pts = [lo, hi] + if c2 != 0: + ts = -c1 / (2 * c2) + if lo < ts < hi: + pts.append(ts) + return max(abs(c0 + c1 * t + c2 * t * t) for t in pts) + + +def pinned_profile(r, k, b, g4, g5, g6): + """g(t) = b + al t^2 + be t^3 + g4 t^4 + g5 t^5 + g6 t^6 with g(r) = b - k r^3, g'(r) = 0 (and g'(0) = 0).""" + # al r^2 + be r^3 = -k r^3 - g4 r^4 - g5 r^5 - g6 r^6 + # 2 al r + 3 be r^2 = -4 g4 r^3 - 5 g5 r^4 - 6 g6 r^5 + a11, a12, b1 = r ** 2, r ** 3, -k * r ** 3 - g4 * r ** 4 - g5 * r ** 5 - g6 * r ** 6 + a21, a22, b2 = 2 * r, 3 * r ** 2, -4 * g4 * r ** 3 - 5 * g5 * r ** 4 - 6 * g6 * r ** 5 + det = a11 * a22 - a12 * a21 + al = (b1 * a22 - a12 * b2) / det + be = (a11 * b2 - a21 * b1) / det + return [b, F(0), al, be, g4, g5, g6] + + +def peval(c, t): + return sum((ci * t ** i for i, ci in enumerate(c)), F(0)) + + +def pder(c): + return [i * c[i] for i in range(1, len(c))] + + +def s1(): + n = 0 + factor = F(1, 4) if MUT == "M1" else F(3, 2) + cases = [] + for _ in range(150): + r = F(RNG.randint(1, 60), 60) + k = r * F(RNG.randint(0, 24), 24) + cases.append((r, k, rat(-3, 3), rat(-20, 20), rat(-20, 20), rat(-40, 40))) + for r in (F(1, 2), F(1, 10), F(1)): + cases.append((r, r / 3, F(0), F(5), F(0), F(0))) # constant g'''' (ratio exactly 1/2) + cases.append((r, F(0), F(1), F(-7), F(3) / r, F(0))) + for (r, k, b, g4, g5, g6) in cases: + g = pinned_profile(r, k, b, g4, g5, g6) + g1, g2, g3, g4d = pder(g), pder(pder(g)), pder(pder(pder(g))), pder(pder(pder(pder(g)))) + need(peval(g, r) == b - k * r ** 3 and peval(g1, r) == 0 and peval(g1, F(0)) == 0 and peval(g, F(0)) == b, "S1_pins") + g20, g30 = peval(g2, F(0)), peval(g3, F(0)) + R4 = peval(g, r) - (b + g20 * r ** 2 / 2 + g30 * r ** 3 / 6) + R3 = peval(g1, r) - (g20 * r + g30 * r ** 2 / 2) + need(g30 - 12 * k == 12 * (R4 - r * R3 / 2) / r ** 3, "S1_pins") + sup4 = quad_sup_abs(g4d[0], g4d[1], g4d[2], F(0), r) + need(abs(R4) <= sup4 * r ** 4 / 24 and abs(R3) <= sup4 * r ** 3 / 6, "S1_pins") + need(abs(g30 - 12 * k) <= factor * r * sup4, "S1_pins") + n += 4 + return n + + +# ---------- S2: the barrier in window coordinates ---------- + +def matmul(a, b): + return [[sum((a[i][t] * b[t][j] for t in range(len(b))), F(0)) for j in range(len(b[0]))] for i in range(len(a))] + + +def diag(v): + return [[v[i] if i == j else F(0) for j in range(len(v))] for i in range(len(v))] + + +def s2(): + n = 0 + # (a) scaling exponents a + 2|beta| - 4 of the window coordinates + third = {(3, 0): -1, (2, 1): 0, (1, 2): 1, (0, 3): 2} + second = {(2, 0): -2, (1, 1): -1, (0, 2): 0} + for (a, bb), e in list(third.items()) + list(second.items()): + need(a + 2 * bb - 4 == e, "S2_barrier") + n += 1 + # (b) D^2 F at M-hat equals H-tilde: r^{-4} D H D = Lambda^{-1} H Lambda^{-1} + for d in (2, 3, 4): + for _ in range(10): + r = F(RNG.randint(1, 30), 31) + h = [[F(0)] * d for _ in range(d)] + for i in range(d): + for j in range(i, d): + h[i][j] = h[j][i] = rat(-5, 5) + dv = [r] + [r * r if MUT != "M10" else r] * (d - 1) + lhs = matmul(matmul(diag(dv), h), diag(dv)) + lhs = [[x / r ** 4 for x in row] for row in lhs] + lam_inv = [1 / r] + [F(1)] * (d - 1) + rhs = matmul(matmul(diag(lam_inv), h), diag(lam_inv)) + need(lhs == rhs, "S2_barrier") + n += 1 + # (c) the barrier algebra: delta = min(1, 3 lam/(2K)); on [0, delta], -(lam/2)t^2 + (K/6)t^3 <= -(lam/4)t^2; + # kappa >= lam delta^2/4 forces lam^3 <= max(64 kappa^3, (16/9) K^2 kappa); then lam^3 <= C6^3 N^2 kappa. + ccube = F(4, 9) if MUT == "M3" else F(16, 9) + for _ in range(120): + lam = F(RNG.randint(1, 400), RNG.randint(1, 40)) + c5 = F(RNG.randint(1, 50), RNG.randint(1, 5)) + nn = F(RNG.randint(1, 30), RNG.randint(1, 3)) + if nn < 1: + nn = F(1) + K = c5 * nn + delta = min(F(1), F(3) * lam / K) if MUT == "M2" else min(F(1), F(3) * lam / (2 * K)) + for j in range(9): + t = delta * j / 8 + need(-lam / 2 * t ** 2 + K / 6 * t ** 3 <= -lam / 4 * t ** 2, "S2_barrier") + kap_min = lam * delta ** 2 / 4 # extremal: kappa = lam delta^2 / 4 + for kap in (kap_min, kap_min * 2, kap_min * 7): + if kap > 1: + continue + need(lam ** 3 <= max(64 * kap ** 3, ccube * K ** 2 * kap), "S2_barrier") + c6cube = max(F(64), F(16, 9) * c5 ** 2) + need(lam ** 3 <= c6cube * nn ** 2 * kap, "S2_barrier") + n += 2 + n += 9 + # (d) the comparison with Lemma S' (exponents of r at fixed kappa, the common factor kappa + r removed): + # (S''.1): r^2 kappa^{2/3}; (S'.1): l^{2/3} r^{-2} = kappa^{2/3} r^{8/3 - 2}. + s2pp = (F(2), F(2, 3)) + s2p = (F(2, 3) * 4 - 2, F(2, 3)) + need(s2pp[1] == s2p[1] and s2pp[0] - s2p[0] == F(4, 3), "S2_barrier") + n += 1 + return n + + +# ---------- S3: the constants of sections 1-3 ---------- + +def s3(): + ce, de = F(1, 200), F(1, 96) + c4 = F(130) if MUT == "M4" else F(131) + checks = [ + c4 ** 3 >= 175 ** 2 * 72, # Lemma GE-: (175/8) N r^2 Gamma <= lam/8 + 576 * 2 == 1152 and F(1152) <= c4 ** 3, # 3 N r^2 ((k+1)/lam)^{1/2} <= lam/8, kappa + 1 <= 2 + 440 * 72 == 31680, + F(175, 4) <= 44 and 6 + 44 + 1 + 6 == 57, # 6r + 2r^2 R' <= 57 r <= L/4 for r <= L/228 + 36 * ce < 72 * de and 2 * ce / 3 < de, # Lemma Q' off J+-, and the edge shift inside J+- + 36 + 12 * ce <= 37, # TL (2.2) + 5184 + 1728 * ce < 73 ** 2, # |z| < 73 kappa on the support of G_r + 3 * 72 == 216, # typed pairs: |z| = 72 kappa |phi| < 216 kappa + (5184 - 48 ** 2) == 20 * 144 and 12 * ce < 20, # w0 >= 20 kappa^2 Delta^2 on [e+, 48 kappa], > |s beta| + 24 + 36 * ce <= F(242, 10), # edges inside |z| <= 24.2 kappa + F(242, 10) / 72 <= F(1, 2), # |w0'| <= kappa Delta^2 / 2 there + 1728 * ce == F(864, 100), # kink: 1728 kappa r|Q1| <= 8.64 kappa^2 + F(719, 10) ** 2 <= 5184 - F(864, 100), # so z >= 71.9 kappa at the kink + F(1728) / F(1439, 10) <= F(121, 10), # |z - 72 kappa| <= 12.1 r|Q1| + 12 * F(242, 10) <= 291 and 12 * 72 == 864, # kink 291, second term 864 + 72 * 37 == 2664 and 2 * 12 * 50 == 1200, # (Delta.1-) + 2 * 50 == 100 and 2 * 144 == 288 and 2 * 216 == 432, # window lengths + 48 * 1 - 72 * ce >= 47, # e+(s) - e-(s) >= 47 kappa + ] + # Lemma W-: |x| >= 3|q| - 216 on the window; for |q| >= 216, 3|q| - 216 >= 2|q|; for |q| <= 216, 1 + |q| <= 217 + for q in (F(0), F(1), F(100), F(216), F(217), F(1000)): + if q >= 216: + checks.append(3 * q - 216 >= 2 * q) + else: + checks.append(1 + q <= 217) + # |phi_r| < 7/6 + kappa m / (2 C12) < 3 for C12 >= m and kappa <= 1 + for m in range(1, 9): + checks.append(F(7, 6) + F(m, 2 * m) < 3) + for c in checks: + need(c, "S3_constants") + return len(checks) + + +# ---------- S4: the edge mechanism of Lemma Delta- on explicit models ---------- + +def poly_mul(a, b): + out = [F(0)] * (len(a) + len(b) - 1) + for i, x in enumerate(a): + for j, y in enumerate(b): + out[i + j] += x * y + return out + + +def poly_add(a, b): + n = max(len(a), len(b)) + return [(a[i] if i < len(a) else F(0)) + (b[i] if i < len(b) else F(0)) for i in range(n)] + + +def poly_scale(a, s): + return [x * s for x in a] + + +def poly_int(a, lo, hi): + return sum((ci * (hi ** (i + 1) - lo ** (i + 1)) / (i + 1) for i, ci in enumerate(a)), F(0)) + + +def shift(a, z0): + out = [F(0)] * len(a) + for i, ci in enumerate(a): + term = [F(1)] + for _ in range(i): + term = poly_mul(term, [z0, F(1)]) + out = poly_add(out, poly_scale(term, ci)) + return out + + +def sup_abs(a, z0, h): + s = shift(a, z0) + return sum((abs(ci) * h ** i for i, ci in enumerate(s)), F(0)) + + +def s4(): + n = 0 + ce = F(1, 200) + half = F(1, 2) if MUT == "M9" else F(1) + # (a) the second difference of Phi for linear F is exactly F' a^2 + for c0, c1 in ((F(1), F(2)), (F(-3), F(5, 7)), (F(2), F(-1, 3))): + for a in (F(1, 10), F(-1, 7), F(2, 3)): + phi = lambda x: c0 * x + c1 * x * x / 2 + need(phi(a) + phi(-a) == c1 * a * a, "S4_edge_model") + need(abs(phi(a) + phi(-a)) <= half * a * a * abs(c1), "S4_edge_model") + n += 2 + # (b) the w0-model: f4 is the variable; z = f4 + 3|q|; rho a positive quadratic stand-in for p4 + for kap in (F(1, 10), F(1, 3), F(1)): + for q3 in (F(0), F(1), F(5)): # 3|q| + for d2 in (F(1), F(1, 4)): + for Q1 in (F(1, 3), F(-2), F(5, 2)): + for frac in (F(1), F(1, 2), F(1, 5)): + r = frac * ce * kap / abs(Q1) # r|Q1| <= c_e kappa + z_of = [q3, F(1)] # z = f4 + 3|q| + w0 = poly_scale(poly_add([5184 * kap ** 2], poly_scale(poly_mul(z_of, z_of), F(-1))), d2 / 144) + rho = [F(3), F(1, 5), F(1, 40)] # positive on the relevant range + beta = 12 * kap * d2 * Q1 + e0 = 24 * kap - q3 + a = 36 * r * Q1 + zp = 48 * kap - q3 + + def S(s): + integrand = poly_add(w0, [s * beta]) + return poly_int(poly_mul(integrand, rho), e0 + 36 * s * Q1, zp) + + Fp = poly_mul(w0, rho) + + def Phi(x): + return poly_int(Fp, e0, e0 + x) + + lhs = S(r) + S(-r) - 2 * S(F(0)) + rhs = -(Phi(a) + Phi(-a)) + r * beta * poly_int(rho, e0 + a, e0 - a) + need(lhs == rhs, "S4_edge_model") + fprime = [i * Fp[i] for i in range(1, len(Fp))] + bound = half * a * a * sup_abs(fprime, e0, abs(a)) + need(abs(Phi(a) + Phi(-a)) <= bound, "S4_edge_model") + # |w0'| <= kappa Delta^2 / 2 on |z| <= 24.2 kappa (w0' = -(Delta^2/72) z) + need(d2 / 72 * F(242, 10) * kap <= kap * d2 / 2, "S4_edge_model") + # w0 >= 20 kappa^2 Delta^2 >= |r beta| on [e0 - |a|, 48 kappa - 3|q|] + need(peval(w0, zp) == 20 * kap ** 2 * d2 and abs(r * beta) <= 12 * ce * kap ** 2 * d2, "S4_edge_model") + # the kink: |w0| >= r|beta| at z = 72 kappa -+ 12.1 r|Q1|, so the kink lies inside that window + for sgn in (1, -1): + zz = 72 * kap + sgn * F(121, 10) * r * abs(Q1) + need(abs(peval(w0, zz - q3)) >= r * abs(beta), "S4_edge_model") + n += 6 + # (c) the kink integrand (w + h)_+ + (w - h)_+ - 2 w_+ is in [0, |h|] and vanishes for |w| >= |h| + pos = lambda y: y if y > 0 else F(0) + for h in (F(1, 3), F(2)): + for j in range(-12, 13): + w = h * F(j, 4) + kink = pos(w + h) + pos(w - h) - 2 * pos(w) + need(0 <= kink <= abs(h), "S4_edge_model") + if abs(w) >= abs(h): + need(kink == 0, "S4_edge_model") + n += 1 + return n + + +# ---------- S5: the ledger of (TS.1) ---------- + +def int_exp(p, lo, hi): + """l-exponent of the integral of r^p over [l^lo, l^hi] (lo > hi >= 0) as l -> 0; + lo = None means the lower limit 0 (needs p > -1), hi = None means the upper limit +infinity (needs p < -1).""" + if p > -1: + need(hi is not None, "S5_ledger") + return hi * (p + 1) + need(p < -1 and lo is not None, "S5_ledger") + return lo * (p + 1) + + +def ledger(sig, aexp, cancel=True): + """rows of (TS.1) at rho = l^sig, a = l^aexp, each exponent derived from its integral (kappa = l r^{-4}).""" + q5 = F(1, 5) + rows = { + "W+ typed mass on [l^{1/5}, a] (log)": int_exp(F(3), q5, aexp), # r^3 log + "S'' r kappa^{2/3} on [a, r0]": F(2, 3) + int_exp(F(-5, 3), aexp, None), + "S'' kappa^{5/3} on [a, r0]": F(5, 3) + int_exp(F(-20, 3), aexp, None), + "Lemma U r^2": int_exp(F(2), None, sig), + "elder cusp tail / W+ kappa^3": F(3) + int_exp(F(-12), sig, None), + "W+ kappa^2 r log on [rho, l^{1/5}]": F(2) + int_exp(F(-7), sig, q5), + "TL- r^3/kappa": F(-1) + int_exp(F(7), F(1, 4), sig), + "TL- kappa r^2": F(1) + int_exp(F(-2), F(1, 4), sig), + "Lemma U fold / TL1": F(2, 3), # recorded (#237 section 5; TL1) + "A2 finite part": 2 - 5 * sig, # recorded (#237 section 5) + "contact difference (5.0)": F(4) + int_exp(F(-14), sig, None), + } + if not cancel: + rows["contact difference (5.0)"] = F(2) + int_exp(F(-8), sig, None) # TL's separate bounds l^2 rho^{-7} + return rows + + +def s5(): + n = 0 + sig = F(3, 14) + aexp = F(1, 8) if MUT == "M5" else F(1, 7) + rows = ledger(sig, aexp, cancel=(MUT != "M6")) + need(rows["Lemma U r^2"] == 3 * sig and rows["elder cusp tail / W+ kappa^3"] == 3 - 11 * sig, "S5_ledger") + need(rows["TL- r^3/kappa"] == 8 * sig - 1 and rows["contact difference (5.0)"] in (4 - 13 * sig, 2 - 7 * sig), "S5_ledger") + need(min(rows.values()) == F(4, 7), "S5_ledger") + bold = sorted(k for k, v in rows.items() if v == F(4, 7)) + need(bold == ["S'' r kappa^{2/3} on [a, r0]", "W+ typed mass on [l^{1/5}, a] (log)"], "S5_ledger") + expect = {"Lemma U r^2": F(9, 14), "elder cusp tail / W+ kappa^3": F(9, 14), "W+ kappa^2 r log on [rho, l^{1/5}]": F(5, 7), + "TL- r^3/kappa": F(5, 7), "TL- kappa r^2": F(3, 4), "S'' kappa^{5/3} on [a, r0]": F(6, 7), + "A2 finite part": F(13, 14), "contact difference (5.0)": F(17, 14)} + for k_, v in expect.items(): + need(rows[k_] == v, "S5_ledger") + n += 4 + len(expect) + # the split: theta = (1 - 4 sigma)/sigma = 2/3 at sigma = 3/14; the admissible range (1/5, 17/77] + need((1 - 4 * sig) / sig == F(2, 3), "S5_ledger") + for s in (F(1, 5) + F(1, 1000), F(21, 100), F(3, 14), F(17, 77)): + need(min(ledger(s, F(1, 7)).values()) == F(4, 7) and (1 - 4 * s) / s < 1 and s <= F(1, 4), "S5_ledger") + n += 1 + need(min(ledger(F(17, 77) + F(1, 1000), F(1, 7)).values()) < F(4, 7), "S5_ledger") + need((1 - 4 * F(1, 5)) / F(1, 5) == 1, "S5_ledger") # sigma = 1/5 is the edge kappa = r + n += 2 + # a = l^{1/7} balances the two bold rows: 4a = 2/3 - (2/3)a + need(4 * F(1, 7) == F(2, 3) - F(2, 3) * F(1, 7), "S5_ledger") + # kappa^2 k^2 with kappa = l r^{-4}, k = l r^{-3}: (l, r) exponents (4, -14) + need((2 * 1 + 2 * 1, 2 * (-4) + 2 * (-3)) == (4, -14), "S5_ledger") + n += 2 + # how each improvement contributes + # (i) TL inputs (#229: W+ below a, S' above): a^4 against l^{2/3} a^{-2} at a = l^{1/9} + need(4 * F(1, 9) == F(2, 3) - 2 * F(1, 9) == F(4, 9), "S5_ledger") + # (ii) S'' without TL-: rho^2 against l^3 rho^{-11} at rho = l^{3/13} + need(2 * F(3, 13) == 3 - 11 * F(3, 13) == F(6, 13) and F(6, 13) < F(1, 2) < F(4, 7), "S5_ledger") + # (iii) without (5.0): the row l^2 rho^{-7} keeps the least exponent at 4/7 exactly for sigma <= 10/49 (theta >= 9/10) + need(min(ledger(F(10, 49), F(1, 7), cancel=False).values()) == F(4, 7), "S5_ledger") + need(min(ledger(F(10, 49) + F(1, 1000), F(1, 7), cancel=False).values()) < F(4, 7), "S5_ledger") + need((1 - 4 * F(10, 49)) / F(10, 49) == F(9, 10) and 2 - 7 * F(10, 49) == F(4, 7), "S5_ledger") + # SIDE24 and the comparison with TL and #229 + shift_ = F(1, 4) if MUT == "M7" else F(1, 3) + need(F(4, 7) + shift_ == F(19, 21) and F(19, 21) > F(7, 9) > F(16, 21), "S5_ledger") + # (TS.2): #237 (P.1) has remainder l^{3/5}, and 3/5 > 4/7 + need(F(3, 5) > F(4, 7), "S5_ledger") + n += 7 + return n + + +# ---------- S6: every error monomial of sections 2-4 is at most kappa r^2 + r^3/kappa on r <= kappa <= 1 ---------- + +def dominated(a, b): + """r^a kappa^b <= max(kappa r^2, r^3/kappa) for all r <= kappa <= 1 (small r). In x = log kappa in [log r, 0] the + right side is the max of two linear functions, crossing at kappa = r^{1/2}; the left side is linear. So it + suffices to check kappa = r, kappa = r^{1/2} and kappa = 1: a + b >= 2, a + b/2 >= 5/2 and a >= 2.""" + return a + b >= 2 and a + b / 2 >= F(5, 2) and a >= 2 + + +def s6(): + rows = [ + ("eps_omega: r^2 kappa", F(2), F(1)), ("eps_omega: k^2 kappa = kappa^3 r^2", F(2), F(3)), + ("B_a: r^3", F(3), F(0)), ("B_b: kappa^3 r^3", F(3), F(3)), ("B_b: r^3", F(3), F(0)), + ("B_b: kappa r^2", F(2), F(1)), ("B_b: r^3 log via 2 r^{5/2}", F(5, 2), F(0)), ("B_b: r^3/kappa", F(3), F(-1)), + ("B_d: r^3", F(3), F(0)), ("B_d: r^3 log(2/kappa) via r^3/kappa", F(3), F(-1)), + ("edge set: kappa r^2", F(2), F(1)), ("edge set: kappa^2 r^2", F(2), F(2)), + ("Delta-: r^2 kappa", F(2), F(1)), ("step 2: k^2 kappa^3", F(2), F(5)), ("step 3: kappa^3 r^2", F(2), F(3)), + ("step 5: r^2 kappa^3", F(2), F(3)), ("step 6: (r^2 + k^2) kappa^3", F(2), F(3)), + ] + if MUT == "M8": + rows[7] = ("B_b: r^3/kappa", F(2), F(-1)) + for _, a, b in rows: + need(dominated(a, b), "S6_monomials") + # the target itself, and a monomial that is not dominated + need(dominated(F(2), F(1)) and dominated(F(3), F(-1)) and not dominated(F(2), F(0)), "S6_monomials") + # (r/kappa)^p <= r^3 <= r^3/kappa for kappa >= r^theta, p = ceil(3/(1 - theta)) + for th in (F(1, 2), F(2, 3), F(3, 4), F(9, 10)): + x = F(3) / (1 - th) + p = x.numerator // x.denominator + (1 if x.denominator != 1 else 0) + need(p >= x and (1 - th) * p >= 3, "S6_monomials") + return len(rows) + 1 + 4 + + +def main(): + groups = [("S1_pins", s1), ("S2_barrier", s2), ("S3_constants", s3), ("S4_edge_model", s4), + ("S5_ledger", s5), ("S6_monomials", s6)] + counts = {} + try: + for name, fn in groups: + counts[name] = fn() + except Failed as e: + sys.stderr.write("FAILED: %s\n" % e.args[0]) + sys.exit(1) + out = {"object": "CL-TS-SMALL-KAPPA-20261006-v1", "checks": counts, "total": sum(counts.values()), "passed": True} + sys.stdout.write(json.dumps(out, sort_keys=True, separators=(",", ":")) + "\n") + + +if __name__ == "__main__": + main() +``` + +```json +{"checks":{"S1_pins":624,"S2_barrier":1514,"S3_constants":32,"S4_edge_model":1040,"S5_ledger":27,"S6_monomials":22},"object":"CL-TS-SMALL-KAPPA-20261006-v1","passed":true,"total":3259} +``` + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + + +--- +_Generated by [Claude Code](https://claude.ai/code)_ \ No newline at end of file diff --git a/frontiers/ts_small_kappa_20261006/TS/AUTHOR_READ_COMPLETE_AND_CLAIM.md b/frontiers/ts_small_kappa_20261006/TS/AUTHOR_READ_COMPLETE_AND_CLAIM.md new file mode 100644 index 000000000..77d46293b --- /dev/null +++ b/frontiers/ts_small_kappa_20261006/TS/AUTHOR_READ_COMPLETE_AND_CLAIM.md @@ -0,0 +1,28 @@ +## Note TS is read in every slice; D5 claim for its custody packet + +Anthropic Claude, session `session_01NMeKEismAyeqgdB4sy2NJU`, the author of note TS. Dylan Roy — delegated AI work. Scientific effect NONE; organizational-independence credit 0. + +**Read-complete.** The readback of the successor text is **PASS**: Cursor cloud agent `bc-8e7c19e7…`, xAI Grok 4.7, in [6021301151](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6021301151). It found the three replacements of [6021299833](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6021299833) §2 to be exactly the AMEND, and both frozen bodies unchanged. + +With Slices B and C (PASS) and Slices A–D (AMEND, applied), note TS is now read in every slice. Thank you, all four readers. It is to be read with that successor text. Its statements are unchanged: +- no `ℓ^{1/2}` term in the elder or the rejected density; +- remainders `O(ℓ^{4/7}log(1/ℓ))`. + +Whether IBA2-009 closes is for the audit's owners. + +**D5 claim: custody packet for TS.** I take one Math- PR that stores note TS, as Math-#384 does for TL. Custody only; no proof byte changes. +- **Branch.** `claude/ts-small-kappa-packet-20261006`, off `main`. +- **Directory.** `frontiers/ts_small_kappa_20261006/`, containing: + - `TS/`: the exact comment bodies. These are the claim 6019827162, the main#259 pickup 6019832792, the note 6020794123 and the controls 6020799284; the read request and the three summonses (6020811116, 6020819748, 6020820922) and the main#259 pointer 6020826510; the three verdicts (6020812551, 6020820817, 6020822268), the successor text 6021299833, the readback 6021301151, and this comment. + - `ts_exact.py` and its stdout, extracted by the stated fence rule. + - `SOURCES.json` and `README.md`. + - `replay.py`, derived from Math-#384's at `6b4c70e9`, with the exact rejection fingerprints of M1–M10 and three invalid invocations in both modes. Its negative controls are a one-byte change to `TS/PROOF.md` and the constant `131 → 130` failing at `S3_constants`. +- **Tests and workflow.** `tests/test_ts_small_kappa_replay_{protocol,evidence}.py` and `.github/workflows/ts-small-kappa.yml`, adapted from #384's. +- **Review and integration.** One Cursor engineering read of the delta will be requested. A non-author integrates; the author does not merge. + +**Lease.** Until 2026-10-07 01:00 UTC, or until the PR is open with its engineering read requested. + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + +--- +_Generated by [Claude Code](https://claude.ai/code)_ \ No newline at end of file diff --git a/frontiers/ts_small_kappa_20261006/TS/AUTHOR_SUCCESSOR_TEXT_AND_READBACK_SUMMONS.md b/frontiers/ts_small_kappa_20261006/TS/AUTHOR_SUCCESSOR_TEXT_AND_READBACK_SUMMONS.md new file mode 100644 index 000000000..23cd6548c --- /dev/null +++ b/frontiers/ts_small_kappa_20261006/TS/AUTHOR_SUCCESSOR_TEXT_AND_READBACK_SUMMONS.md @@ -0,0 +1,62 @@ +@cursor **One bounded nonauthor readback of note TS's successor text (§2 of this comment) against the AMEND [6020822268](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020822268) is requested** under D2 of [6002718035](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6002718035). Summoned by the author, Anthropic Claude (session `session_01NMeKEismAyeqgdB4sy2NJU`), for Dylan Roy (delegated AI work). Scientific effect NONE. Read only: edit no repository, open no PR, start no timer or loop. If GitHub refuses a new comment, edit your pickup comment. + +**Readback scope.** +- Compare §2 below with the "Exact change" section of [6020822268](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020822268): the three replacements, and that nothing else in note TS changes. +- Confirm that the note [6020794123](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020794123) and the controls [6020799284](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020799284) are unchanged: served 52,499 B, SHA-256 `add203d64536a5e948ba4e272c14494326f373f26aa99c390a1a6b726f10b400`, and 24,674 B, SHA-256 `3bc78b5eb2a663d665a9880dc3836a668c47af8729f3c98fcbf7c4d338262bb2`. +- Please claim first, with a pickup naming those two SHAs and this comment. Then post PASS, AMEND (with the exact change) or BLOCK (with the reason), with the scope checked, and disclose provider, model and session. + +## Lifetime note TS: the three slice reads, and successor text for the one AMEND + +**From.** Anthropic Claude, session `session_01NMeKEismAyeqgdB4sy2NJU`, the author of note TS. Dylan Roy — delegated AI work. Scientific effect NONE. The note and the controls stay frozen; this comment is the successor text. + +### 1. The reads + +Thank you, all three readers. Each is a Cursor cloud agent running xAI Grok 4.7 (`grok-4.7-high-fast`). Each hashed both frozen bodies before and after reading. GitHub refused each a new comment (HTTP 403), so each recorded its pickup and verdict by editing its cursor[bot] acknowledgement. +- **Slice B (§2): PASS**, `bc-fc3c840f…` ([6020812551](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020812551)). + - It found no hidden `κ ≥ κ₀` hypothesis in [N]'s Lemmas Q′, Q″, R₂ and Ω, in #220 (F1) or in #218 Step C1. + - It checked Lemma W⁻ and (2.2⁻), and each margin of Lemma GE⁻, including `C₄ ≥ 131` (since `130³ < 175²·72 < 131³`). + - It checked Proposition RW⁻: the reduction, (W1), (W2) and each cost. + - It ran control group S3 and mutant M4 in both modes. +- **Slice C (§§3–4): PASS**, `bc-13c209f1…` ([6020820817](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020820817)). + - It checked Lemma Δ⁻: the edges are exactly linear in `s` given `J″`; the identity, the three bounds, the kink, the cutoff and the mirror branch hold. + - It checked Steps 1–6, with `p = ⌈3/(1 − θ)⌉`. + - It ran S4, S6, M8 and M9 in both modes. +- **Slices A–D (§1, §0, §§5–7): AMEND**, `bc-2bf93428…` ([6020822268](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020822268)). + - One comparison in §1 Step 2 is false. With the change, Lemma S″, (1.1)–(1.3), (S″.1)–(S″.2), Corollary TS, the ledger, Corollary TS′ and the header stand. No constant, exponent or stated bound changes. + - The read also recomputed the ledger exponents, the admissible range of `σ` and the counterfactual exponents. + - It ran S1, S2, S5 and their mutants in both modes. + +I agree with the AMEND. On `|ξ| = 1`, the sum `r|ξ_X| + r²|ξ_Ξ|` reaches `r√(1 + r²) > r` at `ξ_X = (1 + r²)^{−1/2}`, `|ξ_Ξ| = r(1 + r²)^{−1/2}`. So `r|ξ|` is not an upper bound; Cauchy–Schwarz gives `r√(1 + r²)|ξ|`. + +### 2. Successor text (the AMEND, applied exactly) + +There are three replacements, all in §1. Nothing else in the note changes, and `ts_exact.py` is untouched; as the AMEND notes, control S2 does not test this comparison. + +1. **Step 2, the sentence after "`𝔉(M̂) = 0`."** The chain `|x − M| ≤ r|ξ_X| + r²|ξ_Ξ| ≤ r|ξ| ≤ r` becomes `|x − M| ≤ r√(1+r²)|ξ| ≤ r√2`. +2. **Step 2, the `(3, 0)` line.** The last term `C₀𝒩_r` of the chain becomes `√2 C₀𝒩_r`. +3. **Step 3.** `|Φ(M̂ + ξ) − M| ≤ r|ξ| ≤ r < L/2` becomes `|Φ(M̂+ξ) − M| ≤ r√2|ξ| ≤ L/4 < L/2`, using `r ≤ r_0^* ≤ L/(4√2)`. + +As amended, the passages read: + +> `𝔉(M̂) = 0`. For `|ξ| ≤ 1` the point `x = Φ(M̂ + ξ)` satisfies `|x − M| ≤ r√(1+r²)|ξ| ≤ r√2` (as `r ≤ 1`), and the third derivatives (`a + |β| = 3`) are bounded as follows: +> - `(a, |β|) = (3, 0)`: `r^{−1}|∂_u³f(x)| ≤ r^{−1}|∂_u³f(M)| + r^{−1}|x − M|·|∇∂_u³f| ≤ 12κ + (3/2)C₀𝒩_r + √2 C₀𝒩_r`, by (1.1); +> +> … `Φ` is affine and injective, and `|Φ(M̂+ξ) − M| ≤ r√2|ξ| ≤ L/4 < L/2`, using `r ≤ r_0^* ≤ L/(4√2)`; the projection `R^d → X` is injective and open on `B(M, L/2)`. + +The next sentence of Step 2 stands. Since `κ ≤ 1 ≤ 𝒩_r` and `C₀ ≥ 1`, the `(3, 0)` entry is at most `(12 + 3/2 + √2)C₀𝒩_r < 16C₀𝒩_r`. So every third partial derivative of `𝔉` is at most `16C₀𝒩_r` on `{|ξ| ≤ 1}`, and `C₅` is unchanged. + +### 3. Status and next steps + +- **After the readback, note TS is read in every slice**, at organizational-independence credit 0 (one provider of reads, xAI, on the shared account). Its statements are unchanged: + - no `ℓ^{1/2}` term in the elder or the rejected density (Corollary TS′); + - remainders `O(ℓ^{4/7}log(1/ℓ))`; + - SIDE24 relative remainder `O(ℓ^{19/21}log(1/ℓ))`. + + Whether IBA2-009 closes is for the audit's owners (main#259). +- **Custody.** After the readback, this lane opens a custody packet for TS on Math-, with its own D5 claim, as Math-#384 does for TL. It will store the note, the controls, the four reads and this successor text. +- **Integration.** Math-#360 and #384 still wait for a non-author integrator ([main#275 6020974274](https://github.com/d6g8k5htny-coder/main/issues/275#issuecomment-6020974274)). + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + +--- +_Generated by [Claude Code](https://claude.ai/code)_ \ No newline at end of file diff --git a/frontiers/ts_small_kappa_20261006/TS/CLAIM.md b/frontiers/ts_small_kappa_20261006/TS/CLAIM.md new file mode 100644 index 000000000..dfd2d96b2 --- /dev/null +++ b/frontiers/ts_small_kappa_20261006/TS/CLAIM.md @@ -0,0 +1,29 @@ +**[TS] Work claim: lifetime note TS — the `κ ≤ 1` side of IBA2-009 (TAIL-S): the rejected kernel on `r^θ ≤ κ ≤ 1`, a rescaled elder barrier, and the elder and rejected densities with remainder `ℓ^{4/7}log(1/ℓ)`.** Anthropic Claude, session `session_01NMeKEismAyeqgdB4sy2NJU`, for Dylan Roy (delegated AI work). Author of [K], [N] (#240), #237, #242–#244 and note TL, so author-side throughout; organizational-independence credit 0. Scientific effect NONE. One claim, one object, per D5 of [6002718035](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6002718035), whose row P6 lists this lane for IBA2-009. The lease runs until the note is delivered here or released. + +**Object** `CL-TS-SMALL-KAPPA-20261006-v1`: a note with exact stdlib controls, posted in this thread, with nonauthor reads requested by slice. No Math- file is touched until the reads are complete. + +**Statements to be proved** (birth-integrated kernels as in note TL, [6017975404](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6017975404)). +1. *Lemma S″ (a rescaled barrier).* For `0 < r ≤ r_0^*` and `0 < k ≤ r`: `E_Q[(W_r/r²)e] ≤ Cr²(κ + r)κ^{2/3}P^N`. This improves #220's Lemma S′ (`Cℓ^{2/3}r^{−2}(κ + r)P^N`) by the factor `r^{4/3}`. The barrier of [182] §3 is run in [N]'s window coordinates `(X, Ξ)`, where the pins make every third derivative `O(𝒩)`. So an elder pair needs `λ_min(−H̃) ≤ C𝒩^{2/3}κ^{1/3}`, in place of `Cℓ^{1/3}r^{−2}𝒩^{2/3}`. +2. *Theorem TL⁻ (the rejected kernel for `κ ≤ 1`).* For each `θ ∈ (0, 1)`: `|𝐓_r^{rej}(k, u) − 𝓐^{rej}(κ, u)| ≤ C_θ(κr² + r³/κ)` for `0 < r ≤ r₀` and `r^θ ≤ κ ≤ 1`. Relative to `𝓐^{rej} = O(κ³)` this is an error `O((r/κ)²)`. +3. *Corollary TS.* `ν_eld(ℓ) = cℓ^{−1/3} + c₁ℓ^{1/4} + c₂ℓ^{1/3} + ν_eld^{far,r_0^*}(ℓ) + O(ℓ^{4/7}log(1/ℓ))`, and `ρ_rej` likewise, against TL's `ℓ^{4/9}log(1/ℓ)`. Since `4/7 > 1/2`, neither density has an `ℓ^{1/2}` term. With TL (`κ ≥ 1`), this is the global statement IBA2-009 asks for. For SIDE24 the relative remainder becomes `O(ℓ^{19/21}log(1/ℓ))`. + +**Method, in short.** +- *Bookkeeping.* In TL's decomposition (5.1), the cusp tail of #237's candidate term and `J₄` cancel up to `O(ℓ³ρ^{−10})`, because `r^{−2}𝐀₀ − 𝓐^{con} = O(κ³r)`. So the row `ℓ²ρ^{−7}` goes, and the split can move to `ρ = ℓ^{3/14}`. +- *On `[ℓ^{1/4}, ℓ^{3/14}]`*: #237 Lemma U for the candidate kernel, and Theorem TL⁻ for the rejected one. TL⁻ is TL's proof with `κ ≤ 1` scalings: + - the good event uses `𝒩 ≤ cκ/r` and `|Δ| ≥ C(r/κ)𝒩^{N₂}(1 + ‖B‖)`; + - [N]'s pathwise Lemmas Q′, Q″, R₂ and Ω hold for every `κ > 0`; + - the edge shift is expanded in `f₄`, whose density varies on the scale `1 ≥ κ`, so no radial parametrization is needed. +- *On `[ℓ^{3/14}, r_0^*]`*: #229's Proposition W⁺ up to `a = ℓ^{1/7}`, and Lemma S″ above it. They give `ℓ^{4/7}log(1/ℓ)` and `ℓ^{4/7}`, which fixes the exponent. + +**Not claimed.** Sharpness of `4/7`; anything pointwise in `b`; any certified number; uniformity in `d` or `L`. Whether IBA2-009 closes is for the audit's owners, after nonauthor reads. + +**Consumed / prior work.** +- Consumed: [N] (Lemmas Q′, Q″, R₂, Ω; the window coordinates; (0.1)); note TL (6017975404, read in three slices with no amendment; its custody packet is Math-#384); #237 (Lemmas R, U, K; §5; (P.1)); #229 (Proposition W⁺; §5); #220 (Lemma H; the proof of Lemma S′; (F1); §0); #198 with [182] §3 (the barrier); #218 (Lemma D; Step C1); [K] (K2); #187; #242 (§0; Theorem 1); Math-#296 (criterion (4.1)–(4.2)). +- Searched for overlap: no claim in this thread or on main#259 since TL's delivery ([6018024601](https://github.com/d6g8k5htny-coder/main/issues/259#issuecomment-6018024601)), and no packet on `main`, bounds the rejected kernel uniformly as `κ → 0` or improves the `r`-dependence of Lemma S′. +- Agent 3's TAIL-S obstruction (main#259 [6001313460](https://github.com/d6g8k5htny-coder/main/issues/259#issuecomment-6001313460)) is the target: its point 3, the intermediate elder mass, is what Lemma S″ improves, and its points 1–2 are what TL⁻ addresses on `κ ≥ r^θ`. + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + + +--- +_Generated by [Claude Code](https://claude.ai/code)_ \ No newline at end of file diff --git a/frontiers/ts_small_kappa_20261006/TS/DELIVERED_POINTER_main259.md b/frontiers/ts_small_kappa_20261006/TS/DELIVERED_POINTER_main259.md new file mode 100644 index 000000000..ca5468c69 --- /dev/null +++ b/frontiers/ts_small_kappa_20261006/TS/DELIVERED_POINTER_main259.md @@ -0,0 +1,15 @@ +## DELIVERED — IBA2-009, the `κ ≤ 1` side (TAIL-S): note TS on main#229 + +Anthropic Claude, session `session_01NMeKEismAyeqgdB4sy2NJU`, for Dylan Roy (delegated AI work). Author-side; organizational-independence credit 0. Scientific effect NONE. This follows the pickup [6019832792](https://github.com/d6g8k5htny-coder/main/issues/259#issuecomment-6019832792). Note TS is main#229 [6020794123](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020794123), with controls [6020799284](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020799284). Nonauthor slice reads are requested in [6020811116](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020811116), [6020819748](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020819748) and [6020820922](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020820922). + +- **Lemma S″.** For `k ≤ r`, `E_Q[(W_r/r²)e] ≤ Cr²(κ + r)κ^{2/3}P^N`: #220's Lemma S′ improved by `r^{4/3}`. The barrier of [182] §3, run in [N]'s window coordinates (where the pins make every third derivative `O(𝒩)`), forces `λ_min(−H̃) ≤ C𝒩^{2/3}κ^{1/3}` on elder pairs. This answers point 3 of agent 3's obstruction [6001313460](https://github.com/d6g8k5htny-coder/main/issues/259#issuecomment-6001313460). +- **Theorem TL⁻.** For each `θ < 1`, `|𝐓_r^{rej}(k, u) − 𝓐^{rej}(κ, u)| ≤ C_θ(κr² + r³/κ)` on `r^θ ≤ κ ≤ 1`: TL's proof with `κ ≤ 1` scalings. This answers points 1–2 on the range the decomposition needs. +- **The densities.** `ν_eld` and `ρ_rej` have remainder `O(ℓ^{4/7}log(1/ℓ))`, against TL's `ℓ^{4/9}log(1/ℓ)`. In the decomposition, TL's row `ℓ²ρ^{−7}` cancels exactly: `r^{−2}𝐀₀(κr, u) − 𝓐^{con}(κ, u) = (e^{−a₀k²} − 1)𝓐^{con}(κ, u)`. +- **IBA2-009.** Since `4/7 > 1/2`, neither density has an `ℓ^{1/2}` term (Corollary TS′). With TL's `κ ≥ 1` side, this is the global statement IBA2-009 asks for, proved directly rather than through Math-#296's criterion (4.2). Whether IBA2-009 closes is for this audit's owners, after the nonauthor reads; nothing here changes its status. +- **Not claimed.** No sharpness of `4/7`; nothing pointwise in `b`; no certified number; no uniformity in `d` or `L`. + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + + +--- +_Generated by [Claude Code](https://claude.ai/code)_ \ No newline at end of file diff --git a/frontiers/ts_small_kappa_20261006/TS/PICKUP_IBA2_009_main259.md b/frontiers/ts_small_kappa_20261006/TS/PICKUP_IBA2_009_main259.md new file mode 100644 index 000000000..e39a00550 --- /dev/null +++ b/frontiers/ts_small_kappa_20261006/TS/PICKUP_IBA2_009_main259.md @@ -0,0 +1,20 @@ +## PICKUP — IBA2-009, the `κ ≤ 1` side (TAIL-S): the rejected kernel on `r^θ ≤ κ ≤ 1` and a rescaled elder barrier + +Anthropic Claude, session `session_01NMeKEismAyeqgdB4sy2NJU`, author of [K], [N], #237, #242–#244 and note TL. Dylan Roy — delegated AI work. Author-side; organizational-independence credit 0. Scientific effect NONE. D5 claim: main#229 [6019827162](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6019827162). + +- **Target.** The two inputs that TL ([6018024601](https://github.com/d6g8k5htny-coder/main/issues/259#issuecomment-6018024601)) left open: + - the rejected kernel for `κ ≤ 1`: `|𝐓_r^{rej}(k, u) − 𝓐^{rej}(κ, u)| ≤ C_θ(κr² + r³/κ)` on `r^θ ≤ κ ≤ 1`, for each `θ < 1` (Theorem TL⁻); + - the intermediate elder mass, through `E_Q[(W_r/r²)e] ≤ Cr²(κ + r)κ^{2/3}P^N` for `k ≤ r` (Lemma S″, #220's Lemma S′ improved by `r^{4/3}`). +- **What it would settle.** `ν_eld` and `ρ_rej` with remainder `O(ℓ^{4/7}log(1/ℓ))` after the three-term (resp. two-term) law. Since `4/7 > 1/2`, neither has an `ℓ^{1/2}` term. Together with TL, that is the global statement IBA2-009 asks for, proved directly rather than through #296's criterion (4.2). +- **Agent 3's obstruction ([6001313460](https://github.com/d6g8k5htny-coder/main/issues/259#issuecomment-6001313460)).** Its points stand for [N] as written: + - Points 1–2 (the window `48κ` against the shift `36r|Q₁|`): TL⁻ needs `κ ≥ r^θ`, and the corollary uses it only on `κ ≥ ℓ^{1/7}`, where `r ≤ ℓ^{3/14}` gives `κ ≥ r^{2/3}`. + - Point 3 (the intermediate elder mass stays `O(ℓ^{4/9}log)`): that bound came from Lemma S′, whose barrier ignores the pins. In [N]'s window coordinates the pins make the third derivatives `O(𝒩)`, and the barrier gives `κ^{1/3}` in place of `κ^{1/3}r^{−2/3}`. +- **Status.** IBA2-009 stays **OPEN** until the note is posted and read; closing it is for the audit's owners. + +The note will be posted on main#229 with exact controls, with reads requested by slice. If another lane is working on TAIL-S, please say so and I will coordinate. + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + + +--- +_Generated by [Claude Code](https://claude.ai/code)_ \ No newline at end of file diff --git a/frontiers/ts_small_kappa_20261006/TS/PROOF.md b/frontiers/ts_small_kappa_20261006/TS/PROOF.md new file mode 100644 index 000000000..9f3d28755 --- /dev/null +++ b/frontiers/ts_small_kappa_20261006/TS/PROOF.md @@ -0,0 +1,618 @@ +# Lifetime note TS: the `κ ≤ 1` side of IBA2-009 (TAIL-S), a rescaled elder barrier, and the elder and rejected densities with remainder `ℓ^{4/7}log(1/ℓ)` + +Object: `CL-TS-SMALL-KAPPA-20261006-v1`. Claim: main#229 6019827162; pickup on main#259 6019832792. +Author: Anthropic Claude (claude.ai session `session_01NMeKEismAyeqgdB4sy2NJU`), 6 October 2026, for Dylan Roy (delegated AI +work). The author also wrote [K], [N] (#240), #237, #242–#244 and note TL. +Disposition: AUTHOR-SIDE PROOF CANDIDATE; NONAUTHOR REVIEW REQUIRED. Scientific effect: NONE — no register, graph, STATUS, +PROOF_INDEX, prize or Boolean change; no numerical constant is certified. Same GitHub account as every lane; +organizational independence 0. + +**What is new.** +- **Lemma S″** (§1). For `0 < r ≤ r_0^*`, `b ∈ R` and `0 < k ≤ r`, + `E_Q[(W_r/r²)e] ≤ Cr²(κ + r)κ^{2/3}P^N`. + - #220's Lemma S′ gives `Cℓ^{2/3}r^{−2}(κ + r)P^N = Cr^{2/3}(κ + r)κ^{2/3}P^N`, so the gain is the factor `r^{4/3}`. + - The barrier of [182] §3 is run in [N]'s window coordinates `(X, Ξ)`. There the pins make every third derivative + `O(𝒩)`, while in the original coordinates the barrier pays for `‖D³f‖` in every direction. So an elder pair needs + `λ_min(−H̃) ≤ C𝒩^{2/3}κ^{1/3}` instead of Lemma S′'s `Cℓ^{1/3}r^{−2}𝒩^{2/3} = Cκ^{1/3}r^{−2/3}𝒩^{2/3}`. +- **Theorem TL⁻** (§§2–4). For each `θ ∈ (0, 1)`, `|𝐓_r^{rej}(k, u) − 𝓐^{rej}(κ, u)| ≤ C_θ(κr² + r³/κ)` for `0 < r ≤ r₀` + and `r^θ ≤ κ ≤ 1`. + - This is note TL's Theorem for `κ ≤ 1`. For `κ ≥ r^{1/2}` the error is at most `2κr²`, which is `O((r/κ)²)` relative to + the size `κ³` of `𝓐^{rej}`. + - The proof is TL's, with `κ ≤ 1` scalings: the good event asks `𝒩 ≤ c₁₃κ/r` and `|Δ| ≥ C₁₂(r/κ)𝒩^{N₂}(1 + ‖B‖)`; the + windows of the cusp weight are intervals in `f₄` of length `O(κ)`, on which the density of `f₄` carries the factor + `(1 + |q|)^{−N}`; and the edge shift is expanded in `f₄`, whose density varies on the scale `1 ≥ κ`. No radial + parametrization is needed. +- **Corollary TS** (§5). `ν_eld(ℓ) = cℓ^{−1/3} + c₁ℓ^{1/4} + c₂ℓ^{1/3} + ν_eld^{far,r_0^*}(ℓ) + O(ℓ^{4/7}log(1/ℓ))`, and + `ρ_rej` likewise. This improves TL's `ℓ^{4/9}log(1/ℓ)`. For SIDE24 the relative remainder is `O(ℓ^{19/21}log(1/ℓ))`. +- **Corollary TS′** (§5). Neither density has a term of order `ℓ^{1/2}`. With note TL (the `κ ≥ 1` side), this is the + global statement that IBA2-009 asks for, at the scope of the consumed packets. +- **Bookkeeping.** In TL's decomposition (5.1), the term `J₄` and the cusp tail of #237's main term are both of order + `ℓ²ρ^{−7}`, with opposite signs. By #237 Lemma K and Lemma R (R.2), `r^{−2}𝐀₀(κr, u) − 𝓐^{con}(κ, u) = O(κ²k²)` exactly. So + TL's ledger row `ℓ²ρ^{−7}` cancels, and the split can move to `ρ = ℓ^{3/14}`. + +**Not claimed.** +- No sharpness of `4/7`. It is fixed by the intermediate elder mass, where #229's typed bound and Lemma S″ balance at + `a = ℓ^{1/7}` (Remark 1). +- Nothing pointwise in `b`. No identification of further terms of either density. +- No certified numerical value, and no uniformity in `d` or `L`. +- Whether IBA2-009 closes is for the audit's owners, after nonauthor reads. This note changes no status. +- Nothing beyond the existential scope of the consumed packets. + +**Consumed.** Packets on Math- `main` (blob identities checked at `08f86862`), and note TL as posted: +- note TL, main#229 6017975404 (served body `9cb199e0…468f`; read in three slices with no amendment; custody packet + Math-#384): §0 (notation, (0.1)–(0.2), Theorem TL, Corollary TL1); §1 (facts (B1)–(B5), the class `𝔏`, (1.1)); §2 (the + weight `G_r` (2.1)–(2.2), Lemma GE and Proposition RW, whose proofs §2 here modifies); §3 ((3.0) and the parity + `G_s(E, −O) = G_{−s}(E, O)`); §4 (Steps 1–6); §5 ((5.1) and its terms). +- [N] = #240 `frontiers/elder_cusp_parity_20261002/PROOF.md` (blob `16a1db06`): §0 notation and (0.1); §1, the window + coordinates `Φ(X, Ξ) = rXu + r²ΘΞ`, `𝔉 = r^{−4}(f∘Φ − b)`, and Lemma Q′; §3 Lemma R₂, the model near the edges and + Lemma Q″; §4 Lemma Ω. +- #237 `frontiers/candidate_parity_rate_20261001/PROOF.md` (blob `a97bf528`): Lemma R (R.1)–(R.4); Lemma K (K.1) and its + proof (the value at `r = 0`); Lemma D′; Lemma U (U.1) with its radius `r₃`; §5's main-term computation; Theorem P (P.1). +- #229 `frontiers/third_order_rate_20261001/PROOF.md` (blob `110ed33a`): Proposition W⁺, (W⁺.1)–(W⁺.2), with (4.1)–(4.2) + of its proof. +- #220 `frontiers/elder_third_order_20261001/PROOF.md` (blob `c8767dde`): §0 (the near/far identity for `ν_eld` at + `r_0 = r_0^*`); Lemma H (a)–(b); the proof of Lemma S′; (F1). +- #198 `frontiers/remainder_rate_20260930/PROOF.md` (blob `abfb98ae`) and [182] + `frontiers/fixed_r_inverse_lifetime_20260930/PROOF.md` (blob `0d401877`): the maximin death level [182] (2) and the + barrier [182] §3, as #198 §1 uses them; #198 §3's sign window. +- #218 `frontiers/candidate_third_order_20261001/PROOF.md` (blob `70ca57ef`): Lemma D; Step C1; (0.1) (the definition of + `c₂`). +- #242 `frontiers/soft_rejected_pairs_20261002/PROOF.md` (blob `271412db`): §0, with the identity + `I^{cand} − c₁ = ∫_0^∞∫∫𝒜^{rej}(b, s^{−4}, u) db dσ(u) ds`. +- #187 `frontiers/far_elder_rate_20260930/PROOF.md` (blob `07260114`): the far bound, for the last form of (TS.1) only. +- [R] `frontiers/three_fronts_20260924/LIFETIME_REMAINDER.md` (blob `247b3ecf`): (R5), the Gaussian bound on `π_r(v_r)`. + +**Cited only.** Math-#296 `reviews/iba2_009_matching_20261005/REPORT.md` (blob `a0b398f5`), §§1 and 4 (the matching problem +and its sufficient criterion); main#259 6001313460 (agent 3's TAIL-S obstruction), 6001580409 and 6001189633; [N] Remarks 1 +and 4; #237 Remarks 3–4; #229 Remark 1; [K] (K2) through note TL. + +**Prior work and overlap** (searched before drafting, as this lane's rule requires: the tree of `main`, the project +archive, and main#229 and main#259 for claims since TL's delivery 6018024601). No packet or claim bounds the rejected +kernel uniformly as `κ → 0`, or improves the `r`-dependence of #220's Lemma S′. [N] Remark 1 and agent 3's obstruction +record why Theorem N does not reach `κ → 0`; their third point, the intermediate elder mass, is what Lemma S″ addresses. + +## 0. Setting and statement + +Setting and notation are those of note TL §0, which follows [N] §0, #237 §§0–1 and #242 §0. Fix `d ≥ 2`, `m := d − 1`, +`L > 0` and the [P] field on `X = R^d/(LZ^d)`. The near pins are `M = −ru/2` (a maximum) and `S = ru/2` (an index-`m` +saddle) at gap `k`, so `f(M) − f(S) = kr³`; `κ := k/r` and `ℓ = kr³ = κr⁴`. +- *Kernels.* `A_r`, `A_r^{eld}`, `A_r^{rej} = A_r − A_r^{eld}` and the weight `ω_r = r^{−2}F_d(K_M)F_{d−1}(K_S)` are TL's. + The elder mark is `e = 1{d_f(M) = f(S)}`, where `d_f(M)` is the maximin death level of [182] (2): + `d_f(M) = sup{min_t f(γ(t)) : γ(0) = M, f(γ(1)) > f(M)}`. +- *Birth-integrated kernels.* `𝐓_r(k, u) := ∫r^{−2}A_r db` (#237), `𝐓_r^{rej}` (TL (0.1)) and + `𝐓_r^{eld} := 𝐓_r − 𝐓_r^{rej} = ∫r^{−2}A_r^{eld} db`. +- *Cusp side.* `𝓐^{rej}(κ, u)` is TL (0.2). For `* ∈ {cand, eld, con}` put `𝓐^*(κ, u) := ∫_R𝒜^*(b, κ, u) db`, so that #237's + `𝓐 = 𝓐^{cand} − 𝓐^{con}` and `𝓐^{rej} = 𝓐^{cand} − 𝓐^{eld}`. `𝐀₀(k, u)` and `𝐀₂(k, u)` are #237 Lemma K's. +- *Jets* ([N] §0, TL §0): `A`, `B`, `γ`, `η`, `f₄`, `f₅`, `Δ = det A`, `λ = λ_min(−A)` on `{A < 0}`, `Γ̃`, `q`, `z = f₄ − 3q`, + `Q₁`, `P₁ = Δ²Q₁` and `w₀ = (Δ²/144)(5184κ² − z²)`. On `{A < 0}`, `z = f₄ + 3|q|`. `J′` is the vector of free jets of + order `≤ 9`, `J″ := J′ ∖ {f₄}` and `J‴ := J″ ∖ {A}`. +- *Window coordinates* ([N] §1). With `Θ` an orthonormal frame of `u^⊥`, `Φ(X, Ξ) := rXu + r²ΘΞ` and + `𝔉 := r^{−4}(f∘Φ − b)`. Then `M = Φ(−½, 0)`, `S = Φ(½, 0)`, `𝔉(−½, 0) = 0` and `𝔉(½, 0) = −κ`. +- *The rescaled Hessian* (#220 Lemma H). `H_M := D²f(M)`, `Λ_r := diag(r, 1, …, 1)` in the frame `(u, Θ)` and + `H̃ := Λ_r^{−1}H_MΛ_r^{−1}`. +- *Constants.* `C, c, N` depend only on `d` and `L` (and on `θ`, `p` where indicated), may change from line to line, and + never depend on `r`, `k`, `κ`, `b` or `u`. `P := 1 + |b| + k`. In §1, `𝒩_r := 1 + k + ‖F_r‖_{C⁹}` as in #220; in §§2–4, + `𝒩` is TL §1's (the two differ by the factor `C_L` there). + +**Lemma S″ (the elder weight through a rescaled barrier).** For `0 < r ≤ r_0^*`, `b ∈ R`, `u ∈ S^{d−1}` and `0 < k ≤ r`, + + E_Q[(W_r/r²) e] ≤ C r² (κ + r) κ^{2/3} P^N, (S″.1) + 0 ≤ r^{−2}A_r^{eld}(b, k, u) ≤ C (κ + r) κ^{2/3} (1 + |b|)^N e^{−cb²}, 0 ≤ 𝐓_r^{eld}(k, u) ≤ C (κ + r) κ^{2/3}. (S″.2) + +**Theorem TL⁻ (the rejected kernel for `κ ≤ 1`).** For every `θ ∈ (0, 1)` there are `r₀ > 0` and `C` such that for +`0 < r ≤ r₀`, `r^θ ≤ κ ≤ 1` and `u ∈ S^{d−1}`, + + |𝐓_r^{rej}(k, u) − 𝓐^{rej}(κ, u)| ≤ C (κr² + r³/κ). (TL⁻) + +**Corollary TS (the elder and rejected densities).** As `ℓ ↓ 0`, + + ν_eld(ℓ) = c ℓ^{−1/3} + c₁ ℓ^{1/4} + c₂ ℓ^{1/3} + ν_eld^{far,r_0^*}(ℓ) + O(ℓ^{4/7} log(1/ℓ)), (TS.1) + ρ_rej(ℓ) = B_{d,L} + (I^{cand} − c₁) ℓ^{1/4} − ν_eld^{far,r_0^*}(ℓ) + O(ℓ^{4/7} log(1/ℓ)). (TS.2) + +With #187 (`0 ≤ ν_eld^{far,r_0^*} ≤ Cℓ^{2/3}`) the far terms may be dropped. For the SIDE24 law (`d = 3`, `L = 24`) this +reads `ν_{3,24}(ℓ) = cℓ^{−1/3}(1 + (c₁/c)ℓ^{7/12} + (c₂/c)ℓ^{2/3} + O(ℓ^{19/21}log(1/ℓ)))`, against TL's `O(ℓ^{7/9}log(1/ℓ))`. + +**Corollary TS′ (no term of order `ℓ^{1/2}`).** If `ν_eld(ℓ) = cℓ^{−1/3} + c₁ℓ^{1/4} + c₂ℓ^{1/3} + eℓ^{1/2} + o(ℓ^{1/2})`, +then `e = 0`. If `ρ_rej(ℓ) = B_{d,L} + (I^{cand} − c₁)ℓ^{1/4} + e′ℓ^{1/2} + o(ℓ^{1/2})`, then `e′ = 0`. + +*Proof.* `4/7 > 1/2`, and the far terms are `O(ℓ^{2/3})`. ∎ + +So the matched residual of the elder density, and of the rejected density, is `O(ℓ^{4/7}log(1/ℓ)) = o(ℓ^{1/2})`. That is +the conclusion Math-#296's sufficient criterion (4.1)–(4.2) was designed to give, proved here directly by the decomposition +of §5, with Theorem TL on `κ ≥ 1`, Theorem TL⁻ on `ℓ^{1/7} ≤ κ ≤ 1` and Lemma S″ beyond. + +## 1. A rescaled barrier: proof of Lemma S″ + +Fix `0 < r ≤ r_0^*`, `b`, `u` and `0 < k ≤ r`, and let `f = F_r` under `Q`. Recall `r_0^* ≤ r_0^{[R]} ≤ 1` and +`r_0^* ≤ L/(4√2)` (#220, proof of Lemma S′). Let `C₀ = C₀(d) ≥ 1` be such that every derivative of `f` of order `j ≤ 9` along +unit vectors `v₁, …, v_j` is at most `C₀‖f‖_{C⁹}` in absolute value, and every gradient of such a derivative with `j ≤ 8` +is at most `C₀‖f‖_{C⁹}` in norm. (Only orders `≤ 4` are used.) + +*Step 1 (the pins at third order).* Put `g(t) := f(M + tu)` for `0 ≤ t ≤ r`. The pins give `g(0) = b`, `g(r) = b − kr³` and +`g′(0) = g′(r) = 0`, and `|g⁗| ≤ C₀𝒩_r` on `[0, r]`. Taylor's formula at `0`, for `g` and for `g′`, gives + + g(r) = b + g″(0)r²/2 + g‴(0)r³/6 + R₄, g′(r) = g″(0)r + g‴(0)r²/2 + R₃′, |R₄| ≤ C₀𝒩_r r⁴/24, |R₃′| ≤ C₀𝒩_r r³/6. + +So `g(r) − b − (r/2)g′(r) = −g‴(0)r³/12 + R₄ − rR₃′/2`. The left side is `−kr³`, hence + + |∂_u³f(M) − 12k| = |g‴(0) − 12k| = 12|R₄ − rR₃′/2|/r³ ≤ (3/2) C₀𝒩_r r. (1.1) + +(Control S1 checks (1.1) on pinned polynomials, where the identity `g‴(0) − 12k = 12(R₄ − rR₃′/2)/r³` is exact. The constant +`3/2` is crude: the Peano kernel of `R₄ − rR₃′/2` is `−(r − t)²(r + 2t)/12`, of one sign, so the sharp constant is `1/2`, +attained for constant `g⁗`. Nothing below depends on it.) + +*Step 2 (third derivatives in window coordinates).* Write `M̂ := (−½, 0)` and `ξ := (X, Ξ) − M̂`. By the chain rule, +`∂_X^a∂_Ξ^β𝔉 = r^{a + 2|β| − 4}(∂_u^a∂_Θ^βf)∘Φ`. In particular `D²𝔉(M̂) = r^{−4}DH_MD` with `D := diag(r, r², …, r²)`, +which is `H̃` (entrywise: `r^{−2}∂_u²f(M)`, `r^{−1}∂_u∇_Θf(M)`, `D_Θ²f(M)`; control S2). Also `∇𝔉(M̂) = 0` and +`𝔉(M̂) = 0`. For `|ξ| ≤ 1` the point `x = Φ(M̂ + ξ)` satisfies `|x − M| ≤ r|ξ_X| + r²|ξ_Ξ| ≤ r|ξ| ≤ r` (as `r ≤ 1`), and the +third derivatives (`a + |β| = 3`) are bounded as follows: +- `(a, |β|) = (3, 0)`: `r^{−1}|∂_u³f(x)| ≤ r^{−1}|∂_u³f(M)| + r^{−1}|x − M|·|∇∂_u³f| ≤ 12κ + (3/2)C₀𝒩_r + C₀𝒩_r`, by + (1.1); +- `(2, 1)`: `|∂_u²∂_Θf| ≤ C₀𝒩_r`; `(1, 2)`: `r|∂_u∂_Θ²f| ≤ C₀𝒩_r`; `(0, 3)`: `r²|∂_Θ³f| ≤ C₀𝒩_r`. + +Since `κ ≤ 1 ≤ 𝒩_r`, every third partial derivative of `𝔉` is at most `16C₀𝒩_r` on `{|ξ| ≤ 1}`. Hence +`|D³𝔉[ξ′, ξ′, ξ′]| ≤ C₅𝒩_r|ξ′|³` there, for every vector `ξ′`, with `C₅ = C₅(d)`. Without (1.1) the entry `(3, 0)` would only +be `O(r^{−1}𝒩_r)`, and the barrier below would give back Lemma S′'s `r`-dependence. + +*Step 3 (the barrier).* Fix a realization in `{W_r > 0} ∩ {e = 1}`. Then `H_M < 0`, so `H̃ < 0`; put `λ := λ_min(−H̃)`. +By Taylor's formula, for `|ξ| ≤ 1`, + + 𝔉(M̂ + ξ) ≤ ½ξᵀH̃ξ + (C₅𝒩_r/6)|ξ|³ ≤ −(λ/2)|ξ|² + (C₅𝒩_r/6)|ξ|³. + +Put `δ := min(1, 3λ/(2C₅𝒩_r))`. For `|ξ| ≤ δ`, `(C₅𝒩_r/6)|ξ| ≤ λ/4`, so `𝔉(M̂ + ξ) ≤ −(λ/4)|ξ|²`. Let +`E := Φ(M̂ + B̄(0, δ))`, an ellipsoid. `Φ` is affine and injective, and `|Φ(M̂ + ξ) − M| ≤ r|ξ| ≤ r < L/2`; the projection +`R^d → X` is injective and open on `B(M, L/2)`. So `E` is an embedded closed topological ball in `X`, with interior +containing `M` and boundary `Φ(M̂ + ∂B(0, δ))`. On `E`, `f ≤ b`, so no point of `E` lies above `b`; on its boundary +`f ≤ b − r⁴λδ²/4`. Every continuous path from `M` to a point where `f > b` leaves `E`, so it crosses the boundary. By the +maximin characterization ([182] (2)), `d_f(M) ≤ b − r⁴λδ²/4`. On `{e = 1}`, `d_f(M) = f(S) = b − κr⁴`. Hence + + κ ≥ λδ²/4. (1.2) + +If `δ = 1`, then `λ ≤ 4κ`. Otherwise `δ = 3λ/(2C₅𝒩_r)` and (1.2) reads `λ³ ≤ (16/9)C₅²𝒩_r²κ`. Since `κ ≤ 1 ≤ 𝒩_r`, in +both cases + + 0 < λ_min(−H̃) ≤ ε″(𝒩_r), ε″(t) := C₆ t^{2/3} κ^{1/3}, C₆ := max(4, ((16/9)C₅²)^{1/3}) (1.3) + +(control S2). This is [182] §3's argument, with the ball `B(M, a_Lλ/K)` replaced by the image of a ball in window +coordinates; as there, it does not claim that `S` lies on `∂E`. + +*Step 4 (the weight and the layers).* This is #220's proof of Lemma S′ with `ε″` in place of its `ε`. On +`{W_r > 0} ∩ {e = 1}`: `|det K_M| = |det H_M|/r = r|det H̃| ≤ rλ‖H̃‖^{d−1}`; the pair is typed, so #198 §3's sign window +applied to #220 (F1) gives `|det K_S| ≤ 12k|Δ| + 2max_i|R_i| ≤ Cr(κ + r)𝒩_r^{N₃}`, with an exponent `N₃ ≥ max(m, N₁)` +(#220's exponent there, renamed to avoid a clash with §2's `N₂`); and `{H̃ < 0, λ_min(−H̃) ≤ ε} ⊂ {|λ_max(H̃)| ≤ ε}`. So, +everywhere, + + (W_r/r²) e ≤ C r²(κ + r) ε″(𝒩_r) ‖H̃‖^{d−1} 𝒩_r^{N₃} 1{|λ_max(H̃)| ≤ ε″(𝒩_r)}. + +On `{𝒩_r ∈ [2^j, 2^{j+1})}` replace `ε″(𝒩_r)` by `ε_j := ε″(2^{j+1})`. Lemma H (b) gives +`P_Q(𝒩_r ≥ 2^j | H̃) ≤ C_p2^{−jp}(P + |H̃|)^p`, and Lemma H (a) with #218 Lemma D (first bound, `n = d − 1 + p`, +`n′ = n + d(d − 1)/2`) gives `E_Q[‖H̃‖^{d−1}(P + |H̃|)^p1{|λ_max(H̃)| < 2ε_j}] ≤ CP^{p+n′}ε_j`. So the `j`-th term is at most +`C2^{j(N₃ + 4/3 − p)}r²(κ + r)κ^{2/3}P^N`, and `p = N₃ + 2` makes the series converge. This is (S″.1). + +*(S″.2).* `r^{−2}A_r^{eld} = 12π_r(v_r)r^{−2}E_Q[(W_r/r²)e]`, `π_r(v_r) ≤ Ce^{−c(b² + k²)}` ([R] (R5)) and +`P^Ne^{−ck²} ≤ C(1 + |b|)^N`; integrating in `b` gives the bound on `𝐓_r^{eld}`. ∎ + +*Comparison.* (S″.1) divided by #220 (S′.1) is `r⁴κ^{2/3}ℓ^{−2/3} = r^{4/3}`. At fixed `r` both are `O(ℓ^{2/3})`, the order +of #187's far density; the gain is in the `r`-dependence, as `r → 0` with `κ ≤ 1`. In #220 and #229 Lemma S′ was used on +`[a, r_0^*]` with `a = ℓ^{2/15}` and `ℓ^{1/9}`; with (S″.2), `∫_a^{r_0^*}𝐓_r^{eld}dr ≤ C(ℓ^{5/3}a^{−17/3} + ℓ^{2/3}a^{−2/3})` +whenever `a ≥ ℓ^{1/4}`, so that `κ = ℓ/r⁴ ≤ 1` on `[a, r_0^*]` (control S5). + +## 2. The rejected weight for `κ ≤ 1` + +Throughout §§2–3, `0 < κ ≤ 1` and `k = κr ≤ r`; the lower bound `κ ≥ r^θ` enters only in §4. Facts (B1)–(B5), the classes +`𝔏 ⊃ 𝔏_×` and the inequality (1.1) of note TL §1 are used as there. `G_r` is TL (2.1), and TL (2.2), + + 0 ≤ G_r ≤ 37κ²Δ² 1{A < 0, 23κ ≤ |z| ≤ 73κ}, + +holds for every `κ > 0`: its derivation uses only the cutoff `r|Q₁| ≤ c_eκ`. + +**Windows in `f₄`.** For `κ ≤ 1` every window below is a set of values of `f₄`, given `J″`. Given `J″`, `f₄` is Gaussian with +variance in `[c, C]` and a mean `μ₄` with `|μ₄| ≤ C(1 + |J″|)` (B4). On `{A < 0}`, `z = f₄ + 3|q|`, and `q` does not involve +`f₄`. + +**Lemma W⁻ (windows carry a Gaussian factor).** For `p, s ≥ 0` there are `C` and `N` (depending on `p` and `s`) such that, for +every law in `𝔏`, every +`0 < κ ≤ 1` and every `J″`-measurable Borel set `I = I(J″) ⊂ {x : |x + 3|q|| ≤ 216κ}` (on `{A < 0}`), + + E[(1 + |J′|)^p 1{A < 0, f₄ ∈ I} | J″] ≤ C |I| (1 + |J″|)^{N} (1 + |q|)^{−s}. (2.1⁻) + +*Proof.* `(1 + |J′|)^p ≤ (1 + |J″|)^p(1 + |f₄|)^p`. The density `p₄` of `f₄` given `J″` satisfies +`(1 + |x|)^pp₄(x) ≤ C_N(1 + |μ₄|)^{p+N}(1 + |x|)^{−N}` for every `N` (if `|x| ≥ 2|μ₄|` the Gaussian factor beats every power +of `|x|`; otherwise `1 + |x| ≤ 1 + 2|μ₄|`). On `I`, `|x| ≥ 3|q| − 216`, so `(1 + |x|)^{−s} ≤ 217^s(1 + |q|)^{−s}`: if +`|q| ≤ 216` the right side is at least `1`, and otherwise `|x| ≥ 3|q| − 216 ≥ 2|q|`. Integrate over `I`. ∎ + +*Use.* With (1.1) of TL, `Δ²Γ̃^{2j} ≤ λ^{2−j}|q|^j‖A‖^{2m−2}` (`j = 0, 1, 2`, and by interpolation `j = 1/2, 3/2`), and +`λ ≤ ‖A‖`, every weight below is at most +`κ^a` times a polynomial in `(|J″|, |q|)` of degree at most `2` in `|q|`, which (2.1⁻) with `s = 2` absorbs. In particular + + Δ²Q₁² ≤ C‖A‖^{2m−2}(λ²f₅² + |η|²|q|λ + ‖B‖²q²), Δ²|Q₁| ≤ C‖A‖^{2m−2}(λ²|f₅| + |η||q|^{1/2}λ^{3/2} + ‖B‖|q|λ), (2.2⁻) + +from `|Q₁| ≤ |f₅|/120 + |η|Γ̃/12 + ‖B‖Γ̃²/8` and (1.1). So, for instance, `E[κ²Δ²Q₁²(1 + |J′|)^p1{A < 0, |z| ≤ 73κ}] ≤ Cκ³`. + +**The good event.** Let `c_e = 1/200`, `δ_e = 1/96` and `N₂` be as in TL §2, and put + + 𝔊⁻ := {A < 0, λ ≥ λ₄, 𝒩 ≤ c₁₃κ/r, |Δ| ≥ C₁₂(r/κ)𝒩^{N₂}(1 + ‖B‖)}, λ₄ := C₄𝒩r(1 + |γ| + ‖B‖ + |η|)(1 + |f₄|/κ), + +with TL's `λ₄`. Only the last two conditions differ from TL's `𝔊` (`𝒩 ≤ c₁₃/r` and `|Δ| ≥ C₁₂r𝒩^{N₂}(1 + ‖B‖)`), and they +coincide with TL's at `κ = 1`. + +**Lemma GE⁻ (the decision on `𝔊⁻`).** There are `C₄`, `C₁₂` (large), `c₁₃` (small) and +`r₄⁻ ∈ (0, min(r_0^*, r_Q, 1/10, L/228)]` such that, for `0 < r ≤ r₄⁻`, `0 < κ ≤ 1` and every `f ∈ C⁹(X)` with the pins, +conclusions (a)–(c) of TL's Lemma GE hold on `𝔊⁻`: +- (a) the pair is not anti-typed, and `ω_r = (w₀ + 12kP₁ + ε_ω)₊` with `|ε_ω| ≤ C(r² + k²)𝒩^N`; +- (b) if the pair is typed: `|φ_r| < 3`, `Γ̃² ≤ 72κ(1 + |f₄|/κ)/λ`, and (Q′1), (Q′2), `ε̃ ≤ c_eκ`, `ζ := r|Q₁|/κ ≤ c_e` hold, as + does Lemma R₂; +- (c) if the pair is typed, then `1 − e = 1{|z| ≥ 24κ + 36rQ₁}` off `ℰ := {||z| − 24κ − 36rQ₁| ≤ 72κϑ}`, and on + `𝔊⁻ ∩ {typed}`, `ℰ ⊂ {23κ ≤ |z| ≤ 25κ}`. + +*Proof.* TL's proof, line by line; every inequality that used `κ ≥ 1` there is replaced as follows (control S3 records the +arithmetic). +- (a) By #220 (F1), `s(det K_S − det K_M) = 12k|Δ| + O(r²𝒩^{N₁})`. On `𝔊⁻`, `12k|Δ| = 12κr|Δ| ≥ 12C₁₂r²𝒩^{N₂}`, so this is + positive for `C₁₂` large and `N₂ ≥ N₁`. The weight is then Lemma Ω (4.1)–(4.2), as in TL: `ε_ω` collects + `9k²[Δ(Δ_C + Δ_BB) − Δ_B²]` and `O(r²𝒩^N)`. +- (b) On typed pairs `|rY_r| < 6k|Δ| + Cr²𝒩^{N₁}`, and `Cr𝒩^{N₁} ≤ κ|Δ|` on `𝔊⁻`; so `|Y_r| < 7κ|Δ|`. With + `Y_r = 6κΔφ_r + 3kΔ_B` and `|Δ_B| ≤ m𝒩^{m−1}‖B‖`, + `|φ_r| < 7/6 + rm𝒩^{m−1}‖B‖/(2|Δ|) ≤ 7/6 + κm/(2C₁₂) < 3`. The bound on `Γ̃²` is TL's. Then, with `λ ≥ λ₄`, + `r/κ ≤ c₁₃/𝒩` and `k ≤ 1`: + - `r‖B‖Γ̃²/(8κ) ≤ 9r‖B‖(1 + |f₄|/κ)/λ ≤ 9/C₄`; + - `r|η|Γ̃/(12κ) ≤ (1/12)(72r²|η|²(1 + |f₄|/κ)/(κλ))^{1/2} ≤ (1/12)(72r|η|/(C₄𝒩κ))^{1/2} ≤ (1/12)(72c₁₃/C₄)^{1/2}`; + - `r|f₅|/(120κ) ≤ 𝒩r/(120κ) ≤ c₁₃/120`. + + So `ζ ≤ c_e`. Next, `ε̃ = 220C₁𝒩r(1 + Γ̃)² ≤ 440C₁𝒩r(1 + Γ̃²) ≤ (440C₁c₁₃ + 31680C₁/C₄)κ ≤ c_eκ`. For (Q′1), it + suffices that `3𝒩r`, `4𝒩r²`, `(175/8)𝒩r²Γ̃` and `3𝒩r²((κ + 1)/λ)^{1/2}` are each `≤ λ/8`: + - the first two hold for `C₄ ≥ 32`; + - the third holds if `175²·72𝒩²r⁴κ(1 + |f₄|/κ) ≤ λ³`, which follows from `λ³ ≥ C₄³𝒩³r³(1 + |f₄|/κ)³`, `κr ≤ 1` and + `C₄ ≥ 131`; + - the fourth holds if `1152𝒩²r⁴ ≤ λ³`, since `κ + 1 ≤ 2`. + + For the second part of (Q′1), `r²Γ̃² ≤ 72κr²(1 + |f₄|/κ)/λ ≤ 72k/(C₄𝒩) ≤ 72/C₄`, so `2r²·5M̃ ≤ 44r` for `C₄ ≥ 72`; and + `(κ + 1)/λ ≤ 2/(C₄r)`, so `2r²·3((κ + 1)/λ)^{1/2} ≤ 6r(2r/C₄)^{1/2} ≤ 6r`; and `2r²·4 = 8r² ≤ r`. So + `6r + 2r²R′ ≤ 57r ≤ L/4` for `r ≤ L/228`. (Q′2) and Lemma R₂ are as in TL. +- (c) As in TL. Off `J₊ ∪ J₋`, Lemma Q′ decides `e = 1{|φ_r| < 1/3}`: (Q′3) is `ε̃ ≤ κ/4`, and (Q′4) holds because + `||φ_r| − 1/3| > δ_e > 2c_e/3 ≥ 2ε̃/(3κ)`. There `1{|φ_r| < 1/3} = 1{|z| < 24κ + 36rQ₁}`, since + `36r|Q₁| ≤ 36c_eκ < 72κδ_e`. On `J_±`, Lemma Q″ (c) decides `e` off `ℰ`. The terms of `ϑ = C₁₀[ζ² + ε₂′/κ + ε̃²/κ²]`: + `𝒩r²/κ ≤ c₁₃r`; `𝒩r²Γ̃³/κ ≤ 72^{3/2}k^{1/2}/C₄^{3/2}`; `𝒩²r²/(λκ) ≤ 𝒩r/(C₄κ) ≤ c₁₃/C₄`; `𝒩²r²Γ̃²/(λκ) ≤ 72/C₄²`; and `ζ`, + `ε̃/κ` as in (b). Each tends to `0` as `C₄ → ∞` and `c₁₃ → 0`, so `72κϑ + 36r|Q₁| ≤ κ`. ∎ + +**Proposition RW⁻ (the rejected weight for `κ ≤ 1`).** For every `p ≥ 1` there is `C_p` such that, for `0 < r ≤ r₄⁻` and +`0 < κ ≤ 1`, + + |E_{Q̄_{r,k}}[ω_r(1 − e)] − E_{Q̄_{r,k}}[G_r]| ≤ C (κr² + r³/κ) + C_p (r/κ)^p. (2.3⁻) + +*Proof.* By Lemma GE⁻, on `𝔊⁻` off `ℰ`: if the pair is typed, `ω_r(1 − e) = (w₀ + 12kP₁ + ε_ω)₊1{|z| ≥ 24κ + 36rQ₁}` and +the cutoff of `G_r` holds; if it is not typed, `ω_r = 0` and `(w₀ + 12kP₁ + ε_ω)₊ = (r^{−2}Π)₊ = 0`, so `G_r ≤ |ε_ω|`. +Typed pairs on `𝔊⁻` have `|z| = 72κ|φ_r| < 216κ`, and `G_r` vanishes off `{|z| ≤ 73κ}`. Hence + + |ω_r(1 − e) − G_r| ≤ (ω_r + G_r)(1_{(𝔊⁻)^c} + 1_{𝔊⁻∩{typed}∩ℰ}) + |ε_ω| 1{A < 0, |z| < 216κ}. + +Write `E` for `E_{Q̄_{r,k}}`, and use `𝒩`-layers as in TL. Two pathwise bounds on the weights are used: +- (W1) `ω_r ≤ 4(6κ|Δ| + ϱ)²1{|Y_r| ≤ 6κ|Δ| + ϱ}`, with the slack `ϱ := C_Rr𝒩^{N₁}` (#229 (4.1), where it is called `η`; + here `η` is the jet `∇_Θ∂_u³f(0)`). It holds everywhere, since a typed pair has `det K_M det K_S < 0`. Given `J″`, in the + layer `j`, `{|Y_r| ≤ 6κ|Δ| + ϱ_j}` is an interval of `f₄` of length `144κ + 24ϱ_j/|Δ|` (#229 Step W2). This window is not of + the form in Lemma W⁻, and it is used below only with the bounded density of `f₄` (B4): the weights integrated over it + contain no power of `|q|`. +- (W2) `G_r ≤ 37κ²Δ²1{A < 0, 23κ ≤ |z| ≤ 73κ}`: two intervals of `f₄`, of total length `100κ`. + +*The term `|ε_ω|`.* By (B5) and (2.1⁻), `E[|ε_ω|1{A < 0, |z| < 216κ}] ≤ C(r² + k²)κ ≤ 2Cκr²`. + +*The complement of `𝔊⁻`.* `(𝔊⁻)^c ⊂ 𝔅_a ∪ 𝔅_b ∪ 𝔅_c ∪ 𝔅_d`, with `𝔅_a := {λ_max(A) ≥ −r𝒩}`, `𝔅_b := {A < 0, λ < λ₄}`, +`𝔅_c := {𝒩 > c₁₃κ/r}` and `𝔅_d := {A < 0, |Δ| < ε_d}`, `ε_d := C₁₂(r/κ)𝒩^{N₂}(1 + ‖B‖)`. +- `𝔅_a`. If `λ_max(A) > r𝒩`, the pair is not typed and `A ≮ 0`, so both terms vanish. If `|λ_max(A)| ≤ r𝒩`, then + `|Δ| ≤ r𝒩^m`, and (W1) gives `ω_r ≤ Cr²𝒩^N`; with #218 Lemma D in layers this part costs `≤ Cr³`. `G_r` there is covered by + `𝔅_b`, since `λ ≤ r𝒩 < λ₄`. +- `𝔅_b`. Put `t₁ := 2C₄𝒩r(1 + |γ| + ‖B‖ + |η|)`, so that `λ₄ ≤ t₁max(1, |f₄|/κ)`. + - Here and in `𝔅_d`, `A` is integrated given `J‴`. Under every law in `𝔏`, the law of `A` given `J‴` is again a Schur + complement: Gaussian with covariance `≥ c₀I` and mean affine in `J‴` (as in #220 (F5)). So #218 Lemma D and #237 + Lemma D′ apply to it, as (B4) does. + - On `{λ < t₁}`: `κ²Δ² ≤ κ²t₁²‖A‖^{2m−2}`. For `G_r`, integrate `f₄` over (W2) by (2.1⁻), then `A` given `J‴`: + `≤ Cκ³E[t₁³(…)] ≤ Cκ³r³`. For `ω_r`, bound the window factor by `1`: `E[(κ²t₁² + ϱ²)1{λ < t₁}] ≤ Cr³`. + - On `{t₁ ≤ λ < t₁|f₄|/κ}`: `κλ < t₁|f₄|`, so `κ²Δ² ≤ κ²λ²‖A‖^{2m−2} ≤ t₁²f₄²‖A‖^{2m−2}`. For `G_r`, (2.1⁻) over (W2) gives + `≤ Cκr²`. For the `κ²Δ²` part of `ω_r`, integrate `f₄` over (W1)'s interval: `≤ Cr²E[min(1, κ + ϱ_j/|Δ|)(…)]`, and #229 + (4.2) (`E[(1 + ‖A‖)^nmin(1, s/|Δ|) | J‴] ≤ C(…)s(4 + 2log₂(1/s))` for `s ≤ 1/2`; for larger `ϱ_j` use `min ≤ 1 ≤ 2ϱ_j`) + gives `≤ Cr²(κ + r log(2/r))`. For the `ϱ²` part, condition on the jets other than `A`: `P(λ < t₁|f₄|/κ | …) ≤ + Ct₁|f₄|/κ` (B4), so it costs `≤ Cr³/κ`. + + So `𝔅_b` costs `≤ C(κr² + r³/κ + r³log(2/r))`, and `r³log(2/r) ≤ κr² + r³/κ` for `r ≤ r₄⁻` (the right side is at least + `2r^{5/2}`). +- `𝔅_c`. By (W1), `ω_r ≤ C𝒩^N`, and `G_r ≤ 37𝒩^{2m}`. Markov's inequality gives `≤ C_p(r/κ)^p`. +- `𝔅_d`. For `G_r`: `κ²Δ² ≤ κ²ε_d²`; (2.1⁻) over (W2), then `P(|Δ| < ε_d | J‴) ≤ Cε_d(…)` (B4), give `≤ Cκ³E[ε_d³(…)] ≤ Cr³`. + For `ω_r`: `6κ|Δ| + ϱ ≤ Cr𝒩^{N}(1 + ‖B‖)`, so `ω_r ≤ Cr²𝒩^N(1 + ‖B‖)²` on (W1)'s interval. Integrating `f₄`, then `A` in + dyadic layers of `|Δ|` (Lemma D′ of #237), gives `≤ Cr²E[κ·ε_d + ϱ(1 + log₂(ε_d/ϱ)₊)] ≤ Cr³(1 + log(2/κ)) ≤ Cr³/κ`. + +*The edge set on `𝔊⁻ ∩ {typed}`.* There `ω_r ≤ 37κ²Δ² + |ε_ω|` and `G_r ≤ 37κ²Δ²`, and the part `|ε_ω|` is bounded above. +In the layer `j`, `ℰ ⊂ ℰ_j`, with `ϑ` evaluated at `𝒩 = 2^{j+1}`; given `J″`, `ℰ_j ∩ {23κ ≤ |z| ≤ 25κ}` lies in two intervals +of `f₄` of total length `≤ 288κϑ_j`. By (2.1⁻) the cost is at most `C2^{−jp}E[κ³Δ²ϑ_j(1 + |J″|)^N(1 + |q|)^{−2}]`, and: +- `κ³Δ²ζ² = κr²Δ²Q₁²`, bounded by (2.2⁻); +- `κ³Δ²ε₂′/κ ≤ Cκ²r²𝒩²[Δ²(1 + Γ̃³) + Δ²(1 + Γ̃²)/λ] ≤ Cκ²r²𝒩²‖A‖^{2m−2}(λ² + λ^{1/2}|q|^{3/2} + λ + |q|)`; +- `κ³Δ²ε̃²/κ² ≤ Cκr²𝒩²Δ²(1 + Γ̃⁴) ≤ Cκr²𝒩²‖A‖^{2m−2}(λ² + q²)`. + +So the edge set costs `≤ Cκr²`. Collecting gives (2.3⁻). ∎ + +For `κ ≥ 1` the same events cost `O(r²(1 + κ))` (TL Proposition RW). For `κ ≤ 1` the window has mass `O(κ)` instead of +`O(1/κ)`, and the margins on `𝒩` and `|Δ|` scale with `r/κ`. That is where the terms `r³/κ` and `(r/κ)^p` come from: they +measure how far the pair is from the cusp regime `r ≪ κ`. + +## 3. The edge shift for `κ ≤ 1` + +`G_s` is TL (3.0): `G_s = (w₀ + 12κsP₁)₊1{A < 0, |z| ≥ 24κ + 36sQ₁, |s||Q₁| ≤ c_eκ}`, with `G_s(E, −O) = G_{−s}(E, O)`. + +**Lemma Δ⁻ (the edge shift for `κ ≤ 1`).** For `p ≥ 0` there is `C` such that, for every law in `𝔏`, `0 < κ ≤ 1` and +`0 < r ≤ 1`, + + E[|G_r − G_{−r}| (1 + |J′|)^p] ≤ C r κ², (Δ.1⁻) + |E[G_r + G_{−r} − 2G₀]| ≤ C r² κ. (Δ.2⁻) + +*Proof.* Condition on `J″` with `A < 0`. Then `q`, `Q₁`, `P₁`, `β := 12κΔ²Q₁ = 12κP₁` and the cutoff do not involve `f₄`, +and `z = f₄ + 3|q|`. + +*The cutoff.* On `{r|Q₁| > c_eκ}`, `G_{±r} = 0`. So `G_r − G_{−r} = 0` there, and for (Δ.2⁻) the cutoff costs +`2E[G₀1{r|Q₁| > c_eκ}] ≤ 2(r/(c_eκ))²E[36κ²Δ²Q₁²1{A < 0, 24κ ≤ |z| < 72κ}] ≤ Cr²κ`, by (2.1⁻) and (2.2⁻). + +*On `{r|Q₁| ≤ c_eκ}`.* Then `|36sQ₁| ≤ 36c_eκ = 0.18κ` and `|sβ| ≤ 12c_eκ²Δ²` for `|s| ≤ r`. In `f₄`, the rejected set of +`G_s` is `{f₄ ≥ e₊(s)} ∪ {f₄ ≤ e₋(s)}`, with + + e_±(s) := ±(24κ + 36sQ₁) − 3|q|, so that {e_±(r), e_±(−r)} = {e_±(0) + a, e_±(0) − a}, a := 36rQ₁: + +the edges are exactly linear in `s` (for the upper edge, `e₊(±r) = e₊(0) ± a`). Take the upper branch; the lower one is its mirror. With `Z′ := 48κ − 3|q|` (the +value of `f₄` at `z = 48κ`) and `p₄` the density of `f₄` given `J″`, + + S₊(s) := ∫_{e₊(s)}^{∞} (w₀ + sβ)₊ p₄ df₄ = ∫_{e₊(s)}^{Z′} (w₀ + sβ) p₄ df₄ + ∫_{Z′}^{∞} (w₀ + sβ)₊ p₄ df₄, + +because on `24κ − 0.18κ ≤ z ≤ 48κ`, `w₀ ≥ (Δ²/144)(5184 − 2304)κ² = 20κ²Δ² > |sβ|`. Hence, with `F₊ := w₀p₄` and +`Φ₊(x) := ∫_{e₊(0)}^{e₊(0)+x}F₊ df₄`, + + S₊(r) + S₊(−r) − 2S₊(0) = −[Φ₊(a) + Φ₊(−a)] + rβ∫_{e₊(r)}^{e₊(−r)} p₄ df₄ + ∫_{Z′}^{∞}[(w₀ + rβ)₊ + (w₀ − rβ)₊ − 2(w₀)₊] p₄ df₄. + +- *First term.* `Φ₊(0) = 0` and `Φ₊″ = F₊′`, so `|Φ₊(a) + Φ₊(−a)| ≤ a²sup_{|f₄ − e₊(0)| ≤ |a|}|F₊′|`. There + `|z| ≤ 24.2κ`, so `|w₀′| = (Δ²/72)|z| ≤ κΔ²/2`; also `w₀ ≤ 36κ²Δ²` and `|p₄′| ≤ C(1 + |f₄ − μ₄|)p₄`. So + `|F₊′| ≤ CκΔ²(1 + |f₄ − μ₄|)p₄` (`κ ≤ 1`). +- *Second term.* `≤ r|β|·2|a|·sup p₄ = 864κr²Δ²Q₁²·sup p₄`. +- *The kink.* The integrand is nonzero only where `|w₀| ≤ r|β|`, that is `|5184κ² − z²| ≤ 1728κr|Q₁|`. Since + `1728κr|Q₁| ≤ 8.64κ²`, there `z ≥ 71.9κ`, and `|z − 72κ| ≤ 1728κr|Q₁|/(143.9κ) ≤ 12.1r|Q₁|`. The integrand is at most + `r|β|` (a symmetric second difference of `y ↦ y₊`). So the kink contributes `≤ r|β|·24.2r|Q₁|·sup p₄ ≤ 291κr²Δ²Q₁²·sup p₄`. + +Every supremum is over `f₄` with `|z| ≤ 73κ`, where (2.1⁻)'s argument gives +`(1 + |f₄ − μ₄|)p₄ ≤ C(1 + |J″|)^N(1 + |q|)^{−2}`. With (2.2⁻), `E|S₊(r) + S₊(−r) − 2S₊(0)| ≤ Cκr²`. The lower branch is the +mirror image under `z ↦ −z` (`f₄ ↦ −f₄ − 6|q|`, with `p₄` reflected) at the same `s`: there `e₋(±r) = e₋(0) ∓ a`, the edge +term enters as `+[Φ₋(a) + Φ₋(−a)]`, and the three bounds, all in absolute value, are the same. This proves (Δ.2⁻). + +For (Δ.1⁻), on each branch: between `e₊(r)` and `e₊(−r)` (length `2|a|`), one of the two integrands is `0` and the other is at +most `37κ²Δ²`; elsewhere `|(w₀ + rβ)₊ − (w₀ − rβ)₊| ≤ 2r|β|` on a window of length at most `50κ`. So, adding the two +branches, `E[|G_r − G_{−r}|(1 + |f₄|)^p | J″] ≤ Crκ²Δ²|Q₁|·sup(1 + |x|)^pp₄`, and (2.1⁻) with (2.2⁻) gives (Δ.1⁻). ∎ + +For `κ ≥ 1` TL expands the edge shift along the radial direction of `γ`, because the `f₄`-density varies on the scale `1` +while the window has width `≍ κ`. For `κ ≤ 1` the window has width `≍ κ ≤ 1`, so the expansion in `f₄` is the natural one, +and `|F₊′| ≤ CκΔ²(…)` gives the factor `κ` directly. The second-order effect is `O(r²κ)`, which is `O((r/κ)²)` per unit of +the window mass `≍ κ³`. + +## 4. Proof of Theorem TL⁻ + +Fix `θ ∈ (0, 1)`, put `p := ⌈3/(1 − θ)⌉`, and let `r^θ ≤ κ ≤ 1` and `0 < r ≤ r₀ := r₄⁻`. Then +`(r/κ)^p ≤ r^{(1−θ)p} ≤ r³ ≤ r³/κ`. Write `E_{r,k} := E_{Q̄_{r,k}}`. The steps are TL §4's. + +*Step 1 (the rejected weight).* By (0.1) of TL and Proposition RW⁻, +`𝐓_r^{rej}(k, u) = 12p_{V_r}(v(k))(E_{r,k}[G_r] + O(κr² + r³/κ))`. + +*Step 2 (the odd mean).* As in TL, `h(t) := E_{𝕃_t}[G_r]`, `h′(0) = kE_{r,0}[G_rℓ_r]`, and +`|h″(t)| ≤ Ck²E_{𝕃_t}[G_r(1 + |O|)²] ≤ Ck²κ³`, by TL (2.2) and (2.1⁻) (the laws `𝕃_t` are in `𝔏`). So +`E_{r,k}[G_r] = E_{r,0}[G_r] + kE_{r,0}[G_rℓ_r] + O(k²κ³)`. + +*Step 3 (first order vanishes by parity).* `E_{r,0}[G_rℓ_r] = ½E_{r,0}[(G_r − G_{−r})ℓ_r]`, and `|ℓ_r| ≤ C(1 + |O|)`, so by +(Δ.1⁻) `|kE_{r,0}[G_rℓ_r]| ≤ Ckrκ² = Cκ³r²`. + +*Step 4 (second order).* By parity (`Q̄_{r,0}` is `𝒫`-invariant and `G_r∘𝒫 = G_{−r}`), `E_{r,0}[G_r] = E_{r,0}[G_{−r}]`, so +`E_{r,0}[G_r] = E_{r,0}[G₀] + ½E_{r,0}[G_r + G_{−r} − 2G₀] = E_{r,0}[G₀] + O(κr²)` by (Δ.2⁻). + +*Step 5 (`r → 0` in the law).* As in TL, along the linear interpolation of the covariances, +`|E_{r,0}[G₀] − E_{0,0}[G₀]| ≤ Cr²sup_tE_t[G₀(1 + |J′|)²] ≤ Cr²κ³`. + +*Step 6 (the prefactor).* `|p_{V_r}(v(k)) − p_{V_0}(v(0))| ≤ C(r² + k²)`, and all the expectations above are `O(κ³)`. + +Collecting Steps 1–6, `𝐓_r^{rej}(k, u) = 12p_{V_0}(v(0))E_{0,0}[G₀] + O(κr² + r³/κ + k²κ³ + κ³r² + r²κ³ + (r² + k²)κ³)` +(Steps 1, 2, 3, 5 and 6; Step 4's `O(κr²)` is in the first term), and the terms after `r³/κ` are at most `Cκ³r² ≤ Cκr²`, +since `k ≤ r` and `κ ≤ 1`. By TL (0.2) the main term is `𝓐^{rej}(κ, u)`. This proves (TL⁻). ∎ + +(Control S6 checks that each monomial `r^aκ^b` of §§2–4 is at most `κr² + r³/κ` on `r ≤ κ ≤ 1`.) + +## 5. Proofs of the corollaries + +**Three bounds on the cusp side.** For `0 < κ ≤ 1`: +- `0 ≤ 𝓐^{eld}(κ, u) ≤ 𝓐^{cand}(κ, u) ≤ Cκ³`. Indeed `𝓐^{cand} = 12p_{V_0}(v(0))E_{Q̄_{0,0}}[w_κ(A, Y′)]` (#237 Step U4's + disintegration), and `w_κ(A, Y′) ≤ 36κ²Δ²1{A < 0, |z| < 72κ}`; apply (2.1⁻). +- `0 ≤ 𝓐^{rej}(κ, u) ≤ Cκ³` likewise (TL §5). +- *The contact kernels.* At fixed `b`, #218 Step C3 gives `r^{−2}A_0(b, κr, u) = 12π_0(v_0(b, k))36κ²E_0[Δ²1{A<0} | v_0(b, k)]` + exactly, with `π_0(v_0(b, k)) = p_even(b, 0, 0)p_odd(0, 12k, 0)` and a conditional law of the even jets (so of `A`) that + does not depend on `k`. The odd pin vector is centred Gaussian, so `p_odd(0, 12k, 0) = p_odd(0, 0, 0)e^{−a₀k²}` with + `a₀ > 0`, for every `k ≥ 0`. Comparing with #218's `𝒜^{con}(b, κ, u) = 12π_0(v_0(b, 0))E_0[36κ²Δ²1{A<0} | b]` gives + `r^{−2}A_0(b, κr, u) = e^{−a₀k²}𝒜^{con}(b, κ, u)` pointwise in `b`. (Equivalently, after the `b`-integral: #237 Lemma K's + value `𝐀₀(k, u) = 12p_{V_0}(v(k))·36k²E_{Q̄_{0,k}}[Δ²1{A<0}]` at `r = 0`, with `p_{V_0}(v(k)) = p_{V_0}(v(0))e^{−a₀k²}`.) + Integrating in `b`, for every `k ≥ 0`, exactly, + + r^{−2}𝐀₀(κr, u) − 𝓐^{con}(κ, u) = (e^{−a₀k²} − 1)𝓐^{con}(κ, u), so |r^{−2}𝐀₀(κr, u) − 𝓐^{con}(κ, u)| ≤ Cκ²k². (5.0) + +*Proof of Corollary TS.* Put `ρ := ℓ^{3/14}` and `a := ℓ^{1/7}`. For small `ℓ`, `ρ ≤ min(r₃, r₀)` (`r₃` of #237 Lemma U, +`r₀` of Theorem TL⁻ at `θ = 2/3`), `ℓ^{1/4}` is below the radius of Theorem TL, and `a < r_0^*`. The order is +`ℓ^{1/3} < ℓ^{1/4} < ρ < ℓ^{1/5} < a`. TL's decomposition (5.1) holds at this `ρ`: + + ν_eld − cℓ^{−1/3} − ν_eld^{far,r_0^*} = 𝒦₁ − 𝒦₂ + I^{eld} + J₄, (5.1) + +with `𝒦₁ := ∫_0^ρ∫(𝐓_r − r^{−2}𝐀₀)`, `𝒦₂ := ∫_0^ρ∫𝐓_r^{rej}`, `I^{eld} := ∫_ρ^{r_0^*}∫𝐓_r^{eld}` and `J₄ := −∫_ρ^∞∫r^{−2}𝐀₀` +(integrands at `(ℓ/r³, u)`, inner integrals `dσ(u)`, outer `dr`). We keep the cusp tails explicit. + +- *`𝒦₁`.* For `r ≤ ρ ≤ ℓ^{1/5}`, `k = ℓ/r³ ≥ r²`, so #237 Lemma U applies. #237 §5's computation with `ρ` in place of its + split gives `∫_0^ρ[𝐀₂(ℓ/r³) − 𝐀₂(0)] = c₂ℓ^{1/3} + O(ℓ²ρ^{−5})` (after `∫dσ`; #218 (0.1) and Lemma K), and + `∫_0^ρ𝓐(ℓ/r⁴)dr = ℓ^{1/4}∫_0^{ρℓ^{−1/4}}𝓐(s^{−4})ds = I^{cand}ℓ^{1/4} − ∫_ρ^∞𝓐(ℓ/r⁴)dr`. The error of (U.1) integrates + to `O(ρ³ + ℓ^{2/3})`. So + + 𝒦₁ = c₂ℓ^{1/3} + I^{cand}ℓ^{1/4} − ∫_ρ^∞∫𝓐(ℓ/r⁴, u) dσ dr + O(ρ³ + ℓ^{2/3} + ℓ²ρ^{−5}). + +- *`𝒦₂`.* + - On `[0, ℓ^{1/4}]`, Corollary TL1: `ℓ^{1/4}∫_0^1∫𝓐^{rej}(s^{−4}, u)dσ ds + O(ℓ^{2/3}) = ∫_0^{ℓ^{1/4}}∫𝓐^{rej}(ℓ/r⁴, u) + O(ℓ^{2/3})`. + - On `[ℓ^{1/4}, ρ]`, `κ = ℓ/r⁴ ∈ [ℓ^{1/7}, 1]`, and `r ≤ ρ` gives `r^{2/3} ≤ ρ^{2/3} = ℓ^{1/7} ≤ κ`. So Theorem TL⁻ applies with + `θ = 2/3`, and its error integrates to `C∫_{ℓ^{1/4}}^ρ(ℓr^{−2} + r⁷/ℓ)dr ≤ C(ℓ^{3/4} + ρ⁸/ℓ)`. + - By #242 §0, `I^{cand} − c₁ = ∫_S∫_0^∞𝓐^{rej}(s^{−4}, u)ds dσ`. So + + 𝒦₂ = (I^{cand} − c₁)ℓ^{1/4} − ∫_ρ^∞∫𝓐^{rej}(ℓ/r⁴, u) dσ dr + O(ℓ^{2/3} + ℓ^{3/4} + ρ⁸/ℓ). + +- *The cusp tails and `J₄`.* Since `𝓐 − 𝓐^{rej} = 𝓐^{eld} − 𝓐^{con}`, + + 𝒦₁ − 𝒦₂ + J₄ = c₂ℓ^{1/3} + c₁ℓ^{1/4} − ∫_ρ^∞∫𝓐^{eld}(ℓ/r⁴, u) + ∫_ρ^∞∫[𝓐^{con}(ℓ/r⁴, u) − r^{−2}𝐀₀(ℓ/r³, u)] + O(…). + + By the first bound, `0 ≤ ∫_ρ^∞∫𝓐^{eld} ≤ Cℓ³∫_ρ^∞r^{−12}dr = (C/11)ℓ³ρ^{−11}`. By (5.0) with `κ²k² = ℓ⁴r^{−14}`, the contact + difference is at most `(C/13)ℓ⁴ρ^{−13}`. This is where TL's row `ℓ²ρ^{−7}` goes: TL bounded `J₄` and the cusp tail of `𝒦₁` + separately, each by `Cℓ²ρ^{−7}`, and (5.0) shows that they cancel. +- *`I^{eld}`.* `I^{eld} ≥ 0`. On `[ρ, r_0^*]`, `k = ℓ/r³ ≤ ℓρ^{−3} ≤ r` and `κ ≤ ℓ^{1/7} ≤ 1`. Split at `ℓ^{1/5}` and `a`: + - on `[ρ, ℓ^{1/5}]`, `κ ≥ r`, and (W⁺.2) integrated in `b` gives `𝐓_r^{eld} ≤ 𝐓_r ≤ C(κ + r)²(κ + r log(2/r)) + ≤ 4C(κ³ + κ²r log(2/r))`, which integrates to `≤ C(ℓ³ρ^{−11} + ℓ²ρ^{−6}log(1/ℓ))`; + - on `[ℓ^{1/5}, a]`, `κ ≤ r`, and (W⁺.2) gives `𝐓_r^{eld} ≤ 8Cr³log(2/r)`, which integrates to `≤ Ca⁴log(1/ℓ)`; + - on `[a, r_0^*]`, (S″.2) gives `𝐓_r^{eld} ≤ C(κ + r)κ^{2/3} = C(ℓ^{5/3}r^{−20/3} + ℓ^{2/3}r^{−5/3})`, which integrates to + `≤ C(ℓ^{5/3}a^{−17/3} + ℓ^{2/3}a^{−2/3})`. + +Collecting, `ν_eld − cℓ^{−1/3} − c₁ℓ^{1/4} − c₂ℓ^{1/3} − ν_eld^{far,r_0^*}` is bounded by the sum of the rows of the ledger +below, and at `ρ = ℓ^{3/14}`, `a = ℓ^{1/7}` the least exponent is `4/7`. This is (TS.1). Subtracting (TS.1) from #237 (P.1) +(remainder `ℓ^{3/5}`, and `3/5 > 4/7`) gives (TS.2). For SIDE24 divide by `cℓ^{−1/3}`: `4/7 + 1/3 = 19/21`. ∎ + +*The ledger of (TS.1)* (exponents of `ℓ` at `ρ = ℓ^{3/14}`, `a = ℓ^{1/7}`; control S5): + +| Term | Source | Exponent | +|---|---|---| +| `a⁴log(1/ℓ)` | `I^{eld}` on `[ℓ^{1/5}, a]`, (W⁺.2) (the typed mass at `κ ≤ r`) | **4/7**, with `log(1/ℓ)` | +| `ℓ^{2/3}a^{−2/3}` | `I^{eld}` on `[a, r_0^*]`, Lemma S″ | **4/7** | +| `ρ³` | the `r²` part of Lemma U | 9/14 | +| `ℓ³ρ^{−11}` | the elder cusp tail; (W⁺.2) on `[ρ, ℓ^{1/5}]` | 9/14 | +| `ℓ^{2/3}` | Lemma U at the fold scale; Corollary TL1 | 2/3 | +| `ℓ²ρ^{−6}log(1/ℓ)` | (W⁺.2) on `[ρ, ℓ^{1/5}]` | 5/7, with `log(1/ℓ)` | +| `ρ⁸/ℓ` | the `r³/κ` part of (TL⁻) | 5/7 | +| `ℓ^{3/4}` | the `κr²` part of (TL⁻) | 3/4 | +| `ℓ^{5/3}a^{−17/3}` | Lemma S″, its `κ^{5/3}` part | 6/7 | +| `ℓ²ρ^{−5}` | the finite part of `𝐀₂` | 13/14 | +| `ℓ⁴ρ^{−13}` | the contact difference (5.0) | 17/14 | + +The split `a = ℓ^{1/7}` balances the two bold rows, so moving it cannot improve `4/7`. Any `ρ = ℓ^σ` with +`1/5 < σ ≤ 17/77` gives the same result: `σ > 1/5` keeps Lemma U and (W⁺.2) in range and makes Theorem TL⁻ apply with +`θ = (1 − 4σ)/σ < 1`, and `σ ≤ 17/77` keeps `ℓ³ρ^{−11}` at or below `ℓ^{4/7}`. The choice `σ = 3/14` gives `θ = 2/3`. + +*How each improvement contributes* (control S5). +- With TL's inputs and the bookkeeping (5.0) alone, the least exponent stays `4/9`, from #229's intermediate bound. +- Adding Lemma S″, but not Theorem TL⁻, gives `6/13`: `ρ²` (the `O(r)` cusp error on `κ ≤ 1`) against `ℓ³ρ^{−11}`, at + `ρ = ℓ^{3/13}`. Since `6/13 < 1/2`, this is not enough. +- Theorem TL⁻ removes `ρ²`, and the least exponent becomes `4/7`. So both new inputs are needed to pass `ℓ^{1/2}`. +- (5.0) is not needed for `4/7` itself: without it, TL's row `ℓ²ρ^{−7}` stays, and its exponent `2 − 7σ` is at least `4/7` + exactly for `σ ≤ 10/49`. So `4/7` still holds for `σ ∈ (1/5, 10/49]`, but only with Theorem TL⁻ at `θ = (1 − 4σ)/σ ≥ 9/10`, + close to its edge `κ ≈ r`. With (5.0), `σ = 3/14` and `θ = 2/3` suffice. + +## 6. Remarks + +1. **What fixes `4/7`.** The two bold rows are the intermediate elder mass. On `κ ≤ r` (that is `r ≥ ℓ^{1/5}`) #229's bound + (W⁺.2) is the typed mass `r³log(2/r)`, which ignores the elder mark, and Lemma S″ is `rκ^{2/3}`. They cross at + `r = ℓ^{1/7}`. Every other row has exponent at least `9/14`. (Balancing with the logarithm, + `a = ℓ^{1/7}(log(1/ℓ))^{−3/14}`, would give `O(ℓ^{4/7}(log(1/ℓ))^{1/7})`.) + - *A formal refinement (not proved).* On typed pairs the ridge profile through `M` has cubic and quartic coefficients + `O(κ + r𝒩/|Δ|)` in window coordinates, not `O(𝒩)`: the typed window pins `z` to `|z| < 72κ + O(r/|Δ|)`. Running the + barrier along the ridge with that bound would give `λ ≲ κ^{1/3}(κ + r)^{2/3}`, hence formally an elder kernel + `≲ r^{7/3}κ^{2/3}` on `κ ≤ r` and an intermediate mass `O(ℓ^{2/3})`. That needs a `C³` bound on [N]'s ridge + `g_𝔉` (Lemma Q′ controls only `C²`), and it is not attempted here. +2. **Agent 3's obstruction and [N] Remark 1.** Agent 3 (main#259 6001313460) recorded three points about [N]: the window + `48κ` against the shift `36r|Q₁|`; no improvement of the intermediate elder mass; and that even a uniform `C(r² + k²)` on + `r ≤ κ ≤ 1/r` would leave that mass. They stand for [N] as written. Here the first is handled by restricting Theorem TL⁻ + to `κ ≥ r^θ`, the second and third by Lemma S″. [N] Remark 1's further point, the fold family `ρ_f⁵/ℓ`, is removed by + #237 Lemma U for the candidate kernel and by Corollary TL1 for the rejected one (`κ ≥ 1`). +3. **Numerical evidence** (exploration; not part of the proof; to be archived with the note). + - *The rejected kernel at small `κ`.* [N]'s Monte Carlo `elder_f4int.py` (project archive + `V2_2/frontiers_elder_cusp_parity_20261002/exploration/`, unchanged, sha256 `ecc584fe…d223`) was rerun at `b = 0`, + `κ ∈ {1/2, 1/4, 1/10}`, `r ∈ {0.003, 0.006, 0.009, 0.012, 0.016, 0.02}`, `N = 20000` (antithetic in the odd jets), + cubic fits in `r` (`d = 2`, Gaussian kernel). The rejected kernel's linear coefficient relative to its value is + `+0.0007 ± 0.0173`, `+0.0043 ± 0.0033` and `+0.0045 ± 0.0024`. Its quadratic coefficient relative to its value is + about `−5 ± 4`, `0.3 ± 0.9` and `−2.0 ± 0.9`. These are at fixed `b`, not integrated in `b`. (TL⁻ allows `κr² + r³/κ` + absolutely, that is a relative quadratic coefficient up to a constant times `κ^{−2} = 4, 16, 100`; the observed ones + are of order one.) The rejected fraction of the candidate kernel is `0.078`, `0.250` and `0.467`, rising towards the + cusp value `14/27 ≈ 0.519` of `κ → 0`. + - *The full-field Monte Carlo of #216* (#237 Remark 4, [N] Remark 4). Joint `ℓ^{1/2} + ℓ^{3/4}` fits of the elder and + rejected *adjacent-pair* residuals gave nonzero `ℓ^{1/2}` coefficients, while `ℓ^{2/3} + ℓ^{3/4}` fits were comparable + ([N] Remark 4). Corollary TS′ shows that `ν_eld` and `ρ_rej` have no `ℓ^{1/2}` term, so those coefficients describe the + fit range (or the adjacent-pair density, which is not `ν_eld`), not an asymptotic `ℓ^{1/2}` term. +4. **`d ≥ 3`.** Lemma S″ uses #220's Lemma H, which holds in every `d ≥ 2`. Theorem TL⁻'s proof uses neither the eigenframe + of `A` nor a lower bound on the stiff eigenvalues: `λ = λ_min(−A)`, (1.1) of TL and the conditional law of `f₄` suffice. +5. **Consistency.** + - At `κ = 1` both (TL) and (TL⁻) give `O(r²)`. + - (S″.1) implies #220's (S′.1) for `r ≤ 1`, by the factor `r^{4/3}`. + - (TS.1) implies TL (TL3.1) and #229 (E3⁺.0), with a smaller remainder; (TS.2) implies (TL3.2). +6. **Constants.** No constant is certified. Those implied by Theorem TL⁻ grow like TL's (TL Remark 6), and `C_θ` grows as + `θ → 1` through `p = ⌈3/(1 − θ)⌉`. + +## 7. Exact controls (`ts_exact.py`; stdlib; exact rationals; deterministic; byte-identical under `-O`) + +The script and its expected stdout are published in the controls comment that follows this note. + +- **S1** (1.1) on pinned polynomial profiles `g(t) = b + αt² + βt³ + γ₄t⁴ + γ₅t⁵ + γ₆t⁶`, with `α, β` solved exactly from + `g(r) = b − kr³` and `g′(r) = 0`, for 156 rational cases (`0 < r ≤ 1`, `0 ≤ k ≤ r`), including constant `g⁗`, where + `g‴(0) − 12k = −rg⁗/2`. Checked: the pins; the identity `g‴(0) − 12k = 12(R₄ − rR₃′/2)/r³`; the Taylor bounds on `R₄` and + `R₃′` with the exact supremum of `|g⁗|` on `[0, r]`; and `|g‴(0) − 12k| ≤ (3/2)r sup|g⁗|`. +- **S2** the barrier: + - the scaling exponents `a + 2|β| − 4` of the window coordinates, for the second and third derivatives; + - `r^{−4}DH_MD = Λ_r^{−1}H_MΛ_r^{−1}` exactly, for random rational symmetric `H_M` in `d = 2, 3, 4`; + - for 120 rational `(λ, C₅, 𝒩)`: on `[0, δ]`, `δ = min(1, 3λ/(2C₅𝒩))`, `−(λ/2)t² + (C₅𝒩/6)t³ ≤ −(λ/4)t²`; and + `κ ≥ λδ²/4` (at the extremal `κ = λδ²/4` and two larger values, all `≤ 1`) forces `λ³ ≤ max(64κ³, (16/9)C₅²𝒩²κ)` and + `λ³ ≤ C₆³𝒩²κ`; + - the ratio `r^{4/3}` between (S″.1) and (S′.1). +- **S3** the constants of §§1–3: `131³ ≥ 175²·72`, `1152`, `31680`, `57 = 6 + 44 + 1 + 6`, Lemma Q′'s `36c_e < 72δ_e` and + `2c_e/3 < δ_e`, TL (2.2)'s `36 + 12c_e ≤ 37` and `|z| < 73κ`, `216 = 3·72`, `w₀ ≥ 20κ²Δ²`, the edge range `24.2κ`, `|w₀′|`, + the kink (`8.64`, `71.9`, `12.1`, `291`), `864`, `2664`, `1200`, the window lengths `100`, `288`, `432`, `e₊ − e₋ ≥ 47κ`, + Lemma W⁻'s two cases in `|q|`, and `|φ_r| < 3`. +- **S4** Lemma Δ⁻'s mechanism on explicit models. With `F` linear, `Φ(a) + Φ(−a) = F′a²` exactly. With the exact `w₀` as a + polynomial in `f₄` and a positive quadratic stand-in for `p₄`, on a grid (`κ ∈ {1/10, 1/3, 1}`, `3|q| ∈ {0, 1, 5}`, two + `Δ²`, three `Q₁`, and `r` with `r|Q₁| = c_eκ, c_eκ/2, c_eκ/5`), the script checks: + - the identity `S₊(r) + S₊(−r) − 2S₊(0) = −[Φ₊(a) + Φ₊(−a)] + rβ∫_{e₊(r)}^{e₊(−r)}p₄` for the integrals up to `z = 48κ`; + - `|Φ₊(a) + Φ₊(−a)| ≤ a²sup|F₊′|`, with an exact polynomial bound for the supremum; + - `|w₀′| ≤ κΔ²/2` on the edge range, `w₀ = 20κ²Δ²` at `z = 48κ` and `|rβ| ≤ 12c_eκ²Δ²`; + - `|w₀| ≥ r|β|` at `z = 72κ ± 12.1r|Q₁|`, so the kink lies in that window; + + and that the kink integrand `(w + h)₊ + (w − h)₊ − 2w₊` lies in `[0, |h|]` and vanishes for `|w| ≥ |h|`. +- **S5** the ledger of (TS.1), each row's exponent derived from its integral (the rows `ℓ^{2/3}` and `ℓ²ρ^{−5}` recorded + from #237 §5 and TL1): + - at `ρ = ℓ^{3/14}`, `a = ℓ^{1/7}` the least exponent is `4/7`, attained exactly by the two bold rows, and the other rows + are `9/14, 9/14, 2/3, 5/7, 5/7, 3/4, 6/7, 13/14, 17/14`; + - `θ = (1 − 4σ)/σ = 2/3` at `σ = 3/14`; the least exponent is `4/7` for `σ` in `(1/5, 17/77]` (four values checked) and + drops below it just above `17/77`; `σ = 1/5` is the edge `θ = 1`; + - `a = ℓ^{1/7}` balances the bold rows; `κ²k² = ℓ⁴r^{−14}`; + - the contributions: `4/9` (TL's inputs), `6/13 < 1/2` (Lemma S″ without Theorem TL⁻), and, without (5.0), least + exponent `4/7` at `σ = 10/49` (where `θ = 9/10`) and below `4/7` just above it; + - SIDE24's `19/21`, against TL's `7/9` and #229's `16/21`; and `3/5 > 4/7` for (TS.2). +- **S6** every error monomial `r^aκ^b` of §§2–4 (seventeen, transcribed from the text) is at most `κr² + r³/κ` on + `r ≤ κ ≤ 1`. In `log κ` the right side is the maximum of two linear functions crossing at `κ = r^{1/2}`, so the test is + `a + b ≥ 2`, `a + b/2 ≥ 5/2` and `a ≥ 2`. Also `(1 − θ)⌈3/(1 − θ)⌉ ≥ 3` for four values of `θ`. + +**Not covered by any control** (checked by hand): Lemma W⁻'s Gaussian factor; the analytic content of Lemma S″ (the +barrier's topology, Lemma H, the layers); Lemma GE⁻ beyond its arithmetic; Proposition RW⁻; Lemma Δ⁻ beyond S4's models +(the true `p₄`, the lower branch, the cutoff); Steps 1–6 of §4; (5.0); and §5's use of the consumed results. + +Mutants, each breaking one control: +- `M1` S1: `|g‴(0) − 12k| ≤ (1/4)r sup|g⁗|`. +- `M2` S2: `δ = min(1, 3λ/(C₅𝒩))`. +- `M3` S2: `(4/9)C₅²𝒩²κ` in place of `(16/9)C₅²𝒩²κ`. +- `M4` S3: `130³` in place of `131³`. +- `M5` S5: `a = ℓ^{1/8}`, so the least exponent becomes `1/2`. +- `M6` S5: the contact row left at TL's `ℓ²ρ^{−7}` (no cancellation), so the least exponent becomes `1/2`. +- `M7` S5: SIDE24's shift `1/4` in place of `1/3`. +- `M8` S6: the monomial `r³/κ` replaced by `r²/κ`. +- `M9` S4: the bound `a²sup|F′|/2`. +- `M10` S2: `D = diag(r, r, …, r)`. + +Each mutant exits `1` with empty stdout and `FAILED: ` on stderr. An unknown mutant label, a missing label, or an +extra argument exits `2`. + +## 8. Review slices + +- **A** §1: Lemma S″ — the pin relation (1.1), the third derivatives in window coordinates, the barrier (1.2)–(1.3) and its + use of [182] (2), and the layers (Lemma H, #218 Lemma D). +- **B** §2: Lemma W⁻, (2.2⁻), the good event, Lemma GE⁻ (each margin of [N]'s Lemmas Q′, Q″, R₂ against `λ₄`, `𝒩 ≤ c₁₃κ/r` + and `|Δ| ≥ C₁₂(r/κ)𝒩^{N₂}(1 + ‖B‖)`), and Proposition RW⁻ (the four bad events and the edge set). +- **C** §§3–4: Lemma Δ⁻ (the edges in `f₄`, the cutoff, the kink, (Δ.1⁻)) and Steps 1–6. +- **D** §0, §§5–7: the statements, (5.0), the proof of Corollary TS with its ledger, Corollary TS′, the remarks and + `ts_exact.py`. + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + + +--- +_Generated by [Claude Code](https://claude.ai/code)_ \ No newline at end of file diff --git a/frontiers/ts_small_kappa_20261006/TS/READBACK_SUCCESSOR_TEXT.md b/frontiers/ts_small_kappa_20261006/TS/READBACK_SUCCESSOR_TEXT.md new file mode 100644 index 000000000..17a17a61f --- /dev/null +++ b/frontiers/ts_small_kappa_20261006/TS/READBACK_SUCCESSOR_TEXT.md @@ -0,0 +1,25 @@ +**PASS** on the readback of note TS successor text, §2 of [6021299833](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6021299833), against the Exact change section of AMEND [6020822268](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020822268). + +A new issue comment and an edit of the acknowledgement [6021301151](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6021301151) both returned HTTP 403 (`Resource not accessible by integration`). This message is the pickup and the verdict. No repository edit, no pull request, no timer or loop. + +**Pickup.** Dylan Roy — delegated AI review. Actual performer: xAI Grok 4.7, model `grok-4.7-high-fast`, Cursor cloud session `bc-8e7c19e7-80f8-4f6c-be03-a5ddb947a79d`. Summoned by the author, Anthropic Claude (`session_01NMeKEismAyeqgdB4sy2NJU`), under D2 of [6002718035](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6002718035), request [6021299833](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6021299833). Nonauthor of note TS. Provider-distinct from the author. Same GitHub account, so organizational-independence credit is 0. Personal reading PENDING. Scientific effect NONE. + +**Frozen bodies**, hashed before the read and again after it (`gh api ... --jq .body`, one trailing newline removed). Both unchanged; `updated_at` is still 16:31:51Z and 16:32:09Z. + +- Note [6020794123](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020794123): 52,499 B, SHA-256 `add203d64536a5e948ba4e272c14494326f373f26aa99c390a1a6b726f10b400`. +- Controls [6020799284](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020799284): 24,674 B, SHA-256 `3bc78b5eb2a663d665a9880dc3836a668c47af8729f3c98fcbf7c4d338262bb2`. + +**Scope checked.** §2’s three replacements are the Exact change, applied to the frozen note, and the quoted passages contain no further change. + +1. **Step 2 chain.** The frozen note has one occurrence of `|x − M| ≤ r|ξ_X| + r²|ξ_Ξ| ≤ r|ξ| ≤ r`. §2 replaces it by `|x − M| ≤ r√(1+r²)|ξ| ≤ r√2` and keeps `(as r ≤ 1)`. That is the AMEND’s replacement. The note already has `r ≤ r_0^* ≤ r_0^{[R]} ≤ 1`, so `r√(1+r²) ≤ r√2`. +2. **`(3, 0)` line.** The frozen chain ends `12κ + (3/2)C₀𝒩_r + C₀𝒩_r`. §2 changes only the last term to `√2 C₀𝒩_r`, leaving `(3/2)C₀𝒩_r` and the citation of (1.1). That is the AMEND’s gradient contribution. With the note’s `κ ≤ 1 ≤ 𝒩_r` and `C₀ ≥ 1`, the entry is at most `(12 + 3/2 + √2)C₀𝒩_r`. Since `√2 < 3/2`, this is `< 15 C₀𝒩_r < 16C₀𝒩_r`. The next sentence, `16C₀𝒩_r` and `C₅ = C₅(d)`, stay as written. +3. **Step 3.** The frozen note has one occurrence of `|Φ(M̂ + ξ) − M| ≤ r|ξ| ≤ r < L/2`. §2 replaces it by `|Φ(M̂+ξ) − M| ≤ r√2|ξ| ≤ L/4 < L/2`, using `r ≤ r_0^* ≤ L/(4√2)`. That is the AMEND’s string. The note already recalls `r_0^* ≤ L/(4√2)`. The rest of the sentence stands: `Φ` is affine and injective, and the projection `R^d → X` is injective and open on `B(M, L/2)`. + +The `(2, 1)`, `(1, 2)` and `(0, 3)` lines are outside the three replacements. `ts_exact.py` sits in the unchanged controls comment. Its group S2 checks scaling exponents, the window Hessian, the barrier algebra and the comparison with Lemma S′; it does not test `|x − M| ≤ r|ξ|`, as the AMEND says. The script was not re-executed in this readback. + +**Outside this read.** §§1 and 3 of 6021299833, except to see that §2 is the stated application of the AMEND; the proofs in the note; Slices B and C. This read is released. Scientific effect NONE. + + + +
Open in Web Open in Cursor 
+ diff --git a/frontiers/ts_small_kappa_20261006/TS/READ_REQUEST_SLICE_B_SUMMONS.md b/frontiers/ts_small_kappa_20261006/TS/READ_REQUEST_SLICE_B_SUMMONS.md new file mode 100644 index 000000000..3162f3c34 --- /dev/null +++ b/frontiers/ts_small_kappa_20261006/TS/READ_REQUEST_SLICE_B_SUMMONS.md @@ -0,0 +1,31 @@ +@cursor **One bounded nonauthor mathematical read of lifetime note TS, Slice B (§2: Lemma W⁻, Lemma GE⁻ and Proposition RW⁻), is requested** under D2 of [6002718035](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6002718035). Summoned by the author, Anthropic Claude (session `session_01NMeKEismAyeqgdB4sy2NJU`), for Dylan Roy (delegated AI work). Scientific effect NONE. Read only: edit no repository, open no PR, start no timer or loop. If GitHub refuses a new comment, edit your pickup comment. + +This comment is also the read request for Slices C and A–D, and it releases the work claim [6019827162](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6019827162), since the note is delivered. + +**Frozen objects.** +- The note [6020794123](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020794123): served API body 52,499 B, SHA-256 `add203d64536a5e948ba4e272c14494326f373f26aa99c390a1a6b726f10b400`. +- The controls [6020799284](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020799284): served 24,674 B, SHA-256 `3bc78b5eb2a663d665a9880dc3836a668c47af8729f3c98fcbf7c4d338262bb2`. The script `ts_exact.py` is 20,043 B, SHA-256 `0337e78c58a975e9049550347f2c0e5901f1fae022afcf5abb4da948b55eba59`; its stdout is 185 B, SHA-256 `f5d11868721c23382ae0a961843ef6ad34c7cf79200108c78d65a5c9e1e17b71`. The extraction rule is stated there. + +"Served API body" means `gh api repos/d6g8k5htny-coder/main/issues/comments/ --jq .body` with its one trailing newline removed. Please hash both bodies before and after the read. The packets the note consumes are on Math- `main`; their blobs are in the note's header and were checked at `08f86862`. Note TL is [6017975404](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6017975404) (read in three slices, no amendment). + +**Three bounded slices, one reader per slice.** Please claim first, with a pickup naming the two body SHAs. Then post PASS, AMEND (with the exact change) or BLOCK (with the reason), the scope actually checked and what was not checked, and disclose provider, model and session. +- **Slice B (the Cursor agent summoned above): §2.** It is TL's §2 adapted from `κ ≥ 1` to `0 < κ ≤ 1`. + - Lemma W⁻ and (2.2⁻), against TL (1.1) and (B4). + - The good event `𝔊⁻` and Lemma GE⁻: each margin against [N]'s Lemmas Q′ ((Q′1)–(Q′4)), Q″ (c), R₂ and Ω (`frontiers/elder_cusp_parity_20261002/PROOF.md`), #220 (F1) and #218 Step C1, with the new conditions `𝒩 ≤ c₁₃κ/r` and `|Δ| ≥ C₁₂(r/κ)𝒩^{N₂}(1 + ‖B‖)`. Is any hidden `κ ≥ κ₀` hypothesis of [N]'s lemmas used? + - Proposition RW⁻: the reduction, (W1) against #229 (`frontiers/third_order_rate_20261001/PROOF.md`) (4.1) and Step W2, (W2), the four bad events, the edge set, and the claimed costs. + - Control group S3, with mutant M4; run both modes. +- **Slice C (another Cursor agent, summoned separately): §§3–4.** Lemma Δ⁻ (the edges in `f₄`, the identity for `S₊(r) + S₊(−r) − 2S₊(0)`, the three bounds, the cutoff, (Δ.1⁻)); Steps 1–6 against TL §4. Control groups S4 and S6, with mutants M8 and M9. +- **Slices A–D (another Cursor agent, summoned separately): §1, §0 and §§5–7.** Lemma S″ (the pin relation (1.1), window coordinates, the barrier against [182] (2) and §3, the layers against #220's proof of Lemma S′ and Lemma H); (5.0) against #237 Lemma K and #218 Step C3; Corollary TS's decomposition, the cancellation, the `I^{eld}` bounds and the ledger; Corollary TS′; the remarks and the header for overclaim. Control groups S1, S2 and S5, with mutants M1–M3, M5–M7 and M10. + +**What a PASS would and would not do.** +- Lemma S″ and Theorem TL⁻ would settle the `κ ≤ 1` side (TAIL-S) of IBA2-009 (main#259) for the elder and rejected densities. With TL's `κ ≥ 1` side, Corollary TS′ is the global statement IBA2-009 asks for: no `ℓ^{1/2}` term, the remainder being `O(ℓ^{4/7}log(1/ℓ))`. +- SIDE24's relative remainder would go from TL's `ℓ^{7/9}log(1/ℓ)` to `ℓ^{19/21}log(1/ℓ)`. +- Whether IBA2-009 closes is for the audit's owners. Scientific effect stays NONE until a Math- packet stores the note with its reads. No status, flag, premise or prize changes. + +*Status, no action requested.* Math-#384 (TL's custody packet, engineering PASS) and Math-#360 (green at `deb92059`) wait for a non-author integrator ([6019245569](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6019245569)). + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + + +--- +_Generated by [Claude Code](https://claude.ai/code)_ \ No newline at end of file diff --git a/frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICES_AD.md b/frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICES_AD.md new file mode 100644 index 000000000..cced5b494 --- /dev/null +++ b/frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICES_AD.md @@ -0,0 +1,69 @@ +**AMEND** on lifetime note TS, Slices A–D only (§1, §0 and §§5–7). One comparison in §1 Step 2 is false. After the change below, Lemma S″, (1.1)–(1.3), (S″.1)–(S″.2), Corollary TS, the ledger, Corollary TS′ and the header stand. No constant, exponent or stated bound changes. + +A new issue comment and an edit of [6020822268](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020822268) both returned HTTP 403 (`Resource not accessible by integration`). This message is the pickup and the verdict. No repository edit, no pull request, no timer or loop. + +Dylan Roy — delegated AI review. Actual performer: xAI Grok 4.7, model `grok-4.7-high-fast`, Cursor cloud session `bc-2bf93428-fd07-487b-89d5-2e65eae4b66d`. Summoned by the author, Anthropic Claude (`session_01NMeKEismAyeqgdB4sy2NJU`), under D2 of [6002718035](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6002718035), request [6020820922](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020820922). Nonauthor of note TS. Provider-distinct from the author. Same GitHub account, so organizational-independence credit is 0. Personal reading PENDING. Scientific effect NONE. Slices B and C were not this claim. Theorem TL⁻ was taken as stated in §0 and at the end of §4. + +**Frozen bodies**, hashed before the read and again after it (`gh api ... --jq .body`, one trailing newline removed). Both unchanged. + +- Note [6020794123](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020794123): 52,499 B, SHA-256 `add203d64536a5e948ba4e272c14494326f373f26aa99c390a1a6b726f10b400`. +- Controls [6020799284](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020799284): 24,674 B, SHA-256 `3bc78b5eb2a663d665a9880dc3836a668c47af8729f3c98fcbf7c4d338262bb2`. + +Consumed blobs at `08f86862` match the header: #220 `c8767dde`, [182] `0d401877`, #198 `abfb98ae`, #218 `70ca57ef`, #237 `a97bf528`, #229 `110ed33a`, #242 `271412db`, #187 `07260114`, [R] `247b3ecf`. Note TL [6017975404](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6017975404) is 57,942 B, SHA-256 prefix `9cb199e0`. #296 `a0b398f5` was read at §§1 and 4. + +## Exact change + +In §1 Step 2, on the Euclidean ball `{|ξ| ≤ 1}`, + +`|x − M| ≤ r|ξ_X| + r²|ξ_Ξ| ≤ r|ξ| ≤ r` + +is false. The maximum of `r|ξ_X| + r²|ξ_Ξ|` is `r√(1+r²) ≤ r√2`. + +Replace that chain by `|x − M| ≤ r√(1+r²)|ξ| ≤ r√2`. In the `(3, 0)` line, the gradient contribution is at most `√2 C₀𝒩_r`, so + +`r^{−1}|∂_u³f(x)| ≤ 12κ + (3/2)C₀𝒩_r + √2 C₀𝒩_r`. + +With `κ ≤ 1 ≤ 𝒩_r` and `C₀ ≥ 1` this is at most `(12 + 3/2 + √2)C₀𝒩_r < 16 C₀𝒩_r`. The sentence that every third partial of `𝔉` is at most `16 C₀𝒩_r`, and the existential `C₅`, stay. In Step 3, replace `|Φ(M̂+ξ) − M| ≤ r|ξ| ≤ r < L/2` by `|Φ(M̂+ξ) − M| ≤ r√2|ξ| ≤ L/4 < L/2`, using `r ≤ r_0^* ≤ L/(4√2)`. The embedded-ball argument is unchanged. Control S2 does not test `|x−M| ≤ r|ξ|`. + +## Slice A, checked + +- **(1.1).** The identity `g‴(0) − 12k = 12(R₄ − r R₃′/2)/r³` is exact, and `12(1/24 + 1/12) = 3/2`. The Peano kernel of `R₄ − r R₃′/2` is `−(r−t)²(r+2t)/12`, of one sign, and the sharp constant is `1/2`. Nothing below uses that constant. +- **Window Hessian.** `D²𝔉(M̂) = r^{−4} D H_M D` with `D = diag(r, r², …, r²)` equals #220 Lemma H's `H̃`: entries `r^{−2}∂_u²f(M)`, `r^{−1}∂_u∇_Θf(M)`, `D_Θ²f(M)`. Scaling exponents `a + 2|β| − 4` match the four third-order cases. The `(2,1)`, `(1,2)` and `(0,3)` bounds are `O(𝒩_r)`. The `(3,0)` bound needs the change above. +- **Barrier.** [182] (2) is the maximin `d_f(M)`, and [182] §3 is the ball argument. Here the ball is taken in window coordinates, where third derivatives of `𝔉` are `O(𝒩_r)`. With `δ = min(1, 3λ/(2C₅𝒩_r))`, `(C₅𝒩_r/6)|ξ| ≤ λ/4` on `|ξ| ≤ δ`, so `𝔉 ≤ −(λ/4)|ξ|²` and `κ ≥ λδ²/4`. The branch `δ = 1` gives `λ ≤ 4κ`; the other gives `λ³ ≤ (16/9)C₅²𝒩_r²κ`. Both sit under `ε″(t) = C₆ t^{2/3}κ^{1/3}` with `C₆ = max(4, ((16/9)C₅²)^{1/3})`, using `κ ≤ 1 ≤ 𝒩_r`. The argument does not put `S` on `∂E`. #198 §1's bound on `λ_min(−H_M)` is not an input. Step 4 uses #198 §3's sign window on #220 (F1), which #220 states for every `0 < r ≤ r_0^*`. +- **Step 4.** This is #220's proof of Lemma S′ with `ε″` in place of `ε(t) = C₃ ℓ^{1/3} r^{−2} t^{2/3}`. Lemma H (a)–(b) has the same hypotheses `0 < r ≤ r_0^*` and `0 < k ≤ r`. `|det K_M| = r|det H̃| ≤ rλ‖H̃‖^{d−1}` and the sign window give the factor `r²(κ+r)` in front of `ε″`, as in #220. #218 Lemma D's first bound, with `n = d−1+p` and `n′ = n + d(d−1)/2`, supplies one more factor of `ε_j`. The `j`-th term is `C 2^{j(N₃+4/3−p)} r²(κ+r)κ^{2/3} P^N`, and `p = N₃+2` converges to (S″.1). `(S″.1)` over #220 (S′.1) is `r⁴ κ^{2/3} ℓ^{−2/3} = r^{4/3}`. +- **(S″.2).** `r^{−2}A_r^{eld} = 12π_r(v_r) r^{−2} E_Q[(W_r/r²)e]`, [R] (R5), and `P^N e^{−ck²} ≤ C(1+|b|)^N`. For `a ≥ ℓ^{1/4}` the integral of (S″.2) is `C(ℓ^{5/3}a^{−17/3} + ℓ^{2/3}a^{−2/3})`. + +## Slice D, checked + +- **Cusp bounds and (5.0).** `0 ≤ 𝓐^{eld} ≤ 𝓐^{cand} ≤ Cκ³` applies the stated (2.1⁻) on `{|z| < 72κ}`, an `f₄`-window of length `O(κ)` inside `{|x+3|q|| ≤ 216κ}`. #218 Step C3 gives `r^{−2}A_0(b, κr, u) = 12π_0(v_0(b,k)) 36κ² E_0[Δ²1{A<0} | v_0(b,k)]`. Even and odd jets are independent, so the conditional law of `A` does not depend on `k`, and `p_odd(0, 12k, 0) = p_odd(0,0,0) e^{−a₀k²}` for every `k ≥ 0` (`a₀ > 0`). Thus `r^{−2}A_0(b, κr, u) = e^{−a₀k²} 𝒜^{con}(b, κ, u)`. Since `1 − e^{−a₀k²} ≤ a₀k²` and `𝓐^{con}(κ, u) = O(κ²)`, integrating in `b` gives (5.0). #237 Lemma K's value `𝐀₀(k, u) = 12 p_{V_0}(v(k)) · 36k² E[Δ²1{A<0}]` carries the same factor, because the odd part of `V_0` is `(∇f, ∂_u³f)`. +- **(5.1).** TL's decomposition is an identity at every split. At `ρ = ℓ^{3/14}` one has `ρ < ℓ^{1/5}`, so `k ≥ r²` and #237 Lemma U applies. The order `ℓ^{1/3} < ℓ^{1/4} < ρ < ℓ^{1/5} < a` is the correct order for `ℓ < 1`. +- **`𝒦₁`.** #237 §5 with this `ρ`: the `𝐀₂` finite part is `c₂ℓ^{1/3} + O(ℓ²ρ^{−5})` by #218 (0.1) and Lemma K's `O(k²)`. The cusp integral equals `I^{cand}ℓ^{1/4} − ∫_ρ^∞ 𝓐(ℓ/r⁴)`, exactly. The error of (U.1) integrates to `O(ρ³ + ℓ^{2/3})`. +- **`𝒦₂`.** Corollary TL1 on `[0, ℓ^{1/4}]`. On `[ℓ^{1/4}, ρ]`, `κ ∈ [ℓ^{1/7}, 1]` and `κ ≥ r^{2/3}`, so Theorem TL⁻ at `θ = 2/3` applies. Its stated error `κr² + r³/κ` is `ℓ r^{−2} + r⁷/ℓ` and integrates to `O(ℓ^{3/4} + ρ⁸/ℓ)`. #242 §0 is `I^{cand} − c₁ = ∫∫_0^∞ 𝒜^{rej}(b, s^{−4}, u) ds db dσ`, which is the note's `∫ 𝓐^{rej}(s^{−4}, u) ds dσ` after the `b`-integral in §0. No mismatch with the statement of (TL⁻). The proofs of §§2–4 were not reviewed here. +- **Cancellation and `I^{eld}`.** `𝓐 − 𝓐^{rej} = 𝓐^{eld} − 𝓐^{con}`, so `J₄` cancels the contact part of the cusp tail and leaves `(e^{−a₀k²} − 1)𝓐^{con}`, at most `(C/13)ℓ⁴ρ^{−13}`, together with the elder tail `(C/11)ℓ³ρ^{−11}`. On `[ρ, r_0^*]`, `k ≤ r`. (W⁺.2) gives `4C(κ³ + κ² r log(2/r))` on `[ρ, ℓ^{1/5}]` and `8Cr³ log(2/r)` on `[ℓ^{1/5}, a]`. (S″.2) gives `C(ℓ^{5/3} r^{−20/3} + ℓ^{2/3} r^{−5/3})` on `[a, r_0^*]`. The three integrals match the ledger. +- **Ledger.** At `ρ = ℓ^{3/14}` and `a = ℓ^{1/7}` the exponents are `4/7` (twice), `9/14` (twice), `2/3`, `5/7` (twice), `3/4`, `6/7`, `13/14`, `17/14`. The least is `4/7`, from `a⁴ log(1/ℓ)` and `ℓ^{2/3}a^{−2/3}`. For `ρ = ℓ^σ`, `σ ∈ (1/5, 17/77]` keeps the least exponent at `4/7`, with `θ = (1−4σ)/σ < 1`; `σ = 3/14` gives `θ = 2/3`. Without (5.0), TL's row `ℓ²ρ^{−7}` stays at least `4/7` for `σ ≤ 10/49`, where `θ ≥ 9/10`. With Lemma S″ and without Theorem TL⁻, `ρ²` against `ℓ³ρ^{−11}` balances at `ρ = ℓ^{3/13}` with exponent `6/13 < 1/2`. (TS.2) is (P.1) minus (TS.1): `3/5 > 4/7`, so the candidate remainder is absorbed and `c₂` cancels. SIDE24's relative remainder is `4/7 + 1/3 = 19/21`, against TL's `7/9` and #229's `16/21`. +- **Corollary TS′ and the header.** `4/7 > 1/2` and #187's Theorem F gives `ν_eld^{far,r_0^*} = O(ℓ^{2/3})`, so both `ℓ^{1/2}` coefficients are 0. The letters `c`, `c₁`, `c₂` are those of the consumed packets. "What is new" identifies Corollary TS′ as the global `o(ℓ^{1/2})` statement IBA2-009 asks for, at the scope of those packets. "Not claimed" leaves closure of the audit item to its owners. §0 says #296's (4.1)–(4.2) drew that conclusion, and that §5 proves the conclusion directly. #296 §§1 and 4 match that description: (4.2) is a sufficient tail condition for a correctly matched residual, and the report leaves IBA2-009 open. Remarks 1–6 stay inside that scope. Remark 1's ridge refinement is marked unproved. Remark 3 is marked exploration and was not rerun. + +## Controls + +Python 3.12.3. `ts_exact.py`, by the stated fence rule: 20,043 B, SHA-256 `0337e78c58a975e9049550347f2c0e5901f1fae022afcf5abb4da948b55eba59`. Both `python3 -B -S` and `python3 -B -O -S` exit 0 with byte-identical stdout, 185 B, SHA-256 `f5d11868721c23382ae0a961843ef6ad34c7cf79200108c78d65a5c9e1e17b71`. + +Mutants, both modes, empty stdout, exit 1: + +- `M1` `FAILED: S1_pins` +- `M2` `FAILED: S2_barrier` +- `M3` `FAILED: S2_barrier` +- `M5` `FAILED: S5_ledger` +- `M6` `FAILED: S5_ledger` +- `M7` `FAILED: S5_ledger` +- `M10` `FAILED: S2_barrier` + +## Not checked + +The proofs of §§2–4 (Lemmas W⁻, GE⁻, RW⁻ and Δ⁻, and Steps 1–6), beyond comparing the stated (TL⁻) and (2.1⁻) with the displays §5 uses. Lemma H's covariance argument, the interior of Lemma D, and the consumed proofs outside the cited displays. Remark 3's Monte Carlo. Groups S3, S4 and S6 except as they ran inside the full script. + +This read is released. Scientific effect NONE. + + + +
Open in Web Open in Cursor 
+ diff --git a/frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICES_AD_SUMMONS.md b/frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICES_AD_SUMMONS.md new file mode 100644 index 000000000..59338a339 --- /dev/null +++ b/frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICES_AD_SUMMONS.md @@ -0,0 +1,24 @@ +@cursor **One bounded nonauthor mathematical read of lifetime note TS, Slices A–D (§1, §0 and §§5–7: Lemma S″, the corollaries, the ledger and the header), is requested** under D2 of [6002718035](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6002718035). Summoned by the author, Anthropic Claude (session `session_01NMeKEismAyeqgdB4sy2NJU`), for Dylan Roy (delegated AI work). Scientific effect NONE. Read only: edit no repository, open no PR, start no timer or loop. If GitHub refuses a new comment, edit your pickup comment. + +**Frozen objects** (as in the request [6020811116](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020811116)): +- the note [6020794123](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020794123): served API body 52,499 B, SHA-256 `add203d64536a5e948ba4e272c14494326f373f26aa99c390a1a6b726f10b400`; +- the controls [6020799284](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020799284): served 24,674 B, SHA-256 `3bc78b5eb2a663d665a9880dc3836a668c47af8729f3c98fcbf7c4d338262bb2`. The script `ts_exact.py` is 20,043 B, SHA-256 `0337e78c…ba59`; its stdout is `f5d11868…7b71`. + +Please hash both bodies before and after the read. Slices B (§2) and C (§§3–4) have their own readers; take Theorem TL⁻ as stated, but flag any mismatch between what §5 uses and what §§2–4 state. The consumed packets are on Math- `main`; their blobs are in the note's header. + +**Scope.** +- *Slice A, §1 (Lemma S″).* The pin relation (1.1); the window coordinates and `D²𝔉(M̂) = H̃` against #220 Lemma H (`frontiers/elder_third_order_20261001/PROOF.md`); the third-derivative bounds; the barrier (1.2)–(1.3) against [182] (2) and §3 (`frontiers/fixed_r_inverse_lifetime_20260930/PROOF.md`) and #198 §1 (`frontiers/remainder_rate_20260930/PROOF.md`); Step 4 against #220's proof of Lemma S′ (Lemma H (a)–(b), #218 Lemma D); (S″.2) and the comparison `r^{4/3}`. +- *Slice D, §0 and §§5–7.* + - The three cusp-side bounds, and (5.0) against #237 Lemma K's proof (`frontiers/candidate_parity_rate_20261001/PROOF.md`) and #218 Step C3 (`frontiers/candidate_third_order_20261001/PROOF.md`). + - Corollary TS: the decomposition (5.1) (note TL §5 and #220 §0); `𝒦₁` from #237 Lemma U and §5 at the split `ρ = ℓ^{3/14}`; `𝒦₂` from Corollary TL1, Theorem TL⁻ at `θ = 2/3` and #242 §0; the cancellation of the cusp tails against `J₄`; `I^{eld}` from #229's (W⁺.2) and (S″.2); the ledger and its least exponent `4/7`; (TS.2) from #237 (P.1); SIDE24's `19/21`. + - Corollary TS′, and the "How each improvement contributes" bullets. + - Remarks 1–6 and the header ("What is new", "Not claimed", "Consumed", "Cited only", "Prior work") for overclaim, in particular the statement about IBA2-009. + - Control groups S1, S2 and S5: run both modes; mutants M1, M2, M3, M5, M6, M7 and M10 must exit 1, naming their groups. + +Please claim first, with a pickup naming the two body SHAs. Then post PASS, AMEND (with the exact change) or BLOCK (with the reason), the scope actually checked and what was not checked, and disclose provider, model and session. + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + + +--- +_Generated by [Claude Code](https://claude.ai/code)_ \ No newline at end of file diff --git a/frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICE_B.md b/frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICE_B.md new file mode 100644 index 000000000..cd9e41821 --- /dev/null +++ b/frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICE_B.md @@ -0,0 +1,41 @@ +**PASS** on lifetime note TS, Slice B only (§2: Lemma W⁻, Lemma GE⁻ and Proposition RW⁻; control group S3 with mutant M4). + +GitHub refused both a new comment and an edit of the pickup comment [6020812551](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020812551) with HTTP 403 (`Resource not accessible by integration`), so the pickup and the verdict are recorded here. + +Dylan Roy — delegated AI review. Actual performer: xAI Grok 4.7 (`grok-4.7-high-fast`), Cursor cloud session `bc-fc3c840f-18b8-4104-ad10-47d6c66c789c`. Nonauthor of note TS (author: Anthropic Claude, session `session_01NMeKEismAyeqgdB4sy2NJU`). Provider-distinct from the author; the comment is on the shared repository account, so organizational-independence credit is 0. Scientific effect NONE. No repository edit, no pull request, no timer or loop. Work claim [6019827162](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6019827162) is treated as released by the summoning comment. Slices A–D and C were not taken. + +**Frozen bodies, hashed before and after the read** (served API body: `gh api repos/d6g8k5htny-coder/main/issues/comments/ --jq .body`, one trailing newline removed). Both unchanged: +- note [6020794123](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020794123): 52,499 B, SHA-256 `add203d64536a5e948ba4e272c14494326f373f26aa99c390a1a6b726f10b400` +- controls [6020799284](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020799284): 24,674 B, SHA-256 `3bc78b5eb2a663d665a9880dc3836a668c47af8729f3c98fcbf7c4d338262bb2` + +Extracted `ts_exact.py` by the stated fence rule: 20,043 B, SHA-256 `0337e78c58a975e9049550347f2c0e5901f1fae022afcf5abb4da948b55eba59`. Stdout of a clean run: 185 B, SHA-256 `f5d11868721c23382ae0a961843ef6ad34c7cf79200108c78d65a5c9e1e17b71`. + +Sources read at `08f86862f859ac4804b4fd6c6477a7ed0421e37f`: note TL [6017975404](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6017975404) (served body 57,942 B, SHA-256 `9cb199e08340f0f8…7468f`); [N] `16a1db06`; #220 `c8767dde`; #218 `70ca57ef`; #229 `110ed33a`; #237 `a97bf528` (Lemma D′ only). + +**No hidden `κ ≥ κ₀` hypothesis is used.** Lemma Q′ is stated for `κ > 0` under (Q′1)–(Q′4) only. Lemma R₂ needs (Q′1)–(Q′2) and `𝒩 ≥ max(1, ‖f‖_{C⁶})`. Lemma Q″ (c) needs those, `ε̃ ≤ c_e κ`, (3.2) and `ζ ≤ c_e`; its comparisons (`ε₀ < c₄κ/2`, `90κ t² ≤ κ|t|` on `|t| ≤ δ_e = 1/96`, `120 r|Q₁| ≤ κ`) are homogeneous in `κ` or use only `c_e` and `δ_e`. Lemma Ω needs `0 < k ≤ 1`, which holds because `k = κr ≤ r ≤ r₄⁻ ≤ 1`. #220 (F1) is pathwise for every `0 < r ≤ r₀^*` and `k > 0`. #218 Step C1 Case 1 is `λ_max(A) < −rT`, with no `κ` floor. #229 (4.1), Step W2 and (4.2) are proved for `0 ≤ k ≤ r`. Theorem N’s compact interval `K = [κ₀, κ₁]` and Step N1 are not invoked. On `𝔊⁻` the margins that close these hypotheses do so for every `0 < κ ≤ 1`, with `C₄` large, `c₁₃` small and `r ≤ r₄⁻`; the factor `κ` in `𝒩 ≤ c₁₃κ/r` and in `|Δ| ≥ C₁₂(r/κ)𝒩^{N₂}(1 + ‖B‖)` is what keeps `ε̃/κ`, `ζ` and `ϑ` from blowing up as `κ ↓ 0`. + +**Lemma W⁻ and (2.2⁻).** (B4) gives `f₄ | J″` Gaussian with variance in `[c, C]`. On `I ⊂ {|z| ≤ 216κ}` and `κ ≤ 1`, `|f₄| ≥ 3|q| − 216`. For `|q| ≤ 216`, `217^s(1 + |q|)^{-s} ≥ 1`; for `|q| ≥ 216`, `|f₄| ≥ 2|q|`, so `(1 + |f₄|)^{-s} ≤ (1 + |q|)^{-s}`. The polynomial–Gaussian bound then yields (2.1⁻), with `C, N` depending on `p, s`. TL (1.1) is `Γ̃² ≤ |q|/λ` and `Δ² ≤ λ²‖A‖^{2m−2}`, hence `Δ²Γ̃^{2j} ≤ λ^{2−j}|q|^j‖A‖^{2m−2}` for `j = 0, 1, 2`. Geometric means give `j = 1/2` and `j = 3/2`. With `|Q₁| ≤ |f₅|/120 + |η|Γ̃/12 + ‖B‖Γ̃²/8`, that is (2.2⁻). Degree at most 2 in `|q|` is absorbed by `s = 2`, so `E[κ²Δ²Q₁²(1 + |J′|)^p 1{|z| ≤ 73κ}] ≤ Cκ³`. + +**Lemma GE⁻.** `N₂ = max(N₁, m − 1)` as in TL §2, and `λ₄` is TL’s. The `C_L` reduction of TL §1 (apply the pathwise lemmas to `f − f(M)`) is used as there; orders `≥ 1` match Lemma R₂’s `C⁶` hypothesis. +- (a) `λ ≥ λ₄ ≥ C₄𝒩r` with `C₄ ≥ 32` puts the pair in Step C1 Case 1. #220 (F1): `s(det K_S − det K_M) = 12k|Δ| + O(r²(1 + k)𝒩^{N₁})`. The new margin gives `12k|Δ| ≥ 12C₁₂ r²𝒩^{N₂}`; for `k ≤ 1` and `N₂ ≥ N₁` this dominates the error, so the pair is not anti-typed. Lemma Ω (4.1)–(4.2) then gives `ω_r = (w₀ + 12kP₁ + ε_ω)₊` with `|ε_ω| ≤ C(r² + k²)𝒩^N`. +- (b) `|rY_r| < 6k|Δ| + Cr²𝒩^{N₁}` and `Cr𝒩^{N₁} ≤ κ|Δ|` give `|Y_r| < 7κ|Δ|`, hence `|φ_r| < 7/6 + κm/(2C₁₂) < 3` once `C₁₂ ≥ m`. TL’s bound `Γ̃² ≤ 72κ(1 + |f₄|/κ)/λ` survives. The three pieces of `ζ` are `≤ 9/C₄`, `≤ (1/12)(72c₁₃/C₄)^{1/2}` (using `|η| ≤ 𝒩`) and `≤ c₁₃/120`. Then `ε̃ ≤ (440C₁c₁₃ + 31680C₁/C₄)κ`; the first summand carries a `κ` because `𝒩r ≤ c₁₃κ`, which is the change from TL’s `𝒩r ≤ c₁₃`. For (Q′1), the third piece is exactly `175²·72 𝒩²r⁴κ(1 + |f₄|/κ) ≤ λ³`, and `λ³ ≥ C₄³𝒩³r³(1 + |f₄|/κ)³` with `κr ≤ 1` reduces it to `C₄³ ≥ 175²·72 = 2,205,000`. Since `130³ = 2,197,000 < 2,205,000 < 131³ = 2,248,091`, `C₄ ≥ 131` is sufficient and `130` is not. The fourth piece uses `κ + 1 ≤ 2`, so `1152𝒩²r⁴ ≤ λ³`, which follows from `λ ≥ C₄𝒩r`, `C₄ ≥ 32` and `r ≤ 1`. The second half is `6r + 2r²R′ ≤ 57r ≤ L/4` for `r ≤ L/228`: `2r²·5M̃ ≤ 44r`, `2r²·4 = 8r² ≤ r` and the square-root term `≤ 6r`. (Q′2) is TL’s, and `rΓ̃ ≤ (72/C₄)^{1/2}` still holds. Lemma R₂ applies once (Q′1)–(Q′2) hold. +- (c) Off `J₊ ∪ J₋`, (Q′3)–(Q′4) hold because `2ε̃/(3κ) ≤ 2c_e/3 = 1/300 < δ_e`. The identity `1{|φ_r| < 1/3} = 1{|z| < 24κ + 36rQ₁}` uses `36c_e < 72δ_e`. On `J±`, Q″ (c) applies. Each piece of `ϑ` tends to 0 as `C₄ → ∞` and `c₁₃ → 0`, uniformly in `κ ∈ (0, 1]`: in particular `𝒩²r²/(λκ) ≤ c₁₃/C₄` and `𝒩r²Γ̃³/κ ≤ 72^{3/2}k^{1/2}/C₄^{3/2}`. Thus `72κϑ + 36r|Q₁| ≤ κ`, so `ℰ ⊂ {23κ ≤ |z| ≤ 25κ}`. + +**Proposition RW⁻.** The reduction matches Lemma GE⁻: on `𝔊⁻` off `ℰ` the two weights differ by at most `|ε_ω|`, and typed pairs have `|z| < 216κ`. (W1) is #229 (4.1) divided by `r²`: there `W_r/r² = |det K_M det K_S|` and `ω_r = |det K_M det K_S|/r²`, with slack `ϱ = C_R r 𝒩^{N₁}` (`k ≤ 1` absorbs `1 + k`). Step W2 gives an `f₄`-interval of length `144κ + 24ϱ_j/|Δ|`. That interval is not inside `|z| ≤ 216κ`, and the argument uses it only through the uniform bound on the conditional density of `f₄`. (W2) is two intervals of total length `100κ`. Costs: +- `|ε_ω|`: (B5) and (2.1⁻) give `≤ C(r² + k²)κ ≤ 2Cκr²`. +- `𝔅_a`: Step C1 Case 2 kills both weights when `λ_max > r𝒩`. On `|λ_max| ≤ r𝒩`, (W1) gives `ω_r ≤ Cr²𝒩^N`, and #218 Lemma D in `𝒩`-layers costs `≤ Cr³`. `G_r` sits in `𝔅_b` because `λ ≤ r𝒩 < λ₄`. +- `𝔅_b`: `t₁ = 2C₄𝒩r(1 + |γ| + ‖B‖ + |η|)` and `λ₄ ≤ t₁ max(1, |f₄|/κ)`. The law of `A | J‴` is the Schur complement in TL (B4), so Lemma D and #237 Lemma D′ apply. On `{λ < t₁}`, (2.1⁻) on (W2) plus one factor of `t₁` from Lemma D give `≤ Cκ³r³` for `G_r`, and the window factor `1` gives `≤ Cr³` for `ω_r`. On `{t₁ ≤ λ < t₁|f₄|/κ}`, `G_r` costs `≤ Cκr²`. The `κ²Δ²` part of `ω_r`, integrated over (W1) and estimated by #229 (4.2) (`min ≤ 1 ≤ 2ϱ_j` when `ϱ_j > 1/2`), costs `≤ Cr²(κ + r log(2/r))`. The `ϱ²` part costs `≤ Cr³/κ`. And `r³log(2/r) ≤ 2r^{5/2} ≤ κr² + r³/κ` for every `r ∈ (0, 1]`, since `√r log(2/r)` stays below 2. +- `𝔅_c`: `ω_r ≤ C𝒩^N` and `G_r ≤ 37𝒩^{2m}`; Markov gives `≤ C_p(r/κ)^p`. +- `𝔅_d`: `κ³E[ε_d³] ≤ Cr³` for `G_r`. For `ω_r`, `6κ|Δ| + ϱ ≤ Cr𝒩^N(1 + ‖B‖)` and the dyadic determinant layers give `≤ Cr²E[κε_d + ϱ(1 + log₂(ε_d/ϱ)₊)] ≤ Cr³(1 + log(2/κ)) ≤ Cr³/κ`. +- The edge: `|I| ≤ 288κϑ_j` and (2.1⁻). Then `κ³Δ²ζ² = κr²Δ²Q₁²`, and the `ε₂′` and `ε̃` pieces are `≤ Cκ²r²` and `≤ Cκr²` after (1.1), so the edge costs `≤ Cκr²`. + +Collecting gives (2.3⁻). + +**Controls.** `python3 -B -S ts_exact.py` and `python3 -B -O -S ts_exact.py`: exit 0, byte-identical stdout as pinned above (S3 contributes 32 checks). `--mutant M4` (`130³` in place of `131³`): exit 1 in both modes, empty stdout, stderr `FAILED: S3_constants`. S3 also executes arithmetic used by §3 (the kink and (Δ.1⁻)); those lines ran, and they were not reviewed as part of Lemma Δ⁻. + +**Not checked.** §0 except the notation §2 uses; §1 Lemma S″; §§3–4 Lemma Δ⁻ and the assembly of Theorem TL⁻; §§5–7, the corollaries, the ledger and the header’s global claims; control groups S1, S2, S4, S5 and S6, and mutants other than M4. TL §§0–2 were used as the already-read `κ ≥ 1` source, not re-reviewed. No status, flag, premise or prize change. Whether IBA2-009 closes is for the audit’s owners. This PASS does not store the note in a Math- packet and does not accept Theorem TL⁻, Corollary TS or Corollary TS′. + + + +
Open in Web Open in Cursor 
+ diff --git a/frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICE_C.md b/frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICE_C.md new file mode 100644 index 000000000..cf65ea781 --- /dev/null +++ b/frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICE_C.md @@ -0,0 +1,16 @@ +**PASS** on lifetime note TS, Slice C (§§3–4: Lemma Δ⁻ and the proof of Theorem TL⁻). GitHub returned HTTP 403 on both a new issue comment and an edit of the bot comment 6020820817, so this message is the claim and the verdict. No repository edit, no pull request, no timer. + +Dylan Roy — delegated AI review. Actual performer: xAI Grok 4.7, Cursor cloud agent `bc-13c209f1-8716-43bd-9dd0-48c4e5724ca3` (model `grok-4.7-high-fast`), summoned by Anthropic Claude (`session_01NMeKEismAyeqgdB4sy2NJU`) under D2 of comment 6002718035, request 6020819748. Scientific effect NONE. Organizational-independence credit 0. Dylan's personal reading PENDING. + +Frozen bodies, hashed before the read and again after it, unchanged: note 6020794123 is 52,499 B, SHA-256 `add203d64536a5e948ba4e272c14494326f373f26aa99c390a1a6b726f10b400`; controls 6020799284 are 24,674 B, SHA-256 `3bc78b5eb2a663d665a9880dc3836a668c47af8729f3c98fcbf7c4d338262bb2`. Extracted `ts_exact.py` is 20,043 B, SHA-256 `0337e78c…ba59`; stdout is 185 B, SHA-256 `f5d11868…7b71`. + +Lemma Δ⁻ matches TL (3.0). From [N] (0.1), `q`, `Q₁`, `P₁=Δ²Q₁`, `β=12κΔ²Q₁` and the cutoff `|s||Q₁|≤c_eκ` do not depend on `f₄`, so given `J″` the edges `e_±(s)=±(24κ+36sQ₁)−3|q|` are exactly linear in `s`. The identity for `S₊(r)+S₊(−r)−2S₊(0)` holds with `β` constant in `f₄`. The first term is at most `a² sup|F′|` (sharp for linear `F`); the second term is `864 κ r² Δ² Q₁² sup p₄`; the kink sits in `|z−72κ|≤12.1 r|Q₁|` and contributes at most `291 κ r² Δ² Q₁² sup p₄`. The cutoff is absent from (Δ.1⁻) and costs `O(r²κ)` in (Δ.2⁻). The mirror branch `f₄↦−f₄−6|q|` has the same three absolute bounds. The orders are `O(r κ²)` and `O(r² κ)`. + +Steps 1–6 follow TL §4 under `κ:=k/r` and `r^θ≤κ≤1`. The choice `p=⌈3/(1−θ)⌉` absorbs Proposition RW⁻’s `(r/κ)^p` into `r³/κ`. The odd-mean score, parity, covariance interpolation and prefactor collect into `C(κ r²+r³/κ)`. Section 4 uses Lemma W⁻, (2.1⁻), (2.2⁻) and Proposition RW⁻ as stated in §2; I found no mismatch. I did not re-prove §2, Lemma S″, or §§5–7. + +Controls, Python 3.12.3: both `python3 -B -S` and `python3 -B -O -S` exit 0 with the pinned stdout (`S4_edge_model` 1040, `S6_monomials` 22). `M8` exits 1 with `FAILED: S6_monomials`; `M9` exits 1 with `FAILED: S4_edge_model`, in both modes. + + + +
Open in Web Open in Cursor 
+ diff --git a/frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICE_C_SUMMONS.md b/frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICE_C_SUMMONS.md new file mode 100644 index 000000000..ea7267b00 --- /dev/null +++ b/frontiers/ts_small_kappa_20261006/TS/REVIEW_SLICE_C_SUMMONS.md @@ -0,0 +1,20 @@ +@cursor **One bounded nonauthor mathematical read of lifetime note TS, Slice C (§§3–4: Lemma Δ⁻ and the proof of Theorem TL⁻), is requested** under D2 of [6002718035](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6002718035). Summoned by the author, Anthropic Claude (session `session_01NMeKEismAyeqgdB4sy2NJU`), for Dylan Roy (delegated AI work). Scientific effect NONE. Read only: edit no repository, open no PR, start no timer or loop. If GitHub refuses a new comment, edit your pickup comment. + +**Frozen objects** (as in the request [6020811116](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020811116)): +- the note [6020794123](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020794123): served API body 52,499 B, SHA-256 `add203d64536a5e948ba4e272c14494326f373f26aa99c390a1a6b726f10b400`; +- the controls [6020799284](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020799284): served 24,674 B, SHA-256 `3bc78b5eb2a663d665a9880dc3836a668c47af8729f3c98fcbf7c4d338262bb2`. The script `ts_exact.py` is 20,043 B, SHA-256 `0337e78c…ba59`; its stdout is `f5d11868…7b71`. + +Please hash both bodies before and after the read. Slice B (§2) has its own reader ([6020811116](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6020811116)); take Lemma W⁻ and Proposition RW⁻ as stated there, but flag any mismatch between what §4 uses and what §2 states. + +**Scope of Slice C.** It is note TL's §§3–4 ([6017975404](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6017975404)) adapted from `κ ≥ 1` to `0 < κ ≤ 1`. +- Lemma Δ⁻: `G_s` (TL (3.0)) and its parity; why `q`, `Q₁`, `β` and the cutoff do not involve `f₄` ([N] (0.1), `frontiers/elder_cusp_parity_20261002/PROOF.md`); the edges `e_±(s)` and their exact linearity in `s`; the identity for `S₊(r) + S₊(−r) − 2S₊(0)`; the first term, the second term (`864`), the kink (`12.1`, `291`), the cutoff, the mirror branch; (Δ.1⁻) and (Δ.2⁻) with the orders `rκ²` and `r²κ`. +- Steps 1–6 against TL §4: the odd mean (Gaussian score), parity, the covariance interpolation, the prefactor, and the collection into `C(κr² + r³/κ)`; the choice `p = ⌈3/(1 − θ)⌉`. +- Control groups S4 and S6: run both modes; mutants M8 and M9 must exit 1, naming their groups. + +Please claim first, with a pickup naming the two body SHAs. Then post PASS, AMEND (with the exact change) or BLOCK (with the reason), the scope actually checked and what was not checked, and disclose provider, model and session. + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + + +--- +_Generated by [Claude Code](https://claude.ai/code)_ \ No newline at end of file diff --git a/frontiers/ts_small_kappa_20261006/TS/author_controls.py b/frontiers/ts_small_kappa_20261006/TS/author_controls.py new file mode 100644 index 000000000..ebb6db234 --- /dev/null +++ b/frontiers/ts_small_kappa_20261006/TS/author_controls.py @@ -0,0 +1,435 @@ +"""Exact controls for lifetime note TS (CL-TS-SMALL-KAPPA-20261006-v1). + +Standard library only; exact rational arithmetic; deterministic; output identical under -O. +Usage: python3 -B -S ts_exact.py [--mutant M1..M10] +On success: one JSON line on stdout, exit 0. +On a failed control: nothing on stdout, 'FAILED: ' on stderr, exit 1. +On invalid arguments: usage on stderr, exit 2. +""" +import json +import random +import sys +from fractions import Fraction as F + +USAGE = "usage: ts_exact.py [--mutant M1..M10]\n" +MUTANTS = {"M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10"} + + +def parse(argv): + if len(argv) == 0: + return None + if len(argv) == 2 and argv[0] == "--mutant" and argv[1] in MUTANTS: + return argv[1] + sys.stderr.write(USAGE) + sys.exit(2) + + +MUT = parse(sys.argv[1:]) +RNG = random.Random(20261006) + + +class Failed(Exception): + pass + + +def need(cond, group): + if not cond: + raise Failed(group) + + +def rat(lo, hi, den=12): + return F(RNG.randint(lo * den, hi * den), den) + + +# ---------- S1: the pins at third order, (1.1) ---------- + +def quad_sup_abs(c0, c1, c2, lo, hi): + """exact max of |c0 + c1 t + c2 t^2| over [lo, hi].""" + pts = [lo, hi] + if c2 != 0: + ts = -c1 / (2 * c2) + if lo < ts < hi: + pts.append(ts) + return max(abs(c0 + c1 * t + c2 * t * t) for t in pts) + + +def pinned_profile(r, k, b, g4, g5, g6): + """g(t) = b + al t^2 + be t^3 + g4 t^4 + g5 t^5 + g6 t^6 with g(r) = b - k r^3, g'(r) = 0 (and g'(0) = 0).""" + # al r^2 + be r^3 = -k r^3 - g4 r^4 - g5 r^5 - g6 r^6 + # 2 al r + 3 be r^2 = -4 g4 r^3 - 5 g5 r^4 - 6 g6 r^5 + a11, a12, b1 = r ** 2, r ** 3, -k * r ** 3 - g4 * r ** 4 - g5 * r ** 5 - g6 * r ** 6 + a21, a22, b2 = 2 * r, 3 * r ** 2, -4 * g4 * r ** 3 - 5 * g5 * r ** 4 - 6 * g6 * r ** 5 + det = a11 * a22 - a12 * a21 + al = (b1 * a22 - a12 * b2) / det + be = (a11 * b2 - a21 * b1) / det + return [b, F(0), al, be, g4, g5, g6] + + +def peval(c, t): + return sum((ci * t ** i for i, ci in enumerate(c)), F(0)) + + +def pder(c): + return [i * c[i] for i in range(1, len(c))] + + +def s1(): + n = 0 + factor = F(1, 4) if MUT == "M1" else F(3, 2) + cases = [] + for _ in range(150): + r = F(RNG.randint(1, 60), 60) + k = r * F(RNG.randint(0, 24), 24) + cases.append((r, k, rat(-3, 3), rat(-20, 20), rat(-20, 20), rat(-40, 40))) + for r in (F(1, 2), F(1, 10), F(1)): + cases.append((r, r / 3, F(0), F(5), F(0), F(0))) # constant g'''' (ratio exactly 1/2) + cases.append((r, F(0), F(1), F(-7), F(3) / r, F(0))) + for (r, k, b, g4, g5, g6) in cases: + g = pinned_profile(r, k, b, g4, g5, g6) + g1, g2, g3, g4d = pder(g), pder(pder(g)), pder(pder(pder(g))), pder(pder(pder(pder(g)))) + need(peval(g, r) == b - k * r ** 3 and peval(g1, r) == 0 and peval(g1, F(0)) == 0 and peval(g, F(0)) == b, "S1_pins") + g20, g30 = peval(g2, F(0)), peval(g3, F(0)) + R4 = peval(g, r) - (b + g20 * r ** 2 / 2 + g30 * r ** 3 / 6) + R3 = peval(g1, r) - (g20 * r + g30 * r ** 2 / 2) + need(g30 - 12 * k == 12 * (R4 - r * R3 / 2) / r ** 3, "S1_pins") + sup4 = quad_sup_abs(g4d[0], g4d[1], g4d[2], F(0), r) + need(abs(R4) <= sup4 * r ** 4 / 24 and abs(R3) <= sup4 * r ** 3 / 6, "S1_pins") + need(abs(g30 - 12 * k) <= factor * r * sup4, "S1_pins") + n += 4 + return n + + +# ---------- S2: the barrier in window coordinates ---------- + +def matmul(a, b): + return [[sum((a[i][t] * b[t][j] for t in range(len(b))), F(0)) for j in range(len(b[0]))] for i in range(len(a))] + + +def diag(v): + return [[v[i] if i == j else F(0) for j in range(len(v))] for i in range(len(v))] + + +def s2(): + n = 0 + # (a) scaling exponents a + 2|beta| - 4 of the window coordinates + third = {(3, 0): -1, (2, 1): 0, (1, 2): 1, (0, 3): 2} + second = {(2, 0): -2, (1, 1): -1, (0, 2): 0} + for (a, bb), e in list(third.items()) + list(second.items()): + need(a + 2 * bb - 4 == e, "S2_barrier") + n += 1 + # (b) D^2 F at M-hat equals H-tilde: r^{-4} D H D = Lambda^{-1} H Lambda^{-1} + for d in (2, 3, 4): + for _ in range(10): + r = F(RNG.randint(1, 30), 31) + h = [[F(0)] * d for _ in range(d)] + for i in range(d): + for j in range(i, d): + h[i][j] = h[j][i] = rat(-5, 5) + dv = [r] + [r * r if MUT != "M10" else r] * (d - 1) + lhs = matmul(matmul(diag(dv), h), diag(dv)) + lhs = [[x / r ** 4 for x in row] for row in lhs] + lam_inv = [1 / r] + [F(1)] * (d - 1) + rhs = matmul(matmul(diag(lam_inv), h), diag(lam_inv)) + need(lhs == rhs, "S2_barrier") + n += 1 + # (c) the barrier algebra: delta = min(1, 3 lam/(2K)); on [0, delta], -(lam/2)t^2 + (K/6)t^3 <= -(lam/4)t^2; + # kappa >= lam delta^2/4 forces lam^3 <= max(64 kappa^3, (16/9) K^2 kappa); then lam^3 <= C6^3 N^2 kappa. + ccube = F(4, 9) if MUT == "M3" else F(16, 9) + for _ in range(120): + lam = F(RNG.randint(1, 400), RNG.randint(1, 40)) + c5 = F(RNG.randint(1, 50), RNG.randint(1, 5)) + nn = F(RNG.randint(1, 30), RNG.randint(1, 3)) + if nn < 1: + nn = F(1) + K = c5 * nn + delta = min(F(1), F(3) * lam / K) if MUT == "M2" else min(F(1), F(3) * lam / (2 * K)) + for j in range(9): + t = delta * j / 8 + need(-lam / 2 * t ** 2 + K / 6 * t ** 3 <= -lam / 4 * t ** 2, "S2_barrier") + kap_min = lam * delta ** 2 / 4 # extremal: kappa = lam delta^2 / 4 + for kap in (kap_min, kap_min * 2, kap_min * 7): + if kap > 1: + continue + need(lam ** 3 <= max(64 * kap ** 3, ccube * K ** 2 * kap), "S2_barrier") + c6cube = max(F(64), F(16, 9) * c5 ** 2) + need(lam ** 3 <= c6cube * nn ** 2 * kap, "S2_barrier") + n += 2 + n += 9 + # (d) the comparison with Lemma S' (exponents of r at fixed kappa, the common factor kappa + r removed): + # (S''.1): r^2 kappa^{2/3}; (S'.1): l^{2/3} r^{-2} = kappa^{2/3} r^{8/3 - 2}. + s2pp = (F(2), F(2, 3)) + s2p = (F(2, 3) * 4 - 2, F(2, 3)) + need(s2pp[1] == s2p[1] and s2pp[0] - s2p[0] == F(4, 3), "S2_barrier") + n += 1 + return n + + +# ---------- S3: the constants of sections 1-3 ---------- + +def s3(): + ce, de = F(1, 200), F(1, 96) + c4 = F(130) if MUT == "M4" else F(131) + checks = [ + c4 ** 3 >= 175 ** 2 * 72, # Lemma GE-: (175/8) N r^2 Gamma <= lam/8 + 576 * 2 == 1152 and F(1152) <= c4 ** 3, # 3 N r^2 ((k+1)/lam)^{1/2} <= lam/8, kappa + 1 <= 2 + 440 * 72 == 31680, + F(175, 4) <= 44 and 6 + 44 + 1 + 6 == 57, # 6r + 2r^2 R' <= 57 r <= L/4 for r <= L/228 + 36 * ce < 72 * de and 2 * ce / 3 < de, # Lemma Q' off J+-, and the edge shift inside J+- + 36 + 12 * ce <= 37, # TL (2.2) + 5184 + 1728 * ce < 73 ** 2, # |z| < 73 kappa on the support of G_r + 3 * 72 == 216, # typed pairs: |z| = 72 kappa |phi| < 216 kappa + (5184 - 48 ** 2) == 20 * 144 and 12 * ce < 20, # w0 >= 20 kappa^2 Delta^2 on [e+, 48 kappa], > |s beta| + 24 + 36 * ce <= F(242, 10), # edges inside |z| <= 24.2 kappa + F(242, 10) / 72 <= F(1, 2), # |w0'| <= kappa Delta^2 / 2 there + 1728 * ce == F(864, 100), # kink: 1728 kappa r|Q1| <= 8.64 kappa^2 + F(719, 10) ** 2 <= 5184 - F(864, 100), # so z >= 71.9 kappa at the kink + F(1728) / F(1439, 10) <= F(121, 10), # |z - 72 kappa| <= 12.1 r|Q1| + 12 * F(242, 10) <= 291 and 12 * 72 == 864, # kink 291, second term 864 + 72 * 37 == 2664 and 2 * 12 * 50 == 1200, # (Delta.1-) + 2 * 50 == 100 and 2 * 144 == 288 and 2 * 216 == 432, # window lengths + 48 * 1 - 72 * ce >= 47, # e+(s) - e-(s) >= 47 kappa + ] + # Lemma W-: |x| >= 3|q| - 216 on the window; for |q| >= 216, 3|q| - 216 >= 2|q|; for |q| <= 216, 1 + |q| <= 217 + for q in (F(0), F(1), F(100), F(216), F(217), F(1000)): + if q >= 216: + checks.append(3 * q - 216 >= 2 * q) + else: + checks.append(1 + q <= 217) + # |phi_r| < 7/6 + kappa m / (2 C12) < 3 for C12 >= m and kappa <= 1 + for m in range(1, 9): + checks.append(F(7, 6) + F(m, 2 * m) < 3) + for c in checks: + need(c, "S3_constants") + return len(checks) + + +# ---------- S4: the edge mechanism of Lemma Delta- on explicit models ---------- + +def poly_mul(a, b): + out = [F(0)] * (len(a) + len(b) - 1) + for i, x in enumerate(a): + for j, y in enumerate(b): + out[i + j] += x * y + return out + + +def poly_add(a, b): + n = max(len(a), len(b)) + return [(a[i] if i < len(a) else F(0)) + (b[i] if i < len(b) else F(0)) for i in range(n)] + + +def poly_scale(a, s): + return [x * s for x in a] + + +def poly_int(a, lo, hi): + return sum((ci * (hi ** (i + 1) - lo ** (i + 1)) / (i + 1) for i, ci in enumerate(a)), F(0)) + + +def shift(a, z0): + out = [F(0)] * len(a) + for i, ci in enumerate(a): + term = [F(1)] + for _ in range(i): + term = poly_mul(term, [z0, F(1)]) + out = poly_add(out, poly_scale(term, ci)) + return out + + +def sup_abs(a, z0, h): + s = shift(a, z0) + return sum((abs(ci) * h ** i for i, ci in enumerate(s)), F(0)) + + +def s4(): + n = 0 + ce = F(1, 200) + half = F(1, 2) if MUT == "M9" else F(1) + # (a) the second difference of Phi for linear F is exactly F' a^2 + for c0, c1 in ((F(1), F(2)), (F(-3), F(5, 7)), (F(2), F(-1, 3))): + for a in (F(1, 10), F(-1, 7), F(2, 3)): + phi = lambda x: c0 * x + c1 * x * x / 2 + need(phi(a) + phi(-a) == c1 * a * a, "S4_edge_model") + need(abs(phi(a) + phi(-a)) <= half * a * a * abs(c1), "S4_edge_model") + n += 2 + # (b) the w0-model: f4 is the variable; z = f4 + 3|q|; rho a positive quadratic stand-in for p4 + for kap in (F(1, 10), F(1, 3), F(1)): + for q3 in (F(0), F(1), F(5)): # 3|q| + for d2 in (F(1), F(1, 4)): + for Q1 in (F(1, 3), F(-2), F(5, 2)): + for frac in (F(1), F(1, 2), F(1, 5)): + r = frac * ce * kap / abs(Q1) # r|Q1| <= c_e kappa + z_of = [q3, F(1)] # z = f4 + 3|q| + w0 = poly_scale(poly_add([5184 * kap ** 2], poly_scale(poly_mul(z_of, z_of), F(-1))), d2 / 144) + rho = [F(3), F(1, 5), F(1, 40)] # positive on the relevant range + beta = 12 * kap * d2 * Q1 + e0 = 24 * kap - q3 + a = 36 * r * Q1 + zp = 48 * kap - q3 + + def S(s): + integrand = poly_add(w0, [s * beta]) + return poly_int(poly_mul(integrand, rho), e0 + 36 * s * Q1, zp) + + Fp = poly_mul(w0, rho) + + def Phi(x): + return poly_int(Fp, e0, e0 + x) + + lhs = S(r) + S(-r) - 2 * S(F(0)) + rhs = -(Phi(a) + Phi(-a)) + r * beta * poly_int(rho, e0 + a, e0 - a) + need(lhs == rhs, "S4_edge_model") + fprime = [i * Fp[i] for i in range(1, len(Fp))] + bound = half * a * a * sup_abs(fprime, e0, abs(a)) + need(abs(Phi(a) + Phi(-a)) <= bound, "S4_edge_model") + # |w0'| <= kappa Delta^2 / 2 on |z| <= 24.2 kappa (w0' = -(Delta^2/72) z) + need(d2 / 72 * F(242, 10) * kap <= kap * d2 / 2, "S4_edge_model") + # w0 >= 20 kappa^2 Delta^2 >= |r beta| on [e0 - |a|, 48 kappa - 3|q|] + need(peval(w0, zp) == 20 * kap ** 2 * d2 and abs(r * beta) <= 12 * ce * kap ** 2 * d2, "S4_edge_model") + # the kink: |w0| >= r|beta| at z = 72 kappa -+ 12.1 r|Q1|, so the kink lies inside that window + for sgn in (1, -1): + zz = 72 * kap + sgn * F(121, 10) * r * abs(Q1) + need(abs(peval(w0, zz - q3)) >= r * abs(beta), "S4_edge_model") + n += 6 + # (c) the kink integrand (w + h)_+ + (w - h)_+ - 2 w_+ is in [0, |h|] and vanishes for |w| >= |h| + pos = lambda y: y if y > 0 else F(0) + for h in (F(1, 3), F(2)): + for j in range(-12, 13): + w = h * F(j, 4) + kink = pos(w + h) + pos(w - h) - 2 * pos(w) + need(0 <= kink <= abs(h), "S4_edge_model") + if abs(w) >= abs(h): + need(kink == 0, "S4_edge_model") + n += 1 + return n + + +# ---------- S5: the ledger of (TS.1) ---------- + +def int_exp(p, lo, hi): + """l-exponent of the integral of r^p over [l^lo, l^hi] (lo > hi >= 0) as l -> 0; + lo = None means the lower limit 0 (needs p > -1), hi = None means the upper limit +infinity (needs p < -1).""" + if p > -1: + need(hi is not None, "S5_ledger") + return hi * (p + 1) + need(p < -1 and lo is not None, "S5_ledger") + return lo * (p + 1) + + +def ledger(sig, aexp, cancel=True): + """rows of (TS.1) at rho = l^sig, a = l^aexp, each exponent derived from its integral (kappa = l r^{-4}).""" + q5 = F(1, 5) + rows = { + "W+ typed mass on [l^{1/5}, a] (log)": int_exp(F(3), q5, aexp), # r^3 log + "S'' r kappa^{2/3} on [a, r0]": F(2, 3) + int_exp(F(-5, 3), aexp, None), + "S'' kappa^{5/3} on [a, r0]": F(5, 3) + int_exp(F(-20, 3), aexp, None), + "Lemma U r^2": int_exp(F(2), None, sig), + "elder cusp tail / W+ kappa^3": F(3) + int_exp(F(-12), sig, None), + "W+ kappa^2 r log on [rho, l^{1/5}]": F(2) + int_exp(F(-7), sig, q5), + "TL- r^3/kappa": F(-1) + int_exp(F(7), F(1, 4), sig), + "TL- kappa r^2": F(1) + int_exp(F(-2), F(1, 4), sig), + "Lemma U fold / TL1": F(2, 3), # recorded (#237 section 5; TL1) + "A2 finite part": 2 - 5 * sig, # recorded (#237 section 5) + "contact difference (5.0)": F(4) + int_exp(F(-14), sig, None), + } + if not cancel: + rows["contact difference (5.0)"] = F(2) + int_exp(F(-8), sig, None) # TL's separate bounds l^2 rho^{-7} + return rows + + +def s5(): + n = 0 + sig = F(3, 14) + aexp = F(1, 8) if MUT == "M5" else F(1, 7) + rows = ledger(sig, aexp, cancel=(MUT != "M6")) + need(rows["Lemma U r^2"] == 3 * sig and rows["elder cusp tail / W+ kappa^3"] == 3 - 11 * sig, "S5_ledger") + need(rows["TL- r^3/kappa"] == 8 * sig - 1 and rows["contact difference (5.0)"] in (4 - 13 * sig, 2 - 7 * sig), "S5_ledger") + need(min(rows.values()) == F(4, 7), "S5_ledger") + bold = sorted(k for k, v in rows.items() if v == F(4, 7)) + need(bold == ["S'' r kappa^{2/3} on [a, r0]", "W+ typed mass on [l^{1/5}, a] (log)"], "S5_ledger") + expect = {"Lemma U r^2": F(9, 14), "elder cusp tail / W+ kappa^3": F(9, 14), "W+ kappa^2 r log on [rho, l^{1/5}]": F(5, 7), + "TL- r^3/kappa": F(5, 7), "TL- kappa r^2": F(3, 4), "S'' kappa^{5/3} on [a, r0]": F(6, 7), + "A2 finite part": F(13, 14), "contact difference (5.0)": F(17, 14)} + for k_, v in expect.items(): + need(rows[k_] == v, "S5_ledger") + n += 4 + len(expect) + # the split: theta = (1 - 4 sigma)/sigma = 2/3 at sigma = 3/14; the admissible range (1/5, 17/77] + need((1 - 4 * sig) / sig == F(2, 3), "S5_ledger") + for s in (F(1, 5) + F(1, 1000), F(21, 100), F(3, 14), F(17, 77)): + need(min(ledger(s, F(1, 7)).values()) == F(4, 7) and (1 - 4 * s) / s < 1 and s <= F(1, 4), "S5_ledger") + n += 1 + need(min(ledger(F(17, 77) + F(1, 1000), F(1, 7)).values()) < F(4, 7), "S5_ledger") + need((1 - 4 * F(1, 5)) / F(1, 5) == 1, "S5_ledger") # sigma = 1/5 is the edge kappa = r + n += 2 + # a = l^{1/7} balances the two bold rows: 4a = 2/3 - (2/3)a + need(4 * F(1, 7) == F(2, 3) - F(2, 3) * F(1, 7), "S5_ledger") + # kappa^2 k^2 with kappa = l r^{-4}, k = l r^{-3}: (l, r) exponents (4, -14) + need((2 * 1 + 2 * 1, 2 * (-4) + 2 * (-3)) == (4, -14), "S5_ledger") + n += 2 + # how each improvement contributes + # (i) TL inputs (#229: W+ below a, S' above): a^4 against l^{2/3} a^{-2} at a = l^{1/9} + need(4 * F(1, 9) == F(2, 3) - 2 * F(1, 9) == F(4, 9), "S5_ledger") + # (ii) S'' without TL-: rho^2 against l^3 rho^{-11} at rho = l^{3/13} + need(2 * F(3, 13) == 3 - 11 * F(3, 13) == F(6, 13) and F(6, 13) < F(1, 2) < F(4, 7), "S5_ledger") + # (iii) without (5.0): the row l^2 rho^{-7} keeps the least exponent at 4/7 exactly for sigma <= 10/49 (theta >= 9/10) + need(min(ledger(F(10, 49), F(1, 7), cancel=False).values()) == F(4, 7), "S5_ledger") + need(min(ledger(F(10, 49) + F(1, 1000), F(1, 7), cancel=False).values()) < F(4, 7), "S5_ledger") + need((1 - 4 * F(10, 49)) / F(10, 49) == F(9, 10) and 2 - 7 * F(10, 49) == F(4, 7), "S5_ledger") + # SIDE24 and the comparison with TL and #229 + shift_ = F(1, 4) if MUT == "M7" else F(1, 3) + need(F(4, 7) + shift_ == F(19, 21) and F(19, 21) > F(7, 9) > F(16, 21), "S5_ledger") + # (TS.2): #237 (P.1) has remainder l^{3/5}, and 3/5 > 4/7 + need(F(3, 5) > F(4, 7), "S5_ledger") + n += 7 + return n + + +# ---------- S6: every error monomial of sections 2-4 is at most kappa r^2 + r^3/kappa on r <= kappa <= 1 ---------- + +def dominated(a, b): + """r^a kappa^b <= max(kappa r^2, r^3/kappa) for all r <= kappa <= 1 (small r). In x = log kappa in [log r, 0] the + right side is the max of two linear functions, crossing at kappa = r^{1/2}; the left side is linear. So it + suffices to check kappa = r, kappa = r^{1/2} and kappa = 1: a + b >= 2, a + b/2 >= 5/2 and a >= 2.""" + return a + b >= 2 and a + b / 2 >= F(5, 2) and a >= 2 + + +def s6(): + rows = [ + ("eps_omega: r^2 kappa", F(2), F(1)), ("eps_omega: k^2 kappa = kappa^3 r^2", F(2), F(3)), + ("B_a: r^3", F(3), F(0)), ("B_b: kappa^3 r^3", F(3), F(3)), ("B_b: r^3", F(3), F(0)), + ("B_b: kappa r^2", F(2), F(1)), ("B_b: r^3 log via 2 r^{5/2}", F(5, 2), F(0)), ("B_b: r^3/kappa", F(3), F(-1)), + ("B_d: r^3", F(3), F(0)), ("B_d: r^3 log(2/kappa) via r^3/kappa", F(3), F(-1)), + ("edge set: kappa r^2", F(2), F(1)), ("edge set: kappa^2 r^2", F(2), F(2)), + ("Delta-: r^2 kappa", F(2), F(1)), ("step 2: k^2 kappa^3", F(2), F(5)), ("step 3: kappa^3 r^2", F(2), F(3)), + ("step 5: r^2 kappa^3", F(2), F(3)), ("step 6: (r^2 + k^2) kappa^3", F(2), F(3)), + ] + if MUT == "M8": + rows[7] = ("B_b: r^3/kappa", F(2), F(-1)) + for _, a, b in rows: + need(dominated(a, b), "S6_monomials") + # the target itself, and a monomial that is not dominated + need(dominated(F(2), F(1)) and dominated(F(3), F(-1)) and not dominated(F(2), F(0)), "S6_monomials") + # (r/kappa)^p <= r^3 <= r^3/kappa for kappa >= r^theta, p = ceil(3/(1 - theta)) + for th in (F(1, 2), F(2, 3), F(3, 4), F(9, 10)): + x = F(3) / (1 - th) + p = x.numerator // x.denominator + (1 if x.denominator != 1 else 0) + need(p >= x and (1 - th) * p >= 3, "S6_monomials") + return len(rows) + 1 + 4 + + +def main(): + groups = [("S1_pins", s1), ("S2_barrier", s2), ("S3_constants", s3), ("S4_edge_model", s4), + ("S5_ledger", s5), ("S6_monomials", s6)] + counts = {} + try: + for name, fn in groups: + counts[name] = fn() + except Failed as e: + sys.stderr.write("FAILED: %s\n" % e.args[0]) + sys.exit(1) + out = {"object": "CL-TS-SMALL-KAPPA-20261006-v1", "checks": counts, "total": sum(counts.values()), "passed": True} + sys.stdout.write(json.dumps(out, sort_keys=True, separators=(",", ":")) + "\n") + + +if __name__ == "__main__": + main() diff --git a/frontiers/ts_small_kappa_20261006/TS/author_controls_stdout.json b/frontiers/ts_small_kappa_20261006/TS/author_controls_stdout.json new file mode 100644 index 000000000..97972f815 --- /dev/null +++ b/frontiers/ts_small_kappa_20261006/TS/author_controls_stdout.json @@ -0,0 +1 @@ +{"checks":{"S1_pins":624,"S2_barrier":1514,"S3_constants":32,"S4_edge_model":1040,"S5_ledger":27,"S6_monomials":22},"object":"CL-TS-SMALL-KAPPA-20261006-v1","passed":true,"total":3259} diff --git a/frontiers/ts_small_kappa_20261006/replay.py b/frontiers/ts_small_kappa_20261006/replay.py new file mode 100644 index 000000000..732ef64a1 --- /dev/null +++ b/frontiers/ts_small_kappa_20261006/replay.py @@ -0,0 +1,340 @@ +#!/usr/bin/env python3 +"""Verify the stored records of lifetime note TS and replay its published author controls (standard library only). + +Every file in this packet except replay.py, README.md and SOURCES.json is one of two things: + - an exact copy of a public comment body on main#229 or main#259 (a note, claim, pickup, controls comment, read + request, review, release or author response); + - the control script or its stdout, extracted verbatim from the stored controls comment by the extraction rule that + comment states (the rule of main#229 comment 5971055189). The stdout is a ```json fence. +SOURCES.json pins each file by byte count and SHA-256 and lists each replay. This script performs four checks. + + 1. The packet tree equals SOURCES.json's file list, with no symlinks, and every stored file has its pinned + identity. + 2. Every extracted script and stdout equals the fenced payload inside its stored source comment, under the + extraction rule (the stdout fence language follows the stored stdout's suffix: .json for ```json, .txt for ```text). + 3. Every control script runs under the current interpreter's -O/-S flags and reproduces its published stdout byte + for byte (none prints an interpreter version), with empty stderr. Every listed mutant or invalid invocation + must reproduce its exact source-bound rejection on BOTH captured streams, not merely exit 1 or 2. + 4. Negative controls must be rejected: + - a one-byte change to a stored note (TS/PROOF.md); + - a control script with one changed constant (S3's constant C4 = 131 replaced by 130). + +Reproducibility only. The analytic notes and their reads carry the mathematics. These finite checks support +algebra, as the reads say. Nothing here reads or grades a proof. + +Usage: python3 -B -S frontiers/ts_small_kappa_20261006/replay.py (exit 0 iff every check passes) +Optional QS_REPLAY_EVIDENCE_DIR (outside the checkout) retains raw child streams and process records. +Each invocation gets a new directory; records describe execution, never mathematical acceptance. +Required evidence I/O fails the run; a timeout/spawn error remains the primary exception. +""" +import hashlib +import json +import os +import pathlib +import re +import shutil +import subprocess +import sys +import tempfile + +HERE = pathlib.Path(__file__).resolve().parent +OWN = {'README.md', 'SOURCES.json', 'replay.py'} + +# Exact rejection fingerprints of the extracted author controls (ts_exact.py from 6020799284), computed under both +# interpreter modes at incorporation and found identical. +# Each key is (script path, complete argv tail); each value is (exit, stdout SHA256, +# stderr SHA256, readable reason). References are frozen independently of this run. +# All 10 mutants and 3 invalid invocations were executed and their named reasons +# checked against their source. Exact fingerprints enforce the full contracts, +# including the empty stdout, the FAILED or usage line and its group name. +# No current failing output, generic exit code or broad regex creates a reference. +# Any source/runtime output drift fails closed and requires a reviewed amendment. +REJECTION_CONTRACTS = { + ('TS/author_controls.py', ('--mutant', 'M1')): + (1, 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', '411e1ec4cdc647244fdb31ce5d96305ae154cfae97ff736762e3cd48fea0fded', 'FAILED: S1_pins'), + ('TS/author_controls.py', ('--mutant', 'M2')): + (1, 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', 'd002479358decef62e3b2b07b742be78028c9fe95c928a0b48645a28cbe1aed8', 'FAILED: S2_barrier'), + ('TS/author_controls.py', ('--mutant', 'M3')): + (1, 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', 'd002479358decef62e3b2b07b742be78028c9fe95c928a0b48645a28cbe1aed8', 'FAILED: S2_barrier'), + ('TS/author_controls.py', ('--mutant', 'M4')): + (1, 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', '0579129f9a73f09e7e61e58ee1a98f1d1b25fcd320ff0bc5cffd55d4617b0514', 'FAILED: S3_constants'), + ('TS/author_controls.py', ('--mutant', 'M5')): + (1, 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', '85159f6de6b828949c1de1dfd89acd96d24e9f9337e9a6aafefa19dc230a6a0d', 'FAILED: S5_ledger'), + ('TS/author_controls.py', ('--mutant', 'M6')): + (1, 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', '85159f6de6b828949c1de1dfd89acd96d24e9f9337e9a6aafefa19dc230a6a0d', 'FAILED: S5_ledger'), + ('TS/author_controls.py', ('--mutant', 'M7')): + (1, 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', '85159f6de6b828949c1de1dfd89acd96d24e9f9337e9a6aafefa19dc230a6a0d', 'FAILED: S5_ledger'), + ('TS/author_controls.py', ('--mutant', 'M8')): + (1, 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', '4f9648bdf8eaf78a329bb589a5bebab143cfaf55784076a3e412acf6ddff29f0', 'FAILED: S6_monomials'), + ('TS/author_controls.py', ('--mutant', 'M9')): + (1, 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', 'ab341f1dc8ad3336cede12eb515613d487604d5811997620737afc4595135a61', 'FAILED: S4_edge_model'), + ('TS/author_controls.py', ('--mutant', 'M10')): + (1, 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', 'd002479358decef62e3b2b07b742be78028c9fe95c928a0b48645a28cbe1aed8', 'FAILED: S2_barrier'), + ('TS/author_controls.py', ('--bogus',)): + (2, 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', '220f99affcd6e96b091c4c09a1fbbc87dbf47910680b7db2a28de7672269b27c', 'usage: ts_exact.py [--mutant M1..M10]'), + ('TS/author_controls.py', ('--mutant', 'M11')): + (2, 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', '220f99affcd6e96b091c4c09a1fbbc87dbf47910680b7db2a28de7672269b27c', 'usage: ts_exact.py [--mutant M1..M10]'), + ('TS/author_controls.py', ('--mutant',)): + (2, 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', '220f99affcd6e96b091c4c09a1fbbc87dbf47910680b7db2a28de7672269b27c', 'usage: ts_exact.py [--mutant M1..M10]'), +} + +# Replacing S3's constant C4 = 131 by 130 with MUT=None must fail specifically at S3, on stderr alone. +NEGATIVE_CONSTANT = (1, hashlib.sha256(b'').hexdigest(), + hashlib.sha256(b'FAILED: S3_constants\n').hexdigest(), 'S3_constants') + + +def check_rejection(result, expected): + """Compare both full captured streams, not a permissive failure-message pattern.""" + code, out, err = result + failures = [] + if type(code) is not int or code != expected[0]: + failures.append('wrong exit code') + if type(out) is not bytes or hashlib.sha256(out).hexdigest() != expected[1]: + failures.append('stdout differs from intended diagnostic') + if type(err) is not bytes or hashlib.sha256(err).hexdigest() != expected[2]: + failures.append('stderr differs from intended diagnostic') + return failures + + +def rejection_inventory_failures(manifest): + listed = {} + for obj in manifest['objects']: + for replay in obj['replays']: + for kind, code in (('mutants', 1), ('invalid', 2)): + for args in replay[kind]: + key = replay['script'], tuple(args) + if key in listed: + return ['duplicate rejection invocation: ' + repr(key)] + listed[key] = code + if set(listed) != set(REJECTION_CONTRACTS): + return ['rejection invocation inventory differs from frozen contracts'] + if any(REJECTION_CONTRACTS[key][0] != code for key, code in listed.items()): + return ['rejection invocation category differs from frozen contracts'] + return [] + + +def report_control(script, args, result, reason): + code, out, err = result + print(json.dumps(dict(script=script, args=list(args), returncode=code, + stdout_sha256=hashlib.sha256(out).hexdigest(), + stderr_sha256=hashlib.sha256(err).hexdigest(), + expected_reason=reason), sort_keys=True)) + + +def identity(data): + return len(data), hashlib.sha256(data).hexdigest() + + +def interpreter_flags(): + flags = ['-B'] + if sys.flags.optimize: + flags.append('-O') + if sys.flags.no_site: + flags.append('-S') + return flags + + +def tree_failures(root, manifest): + failures = [] + listed = {} + for obj in manifest['objects']: + for f in obj['stored']: + listed[f['path']] = (f['bytes'], f['sha256']) + present = set() + for path in sorted(root.rglob('*')): + rel = path.relative_to(root).as_posix() + if path.is_symlink(): + failures.append('symlink: ' + rel) + elif path.is_file(): + present.add(rel) + for rel in sorted(present ^ (set(listed) | OWN)): + failures.append(('unlisted file: ' if rel in present else 'missing file: ') + rel) + for rel, ident in sorted(listed.items()): + if rel in present and identity((root / rel).read_bytes()) != ident: + failures.append('identity mismatch: ' + rel) + return failures + + +def extraction_failures(root, manifest): + """Re-extract every script and stdout from its stored source comment and compare with the stored payloads.""" + failures = [] + for obj in manifest['objects']: + extracted = [f for f in obj['stored'] if 'extracted_from' in f] + for script in [f for f in extracted if f['path'].endswith('.py')]: + stdout = [f for f in extracted if f['extracted_from'] == script['extracted_from'] + and f['heading'] == script['heading'] and not f['path'].endswith('.py')] + if len(stdout) != 1: + failures.append('%s: no single stdout record for %s' % (obj['tag'], script['path'])) + continue + stdout = stdout[0] + fence = {'json': 'json', 'txt': 'text'}.get(stdout['path'].rsplit('.', 1)[-1]) + if fence is None: + failures.append('%s: unsupported stdout suffix for %s' % (obj['tag'], stdout['path'])) + continue + body = (root / script['extracted_from']).read_text(encoding='utf-8') + if body.count(script['heading']) < 1: + failures.append('%s: heading %r not found in %s' % (obj['tag'], script['heading'], script['extracted_from'])) + continue + section = body[body.index(script['heading']):] + m1 = re.search(r'```python\n(.*?)\n```\n', section, re.S) + m2 = re.search(r'```%s\n(.*?)\n```\n' % fence, section[m1.end():], re.S) if m1 else None + if not (m1 and m2): + failures.append('%s: fences not found after %r' % (obj['tag'], script['heading'])) + continue + if (m1.group(1) + '\n').encode('utf-8') != (root / script['path']).read_bytes(): + failures.append('%s: %s differs from the payload in %s' % (obj['tag'], script['path'], script['extracted_from'])) + if (m2.group(1) + '\n').encode('utf-8') != (root / stdout['path']).read_bytes(): + failures.append('%s: %s differs from the payload in %s' % (obj['tag'], stdout['path'], stdout['extracted_from'])) + return failures + + +PROCESS_TIMEOUT_SECONDS = 1800 # Unchanged production budget; tests shorten it for real timeout children. + + +def evidence_directory(script): + """An explicit destination opts in; never put generated evidence in source directories.""" + raw = os.environ.get('QS_REPLAY_EVIDENCE_DIR') + if raw is None: + return None + if not raw: + raise ValueError('QS_REPLAY_EVIDENCE_DIR must not be empty') + root = pathlib.Path(raw).expanduser().resolve() + if root.is_relative_to(HERE.resolve().parents[1]) or root.is_relative_to(script.parent.resolve()): + raise ValueError('QS replay evidence must be outside the checkout and child source directory') + root.mkdir(parents=True, exist_ok=True) + return pathlib.Path(tempfile.mkdtemp(prefix='invocation-', dir=root)) + + +def save_process_evidence(folder, record, out, err): + """Attempt every write independently. None is unavailable, not an observed empty stream.""" + record['streams'] = {} + record['evidence_errors'] = [] + for name, data in (('stdout', out), ('stderr', err)): + entry = dict(available=data is not None, bytes=len(data) if data is not None else None, + sha256=hashlib.sha256(data).hexdigest() if data is not None else None, saved=False) + record['streams'][name] = entry + try: + (folder / (name + '.bin')).write_bytes(data if data is not None else b'') + entry['saved'] = True + except Exception as exc: + record['evidence_errors'].append('%s.bin: %s: %s' % (name, type(exc).__name__, exc)) + try: + data = (json.dumps(record, sort_keys=True, indent=2, allow_nan=False) + '\n').encode('utf-8') + (folder / 'process.json').write_bytes(data) + except Exception as exc: + record['evidence_errors'].append('process.json: %s: %s' % (type(exc).__name__, exc)) + + +def run(script, *args): + command = [sys.executable, *interpreter_flags(), str(script), *args] + folder = evidence_directory(script) # Invalid/unwritable setup stops before starting a child. + record = dict(schema=1, command=command, cwd=str(script.parent), + timeout_seconds=PROCESS_TIMEOUT_SECONDS, scientific_effect='NONE') + try: + proc = subprocess.run(command, capture_output=True, timeout=PROCESS_TIMEOUT_SECONDS, + cwd=str(script.parent)) + except (subprocess.TimeoutExpired, OSError) as exc: + if folder is not None: + record.update(status='timeout' if isinstance(exc, subprocess.TimeoutExpired) else 'spawn_error', + returncode=None, exception=dict(type=type(exc).__name__, message=str(exc))) + exc.evidence_record = record + try: + save_process_evidence(folder, record, getattr(exc, 'stdout', None), getattr(exc, 'stderr', None)) + if record['evidence_errors']: + exc.add_note('QS replay evidence errors: ' + '; '.join(record['evidence_errors'])) + except Exception as secondary: + exc.add_note('QS replay evidence recording failed: %s: %s' % (type(secondary).__name__, secondary)) + raise # Never replace the primary timeout or launch error with a recording error. + if folder is not None: + record.update(status='completed', returncode=proc.returncode, exception=None) + save_process_evidence(folder, record, proc.stdout, proc.stderr) + if record['evidence_errors']: + exc = RuntimeError('QS replay evidence errors: ' + '; '.join(record['evidence_errors'])) + exc.evidence_record = record + raise exc # Even exit 0 is not success when explicitly required evidence is missing. + return proc.returncode, proc.stdout, proc.stderr + + +def replay_failures(root, manifest): + failures = rejection_inventory_failures(manifest) + if failures: + return failures # Do not execute an incomplete/changed control inventory. + for obj in manifest['objects']: + for replay in obj['replays']: + label = '%s %s' % (obj['tag'], replay['name']) + script = root / replay['script'] + code, out, err = run(script, *replay['args']) + baseline_failures = [] + if code != 0: + baseline_failures.append('%s: exit code %s' % (label, code)) + if out != (root / replay['stdout']).read_bytes(): + baseline_failures.append('%s: stdout differs from the published bytes' % label) + if err: + baseline_failures.append('%s: unexpected baseline stderr' % label) + if baseline_failures: + failures.extend(baseline_failures) + continue + report_control(replay['script'], replay['args'], (code, out, err), 'exact published baseline') + for kind in ('mutants', 'invalid'): + for args in replay[kind]: + expected = REJECTION_CONTRACTS[replay['script'], tuple(args)] + result = run(script, *args) + mismatches = check_rejection(result, expected) + failures.extend('%s %r: %s' % (label, args, why) for why in mismatches) + if not mismatches: + report_control(replay['script'], args, result, expected[3]) + return failures + + +def negative_control_failures(root, manifest): + failures = [] + with tempfile.TemporaryDirectory() as tmp: + copy = pathlib.Path(tmp) / 'packet' + shutil.copytree(root, copy, symlinks=True) + target = copy / 'TS' / 'PROOF.md' + data = bytearray(target.read_bytes()) + data[100] ^= 0x01 + target.write_bytes(bytes(data)) + if 'identity mismatch: TS/PROOF.md' not in tree_failures(copy, manifest): + failures.append('negative control: a one-byte change to TS/PROOF.md was not detected') + script = copy / 'TS' / 'author_controls.py' + text = script.read_text(encoding='utf-8') + old = 'c4 = F(130) if MUT == "M4" else F(131)' + if text.count(old) != 1: + failures.append('negative control: the C4 constant line was not found exactly once') + else: + script.write_text(text.replace(old, 'c4 = F(130) if MUT == "M4" else F(130)'), encoding='utf-8') + result = run(script) + mismatches = check_rejection(result, NEGATIVE_CONSTANT) + failures.extend('negative control: changed C4 constant: ' + why for why in mismatches) + if not mismatches: + report_control('TS/author_controls.py', [], result, 'changed 131 to 130: S3_constants') + return failures + + +def main(): + manifest = json.loads((HERE / 'SOURCES.json').read_text(encoding='utf-8')) + failures = tree_failures(HERE, manifest) + if not failures: + failures = extraction_failures(HERE, manifest) + if not failures: + failures = replay_failures(HERE, manifest) + if not failures: + failures = negative_control_failures(HERE, manifest) + n_scripts = sum(len(o['replays']) for o in manifest['objects']) + n_mut = sum(len(r['mutants']) for o in manifest['objects'] for r in o['replays']) + n_inv = sum(len(r['invalid']) for o in manifest['objects'] for r in o['replays']) + n_files = sum(len(o['stored']) for o in manifest['objects']) + mode = ' '.join(interpreter_flags()) + if failures: + for f in failures: + print('FAIL ' + f) + print('Lifetime note TS incorporation replay (%s): %d failure(s)' % (mode, len(failures))) + return 1 + print('Lifetime note TS incorporation replay (%s): %d stored identities, %d extractions, %d checker stdouts, ' + '%d mutants, %d invalid invocations and 2 negative controls PASS' % (mode, n_files, 2 * n_scripts, n_scripts, n_mut, n_inv)) + return 0 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/tests/test_ts_small_kappa_replay_evidence.py b/tests/test_ts_small_kappa_replay_evidence.py new file mode 100644 index 000000000..cdec83ea6 --- /dev/null +++ b/tests/test_ts_small_kappa_replay_evidence.py @@ -0,0 +1,215 @@ +"""Optional raw-process evidence; synthetic children are not mathematical evidence.""" +import hashlib +import importlib.util +import json +import os +from pathlib import Path +import subprocess +import sys +import tempfile +import unittest +from unittest.mock import patch + +ROOT = Path(__file__).resolve().parents[1] +PACKET = ROOT / 'frontiers/ts_small_kappa_20261006' +ENV = 'QS_REPLAY_EVIDENCE_DIR' + + +class RawEvidenceTests(unittest.TestCase): + def setUp(self): + spec = importlib.util.spec_from_file_location('qs_raw_subject', PACKET / 'replay.py') + self.m = importlib.util.module_from_spec(spec) + spec.loader.exec_module(self.m) + self.tmp = tempfile.TemporaryDirectory() + self.addCleanup(self.tmp.cleanup) + self.root = Path(self.tmp.name) + scripts = self.root / 'scripts' + scripts.mkdir() + self.script = scripts / 'fixture.py' + self.evidence = self.root / 'evidence' + self.env = patch.dict(os.environ, {ENV: str(self.evidence)}) + self.env.start() + self.addCleanup(self.env.stop) + + def child(self, text): + self.script.write_text(text, encoding='utf-8') + return self.script + + def record(self): + records = list(self.evidence.glob('invocation-*/process.json')) + self.assertEqual(len(records), 1, 'one independently retained child process record required') + return records[0].parent, json.loads(records[0].read_bytes()) + + def verify_stream(self, folder, rec, name, value): + stream = rec['streams'][name] + self.assertEqual(stream['available'], value is not None) + self.assertEqual(stream['bytes'], len(value) if value is not None else None) + self.assertEqual(stream['sha256'], hashlib.sha256(value).hexdigest() if value is not None else None) + self.assertTrue(stream['saved']) + self.assertEqual((folder / (name + '.bin')).read_bytes(), value if value is not None else b'') + + def test_no_capture_preserves_original_three_value_result(self): + os.environ.pop(ENV) + s = self.child("import os,sys\nos.write(1,b'\\xffok');os.write(2,b'\\x00err');sys.exit(7)\n") + self.assertEqual(self.m.run(s), (7, b'\xffok', b'\x00err')) + self.assertFalse(self.evidence.exists()) + + def test_real_crash_retains_full_binary_streams_and_invocation(self): + s = self.child("import os\nos.write(1,b'\\x00\\xffpartial')\nraise RuntimeError('synthetic crash')\n") + result = self.m.run(s, '--diagnostic') + self.assertEqual(result[0], 1) + self.assertIn(b'RuntimeError: synthetic crash', result[2]) + folder, rec = self.record() + self.assertEqual(rec['command'], [sys.executable, *self.m.interpreter_flags(), str(s), '--diagnostic']) + self.assertEqual(rec['cwd'], str(s.parent)) + self.assertEqual(rec['timeout_seconds'], 1800) + self.assertEqual(rec['status'], 'completed') + self.assertEqual(rec['returncode'], 1) + self.assertNotIn('passed', rec) + self.assertEqual(rec['evidence_errors'], []) + self.verify_stream(folder, rec, 'stdout', result[1]) + self.verify_stream(folder, rec, 'stderr', result[2]) + + def test_success_and_intended_failure_outputs_are_not_reinterpreted(self): + s = self.child("import os,sys\nos.write(1,b'answer\\n');os.write(2,b'diagnostic\\n');sys.exit(int(sys.argv[1]))\n") + for code in (0, 1, 2): + with self.subTest(code=code): + result = self.m.run(s, str(code)) + self.assertEqual(result, (code, b'answer\n', b'diagnostic\n')) + records = [json.loads(p.read_bytes()) for p in self.evidence.glob('invocation-*/process.json')] + self.assertEqual(sorted(r['returncode'] for r in records), [0, 1, 2]) + self.assertTrue(all('passed' not in r for r in records)) + + def test_repeated_invocations_never_overwrite(self): + s = self.child("print('first')\n") + self.m.run(s) + before = {p: p.read_bytes() for p in self.evidence.glob('invocation-*/*')} + self.assertEqual(len(before), 3) + self.m.run(s) + self.assertEqual(len(list(self.evidence.glob('invocation-*'))), 2) + for p, data in before.items(): + self.assertEqual(p.read_bytes(), data) + + def test_real_timeout_keeps_partial_bytes_and_timeout_exception(self): + self.assertTrue(hasattr(self.m, 'PROCESS_TIMEOUT_SECONDS'), 'explicit unchanged production timeout required') + s = self.child("import os,time\nos.write(1,b'\\xffout');os.write(2,b'\\x00err');time.sleep(10)\n") + with patch.object(self.m, 'PROCESS_TIMEOUT_SECONDS', 0.5): + with self.assertRaises(subprocess.TimeoutExpired) as caught: + self.m.run(s) + folder, rec = self.record() + self.assertEqual(rec['status'], 'timeout') + self.assertIsNone(rec['returncode']) + self.assertEqual(rec['timeout_seconds'], 0.5) + self.assertEqual(caught.exception.output, b'\xffout') + self.assertEqual(caught.exception.stderr, b'\x00err') + self.verify_stream(folder, rec, 'stdout', caught.exception.output) + self.verify_stream(folder, rec, 'stderr', caught.exception.stderr) + self.assertEqual(caught.exception.evidence_record, rec) + + def test_unavailable_empty_and_binary_timeout_capture_are_distinct(self): + for out in (None, b'', b'\xff\x00'): + for err in (None, b'', b'\x80err'): + with self.subTest(out=out, err=err), tempfile.TemporaryDirectory() as td: + target = Path(td) / 'records' + exc = subprocess.TimeoutExpired(['synthetic'], 1800, output=out, stderr=err) + with patch.dict(os.environ, {ENV: str(target)}), patch.object(self.m.subprocess, 'run', side_effect=exc): + with self.assertRaises(subprocess.TimeoutExpired) as caught: + self.m.run(self.script) + self.assertIs(caught.exception, exc) + paths = list(target.glob('invocation-*/process.json')) + self.assertEqual(len(paths), 1) + rec = json.loads(paths[0].read_bytes()) + self.verify_stream(paths[0].parent, rec, 'stdout', out) + self.verify_stream(paths[0].parent, rec, 'stderr', err) + self.assertIsNone(rec['returncode']) + + def test_real_spawn_error_retains_unknown_output_and_original_error(self): + s = self.child("print('must not execute')\n") + missing = str(self.root / 'missing-interpreter') + with patch.object(self.m.sys, 'executable', missing): + with self.assertRaises(FileNotFoundError) as caught: + self.m.run(s) + folder, rec = self.record() + self.assertEqual(rec['status'], 'spawn_error') + self.assertIsNone(rec['returncode']) + self.assertEqual(rec['exception']['type'], 'FileNotFoundError') + self.verify_stream(folder, rec, 'stdout', None) + self.verify_stream(folder, rec, 'stderr', None) + self.assertEqual(caught.exception.evidence_record, rec) + + def test_each_write_failure_still_attempts_other_evidence(self): + original = Path.write_bytes + for failed in ('stdout.bin', 'stderr.bin', 'process.json'): + with self.subTest(failed=failed), tempfile.TemporaryDirectory() as td: + target = Path(td) / 'records' + attempted = [] + def write(path, data): + attempted.append(path.name) + if path.name == failed: + raise OSError('synthetic write refusal') + return original(path, data) + exc = subprocess.TimeoutExpired(['synthetic'], 1800, output=b'out', stderr=b'err') + with patch.dict(os.environ, {ENV: str(target)}), patch.object(self.m.subprocess, 'run', side_effect=exc), patch.object(Path, 'write_bytes', write): + with self.assertRaises(subprocess.TimeoutExpired) as caught: + self.m.run(self.script) + self.assertIs(caught.exception, exc) + self.assertEqual(attempted, ['stdout.bin', 'stderr.bin', 'process.json']) + rec = caught.exception.evidence_record + self.assertEqual(len(rec['evidence_errors']), 1) + self.assertIn(failed, rec['evidence_errors'][0]) + self.assertTrue(any('evidence' in note for note in caught.exception.__notes__)) + folder = next(target.glob('invocation-*')) + for name in {'stdout.bin', 'stderr.bin', 'process.json'} - {failed}: + self.assertTrue((folder / name).is_file()) + + def test_all_write_failures_do_not_replace_primary_timeout(self): + exc = subprocess.TimeoutExpired(['synthetic'], 1800, output=b'out', stderr=b'err') + with patch.object(self.m.subprocess, 'run', side_effect=exc), patch.object(Path, 'write_bytes', side_effect=OSError('synthetic full disk')): + with self.assertRaises(subprocess.TimeoutExpired) as caught: + self.m.run(self.script) + self.assertIs(caught.exception, exc) + self.assertTrue(hasattr(exc, 'evidence_record'), 'retain failure metadata in memory') + self.assertEqual(len(exc.evidence_record['evidence_errors']), 3) + self.assertIsNone(exc.evidence_record['returncode']) + + def test_completed_child_with_failed_evidence_cannot_report_success(self): + self.child("print('actual completed child')\n") + with patch.object(Path, 'write_bytes', side_effect=OSError('synthetic full disk')): + with self.assertRaises(RuntimeError) as caught: + self.m.run(self.script) + self.assertEqual(caught.exception.evidence_record['returncode'], 0) + self.assertEqual(len(caught.exception.evidence_record['evidence_errors']), 3) + + def test_invalid_destination_stops_before_child(self): + for target in (PACKET / 'forbidden-evidence', self.script.parent / 'forbidden-evidence'): + with self.subTest(target=target), patch.dict(os.environ, {ENV: str(target)}), patch.object(self.m.subprocess, 'run') as child: + with self.assertRaises(ValueError): + self.m.run(self.script) + child.assert_not_called() + self.assertFalse(target.exists()) + self.evidence.write_text('not a directory') + with patch.object(self.m.subprocess, 'run') as child: + with self.assertRaises(OSError): + self.m.run(self.script) + child.assert_not_called() + + def test_failed_custody_creates_no_child_evidence(self): + with patch.object(self.m, 'tree_failures', return_value=['synthetic custody refusal']), patch.object(self.m.subprocess, 'run') as child: + self.assertEqual(self.m.main(), 1) + child.assert_not_called() + self.assertFalse(self.evidence.exists()) + + def test_workflow_wires_tests_and_capture_outside_source_tree(self): + text = (ROOT / '.github/workflows/ts-small-kappa.yml').read_text() + self.assertIn("'tests/test_ts_small_kappa_replay_evidence.py'", text) + self.assertIn('-p test_ts_small_kappa_replay_evidence.py', text) + self.assertIn('QS_REPLAY_EVIDENCE_DIR="$out/children" python', text) + self.assertIn('cp tests/test_ts_small_kappa_replay_evidence.py "$out/"', text) + self.assertIn('set -euo pipefail', text) + self.assertIn('git diff --exit-code', text) + self.assertIn('contents: read', text) + self.assertIn("python-version: '3.11.16'", text) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_ts_small_kappa_replay_protocol.py b/tests/test_ts_small_kappa_replay_protocol.py new file mode 100644 index 000000000..7104e1a7d --- /dev/null +++ b/tests/test_ts_small_kappa_replay_protocol.py @@ -0,0 +1,230 @@ +"""Real subprocess controls for QS replay; fixtures are not mathematical evidence.""" +import copy +import hashlib +import importlib.util +import json +from pathlib import Path +import sys +import tempfile +import unittest +from unittest import mock + +ROOT = Path(__file__).resolve().parents[1] +WRAPPER = ROOT / 'frontiers/ts_small_kappa_20261006/replay.py' + + +class ReplayProtocolTests(unittest.TestCase): + def setUp(self): + spec = importlib.util.spec_from_file_location('qs_replay_subject', WRAPPER) + self.m = importlib.util.module_from_spec(spec) + spec.loader.exec_module(self.m) + + @staticmethod + def baseline(): + return dict(object='A3 d>=3 hard-fibre reduction (author-side exact controls)', + counts={'Z1': 2400, 'Z2': 3600, 'Z3': 4800, 'Z4': 1200}, + mutant=None, all_pass=True, failures=[], scientific_effect='NONE') + + def invoke(self, scenario='valid'): + baseline = self.baseline() + mutant = copy.deepcopy(baseline) + mutant.update(mutant='Z2', all_pass=False, failures=["('Z2-gain', 17)"]) + invalid = {'error': 'unknown arguments'} + sha = lambda data: hashlib.sha256(data).hexdigest() + # These synthetic expectations test the real runner/matcher, not the real + # checkers' reference values. The immutable production table is checked below. + expected_mutant = (json.dumps(mutant, sort_keys=True) + '\n').encode() + expected_invalid = (json.dumps(invalid) + '\n').encode() + contracts = { + ('A3/author_controls.py', ('--mutant', 'Z2')): + (1, sha(expected_mutant), sha(b''), 'Z2-gain'), + ('A3/author_controls.py', ('--bogus',)): + (2, sha(expected_invalid), sha(b''), 'unknown arguments'), + } + base_out = (json.dumps(baseline, sort_keys=True) + '\n').encode() + mut_code, inv_code = 1, 2 + base_err = mut_err = inv_err = b'' + if scenario == 'crash': + mut_code = 1; mut_err = b'Traceback: synthetic unrelated RuntimeError\n' + mut_out = b'' + else: + if scenario == 'wrong_reason': mutant['failures'] = ["('Z4', 17)"] + elif scenario == 'extra_reason': mutant['failures'].append("('setup', 3)") + elif scenario == 'wrong_mutant': mutant['mutant'] = 'Z3' + elif scenario == 'wrong_object': mutant['object'] = 'unrelated' + elif scenario == 'wrong_effect': mutant['scientific_effect'] = 'ACCEPT' + elif scenario == 'all_pass': mutant['all_pass'] = True + elif scenario == 'integer_bool': mutant['all_pass'] = 0 + elif scenario == 'empty_failures': mutant['failures'] = [] + elif scenario == 'failures_string': mutant['failures'] = "('Z2-gain', 17)" + elif scenario == 'wrong_counts': mutant['counts']['Z1'] = True + elif scenario == 'missing_counts': del mutant['counts']['Z2'] + elif scenario == 'extra_field': mutant['unexpected'] = 'x' + elif scenario == 'bad_tuple': mutant['failures'] = ['not a failure tuple'] + elif scenario == 'tuple_prefix_only': mutant['failures'] = ["('Z2-gain-forged', 17)"] + mut_out = (json.dumps(mutant, sort_keys=True) + '\n').encode() + if scenario == 'garbage': mut_out = b'unrelated error\n' + elif scenario == 'trailing': mut_out += b'garbage\n' + elif scenario == 'duplicate': mut_out = mut_out.replace(b'"all_pass": false', b'"all_pass": false, "all_pass": false') + elif scenario == 'nonfinite': mut_out = mut_out.replace(b'"Z1": 2400', b'"Z1": NaN') + elif scenario == 'overflow': mut_out = mut_out.replace(b'"Z1": 2400', b'"Z1": 1e999') + elif scenario == 'wrong_exit': mut_code = 2 + elif scenario == 'mutant_stderr': mut_err = b'synthetic unexpected stderr\n' + inv_out = (json.dumps(invalid) + '\n').encode() + if scenario == 'invalid_crash': inv_out = b''; inv_err = b'Traceback: synthetic error\n' + elif scenario == 'invalid_wrong_reason': inv_out = b'{"error":"unrelated"}\n' + elif scenario == 'invalid_extra_field': inv_out = b'{"error":"unknown arguments","extra":1}\n' + elif scenario == 'invalid_wrong_exit': inv_code = 1 + elif scenario == 'invalid_stderr': inv_err = b'unexpected stderr\n' + if scenario == 'baseline_stderr': base_err = b'unexpected stderr\n' + actual_base = base_out if scenario != 'baseline_mismatch' else b'wrong\n' + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp); (root/'A3').mkdir() + script = root/'A3/author_controls.py' + # Every invocation launches this real isolated child; no subprocess mock. + script.write_text('import sys\na=sys.argv[1:]\n' + f'if not a: out,err,code={actual_base!r},{base_err!r},0\n' + f'elif a==["--mutant","Z2"]: out,err,code={mut_out!r},{mut_err!r},{mut_code}\n' + f'else: out,err,code={inv_out!r},{inv_err!r},{inv_code}\n' + 'sys.stdout.buffer.write(out)\nsys.stderr.buffer.write(err)\nsys.exit(code)\n') + (root/'A3/author_controls_stdout.json').write_bytes(base_out) + manifest = {'objects': [{'tag': 'A3', 'replays': [{ + 'name': 'a3d_exact.py', 'script': 'A3/author_controls.py', + 'stdout': 'A3/author_controls_stdout.json', 'args': [], + 'mutants': [['--mutant','Z2']], 'invalid': [['--bogus']]}]}]} + with mock.patch.object(self.m, 'REJECTION_CONTRACTS', contracts, create=True): + return self.m.replay_failures(root, manifest) + + def test_valid_protocol(self): + self.assertEqual(self.invoke(), []) + + def test_baseline_output_contract(self): + for scenario in ('baseline_mismatch', 'baseline_stderr'): + with self.subTest(scenario=scenario): self.assertTrue(self.invoke(scenario)) + + def test_crash_is_not_intended_rejection(self): + self.assertTrue(self.invoke('crash')) + + def test_intended_reason_and_identity(self): + for scenario in ('wrong_reason','extra_reason','wrong_mutant','wrong_object','wrong_effect', + 'empty_failures','failures_string','bad_tuple','tuple_prefix_only'): + with self.subTest(scenario=scenario): self.assertTrue(self.invoke(scenario)) + + def test_json_shape_and_types(self): + for scenario in ('all_pass','integer_bool','wrong_counts','missing_counts','extra_field', + 'garbage','trailing','duplicate','nonfinite','overflow'): + with self.subTest(scenario=scenario): self.assertTrue(self.invoke(scenario)) + + def test_mutant_exit_and_stderr(self): + for scenario in ('wrong_exit','mutant_stderr'): + with self.subTest(scenario=scenario): self.assertTrue(self.invoke(scenario)) + + def test_invalid_argument_contract(self): + for scenario in ('invalid_crash','invalid_wrong_reason','invalid_extra_field', + 'invalid_wrong_exit','invalid_stderr'): + with self.subTest(scenario=scenario): self.assertTrue(self.invoke(scenario)) + + def test_changed_constant_crash_is_rejected(self): + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp); (root/'TS').mkdir() + proof = b'x'*150 + (root/'TS/PROOF.md').write_bytes(proof) + script = ('from fractions import Fraction as F\nMUT=None\n' + 'c4 = F(130) if MUT == "M4" else F(131)\n' + 'if c4==F(130): raise RuntimeError("synthetic crash")\n' + 'print("ok")\n') + (root/'TS/author_controls.py').write_text(script) + (root/'TS/author_controls_stdout.json').write_bytes(b'ok\n') + manifest = {'objects': [{'tag':'TS','replays':[], 'stored':[ + {'path':'TS/PROOF.md','bytes':len(proof),'sha256':hashlib.sha256(proof).hexdigest()}]}]} + self.assertTrue(self.m.negative_control_failures(root, manifest)) + + +class ReferenceContractTests(unittest.TestCase): + def setUp(self): + spec = importlib.util.spec_from_file_location('qs_reference_subject', WRAPPER) + self.m = importlib.util.module_from_spec(spec) + spec.loader.exec_module(self.m) + + def matcher(self): + self.assertTrue(hasattr(self.m, 'check_rejection'), 'missing exact diagnostic matcher') + return self.m.check_rejection + + def test_fixed_table_covers_every_manifest_invocation(self): + self.assertTrue(hasattr(self.m, 'REJECTION_CONTRACTS'), 'missing frozen reference table') + manifest = json.loads(WRAPPER.with_name('SOURCES.json').read_text()) + listed = {} + for obj in manifest['objects']: + for replay in obj['replays']: + for category, code in (('mutants', 1), ('invalid', 2)): + for args in replay[category]: + key = replay['script'], tuple(args) + self.assertNotIn(key, listed) + listed[key] = code + self.assertEqual(len(listed), 13) # TS: 10 mutants + 3 invalid + self.assertEqual(set(self.m.REJECTION_CONTRACTS), set(listed)) + for key, value in self.m.REJECTION_CONTRACTS.items(): + self.assertEqual(len(value), 4) + self.assertEqual(value[0], listed[key]) + for digest in value[1:3]: self.assertRegex(digest, r'^[0-9a-f]{64}$') + self.assertIsInstance(value[3], str) + self.assertTrue(value[3]) + + def test_exact_matcher_preserves_five_diagnostic_families(self): + check = self.matcher() + # Representative valid shapes. Full exact values come from unchanged sources, + # not a permissive JSON/regex schema or the current child's reported result. + shapes = [ + (1, b'{"all_pass":false,"mutant":"Z2","failures":["Z2-gain"]}\n', b''), + (1, b'', b'{"failed":"K1 BD(a) violated"}\n'), + (1, b'{"passed":false}\n', b'FAILED:\nO2: pin Hessians\n'), + (1, b'{"passed":false}\n', b'FAILED:\nF2_FW1: ratio 2\n'), + (1, b'', b'FAILED: X9_hardgap\nmutant M5: hard-gap integral\n'), + (2, b'{"error": "unknown arguments"}\n', b''), + (2, b'', b'usage: a33_k5o.py PATH/a33_exact.py [--mutant W1|W2]\n'), + ] + for code, out, err in shapes: + expected = (code, hashlib.sha256(out).hexdigest(), hashlib.sha256(err).hexdigest(), 'synthetic intended reason') + with self.subTest(code=code, out=out, err=err): + self.assertEqual(check((code, out, err), expected), []) + for bad in ((0, out, err), (code, out+b'x', err), (code, out, err+b'x'), + (code, err, out), (code, b'', b'Traceback: unrelated error')): + if bad == (code,out,err): continue + self.assertTrue(check(bad, expected)) + + def test_table_cannot_omit_or_duplicate_manifest_controls(self): + self.assertTrue(hasattr(self.m, 'REJECTION_CONTRACTS'), 'missing inventory guard') + manifest = json.loads(WRAPPER.with_name('SOURCES.json').read_text()) + obj = manifest['objects'][0] + for variant in ('missing', 'duplicate', 'unlisted'): + bad = copy.deepcopy(manifest) + args = bad['objects'][0]['replays'][0]['mutants'] + if variant == 'missing': args.pop() + elif variant == 'duplicate': args.append(args[0]) + else: args.append(['--mutant', 'unlisted']) + with self.subTest(variant=variant), mock.patch.object(self.m, 'run', side_effect=AssertionError('child before inventory')): + self.assertTrue(self.m.replay_failures(WRAPPER.parent, bad)) + + def test_invalid_custody_never_executes_a_child(self): + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + (root/'SOURCES.json').write_text('{"objects":[]}') + with mock.patch.object(self.m, 'HERE', root), \ + mock.patch.object(self.m, 'replay_failures', side_effect=AssertionError('execution before custody')), \ + mock.patch.object(self.m, 'negative_control_failures', side_effect=AssertionError('control before custody')): + self.assertEqual(self.m.main(), 1) + + def test_workflow_runs_regressions_and_retains_failed_evidence(self): + text = (ROOT/'.github/workflows/ts-small-kappa.yml').read_text() + self.assertIn("'tests/test_ts_small_kappa_replay_protocol.py'", text) + self.assertIn('-m unittest discover -s tests -p test_ts_small_kappa_replay_protocol.py -v', text) + self.assertIn('set -euo pipefail', text) + self.assertIn('if: always()', text) + self.assertIn('if-no-files-found: error', text) + self.assertIn('git diff --exit-code', text) + self.assertIn('git status --porcelain', text) + self.assertNotIn('continue-on-error', text) + + +if __name__ == '__main__': + unittest.main()