Major didactic overhaul: pen-and-paper worked examples + in-book solution pathways, 2x volume (53 -> 106 pages)
- pen-and-paper worked examples in all 12 chapters, using the REAL
constants throughout: 2^-64 waiting-time arithmetic, headroom budgets,
hand type-checking, rfl traces, full goal-state boards, the column-sum
audit at 2^54, inverting 19 mod p via Euclid, the x19 fold at real
weights, denoting p itself (telescope), the 16p audit (8 fails by 151),
the 254+11 inversion-chain bookkeeping, the substitution test, sizing
the 28-vs-1000 extraction, cofactor/torsion arithmetic, and the full
Bernstein-Lange completeness derivation
- CORRECTNESS FIX: ch7 asserted a false factorization of p-1; replaced
with the computationally verified p-1 = 2^2 * 3 * 65147 * Q (Q 71-digit
prime), witness w=2 verified for all four Pratt conditions
- every chapter's exercises now followed immediately by 'Solutions and
pathways' (pathway first, then answer), incl. new exercises
- NEW Interlude: a complete two-clause verification done entirely by
hand, then mapped line-by-line onto the compiled Lean proof
- NEW appendices: A pen-and-paper toolkit (8 recipe cards + drills +
answers), B guided walkthroughs of every exercise-file hole, C tour of
the real repositories; plus glossary, instructor notes, 13-week plan
- preamble: worked-example box, solution macros, math-safe inline code
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 08:55:00 +00:00
|
|
|
\chapter{The Pen-and-Paper Toolkit}
|
|
|
|
|
\label{app:toolkit}
|
|
|
|
|
|
book overhaul moves 3-5: hook transplants, suspense mechanics, voice unification
Per the 7-reader didactic panel and BOOK-OVERHAUL-PLAN.md:
- front matter: box legend demoted below a lived example (the aha box
becomes its own legend entry)
- ch04: open on the stake (proof the size of a compiler), new section
'When you get stuck --- and you will' promoting the debugging session,
checkpoint now carries the omega cliffhanger forward
- ch06: open on the dare (invert 19 mod a 77-digit prime, two-digit
numbers only), machine-referee #eval after the Euclid box, checkpoint
distills the constant-time trade into one quotable sentence
- ch10: cold-open on the 12 GB crash, spec vocabulary re-armed at the
summit statement, falsification tryit after the 16p box (the -151
#eval), wall dispatch tied to the cold open, closing paragraph places
the certificate in the live log
- ch12: opening pyramid figure now carries question marks resolved
layer by layer through the chapter (suspense instead of spoiler),
kernel-wall rendered as a scene, 'Where you come in' promoted to its
own subsection, false 'closing chapter' removed
- appendix-toolkit: opens in the design-review room, Drill 7b (parity
argument), street assignment close
- appendix-walkthroughs: opens at the reader's low point, one-hole-one-
paragraph contract, counts replaced by 'trust the folder'
- appendix-repo-tour: active three-promise opener, sabotage-the-button
tryit, final tour stop at the transparency log
Build verified: tectonic clean, 118 pages, zero unresolved refs.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-07 22:38:44 +00:00
|
|
|
You are in a design review. A slide asserts that nine products of
|
|
|
|
|
$31$-bit limbs accumulate in a $64$-bit word without overflow, the
|
|
|
|
|
presenter is already on the next slide, and everyone else is nodding.
|
|
|
|
|
You have perhaps forty seconds and no proof assistant. This appendix is
|
|
|
|
|
for that room. Every worked example in this book leaned on a small set of
|
|
|
|
|
hand-computation techniques; here they are as recipe cards --- the
|
|
|
|
|
reference for auditing numbers in the wild, where no chapter title tells
|
|
|
|
|
you which trick applies. Each card ends with a thirty-second drill;
|
|
|
|
|
answers close the appendix. (The slide, by the way, is wrong --- Card~6
|
|
|
|
|
and Drill~6 are the forty seconds that catch it.)
|
Major didactic overhaul: pen-and-paper worked examples + in-book solution pathways, 2x volume (53 -> 106 pages)
- pen-and-paper worked examples in all 12 chapters, using the REAL
constants throughout: 2^-64 waiting-time arithmetic, headroom budgets,
hand type-checking, rfl traces, full goal-state boards, the column-sum
audit at 2^54, inverting 19 mod p via Euclid, the x19 fold at real
weights, denoting p itself (telescope), the 16p audit (8 fails by 151),
the 254+11 inversion-chain bookkeeping, the substitution test, sizing
the 28-vs-1000 extraction, cofactor/torsion arithmetic, and the full
Bernstein-Lange completeness derivation
- CORRECTNESS FIX: ch7 asserted a false factorization of p-1; replaced
with the computationally verified p-1 = 2^2 * 3 * 65147 * Q (Q 71-digit
prime), witness w=2 verified for all four Pratt conditions
- every chapter's exercises now followed immediately by 'Solutions and
pathways' (pathway first, then answer), incl. new exercises
- NEW Interlude: a complete two-clause verification done entirely by
hand, then mapped line-by-line onto the compiled Lean proof
- NEW appendices: A pen-and-paper toolkit (8 recipe cards + drills +
answers), B guided walkthroughs of every exercise-file hole, C tour of
the real repositories; plus glossary, instructor notes, 13-week plan
- preamble: worked-example box, solution macros, math-safe inline code
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 08:55:00 +00:00
|
|
|
|
|
|
|
|
\section{Card 1: powers of two into powers of ten}
|
|
|
|
|
|
|
|
|
|
The single most-used conversion in cryptographic sanity-checking:
|
|
|
|
|
\[
|
|
|
|
|
\log_{10} 2 \approx 0.30103
|
|
|
|
|
\qquad\Longrightarrow\qquad
|
|
|
|
|
2^{n} \approx 10^{\,0.301\, n}.
|
|
|
|
|
\]
|
|
|
|
|
Anchor points worth memorizing outright: $2^{10} \approx 10^{3}$ (the
|
|
|
|
|
``kibi $\approx$ kilo'' fact, $2.4\%$ off), $2^{20} \approx 10^{6}$,
|
|
|
|
|
$2^{64} \approx 1.8 \times 10^{19}$, $2^{128} \approx 3.4 \times 10^{38}$,
|
|
|
|
|
$2^{256} \approx 1.2 \times 10^{77}$. The last one explains the phrase
|
|
|
|
|
``77-digit prime'' used throughout this book: $255 \times 0.301 = 76.8$,
|
|
|
|
|
so $2^{255}$ has $77$ digits. For headline comparisons, two reference
|
|
|
|
|
magnitudes: atoms in the observable universe $\sim 10^{80}$; age of the
|
|
|
|
|
universe $\sim 4 \times 10^{17}$ seconds; and the accidental gem
|
|
|
|
|
$1\ \text{year} \approx \pi \times 10^{7}$ seconds.
|
|
|
|
|
|
|
|
|
|
\emph{Drill 1.} How many decimal digits does $\ell \approx 2^{252}$ have?
|
|
|
|
|
And is $2^{130}$ more or fewer than the atoms in a kilogram of silicon
|
|
|
|
|
($\sim 2 \times 10^{25}$)?
|
|
|
|
|
|
|
|
|
|
\section{Card 2: reducing big powers with the modulus identity}
|
|
|
|
|
|
|
|
|
|
To reduce $2^{N}$ modulo $p = 2^{255} - 19$: split off multiples of
|
|
|
|
|
$255$ in the exponent and replace each $2^{255}$ by $19$:
|
|
|
|
|
\[
|
|
|
|
|
2^{N} = 2^{255 q + r} \equiv 19^{\,q} \cdot 2^{\,r} \pmod p .
|
|
|
|
|
\]
|
|
|
|
|
The same works in any system with an identity $R \equiv c$: powers of the
|
|
|
|
|
radix fold down by repeated substitution. Keep the numbers honest by
|
|
|
|
|
reducing intermediate results whenever they exceed the modulus.
|
|
|
|
|
|
|
|
|
|
\emph{Drill 2.} Reduce $2^{511} \bmod (2^{255} - 19)$ to a product of
|
|
|
|
|
small numbers. (Split $511 = 2 \cdot 255 + 1$.)
|
|
|
|
|
|
|
|
|
|
\section{Card 3: small-field residues via little Fermat}
|
|
|
|
|
|
|
|
|
|
To find $M \bmod q$ for gigantic $M = 2^{N}$ and small prime $q$: reduce
|
|
|
|
|
the \emph{exponent} mod $q - 1$ (Fermat: $2^{q-1} \equiv 1 \bmod q$),
|
|
|
|
|
then compute the small remaining power. Used in
|
|
|
|
|
Chapter~\ref{ch:modular}'s worked example to get
|
|
|
|
|
$p \bmod 19$ from $255 = 14 \cdot 18 + 3$.
|
|
|
|
|
|
|
|
|
|
\emph{Drill 3.} Compute $p \bmod 7$ for $p = 2^{255} - 19$. ($2^3 \equiv
|
|
|
|
|
1 \bmod 7$, so reduce the exponent mod $3$.)
|
|
|
|
|
|
|
|
|
|
\section{Card 4: extended Euclid, back-substitution form}
|
|
|
|
|
|
|
|
|
|
To invert $a$ modulo $n$: run remainders downward
|
|
|
|
|
($n, a, r_1, r_2, \dots, 1$), then walk back up expressing $1$ in terms
|
|
|
|
|
of each pair. The Chapter~\ref{ch:modular} worked example is the
|
|
|
|
|
template; the discipline that prevents errors is to write each line as
|
|
|
|
|
$1 = (\text{coeff}) \cdot x + (\text{coeff}) \cdot y$ with both terms
|
|
|
|
|
visible before substituting the next level. Sanity-check the final line
|
|
|
|
|
by multiplying it out --- thirty seconds that catches ninety percent of
|
|
|
|
|
slips.
|
|
|
|
|
|
|
|
|
|
\emph{Drill 4.} Find $7^{-1} \bmod 15$ by back-substitution (two lines),
|
|
|
|
|
and check by multiplication.
|
|
|
|
|
|
|
|
|
|
\section{Card 5: square-and-multiply, tabular form}
|
|
|
|
|
|
|
|
|
|
To compute $w^{e} \bmod n$ by hand: build the squares
|
|
|
|
|
$w, w^2, w^4, w^8, \dots$ (each line: square the previous, reduce),
|
|
|
|
|
then multiply together the squares selected by the binary digits of $e$.
|
|
|
|
|
Bookkeeping form used in Chapter~\ref{ch:prime}'s certificate check:
|
|
|
|
|
one column of exponents, one column of reduced values; never carry an
|
|
|
|
|
unreduced number to the next line. Cost: $\lfloor \log_2 e \rfloor$
|
|
|
|
|
squarings plus (ones in $e$'s binary) $- 1$ multiplies --- knowing the
|
|
|
|
|
cost formula lets you \emph{decline} hand computations that are too big,
|
|
|
|
|
which is itself a toolkit skill.
|
|
|
|
|
|
|
|
|
|
\emph{Drill 5.} Compute $3^{22} \bmod 23$ by the tabular method
|
|
|
|
|
($22 = 16 + 4 + 2$), and interpret the answer via Fermat.
|
|
|
|
|
|
|
|
|
|
\section{Card 6: the headroom audit}
|
|
|
|
|
|
|
|
|
|
For any limb design, three lines locate the overflow cliff:
|
print-quality pass: the book gets looked at, and the looking becomes a gate
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>
2026-08-08 17:11:09 +00:00
|
|
|
\begin{align*}
|
|
|
|
|
\text{headroom} &= \text{word bits} - \text{radix bits};\\
|
|
|
|
|
\text{add budget} &= 2^{\text{headroom}};\\
|
|
|
|
|
\text{mul check: } &(\text{limb count}) \cdot 2^{2\cdot\text{bound bits}}
|
Major didactic overhaul: pen-and-paper worked examples + in-book solution pathways, 2x volume (53 -> 106 pages)
- pen-and-paper worked examples in all 12 chapters, using the REAL
constants throughout: 2^-64 waiting-time arithmetic, headroom budgets,
hand type-checking, rfl traces, full goal-state boards, the column-sum
audit at 2^54, inverting 19 mod p via Euclid, the x19 fold at real
weights, denoting p itself (telescope), the 16p audit (8 fails by 151),
the 254+11 inversion-chain bookkeeping, the substitution test, sizing
the 28-vs-1000 extraction, cofactor/torsion arithmetic, and the full
Bernstein-Lange completeness derivation
- CORRECTNESS FIX: ch7 asserted a false factorization of p-1; replaced
with the computationally verified p-1 = 2^2 * 3 * 65147 * Q (Q 71-digit
prime), witness w=2 verified for all four Pratt conditions
- every chapter's exercises now followed immediately by 'Solutions and
pathways' (pathway first, then answer), incl. new exercises
- NEW Interlude: a complete two-clause verification done entirely by
hand, then mapped line-by-line onto the compiled Lean proof
- NEW appendices: A pen-and-paper toolkit (8 recipe cards + drills +
answers), B guided walkthroughs of every exercise-file hole, C tour of
the real repositories; plus glossary, instructor notes, 13-week plan
- preamble: worked-example box, solution macros, math-safe inline code
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 08:55:00 +00:00
|
|
|
\overset{?}{<} 2^{\text{wide word}} .
|
print-quality pass: the book gets looked at, and the looking becomes a gate
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>
2026-08-08 17:11:09 +00:00
|
|
|
\end{align*}
|
Major didactic overhaul: pen-and-paper worked examples + in-book solution pathways, 2x volume (53 -> 106 pages)
- pen-and-paper worked examples in all 12 chapters, using the REAL
constants throughout: 2^-64 waiting-time arithmetic, headroom budgets,
hand type-checking, rfl traces, full goal-state boards, the column-sum
audit at 2^54, inverting 19 mod p via Euclid, the x19 fold at real
weights, denoting p itself (telescope), the 16p audit (8 fails by 151),
the 254+11 inversion-chain bookkeeping, the substitution test, sizing
the 28-vs-1000 extraction, cofactor/torsion arithmetic, and the full
Bernstein-Lange completeness derivation
- CORRECTNESS FIX: ch7 asserted a false factorization of p-1; replaced
with the computationally verified p-1 = 2^2 * 3 * 65147 * Q (Q 71-digit
prime), witness w=2 verified for all four Pratt conditions
- every chapter's exercises now followed immediately by 'Solutions and
pathways' (pathway first, then answer), incl. new exercises
- NEW Interlude: a complete two-clause verification done entirely by
hand, then mapped line-by-line onto the compiled Lean proof
- NEW appendices: A pen-and-paper toolkit (8 recipe cards + drills +
answers), B guided walkthroughs of every exercise-file hole, C tour of
the real repositories; plus glossary, instructor notes, 13-week plan
- preamble: worked-example box, solution macros, math-safe inline code
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 08:55:00 +00:00
|
|
|
Run all three whenever anyone shows you a limb representation ---
|
|
|
|
|
Chapter~\ref{ch:why} (budget), Chapter~\ref{ch:automation} (mul check),
|
|
|
|
|
and Chapter~\ref{ch:field}'s $16p$ audit are all instances.
|
|
|
|
|
|
|
|
|
|
\emph{Drill 6.} A proposal uses radix-$29$ limbs in 32-bit words, nine
|
|
|
|
|
limbs, 64-bit wide multiplies, bound $2^{31}$ after growth. Does the mul
|
|
|
|
|
check pass?
|
|
|
|
|
|
|
|
|
|
\section{Card 7: quadratic residues by the ladder}
|
|
|
|
|
|
|
|
|
|
Is $a$ a square modulo an odd prime $p$? Euler's criterion decides:
|
|
|
|
|
\[
|
|
|
|
|
a^{(p-1)/2} \equiv
|
|
|
|
|
\begin{cases}
|
|
|
|
|
+1 \pmod p & a \text{ is a square,}\\
|
|
|
|
|
-1 \pmod p & a \text{ is not.}
|
|
|
|
|
\end{cases}
|
|
|
|
|
\]
|
|
|
|
|
Compute the power by Card~5's ladder. Small-scale sanity check first
|
|
|
|
|
--- $2$ modulo $7$: $2^{3} = 8 \equiv 1$, so $2$ \emph{is} a square mod
|
|
|
|
|
$7$ (indeed $3^2 = 9 \equiv 2$; finding the root is genuinely harder
|
|
|
|
|
than testing --- another find/check asymmetry). This card is
|
|
|
|
|
load-bearing in Chapter~\ref{ch:pyramid}: completeness of the Ed25519
|
|
|
|
|
addition law rests on ``$d$ is not a square,'' one Euler evaluation;
|
|
|
|
|
and the twist's legitimacy rests on ``$-1$ \emph{is} a square mod
|
|
|
|
|
$p$,'' which Euler settles by pure exponent parity:
|
|
|
|
|
$(-1)^{(p-1)/2} = +1$ exactly when $(p-1)/2$ is even, i.e.\
|
|
|
|
|
$p \equiv 1 \pmod 4$ --- true for $2^{255} - 19$ (check:
|
|
|
|
|
$2^{255} \equiv 0 \pmod 4$, so $p \equiv -19 \equiv -3 \equiv
|
|
|
|
|
1 \pmod 4$ ✓, no ladder required).
|
|
|
|
|
|
|
|
|
|
\emph{Drill 7a.} Is $3$ a square mod $11$? ($3^5 \bmod 11$ by ladder;
|
|
|
|
|
then find the root or trust the sign.)
|
|
|
|
|
|
book overhaul moves 3-5: hook transplants, suspense mechanics, voice unification
Per the 7-reader didactic panel and BOOK-OVERHAUL-PLAN.md:
- front matter: box legend demoted below a lived example (the aha box
becomes its own legend entry)
- ch04: open on the stake (proof the size of a compiler), new section
'When you get stuck --- and you will' promoting the debugging session,
checkpoint now carries the omega cliffhanger forward
- ch06: open on the dare (invert 19 mod a 77-digit prime, two-digit
numbers only), machine-referee #eval after the Euclid box, checkpoint
distills the constant-time trade into one quotable sentence
- ch10: cold-open on the 12 GB crash, spec vocabulary re-armed at the
summit statement, falsification tryit after the 16p box (the -151
#eval), wall dispatch tied to the cold open, closing paragraph places
the certificate in the live log
- ch12: opening pyramid figure now carries question marks resolved
layer by layer through the chapter (suspense instead of spoiler),
kernel-wall rendered as a scene, 'Where you come in' promoted to its
own subsection, false 'closing chapter' removed
- appendix-toolkit: opens in the design-review room, Drill 7b (parity
argument), street assignment close
- appendix-walkthroughs: opens at the reader's low point, one-hole-one-
paragraph contract, counts replaced by 'trust the folder'
- appendix-repo-tour: active three-promise opener, sabotage-the-button
tryit, final tour stop at the transparency log
Build verified: tectonic clean, 118 pages, zero unresolved refs.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-07 22:38:44 +00:00
|
|
|
\emph{Drill 7b.} Is $-1$ a square mod $11$? No ladder allowed --- decide
|
|
|
|
|
it by exponent parity alone, the way the card handled $p = 2^{255}-19$.
|
|
|
|
|
|
Major didactic overhaul: pen-and-paper worked examples + in-book solution pathways, 2x volume (53 -> 106 pages)
- pen-and-paper worked examples in all 12 chapters, using the REAL
constants throughout: 2^-64 waiting-time arithmetic, headroom budgets,
hand type-checking, rfl traces, full goal-state boards, the column-sum
audit at 2^54, inverting 19 mod p via Euclid, the x19 fold at real
weights, denoting p itself (telescope), the 16p audit (8 fails by 151),
the 254+11 inversion-chain bookkeeping, the substitution test, sizing
the 28-vs-1000 extraction, cofactor/torsion arithmetic, and the full
Bernstein-Lange completeness derivation
- CORRECTNESS FIX: ch7 asserted a false factorization of p-1; replaced
with the computationally verified p-1 = 2^2 * 3 * 65147 * Q (Q 71-digit
prime), witness w=2 verified for all four Pratt conditions
- every chapter's exercises now followed immediately by 'Solutions and
pathways' (pathway first, then answer), incl. new exercises
- NEW Interlude: a complete two-clause verification done entirely by
hand, then mapped line-by-line onto the compiled Lean proof
- NEW appendices: A pen-and-paper toolkit (8 recipe cards + drills +
answers), B guided walkthroughs of every exercise-file hole, C tour of
the real repositories; plus glossary, instructor notes, 13-week plan
- preamble: worked-example box, solution macros, math-safe inline code
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 08:55:00 +00:00
|
|
|
\section{Card 8: the substitution test (specs)}
|
|
|
|
|
|
|
|
|
|
Given a claimed specification: substitute the worst implementation of
|
|
|
|
|
the right type (``return zero,'' ``return the input,'' ``ignore
|
|
|
|
|
arguments'') and evaluate the statement by hand. If the adversary
|
|
|
|
|
passes, the spec is not about correctness. Refinement for equations: if
|
|
|
|
|
the implementation appears identically on \emph{both} sides, it cancels
|
|
|
|
|
and was never tested (Chapter~\ref{ch:honesty}, exercise 11.5).
|
|
|
|
|
|
|
|
|
|
\emph{Drill 8.} Does the spec
|
|
|
|
|
$\forall a b,\ \denote{\code{mul}(a,b)} = \denote{\code{mul}(b,a)}$
|
|
|
|
|
survive the substitution test as a \emph{correctness} spec for
|
|
|
|
|
multiplication?
|
|
|
|
|
|
|
|
|
|
\section*{Drill answers}
|
|
|
|
|
|
|
|
|
|
\solhead{Drill 1} $252 \times 0.301 = 75.9$: $\ell$ has $76$ digits.
|
|
|
|
|
$2^{130} \approx 10^{39.1}$, vastly \emph{more} than $2 \times 10^{25}$
|
|
|
|
|
atoms --- brute force over $130$-bit keys loses to physics, not just to
|
|
|
|
|
patience.
|
|
|
|
|
|
|
|
|
|
\solhead{Drill 2} $2^{511} = (2^{255})^2 \cdot 2 \equiv 19^2 \cdot 2
|
|
|
|
|
= 722 \pmod{2^{255}-19}$.
|
|
|
|
|
|
|
|
|
|
\solhead{Drill 3} $255 = 3 \cdot 85$, so $2^{255} = (2^3)^{85} \equiv
|
|
|
|
|
1^{85} = 1 \pmod 7$; and $19 = 2 \cdot 7 + 5 \equiv 5$, so
|
|
|
|
|
$p \equiv 1 - 5 \equiv -4 \equiv 3 \pmod 7$.
|
|
|
|
|
|
|
|
|
|
\solhead{Drill 4} $15 = 2 \cdot 7 + 1$, so $1 = 15 - 2 \cdot 7$
|
|
|
|
|
directly: $7^{-1} \equiv -2 \equiv 13 \pmod{15}$. Check:
|
|
|
|
|
$7 \cdot 13 = 91 = 6 \cdot 15 + 1$ ✓.
|
|
|
|
|
|
|
|
|
|
\solhead{Drill 5} Squares mod $23$: $3^2 = 9$; $3^4 = 81 \equiv 12$;
|
|
|
|
|
$3^8 = 144 \equiv 6$; $3^{16} = 36 \equiv 13$. Then
|
|
|
|
|
$3^{22} = 3^{16} \cdot 3^{4} \cdot 3^{2} = 13 \cdot 12 \cdot 9$:
|
|
|
|
|
$13 \cdot 12 = 156 \equiv 156 - 138 = 18$; $18 \cdot 9 = 162 \equiv
|
|
|
|
|
162 - 161 = 1$. So $3^{22} \equiv 1 \pmod{23}$ --- which is Fermat's
|
|
|
|
|
little theorem announcing itself ($22 = 23 - 1$), and incidentally the
|
|
|
|
|
first condition of a Pratt witness check for $23$.
|
|
|
|
|
|
|
|
|
|
\solhead{Drill 6} Products: $2^{31} \cdot 2^{31} = 2^{62}$; nine terms:
|
|
|
|
|
$9 \cdot 2^{62} > 2^{3} \cdot 2^{62} = 2^{65} > 2^{64}$ --- \textbf{fails}
|
|
|
|
|
by at least one bit. (Exactly: $9 \cdot 2^{62} = 2^{62} \cdot 9
|
|
|
|
|
> 2^{64} \Leftrightarrow 9 > 4$ ✓ fails.) The design must either bound
|
|
|
|
|
limbs more tightly than $2^{31}$, reduce more often, or accumulate in
|
|
|
|
|
wider precision --- and now you can say so in a design review with three
|
|
|
|
|
lines of arithmetic as your citation.
|
|
|
|
|
|
|
|
|
|
\solhead{Drill 7a} $3^5 = 243 = 22 \cdot 11 + 1 \equiv 1 \pmod{11}$
|
|
|
|
|
(ladder: $3^2 = 9$, $3^4 = 81 \equiv 4$, $3^5 = 4 \cdot 3 = 12 \equiv 1$)
|
|
|
|
|
--- so $3$ \emph{is} a square mod $11$; indeed $5^2 = 25 \equiv 3$.
|
|
|
|
|
|
book overhaul moves 3-5: hook transplants, suspense mechanics, voice unification
Per the 7-reader didactic panel and BOOK-OVERHAUL-PLAN.md:
- front matter: box legend demoted below a lived example (the aha box
becomes its own legend entry)
- ch04: open on the stake (proof the size of a compiler), new section
'When you get stuck --- and you will' promoting the debugging session,
checkpoint now carries the omega cliffhanger forward
- ch06: open on the dare (invert 19 mod a 77-digit prime, two-digit
numbers only), machine-referee #eval after the Euclid box, checkpoint
distills the constant-time trade into one quotable sentence
- ch10: cold-open on the 12 GB crash, spec vocabulary re-armed at the
summit statement, falsification tryit after the 16p box (the -151
#eval), wall dispatch tied to the cold open, closing paragraph places
the certificate in the live log
- ch12: opening pyramid figure now carries question marks resolved
layer by layer through the chapter (suspense instead of spoiler),
kernel-wall rendered as a scene, 'Where you come in' promoted to its
own subsection, false 'closing chapter' removed
- appendix-toolkit: opens in the design-review room, Drill 7b (parity
argument), street assignment close
- appendix-walkthroughs: opens at the reader's low point, one-hole-one-
paragraph contract, counts replaced by 'trust the folder'
- appendix-repo-tour: active three-promise opener, sabotage-the-button
tryit, final tour stop at the transparency log
Build verified: tectonic clean, 118 pages, zero unresolved refs.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-07 22:38:44 +00:00
|
|
|
\solhead{Drill 7b} $(-1)^{(11-1)/2} = (-1)^{5} = -1$: \emph{not} a
|
|
|
|
|
square --- because $(11-1)/2 = 5$ is odd, i.e.\ $11 \equiv 3 \pmod 4$.
|
|
|
|
|
Parity of one exponent, no arithmetic bigger than a division by two.
|
|
|
|
|
|
Major didactic overhaul: pen-and-paper worked examples + in-book solution pathways, 2x volume (53 -> 106 pages)
- pen-and-paper worked examples in all 12 chapters, using the REAL
constants throughout: 2^-64 waiting-time arithmetic, headroom budgets,
hand type-checking, rfl traces, full goal-state boards, the column-sum
audit at 2^54, inverting 19 mod p via Euclid, the x19 fold at real
weights, denoting p itself (telescope), the 16p audit (8 fails by 151),
the 254+11 inversion-chain bookkeeping, the substitution test, sizing
the 28-vs-1000 extraction, cofactor/torsion arithmetic, and the full
Bernstein-Lange completeness derivation
- CORRECTNESS FIX: ch7 asserted a false factorization of p-1; replaced
with the computationally verified p-1 = 2^2 * 3 * 65147 * Q (Q 71-digit
prime), witness w=2 verified for all four Pratt conditions
- every chapter's exercises now followed immediately by 'Solutions and
pathways' (pathway first, then answer), incl. new exercises
- NEW Interlude: a complete two-clause verification done entirely by
hand, then mapped line-by-line onto the compiled Lean proof
- NEW appendices: A pen-and-paper toolkit (8 recipe cards + drills +
answers), B guided walkthroughs of every exercise-file hole, C tour of
the real repositories; plus glossary, instructor notes, 13-week plan
- preamble: worked-example box, solution macros, math-safe inline code
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 08:55:00 +00:00
|
|
|
\solhead{Drill 8} No. Substitute $\code{mul}_{c}(a,b) :=$ ``return the
|
|
|
|
|
constant array $c$'': both sides become $\denote{c}$ --- the adversary
|
|
|
|
|
passes. Commutativity-of-the-implementation is a \emph{symmetry} spec;
|
|
|
|
|
symmetric garbage satisfies it. (Real correctness needs the other side
|
|
|
|
|
of the square: $\denote{a} \cdot \denote{b}$, a quantity the
|
|
|
|
|
implementation cannot influence.)
|
book overhaul moves 3-5: hook transplants, suspense mechanics, voice unification
Per the 7-reader didactic panel and BOOK-OVERHAUL-PLAN.md:
- front matter: box legend demoted below a lived example (the aha box
becomes its own legend entry)
- ch04: open on the stake (proof the size of a compiler), new section
'When you get stuck --- and you will' promoting the debugging session,
checkpoint now carries the omega cliffhanger forward
- ch06: open on the dare (invert 19 mod a 77-digit prime, two-digit
numbers only), machine-referee #eval after the Euclid box, checkpoint
distills the constant-time trade into one quotable sentence
- ch10: cold-open on the 12 GB crash, spec vocabulary re-armed at the
summit statement, falsification tryit after the 16p box (the -151
#eval), wall dispatch tied to the cold open, closing paragraph places
the certificate in the live log
- ch12: opening pyramid figure now carries question marks resolved
layer by layer through the chapter (suspense instead of spoiler),
kernel-wall rendered as a scene, 'Where you come in' promoted to its
own subsection, false 'closing chapter' removed
- appendix-toolkit: opens in the design-review room, Drill 7b (parity
argument), street assignment close
- appendix-walkthroughs: opens at the reader's low point, one-hole-one-
paragraph contract, counts replaced by 'trust the folder'
- appendix-repo-tour: active three-promise opener, sabotage-the-button
tryit, final tour stop at the transparency log
Build verified: tectonic clean, 118 pages, zero unresolved refs.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-07 22:38:44 +00:00
|
|
|
|
|
|
|
|
\bigskip
|
|
|
|
|
\noindent\emph{The street assignment.} These cards were built in a book,
|
|
|
|
|
but they pay rent outside it. Sometime this week you will meet a number
|
|
|
|
|
in the wild --- a README boasting ``$2^{128}$ operations to break,'' a
|
|
|
|
|
blog post's limb bound, a slide with an accumulator width. Pick one and
|
|
|
|
|
audit it with the cards, on paper, before you believe it. The first time
|
|
|
|
|
you catch a real number being wrong in public, this appendix will have
|
|
|
|
|
paid for the whole book.
|