lean

v9 Release Ledger — Dynamic Traces and Profile Semantics

Historical record. ANNEX/candidate/Scratch labels and target names below describe the v9 tree. v13 assigns current stable, public-evidence, and skunkworks roles without changing v9 theorem bodies. See V13-RELEASE-LEDGER.md.

Release: v9.0.0 — Dynamic Traces and Profile Semantics (dynamic execution over static witnesses, and checker-facing profile semantics). Prior release: v8.0.0 — Sequent Admissibility Island.

Status: PREPPED, awaits operator mint. Version strings bumped, docs written, gates re-run green (2026-07-09). At this receipt point, the separate tag, GitHub-release, and Zenodo-deposit acts remained operator steps and had not been performed by tooling.

Zenodo display metadata (v8 scar closed): CITATION.cff drives the Zenodo landing page (no .zenodo.json in this repo). Its title, abstract, version, and date-released were updated to the v9 release in this prep — not just the version fields. If the Zenodo record still shows a stale title after mint, the record is editable post-publish without a new DOI (see papers-repo Zenodo API workflow).

Why a new major, not 8.1: on this repo’s release constitution (“major proof campaign landed,” not library-API semver), v9 opens the dynamic-claims campaign — the first release whose center of gravity is transitions (state-threaded traces) rather than static judgments. v8 is semantically occupied by the ProofTheory island; the dynamic-trace material is a different kind of object, and the roadmap (papers-repo dynamic-claims three-bucket split) names it as its own campaign.

The v9 claim (scoped, exact)

A dynamic-step and trace layer over the public admissibility kernels in which every hop carries the exact static AuthorizedStep witness it consumes, with refusal theorems showing revocation and staleness reach through to dynamic execution; plus a finite profile-checker semantics specimen pinning the doctrine of the RRP admissibility gate.

Landed since v8.0.0 (commit 8fd73eb + this prep)

Item File Custody Provenance
Dynamic trace layer LeanProofs/Admissibility/DynamicTrace.lean ANNEX codex-derived (2026-07-08)
Freshness-gated dynamic discharge LeanProofs/Admissibility/FreshnessDynamicTrace.lean ANNEX codex-derived (2026-07-08)
Revoked-standing execution theorem LeanProofs/Admissibility/Execution.lean (additive) PUBLIC-SHIPPED [1.0] codex-derived (2026-07-08)
PathVerdict tier-1 continuation LeanProofs/Scratch/PathVerdict/{StandardObstructions,EvidencePromotionCoverage}.lean SCRATCH (fenced lib) codex-derived (2026-07-08)
Mathlib import-surface split lakefile.toml (AdmissibilityCustodyAnnex, AdmissibilityMathlibIslands, default-target change) build surface codex-derived (2026-07-08)
Import-closure gate scripts/check-mathlib-free-targets.sh audit script this prep (2026-07-09; delivers the script the 07-08 changelog promised)
DeferredWitness reflection lemma LeanProofs/Admissibility/DeferredWitness.lean (firstViolation_none_iff_lawful, firstViolation_isSome_iff_not_lawful) ANNEX this prep (GPT-Pro audit L1)
RRP profile semantics specimen LeanProofs/Admissibility/RRPProfileSpecimen.lean UNRATIFIED-CANDIDATE (unwired) this prep (GPT-Pro audit L2)
Standing-backed claim specimen LeanProofs/Admissibility/StandingProfileSpecimen.lean UNRATIFIED-CANDIDATE (unwired) this prep (GPT-Pro audit L3)
WLP append-ack specimen LeanProofs/Admissibility/WLPAppendAckSpecimen.lean UNRATIFIED-CANDIDATE (unwired) this prep (GPT-Pro audit L4)
Bridge customs specimen LeanProofs/Admissibility/BridgeCustomsSpecimen.lean UNRATIFIED-CANDIDATE (unwired) this prep (GPT-Pro audit L5)
Actor-trace specimen LeanProofs/Admissibility/ActorTraceSpecimen.lean UNRATIFIED-CANDIDATE (unwired) this prep (GPT-Pro audit L6)
LocalBoundary concrete pressure test LeanProofs/Admissibility/LocalBoundaryPressure.lean UNRATIFIED-CANDIDATE (unwired, Mathlib-reaching) this prep (GPT-Pro audit L7; operator-gated, gate opened 2026-07-09)
Scoped certification (quis custodiet seam) LeanProofs/Admissibility/ScopedCertification.lean UNRATIFIED-CANDIDATE (unwired) this prep (operator-adjacent thought + ChatGPT-Pro sketch, 2026-07-09)
Spendability: eligibility/capacity split + fork residue (LA seam) LeanProofs/Admissibility/SpendabilitySpecimen.lean UNRATIFIED-CANDIDATE (unwired) this prep (gap-closure pass, 2026-07-09; sources: LA README, budget-admission scenario, revoked-fork-residue hazard)
Custody freshness non-transitivity (NQ/Nightshift seam) LeanProofs/Admissibility/CustodyFreshnessSpecimen.lean UNRATIFIED-CANDIDATE (unwired) this prep (gap-closure pass, 2026-07-09; sources: GAP-imported-basis-freshness, nightshiftd freshness.rs, NQ VERDICTS stale_testimony)
Temporal basis / time assurance (NQ seam, NQ-T4) LeanProofs/Admissibility/TemporalBasis.lean UNRATIFIED-CANDIDATE (unwired) this prep (2026-07-09; operator-directed, formalize-before-NQ-implements; sources: NQ EVIDENCE_RETIREMENT_GAP, BASIS_STALE_CONTRACT, VERDICTS stale_testimony/cannot_testify, ChatGPT-Pro time-assurance track TA-0..5/NQ-T0..5)
CI release-envelope widening .github/workflows/lean_action_ci.yml (full aggregate + islands + audit scripts) CI surface this prep
RRP↔Lean crosswalk docs/RRP-LEAN-CROSSWALK.md docs-only wiring this prep (GPT-Pro audit L0)

