Skip to content

Commit 04f3d9f

Browse files
hyperpolymathclaude
andcommitted
feat+docs: Lane 5 Walkthrough 3 (provenance / debugging) — layer-1 section + layer-2 no-section contrast
Lane 5 Walkthrough 3 lands; the originally-scaffolded Lane 5 triplet (region-exit audit, epistemic erasure, provenance / debugging) is now complete in Agda. Domain: 4-element `State` with two orthogonal sign bits. Visible output `firstSign : State → Bool`; class predicate `secondSign : State → Bool` is injective within each firstSign-fibre. Three residue layers walked: full echo (Layer 0), class residue with secondSign (Layer 1), trivial residue (Layer 2). Headlines (all pinned in tutorial/provenance_debugging/Smoke.agda): * `states-distinct-at-true` — Layer 0 distinguishes pp vs pn at the same visible output. * `classes-remain-distinct` — Layer 1 still distinguishes them. * `recover-section-at-layer-1` (POSITIVE) — Layer 1 has a section; `recover-from-class` is a right inverse of `state-to-class`. * `trivials-collapse` — Layer 2 collapses the two echoes. * `no-recovery-from-trivial` (NEGATIVE) — Layer 2 has no section; structural mirror of EchoResidue.no-section-collapse-to-residue. * `provenance-walk-contrast` — section / no-section pair as a Σ. New pedagogical shape: W1 and W2 each ship a one-sided no-section; W3 ships BOTH a section (Layer 1) and its absence (Layer 2), exhibiting the boundary at which type-level recovery flips. The mechanical load is that secondSign is injective within each fibre. Honest-bound + matched-negative discipline inherited from W2 — Agda file and README both open with the type-level disclosure (NOT a runtime debugger), `NotProved-*` block at the file's bottom catalogues out-of-scope properties. Build invariant held: All.agda + Smoke.agda + tutorial/All.agda + tutorial/provenance_debugging/Smoke.agda all exit 0 under --safe --without-K, zero postulates, no funext. Files: * tutorial/provenance_debugging/ProvenanceDebugging.agda (worked example) * tutorial/provenance_debugging/Smoke.agda (headline pins) * tutorial/provenance_debugging/All.agda (aggregator) * tutorial/provenance_debugging/README.adoc (narrative) * tutorial/All.agda — registers W3 * tutorial/README.adoc — W3 flipped from design-doc to LANDED * CLAUDE.md — Session arc 2026-05-27 entry Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 4d77d75 commit 04f3d9f

7 files changed

Lines changed: 692 additions & 32 deletions

File tree

CLAUDE.md

Lines changed: 89 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,95 @@ work to `main` and refresh all documentation:
191191
name, the commits folded in, the remaining open pieces of the
192192
milestone, and the proposed smallest useful next advance.
193193

