NIM paper · interactive edition Interactive edition · paper, explanations and Lean proofs.

About this edition

This interactive edition accompanies Overcoming a Learning Bottleneck in Impartial Games: A Circuit Complexity Approach by Søren Riis. It connects the paper to explanations, construction diagrams, formal statements and the complete Lean development.

What the edition contains

How the article is generated

  1. tools/latex2html.py parses paper_jmlr.tex with a project-specific converter that knows exactly the constructs used in this paper and fails on anything else (an unknown command or environment, an unresolved reference, or a formula that KaTeX rejects in strict mode). It replicates the LaTeX counters of the JMLR class (shared theorem counter reset per section, global example, figure and table counters, equations per section, appendix letters) and records, for every block, its exact comment-stripped source and source lines.
  2. Formulas are rendered at build time with KaTeX 0.16.11 (pinned) to HTML and MathML, using the paper's own macros, so mathematics is selectable and needs no JavaScript.
  3. tools/build_figures.py compiles each TikZ picture from its exact source text with the paper's packages and macros (pdflatex on a measured page with a 6pt border, then pdftocairo -svg), and converts the two plot figures from the manuscript's vector PDFs. The plots are replots of saved CSV values recorded in the manuscript's figure provenance file; nothing is re-plotted here.
  4. tools/build_site.py checks every pinned input hash, verifies the 38 bundled Lean files against the audit's declaration index and every cited declaration against a fresh Lean export, resolves every claim anchor, and compares each claim's statement-source hash with data/claims.lock.json.

When the manuscript is revised, the article regenerates from the new source automatically, and explanations are kept because they live in separate files (content/explanations/, keyed by claim id; claim metadata in data/claims.source.yaml). The build then refuses to continue if the input hashes differ from site.config.yaml, if a claim's anchor or snippet no longer resolves, or if the source of any statement with a claim record has changed. After an editor has reviewed the affected explanations, python3 tools/build_site.py --pin records the new statement hashes. Old proof metadata is never silently combined with new paper text.

Conversion notes and limitations

Source access

The full project-local Lean source is included in this edition, both as browsable pages with line links and as raw files. The build instructions identify the Lean toolchain, pinned Mathlib dependency and the commands needed to check the development.

Validation

The build output is checked by tools/validate_site.py: input and PDF hashes; all 94 labels and their numbers against the LaTeX .aux file; every heading, statement header, caption and equation number against the text of the supplied PDF; the bibliography order; the formula inventory; a word-for-word comparison of the article with an independent source-derived text, and a classified comparison with the PDF text; every link, asset and fragment in every page; every claim record against the Lean sources and their audited hashes; a crawl of the whole site under a non-root prefix; and browser checks of keyboard use, focus return, direct links, back and forward navigation, the print view, operation without JavaScript and small screens. The results are in validation/ in the edition's source folder.

Third-party components

KaTeX 0.16.11 and its fonts are bundled under the MIT licence, included as assets/katex/LICENSE. Mathlib is an Apache-2.0-licensed, pinned build dependency; its source and compiled libraries are downloaded separately when rebuilding the proofs.

Archived release

The paper and complete Lean development are preserved in release v1.0.0 on Zenodo. This DOI identifies the released snapshot. The current paper and interactive edition add the DOI citation after it was issued; their mathematical content and Lean sources are unchanged from that archive.

Illustrations

These illustrations appear in the “Explain this” level of the claims listed, before the formalisation level. Each is marked as an exact construction trace, a schematic, or an exact trace beside a teaching example.