Key theorem receipts (all sorry-free, custody-classed):

The v9 non-claims (binding on release notes)

Gates (re-run 2026-07-09, exit codes observed)

Gate Result
lake build (default: AdmissibilityCustodyAnnex, Witnessed, BoundedCalculi, CustodyIndexedSequents, ProofTheory) PASS
lake build LeanProofs AdmissibilityMathlibIslands (full aggregate + heavy island, 8335 jobs) PASS
lake build LeanProofs.Admissibility.RRPProfileSpecimen (unwired candidate, direct) PASS
Direct builds of the nine sibling specimens (StandingProfileSpecimen, WLPAppendAckSpecimen, BridgeCustomsSpecimen, ActorTraceSpecimen, LocalBoundaryPressure, ScopedCertification, SpendabilitySpecimen, CustodyFreshnessSpecimen, TemporalBasis) PASS
scripts/audit-axioms.sh PASS (23 signature, 8 specimen, 0 forbidden/unclassified)
scripts/audit-native-decide.sh PASS (6 occurrences, all allowed finite-witness)
scripts/check-custody-classes.sh PASS (58 files; counts match README)
scripts/check-mathlib-pin.sh PASS
scripts/check-witnessed-footprint.sh PASS (12 receipts within attested footprint)
scripts/check-mathlib-free-targets.sh PASS (33-module closure Mathlib-free; negative-tested against the heavy island)

Open decisions flagged to operator (not blockers, not silently resolved)

  1. CI coverage narrowed by the default-target changeRESOLVED 2026-07-09 (operator-directed): explicit lake build LeanProofs AdmissibilityMathlibIslands CI step plus the repo audit scripts added to lean_action_ci.yml. Pre-split CI built the root aggregate via the old default targets, so this restores known cost.
  2. GPT-Pro roadmap L3–L7 not in this releaseRESOLVED 2026-07-09 (operator-directed, formalization-leads-implementation): all five landed as UNRATIFIED-CANDIDATE specimen laws (L7’s operator gate was opened explicitly). Promotion conditions are in each file header; none testify for runtime compliance until cited.
  3. AG/NQ crosswalk docs (L0 siblings) not writtenRESOLVED 2026-07-09 (operator-directed): docs/AG-TRANSITION-KERNEL-CROSSWALK.md and docs/NQ-NIGHTSHIFT-CROSSWALK.md, written against live-repo doctrine surveys (not memory). Both defer to the consumer-side authorities that already exist (transition-kernel/docs/LEAN_OBLIGATIONS.md; NQ’s ROADMAP_EXPECTATIONS_FROM_LEAN_KERNEL.md pinning discipline) and record folklore corrections where remembered doctrine phrases are not verbatim in the live docs (notably: “operator ack is not standing” is not AG doctrine — AG requires an operator_approved latch; the Lean specimen theorem is compatible but must be cited with that scoping).

Scratch-steering promotion paths (named, deliberately not executed in v9)

The transition-kernel obligation ledger cites five SCRATCH modules as candidate obligations (NoFreeStandingReadout, TemporalCustody, ExecutionRevalidation, MultiConsumerAdoption, NoFreeContinuation). That use is lawful under its own discipline (unratified fragment → candidate obligation → mechanism + hostile specimen → observed correspondence → ratification) and under this repo’s (“scratch may inform, not testify”). What would make heavier reliance lawful, per module:

  1. Runtime ledger marks the row CORRESPONDS against named theorems (not file vibes), with its hostile specimen receipt.
  2. This repo moves the module Scratch/Admissibility/ as UNRATIFIED-CANDIDATE (namespace + custody header + registry counts — a real churn, which is why it is not done hours before a mint).
  3. ANNEX on the DeferredWitness precedent once the citation is live.

Not executed in v9: the moves would churn namespaces the runtime ledger currently points at, mid-release. Named here so the next session ratifies lazily instead of rediscovering. (The related tier drift — NQ’s roadmap tagging ProjectionLaundering scratch while it is UNRATIFIED-CANDIDATE here — is recorded in the NQ crosswalk; the fix belongs on NQ’s side.)

Mint checklist (operator)

  1. Review + commit this prep (operator drives git).
  2. git tag v9.0.0 on the prep commit.
  3. Create the GitHub release.
  4. Create or confirm the separate Zenodo version deposit and DOI.
  5. Verify the Zenodo landing page shows the v9 title/description (CITATION.cff drives it; the v8 stale-title scar is the reason to check).
  6. After-action doc sweep (Lean Admissibility README / WHAT-THIS-PROVES / PAPER-MAP / papers README) stays deferred per the papers-repo discipline (“after paper ships”), not release-gated.