paper v0.3: the reinvention — accountable distribution of machine-checked evidence

Executes the approved reinvention outline, using the round-11 GPT-5.6
draft as base material; the operator remains the author of record and
this pass is the authorial fact-check + completion of that draft. New
title: 'Accountable Distribution of Machine-Checked Correctness
Evidence: A Transparency Model and the Lean Transparency Log' (16 pp).
Old 19-page system report archived byte-identical as v0.2
(paper/ltl-v0.2.{tex,pdf}, served at /paper/v0.2; v0.1 unchanged).

Every factual claim in the draft was verified against the estate before
adoption: 222 inventoried constants + 61 reviewed cones (README:36),
all four fidelity counts, the gap-14 lied-size witness reproduced
empirically (deployed verify_consistency(1,3,R2,R3,P)=True while the
recursive model rejects; honest 2->3 True/True), all four apex theorem
names greped from the dalek repo, the entry-13 scope block now quoted
VERBATIM (was silently trimmed), the new klaus2026 citation confirmed
real via the arXiv API (author order corrected to Klaus, Conejero,
Tolmach), remaining 20 bibitems byte-identical to the F10-verified set.

Author corrections beyond the draft: 'opaque SHA-256 function' ->
uninterpreted/boundary AXIOM (matches axiom sha256 : List UInt8 -> Hash);
STH field list now matches the deployed head (adds type tag); lied-size
mechanism sentence from the gap ledger; six-published-heads (sizes 8-13)
mirror honesty; consumers subsection (warden + Swiss Post family-level
negative) per outline item 7; optimistic-accountability related-work
paragraph per outline item 8; fifteen-gap ledger pointer per outline
item 9; verify.py fail-closed tie-ins in artifact availability and
appendix C; wired the six uncited bibitems (lean4, pnueli, eddsa,
rfc8032, edwards+twisted, easycrypt); certificate listing gains the
deployed 'diagnostics' field. Build: 16 pages, 0 overfull, 0 undefined.

web.py: /paper/v0.2 route + loader. webdocs: paper card rewritten for
v0.3 with both archived versions linked. Suite 115 green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
mrwulf 2026-07-17 09:39:04 +02:00
parent 172472af41
commit b305bdbcb1
6 changed files with 2250 additions and 1154 deletions

BIN
paper/ltl-v0.2.pdf Normal file

Binary file not shown.

1344
paper/ltl-v0.2.tex Executable file

File diff suppressed because it is too large Load diff

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -46,12 +46,15 @@ def make_handler(log: TransparencyLog, base_path: str, docs_html: str, paper_pdf
if route in ("/", "/docs"): if route in ("/", "/docs"):
self._send_html(docs_html) self._send_html(docs_html)
elif route in ("/paper", "/paper/ltl.pdf", elif route in ("/paper", "/paper/ltl.pdf",
"/paper/v0.1", "/paper/v0.1/ltl.pdf"): "/paper/v0.1", "/paper/v0.1/ltl.pdf",
# /paper is the current (revised) paper; /paper/v0.1 the prior "/paper/v0.2", "/paper/v0.2/ltl.pdf"):
# version - preserved for citability, linked from the docs page. # /paper is the current paper; /paper/v0.N are prior versions,
# preserved for citability, linked from the docs page.
variant = "current" variant = "current"
if route.startswith("/paper/v0.1"): if route.startswith("/paper/v0.1"):
variant = "v0.1" variant = "v0.1"
elif route.startswith("/paper/v0.2"):
variant = "v0.2"
body = paper_pdfs.get(variant) body = paper_pdfs.get(variant)
if body is None: if body is None:
self._send(404, {"error": f"paper ({variant}) not available on this deployment"}) self._send(404, {"error": f"paper ({variant}) not available on this deployment"})
@ -226,8 +229,9 @@ def serve(
docs_html = render_docs(log, base_path) docs_html = render_docs(log, base_path)
paper_dir = Path(__file__).resolve().parents[3] / "paper" paper_dir = Path(__file__).resolve().parents[3] / "paper"
variants = { variants = {
"current": paper_dir / "ltl.pdf", # revised paper, the live one "current": paper_dir / "ltl.pdf", # v0.3 reinvention, the live one
"v0.1": paper_dir / "ltl-v0.1.pdf", # prior 4-page version "v0.1": paper_dir / "ltl-v0.1.pdf", # prior 4-page version
"v0.2": paper_dir / "ltl-v0.2.pdf", # prior 19-page system report
} }
paper_pdfs = {name: p.read_bytes() for name, p in variants.items() if p.is_file()} paper_pdfs = {name: p.read_bytes() for name, p in variants.items() if p.is_file()}
handler = make_handler(log, base_path, docs_html, paper_pdfs) handler = make_handler(log, base_path, docs_html, paper_pdfs)

View file

@ -290,15 +290,17 @@ our roadmap.</strong> (The full walk-through is lecture&nbsp;11 in the
<a href="https://github.com/saymrwulf/proof-aware-crypto-tooling-agent">course</a>.)</div> <a href="https://github.com/saymrwulf/proof-aware-crypto-tooling-agent">course</a>.)</div>
<h2>The paper</h2> <h2>The paper</h2>
<div class="card"><a href="{base}/paper"><strong>The Lean Transparency Log: Distributing <div class="card"><a href="{base}/paper"><strong>Accountable Distribution of Machine-Checked
Kernel-Checked Correctness Evidence for Deployed Ed25519 Implementations</strong></a> Correctness Evidence: A Transparency Model and the Lean Transparency Log</strong></a>
(PDF, 19 pages, revised) the trust model with an explicit malicious-operator adversary, (PDF, 16 pages, v0.3) the trust decomposition (expensive verification produces an
security proofs for every consumer-facing claim (inclusion soundness as an explicit observation; transparency makes the observation accountable; consumer-local policy decides
SHA-256-collision extractor, pin-store safety with transferable equivocation evidence, acceptance), collision-extracting soundness for inclusion and consistency, the policy
verdict integrity), the self-referential signing loop, the live deployment with boundary where operator labels can veto but never grant acceptance, the live thirteen-leaf
its retained failure leaves, and appendices with the leaf schema, the full ~25-line deployment whose entry 13 attests the accumulator's own mechanized model, and the measured
consumer verifier, and the verbatim per-fork axiom boundaries. model/deployment seam (3,867 one-sided lied-size divergences) reported as a result rather
<span class="muted">Previous version: <a href="{base}/paper/v0.1">v0.1</a> (4 pages).</span></div> than hidden.
<span class="muted">Previous versions: <a href="{base}/paper/v0.2">v0.2</a> (19 pages, the
system report) · <a href="{base}/paper/v0.1">v0.1</a> (4 pages).</span></div>
<p class="muted">Log heads are signed offline; this service is read-only and holds no <p class="muted">Log heads are signed offline; this service is read-only and holds no
key material. Provider tooling, agent tooling, and the full course (12 Jupyter key material. Provider tooling, agent tooling, and the full course (12 Jupyter