TJC-1814: leanchecker per push, nanoda at release; brace README superscripts - #2
Conversation
…scripts
- ci.yml: the per-push external kernel re-check is now leanchecker, which
ships inside the Lean toolchain (lean4checker's successor) - each Goemans
module is replayed through a fresh kernel (~2 minutes; verified locally,
all 25 modules pass in 1:39).
- release.yml: keeps the leanchecker sweep and adds the independent Rust
kernel re-check via nanoda, pinned to the json_string branch - the one
that parses lean4export's current NDJSON format (the previously pinned
debug branch predates the format change; that mismatch, not our config,
caused the 'invalid digit' failure). Verified locally end to end: the
1.6 GB export of Goemans plus its mathlib closure checks 308,672
declarations with no typechecker errors in 39s on 4 threads.
- unpermitted_axiom_hard_error stays false deliberately: Lean core declares
sorryAx in every environment, so strict mode can never pass on a real
export (verified: it fails on the declaration alone). Declaring is not
depending; the dependency-level axiom policy is enforced in-build by
Goemans.TrustAudit.
- README/RELEASE_NOTES/RELEASE_CHECKLIST: brace math superscripts as ^{\ast}
so GitHub's Markdown emphasis pass cannot mangle H^* and rho^* (reported
rendering bug: "Missing open brace for superscript").
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
TJC-1814 Formalize Goemans gap paper in Lean 4: Rybin counterexample + Theorem A (ρ* worst case)
Formalization project for the Weaver/TJC paper "How Far Can Goemans's Cost Conjecture Fail?" (r3, 2026-07-23), per its Appendix A targets. Repo: MilestonesM1 — Counterexample (machine-checked refutation) ✅ done 2026-07-23
M2 — Theorem A upper bound (worst case): ρ(H) ≤ ρ = 2/(2√2−1) ≈ 1.0938363** ✅ done 2026-07-23
M3 — Sharpness + non-attainment ✅ done 2026-07-23
M4 — Section 5 formalization (gate collapse + Prop 5.1) ✅ done 2026-07-23
Working over ℤ for decidable checks (kernel |
Follow-up to #1 after the second CI run:
leanchecker(ships in the toolchain; lean4checker is deprecated in its favor). All 25 modules replay in ~1:39 locally.json_string, the branch that parses lean4export's current NDJSON format — the previously pinneddebugbranch predates the format switch (Feb 2026), which is what producedinvalid digit found in stringon the 1.6 GB export. Verified locally end-to-end: 308,672 declarations, no typechecker errors, 39s on 4 threads.unpermitted_axiom_hard_errorstaysfalsedeliberately: Lean core declaressorryAxin every environment, so strict mode fails on the declaration alone (verified). Dependency-level axiom policy is enforced in-build byGoemans.TrustAudit.H^*/ρ^*superscripts braced as^{\ast}in README/RELEASE_NOTES/RELEASE_CHECKLIST so GitHub's emphasis pass can't mangle them.🤖 Generated with Claude Code