The operator caught what no check had ever tested: nobody had LOOKED at
the rendered pages. A ten-inspector visual audit of all 129 pages (every
page opened as an image) found 40 defects, including didactic
correctness bugs invisible to the text layer:
BAD, fixed:
- ch03 printed WRONG Lean operators: \lean{P /\ Q} lost its backslash
('P / Q') and \lean{P \/ Q} lost the operator entirely ('P Q') —
TeX ate them inside the non-verbatim macro. Now the unicode ∧/∨ the
book uses everywhere else.
- ch12: the doubling display overflowed its box border, slicing the
math; stacked on two lines.
- toolkit Card 6: the headroom-audit display was clipped by the page
edge; now an align* stack.
UGLY, fixed:
- title page: the 'pyramid motif' at 5% white opacity on near-black
rendered as smudge artifacts, plus a clipped ∀ glyph in the corner
— redrawn with solid mixed colors (no transparency), glyph removed;
the footer's mid-word paragraph gap was a \vspace landing inside
horizontal mode; fixed with \par
- ch06: both clock diagrams' wrap-around arrows ran counterclockwise,
retracing over earlier arcs — target position expressed as 12 (one
revolution) so the arc continues clockwise, landing on 0 (mod 12)
and 1 (mod 11) correctly
- ch04: two_mul'' printed as two_mul" (quote ligature)
- one-line orphaned box fragments and stranded solution headings
throughout: bigidea/tryit/pitfall/aha/checkpoint are now unbreakable
(none exceeds half a page), worked boxes announce '(continued)' after
a break, \solhead keeps four lines with \Needspace
- --all/--receipt flags printed as one merged dash: \ddash macro
- inline code no longer hyphen-breaks at underscores (codeguards)
- ch09's 2^{...} smudge, glossary margin overflow, ch08 orphaned
listing line, ch13 command-line layout, three >10pt overfulls
THE STRUCTURAL LESSON, encoded: the two worst clipping bugs had been
announced as 80pt/73pt overfull warnings in every build log and ignored.
check-book.sh now FAILS on any overfull box past 10pt — the machine was
telling us; now it is allowed to stop us.
132 pages; publication-history and README counts synced; every fixed
page re-rendered and verified by eye. Button: ALL GREEN (96 checks).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The only source of 'ALL GREEN' for this repository. Rebuilds the PDF,
then verifies 93 countable claims printed in the book against reality
measured at run time:
- source hygiene: inputs<->files both directions, contiguous ch01..ch14,
every chapter (and the interlude) ends on its checkpoint, per-chapter
exercise count == solution count with hand-typed numbering N.1..N.k
- built PDF: >=100 pages, zero unresolved references, any page-count
claim in prose must equal pdfinfo
- internal congruence: chapter-count words in README/ch01 vs measured N
('spent twelve chapters' in ch13 is checked as a positional count, not
grepped as stale — the spelling-vs-property lesson, applied to the
checker itself); week-plan heading == max table row; the
discussion-exercise roster parsed from prose == measured set; the
SLH-DSA arithmetic recomputed from scratch (digest split 21/7/2, sig
7856, fixed 254, per-layer max 510 by brute force, worst 3824,
checksum digit examples) and each value required present in ch13
- cross-repo congruence: 19 leaves derived by property (six-digit
filenames + index fields — the entries/ glob counts 25); every
nineteen/19 claim in prose parsed and compared; leaves 13-16 subjects
+ 44 certs; leaves 12/17 = 61; leaves 0-11 = 16; leaf 18 = 11 certs,
apex cone kernel-3+5 oracles, ht cone f,h,t_l, four kernel-3-only
plumbing certs, all cones exact; first dual-signed head at size 14;
final head size == leaf count; ch13 parameter card == the const-generic
arguments parsed out of the extracted Funs.lean; ch07's 71-digit Q ==
P25519.lean digit for digit
Fails closed: a missing sibling repo is a FAILURE, not a skip;
BOOK_LOCAL_ONLY=1 skips cross-repo loudly and never prints ALL GREEN.
--selftest mutates copies of the sources seven ways (count drift,
deleted solution, one Q digit, leaf-count drift, arithmetic drift,
stray box after a checkpoint, plan/heading divergence) and requires each
to be caught BY ITS OWN CHECK, plus an unmutated control that must pass.
Full run: ALL GREEN (93 checks). Selftest: 8/8.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>