194-
## Current rung state (2026-05-20)
194+
## Current rung state (2026-05-27)
195+
196+
### Session arc 2026-05-27 evening — Lane 5 Walkthrough 3 landed (read this first)
197+
198+
*Where we started today (commit `4d77d75` on `docs/consolidate-roadmaps-
199+
and-sigma-skepticism-2026-05-26`, post-#123):* the consolidation branch
200+
carried Walkthroughs 1 (region-exit audit) and 2 (epistemic erasure)
201+
plus the Lane 3 `RankLex` slice closing `<ᵇ-ψΩ≤`. Walkthrough 3
202+
(provenance / debugging) was at scaffold/design-doc level in
203+
`tutorial/README.adoc`. The originally-scaffolded Lane 5 triplet was
204+
two-thirds landed.
205+
206+
*Where we ended today:* Walkthrough 3 LANDS — the originally-scaffolded
207+
triplet is complete in Agda. One slice:
208+
209+
1. *Walkthrough 3 — provenance / debugging echo* lands at
210+
`tutorial/provenance_debugging/`. Domain: 4-element `State` with
211+
two orthogonal sign bits (`firstSign`, `secondSign`); `firstSign`
212+
is the echo's visible output, `secondSign` is the class predicate
213+
the layer-1 residue carries. Three residue layers walked:
214+
* Layer 0 — `Echo firstSign true`, distinguishing all sources;
215+
* Layer 1 — `EchoR Bool ClassCert true` carrying `secondSign`;
216+
* Layer 2 — `EchoR ⊤ TrivialCert' true` carrying nothing.
217+
Headlines: `states-distinct-at-true` (Layer 0 distinguishes);
218+
`classes-remain-distinct` (Layer 1 still distinguishes);
219+
*`recover-section-at-layer-1`* (POSITIVE — Layer 1 has a section);
220+
`trivials-collapse` (Layer 2 collapses); *`no-recovery-from-trivial`*
221+
(NEGATIVE — Layer 2 has no section, structural mirror of
222+
`EchoResidue.no-section-collapse-to-residue`); and
223+
`provenance-walk-contrast` packaging the section / no-section pair.
224+
225+
*New pedagogical shape vs W1/W2.* Walkthroughs 1 and 2 each ship a
226+
one-sided no-section result. Walkthrough 3 ships *both* a section
227+
(at layer 1) and its absence (at layer 2), exhibiting the boundary
228+
at which the type-level recovery property flips. The mechanical
229+
load: `secondSign` is *injective within each `firstSign`-fibre*,
230+
which is exactly the property the layer-1 section needs.
231+
232+
*Honest bound discipline inherited from W2.* The Agda file and the
233+
README both open with the disclosure that this is type-level only —
234+
no operational debugger, no runtime artefacts, fixed 4-element
235+
domain. A `NotProved-*` matched-negative block at the file's
236+
bottom lists four out-of-scope properties (runtime debugger,
237+
reconstruction in general, completeness across classes, recovery
238+
under side information) as ``-aliases so `grep NotProved` catches
239+
them.
240+
241+
*Files landed.*
242+
* `tutorial/provenance_debugging/ProvenanceDebugging.agda` (worked
243+
example);
244+
* `tutorial/provenance_debugging/Smoke.agda` (per-walkthrough Smoke
245+
pins, own `using` block, header comment);
246+
* `tutorial/provenance_debugging/All.agda` (aggregator);
247+
* `tutorial/provenance_debugging/README.adoc` (narrative).
248+
* `tutorial/All.agda` registers the new walkthrough.
249+
* `tutorial/README.adoc` §"Walkthrough 3" flipped from design-doc
250+
status to LANDED 2026-05-27; the IMPORTANT scaffold-status note
251+
updated.
252+
253+
Build invariant held: `proofs/agda/All.agda`, `proofs/agda/Smoke.agda`,
254+
`tutorial/All.agda`, and `tutorial/provenance_debugging/Smoke.agda`
255+
all exit 0 under `--safe --without-K`, zero postulates, no funext.
256+
All headlines pinned in the per-walkthrough Smoke under their own
257+
`using` block per CLAUDE.md "Working rules".
258+
259+
*Plan for the next Claude.* The originally-scaffolded Lane 5 triplet
260+
is complete. Open work:
261+
262+
1. *Lane 3 follow-on — `<ᵇ-+1` joint-bplus.* The one remaining open
263+
per-constructor case in the Buchholz rank-mono umbrella. Closure
264+
options documented in `RankPow.agda` and the obstruction doc:
265+
(A) leading-Ω-index dominator (`head-Ω : BT → OmegaIndex`),
266+
recommended; (B) richer rank shape on `bplus`. Smallest useful
267+
first slice = define `head-Ω` + definitional sanity lemmas only,
268+
no rank-mono. Multi-session work.
269+
2. *Lane 5 unparking decision (user).* Walkthroughs 1+2+3 all
270+
landed; Walkthrough 1 is the killer-app candidate per
271+
`roadmap.adoc` §Lane 5 second unblocking condition. User
272+
accept-or-defer pending; the lane remains [PARKED] at the lane-
273+
policy level until the user decides.
274+
3. *Pillar E paper [EXPAND] clearing.* Gated on author-driven
275+
material accruing.
276+
277+
DO NOT reopen: the closed 11/13 Buchholz constructors (their
278+
primitives are correct under WfCNF + admissibility + lex-pair);
279+
the W1/W2 walkthroughs (their no-section headlines are the existing
280+
`EchoLinear.no-section-weaken` and `EchoResidue.no-section-collapse-
281+
to-residue` re-exported with honest-bound + matched-negative
282+
discipline); the R-2026-05-18 narrowings.
195283

196284
### Session arc 2026-05-20 daytime (theory closure waves 1 + 2 + 3)
197285

tutorial/All.agda

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
-- Tutorial-track aggregator. Mirrors `proofs/agda/All.agda` for the
55
-- Lane 5 walkthrough track.
66
--
7-
-- Walkthroughs 1 (`tutorial.region_exit_audit`) and 2
8-
-- (`tutorial.epistemic_erasure`) are currently realised in Agda.
9-
-- Walkthrough 3 (provenance / debugging) remains at scaffold/
10-
-- design-doc level per `tutorial/README.adoc` — it should be
11-
-- registered here when it lands.
7+
-- Walkthroughs 1 (`tutorial.region_exit_audit`), 2
8+
-- (`tutorial.epistemic_erasure`), and 3
9+
-- (`tutorial.provenance_debugging`) are all realised in Agda as of
10+
-- 2026-05-27. The originally-scaffolded triplet from
11+
-- `tutorial/README.adoc` is complete.
1212
--
1313
-- Build:
1414
-- agda --library-file=/tmp/agda-libs -i . -i proofs/agda \
@@ -19,3 +19,4 @@ module tutorial.All where
1919

2020
import tutorial.region_exit_audit.All
2121
import tutorial.epistemic_erasure.All
22+
import tutorial.provenance_debugging.All

tutorial/README.adoc

Lines changed: 49 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,18 @@ rather than re-deriving the pedagogy.
1313

1414
[IMPORTANT]
1515
====
16-
*Lane 5 unpark status (updated 2026-05-27).* Walkthroughs 1
17-
(certified region-exit audit) and 2 (epistemic erasure with honest
18-
bound) are LANDED. Walkthrough 1 was accepted as the killer-app
16+
*Lane 5 unpark status (updated 2026-05-27, evening).* Walkthroughs
17+
1 (certified region-exit audit), 2 (epistemic erasure with honest
18+
bound), and 3 (provenance / debugging with layer-1 section + layer-2
19+
no-section) are all LANDED. The originally-scaffolded triplet is
20+
complete in Agda. Walkthrough 1 was accepted as the killer-app
1921
candidate per `roadmap.adoc` §"Lane 5 [PARKED]" second unblocking
2022
condition. Walkthrough 2 followed as the second realisation,
2123
addressing the "does echo-types prove key zeroing?" category-error
22-
question. Walkthrough 3 (provenance / debugging) remains at
23-
scaffold/design-doc level pending either Lane 1 close-out or
24-
independent unparking decisions.
24+
question. Walkthrough 3 lands the dual: a *positive* recovery
25+
result at layer 1 paired with the negative at layer 2, making
26+
explicit which residue layer carries the load-bearing information
27+
for source reconstruction in a small fixed domain.
2528
2629
The Smoke gate (`proofs/agda/Smoke.agda`), the top-level
2730
`proofs/agda/All.agda`, and the identity-claim gates still do not
@@ -135,34 +138,54 @@ write-up of echo for an applied audience."
135138

136139
=== Walkthrough 3: provenance / debugging echo
137140

138-
*Status.* Design-doc only. Agda lands at unpark time.
139-
140-
*The pedagogy.* Model a small state-reconstruction example: an
141-
agent observes a single Boolean output `b : Bool` from an opaque
142-
computation `f : State → Bool` on a 4-element `State`. `Echo f b`
143-
retains the source state; iterated `degrade` operations
144-
(`keep → residue → forget` per `EchoResidue`) walk a debugger
145-
through what information is available at each provenance level.
146-
The walkthrough closes by exhibiting how the residue-level
147-
`collapse-via-residue` lemma supports a class-level claim ("the
148-
state was in the 'sign-positive' class") even when the full state
149-
is no longer recoverable.
141+
*Status.* LANDED 2026-05-27. See
142+
`tutorial/provenance_debugging/ProvenanceDebugging.agda` for the
143+
worked example and `tutorial/provenance_debugging/README.adoc` for
144+
the narrative.
145+
146+
*The pedagogy.* A 4-element `State` with two orthogonal sign bits.
147+
The visible output of the echo is the first sign (`firstSign :
148+
State → Bool`); the residue carrier at layer 1 is the second sign
149+
(`secondSign : State → Bool`). The walkthrough walks the source
150+
through three layers — full echo, class residue, trivial residue
151+
— and exhibits the load-bearing contrast: at layer 1 a *section
152+
exists* (`recover-from-class` is a right inverse of
153+
`state-to-class`); at layer 2 *no section exists*
154+
(`no-recovery-from-trivial`, mirroring the structural argument of
155+
`EchoResidue.no-section-collapse-to-residue`). The pair is
156+
packaged as `provenance-walk-contrast`. The mechanical content:
157+
`secondSign` is injective within each `firstSign`-fibre, which is
158+
exactly the property that makes the layer-1 recovery work.
159+
160+
*The crucial honest disclosure.* This walkthrough is *not* a
161+
runtime debugger. It is a *type-level* statement about which
162+
residue layer carries the load-bearing information for source
163+
reconstruction in a fixed 4-element domain. Conflating it with
164+
operational debugging is a category error — exactly the kind of
165+
mistake the project's retraction discipline
166+
(`docs/retractions.adoc`) exists to prevent. The walkthrough opens
167+
with the disclosure, then states the actual claims (layer-1
168+
section + layer-2 no-section), then walks the proofs.
150169

151170
*Files when landed.*
152171

153-
* `tutorial/provenance_debugging/README.adoc` — narrative.
172+
* `tutorial/provenance_debugging/README.adoc` — narrative with the
173+
bound disclosure as the *opening* sentence, not a footnote.
154174
* `tutorial/provenance_debugging/ProvenanceDebugging.agda` — the
155-
worked example, building on `EchoExampleProvenance.agda`.
175+
worked example, building on `EchoExampleProvenance.agda` +
176+
`EchoResidue.agda`.
156177
* `tutorial/provenance_debugging/Smoke.agda` — per-walkthrough
157178
Smoke pins.
179+
* `tutorial/provenance_debugging/All.agda` — walkthrough-local
180+
aggregator, imported by `tutorial/All.agda`.
158181

159182
*Why this walkthrough exists.* The two harder walkthroughs (audit,
160-
erasure) both ship as `LEcho affine` content where information is
161-
*not* recoverable. This third walkthrough exhibits the dual: where
162-
the iterated degradation makes some information unrecoverable but
163-
others survive (the residue layer). It is the gentlest of the
164-
three; readers who bounce off the audit and erasure walkthroughs
165-
land here.
183+
erasure) both ship as one-sided no-section content where
184+
information is *not* recoverable. This third walkthrough exhibits
185+
the dual: a positive recovery result paired with the negative,
186+
making explicit *which* residue layer is load-bearing for
187+
reconstruction. It is the gentlest of the three; readers who
188+
bounce off the audit and erasure walkthroughs land here.
166189

167190
== Discipline that applies to all three walkthroughs
168191

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{-# OPTIONS --safe --without-K #-}
2+
3+
------------------------------------------------------------------------
4+
-- Aggregator for Lane 5 Walkthrough 3.
5+
------------------------------------------------------------------------
6+
7+
module tutorial.provenance_debugging.All where
8+
9+
import tutorial.provenance_debugging.ProvenanceDebugging
10+
import tutorial.provenance_debugging.Smoke

0 commit comments

Comments
 (0)