Hedronite Lesson · Polyglot-Dev / Bend · Mon 2026-09-28 · T8

Read the rust-tops law catalog — Bend s06

Walk one clause from name to law to proof. Say what PROOF does not cover.

Lesson Class: Asr (Bend T8 Verification & AI ops)
Focus: Catalog Triad · Clause Harvest Walk · Proof Cover Bound · evidence_not_self_served
Done-criteria: walk one harvested clause → law → proof; name Cover Bound limits
Grounding: laws/NAMES · LAWS.bend · PROOF.bend · RUST_TOPS · BEND2-INTEGRATION
Note: Experiment lane · not regenerate · not new clause · not parallel tourism · not primary stack
Catalog Triad
NAMES index · LAWS.bend body · PROOF.bend obligations.
Clause Harvest Walk
Pick a name; quote law; find PROOF conjunct.
Proof Cover Bound
Green covers stated laws only; not Halo gates or Claim Surface.
A green proof covers stated laws only. Unstated gaps stay gaps.

<!-- hal:authoritative:yaml -->

Walk one harvested clause from name → law → proof obligation. Say what the proof does not cover.

§I. Frame

Asr session 06 for Bend. Topic T8 Verification & AI ops. Sixth live fire; first row that opens the rust-tops encode block (Topics #6 to #8). Home: . Corpus: ~/projects/rust-tops/laws/ (NAMES, LAWS.bend, PROOF.bend). Protocol prose: Sketch map:

Sessions 01–05 shipped fail-closed install, ownership, Gap Walk, Friction Log, and Parallelism Boundary. Today you read the catalog that already exists in the kit. You do not invent tourism demos. You do not reseat primary stack.

Host reminder: Bend CLI work stays on tower or Bot-VM only. Catalog reading is vault + repo paths and does not require a GPU story.

Done-criteria: you can walk how one harvested rust-tops clause becomes a named law and its proof obligation, and say what the proof does not cover.

§II. Catalog Triad (named technique)

Catalog Triad: three files, three jobs.

FileJobCount / shape (read today)
laws/NAMESOrdered list of law identifiers53 lines; one name per line
laws/LAWS.bendTypes, verdict functions, law declarations, proof stubs~924 lines
laws/PROOF.bendmain conjunction importing LAWSImports + one giant &-chained assertion

Yagyu: the triad is the harvest surface. NAMES is the index. LAWS.bend is the fail-closed body. PROOF.bend is the obligation runner that Bend checks when the host gate runs with Bend on PATH (names-only mode exists for Nix sandbox without Bend; that is session 07 territory).

Musashi: a green proof covers stated laws only. Unstated gaps stay gaps (session 03). Parallel marketing stays Claim Surface (session 05).

§III. Clause Harvest Walk (named technique)

Clause Harvest Walk: pick one catalog entry and trace protocol intent → Bend types → law → proof line.

Worked example: **evidence_not_self_served** (first name in NAMES).

Protocol intent (RUST_TOPS / Bend2 sketch). Evidence must not be self-served from the implementation under test. Axiom A4: do not generate tests from the implementation. BEND2-INTEGRATION maps related intent to refuse shapes that treat impl-derived “evidence” as acceptance.

Bend types (from the head of LAWS.bend):

type Verdict is Data:
  Refuse{}
  Ack{}
  Allow{}

type Evidence is Data:
  FromImpl{}
  FromContract{}

def evidence_verdict(x: Evidence) -> Verdict:
  match x:
    case FromImpl{}:
      Refuse{}
    case FromContract{}:
      Allow{}

law evidence_not_self_served:
  {evidence_verdict(FromImpl{}) == Refuse{} : Verdict}

Proof obligation (opening conjunct in PROOF.bend):

import ./LAWS.bend as Laws
# main requires, among others:
# Laws.evidence_verdict(Laws.FromImpl{}) == Laws.Refuse{}

If-then-thus: if evidence is tagged FromImpl, then evidence_verdict returns Refuse, thus the law fails closed for self-served evidence and PROOF.bend demands that Refuse.

Second pin (same walk, shorter): **library_public_oracle** in NAMES pairs with oracle_verdict / CliOnlyOracle → Refuse in LAWS.bend. That is the catalog’s shape for “public library surface needs a real oracle, not CLI-only theater,” aligned with A4’s oracle-before-impl intent in the integration sketch. Read the match arms in the file; do not invent new constructors in a lesson note.

§IV. Proof Cover Bound (named technique)

Proof Cover Bound: name what a green PROOF.bend does and does not mean.

Does:

Does not:

Template sentence for spike notes:

COVER: PROOF.bend green ⇒ stated LAWS.bend obligations held on this host run.
NOT COVER: unstated axioms, Halo apply loops, Claim Surface marketing.

§V. What this lane is for

Bend2 at Asr exists so agents encode rust-tops as fail-closed laws. Reading the catalog is the first encode skill: navigate NAMES, open the matching law, find the PROOF conjunct, state Cover Bound.

Refuse:

§VI. Worked catalog drill

Perform once on tower notes (read-only against the repo):

1. Open laws/NAMES. Copy line 1: evidence_not_self_served.
2. Search LAWS.bend for that name. Quote the law block.
3. Confirm PROOF.bend mentions evidence_verdict(FromImpl{}) == Refuse{}.
4. Write one sentence: what Refuse blocks; what it does not prove about unstated gaps.

Stop after one clause. Density over golf (A6).

§VII. Common mistakes

  1. Treating NAMES count as coverage percentage of RUST_TOPS.md.
  2. Editing LAWS.bend in this lesson (row #8 is later; no push).
  3. Skipping Parallelism Boundary and scoring laws by CUDA copy.
  4. Confusing names-only Nix law-catalog check with a full Bend proof run (row #7).
  5. Closing with factory adoption or primary-stack reseat.

§VIII. Boundaries

§IX. Close

Session 05 named Claim vs Host. Session 06 reads the Host catalog: Catalog Triad, Clause Harvest Walk, Proof Cover Bound. Next unmarked: session 07, regenerate the laws from the catalog.

Related: ·

Walk evidence_not_self_served once. Write the COVER template. Stop.