lean

Lean Proofs

DOI

Machine-checked proofs about a family of bugs that endpoint-focused verification does not see: a system reaches the right state for the wrong reason. A revoked credential is accepted because it still parses. A retry replays yesterday’s approval as if it were fresh. An emergency override settles cleanly and then reads back as ordinary history. Endpoint reachability and output correctness pass all of these — the endpoint is fine while the evidence, authority, history, or unresolved obligation supporting it is not preserved — and nothing catches them unless justification is modeled explicitly. This repository does exactly that: it gives justification its own formal types and proves, in Lean 4, which inferences between them are valid and which are refuted by countermodel.

Four reader tiers: the plain-language summary assumes no formal-methods background; the reading guide below routes systems/security readers and formal-methods readers separately; and the semantic guardrails pin the vocabulary fast if you are skimming or summarizing this repository.

Governed computation, formalized

This is a theoretical computer science and formal-methods project about governed computation: how evidence, authority, custody, spend, history, refusal, and obligation constrain which conclusions or state transitions are justified.

It does not primarily formalize the act of formalization itself. It formalizes the conditions under which consequential judgments and transitions are admissible. Evidence objects and proof-producing checkers appear because they govern those judgments, not because the repository is mainly metatheory about proofs.

An ordinary transition system can say that a next state is reachable. That is not enough when a transition must also be supported by the right evidence, proposed by an actor with standing, held under the right custody, paid for by an appropriate resource, and closed without erasing an unresolved obligation. This repository gives those conditions separate formal types and proves where one condition does—or does not—license another.

V15 relates selected judgment-preserving edges from three independently defined semantic domains:

Receipts are calculus-specific semantic evidence. A PJ receipt is indexed by one bridge’s source and target; a GT route receipt additionally retains a crossing witness and endpoint bindings; an Execution Custody receipt may carry a same-stage equality and a native constructor premise. None is inherently a signature, hash chain, or other cryptographic commitment. Structured refusals preserve why a claim was not admitted. In the instances that model origin and stored history, retaining those coordinates blocks replay from being mistaken for fresh entitlement or clean audit state. These distinctions matter wherever software makes externally consequential decisions under incomplete evidence.

V16 adds a narrower, orthogonal audit of the same material: whether one total decoder uniformly recovers a selected target from a selected source view. Its generic core and bounded fixtures are public evidence, not a new stable surface. The current-release section below and the release overview state the exact result and its fences.

Build and verify

The Lean sources are public under LeanProofs/ and formalization/. The repository pins leanprover/lean4:v4.29.0; the corresponding environment reports Lean 4.29.0 and Lake 5.0.0.

git clone https://github.com/unpingable/lean.git
cd lean
lake build V15Integration
lake build V15IntegrationQualification
lake build GovernedTransitionBoundaries GovernedTransitionBoundariesEvidence
bash scripts/check-custody-classes.sh
bash scripts/check-mathlib-free-targets.sh
bash scripts/check-governed-transition-boundaries-crossing.sh
bash scripts/check-governed-transition-boundaries-footprint.sh

Canonical modules are public; isolated qualification leaves remain public evidence outside stable v14 aggregates. Versioning, tagging, and DOI mechanics are on one page: release process.

What this is not

This is not specifically a blockchain or cryptocurrency protocol, a zero-knowledge system, a legal-evidence product or legal protocol, a smart-contract framework, a generic audit-log implementation, a category-theory library, a generic state-machine verification project, or an alternate-reality game. Nor is it a relabeling of ordinary proof theory or programming-languages metatheory. Those areas could instantiate or orient some of these structures, but none defines the project. It also does not claim that every institutional process reduces to one calculus. The sources, failed implications, and qualification commands are public; there is no interactive reveal or withheld proof layer.

The applications boundary separates the formal subject from possible instantiations such as operational automation, incident response, administrative workflows, distributed decisions, blockchains, or legal evidence processes. No example is the project’s defining application domain.

Semantic guardrails

The familiar phrases in the middle column are entry points, not replacement definitions. The unusual vocabulary names distinct judgments and resources, not theatrical aliases for ordinary proof objects.

Project term Safe orientation What it must not be collapsed into
Witness Claim-indexed Type-valued native evidence sufficient for that claim Arbitrary proof data or a Boolean success flag
Refusal Family-native, claim-indexed evidence returned by a total decision false, an exception, or one universal error enum
Standing The pre-claim basis book; every witness must satisfy it Authority, organizational role, or possession
Custody The family-specific provenance-intactness book preserved by a witness Standing, legal chain-of-custody, or mere storage
Authority In a GovernedFamily, Nonempty (Witness c) and no alternative introduction rule Permission token, standing, custody, or assertion of support
Spend A family-native consumed resource or capability where that calculus defines one Cryptocurrency payment or a universal resource shared by all calculi
Obligation A family-native outstanding-duty predicate with instance-specific lifecycle laws Failure, postcondition, or automatically discharged effect
Stored decision In the Admissibility crossing, the retained pair of native witness-or-refusal results from one check An audit log, cache hint, or permission to recompute
Receipt The exact semantic evidence type required by the rule in context Digital signature, hash chain, zero-knowledge proof, or legal custody proof
Hostile countermodel Adversarial qualification model that preserves plausible premises while refuting an unjustified lift Decorative attack example or dramatic branding
Anti-minting In V15, the refutation of a receipt-free function producing source-relative EntitledFrom at an exactly refused index pair Reconstruction of an “original derivation” or cryptographic unforgeability
BreakGlass Explicit exceptional permit, attempt, commit, receipt, obligation, and settlement structures with bounded origin/history rules An axiom or escape hatch that bypasses the rules
Governed transport Crossing geometry plus separately supplied lift, translation, and target-local reliance laws A bare morphism, automatic authority transfer, or generic composition law
Cross-calculus correspondence A selected indexed bridge with its native judgments, receipt family, and carry rule Equivalence, isomorphism, shared algebra, or one categorical object
ExplicitlyFactorsThrough In V16, one total decoder from the view that is correct for every source Fibre constancy alone, a partial or per-fibre decoder, or a claim that the converse holds
Transition-relative computation In V16, a bounded label for targets that factor through views carrying transition or history context but not through a coarser projection An operational semantics, or a claim that all computation is transition-relative

Why countermodels are first-class results

The countermodels establish semantic separation by adversarial qualification: each preserves plausible neighboring premises while withholding or changing the condition needed for a tempting stronger conclusion. For example, custody_does_not_grant_dynamic_authority exhibits custody without authority; may_attempt_not_entitled_to_commit_without_local_preconditions keeps attempt permission from becoming commit permission; and safety_does_not_supply_discharge_receipt shows that a safe observed execution does not by itself discharge an obligation. Each blocks a plausible but invalid lift unless a separate bridge and its required evidence are supplied.

For one end-to-end example, including evidence, standing, custody, native permit consumption, structured refusal, obligation lifecycle, origin, and stored history, see the BreakGlass walkthrough.

Reading guide

Four tiers, from no assumed background to source level:

Development-order and custody discipline for contributors and coding agents lives in AGENTS.md (in short: formalization leads code, and compiling a theorem is neither a custody promotion nor a runtime-conformance claim).

Human and AI collaboration history, evidence basis, and attribution limits are recorded in PROVENANCE.md.

Current release: 16.0.0 — Governed Transition Boundaries

Released 2026-07-28. The version DOI is recorded once Zenodo mints it (release process).

V16 adds one public-evidence surface: a generic explicit-factorization core and a bounded evidence surface answering, for selected targets and selected source views, whether one total decoder recovers the target from the view for every source. Four core receipts are axiom-free. The finite calculation uses a declared seven-coordinate language, a declared source list of length 1,024 covering every AnalysisCase, and 128 duplicate-free selections; it yields a unique least target-determining selection. Five witnesses — fixed-policy authorization refusal, selected-context validation, bounded capacity realizability, occurrence-link observation, and modeled hidden-relation nonidentifiability — are each bounded to their own fixture.

The generic statements are standard function-factorization and view-determinacy facts, and the finite result is a fixed-table dependency calculation; the contribution is their mechanically checked synthesis, and no novelty or priority is claimed. V16 promotes no stable surface: the registered stable roots and their import lists are unchanged from v15, and no existing public module depends on the new surface. The v15 ATLAS classification and its four negative results remain authoritative.

Scope and fences: release overview and v16 public index. Exact accounting: release ledger and readiness ledger.

Previous release: 15.0.0 — Cross-Calculus Atlas

Released 2026-07-24.

V15 records checked mappings for selected edges from Governed Transport, Execution Custody, and Continuity Admission. It preserves the native judgment indices, local countermodels, and exact receipts required by those edges; includes exact-receipt anti-minting; and retains StaticRole as a held-out partial instance closed at R3.

The release is also the first tag to archive the governed-transport public surface — the GT-4A stable root and C03 evidence admission landed publicly between the v14 tag and this one (compatibility receipt).

The classification is ATLAS: no shared bridge algebra, generic frontier composition, generic ownership, generic context transport, or universal calculus is established. Inquiry and Preparation remain frozen independent comparison-only neighbors outside the PJ primary surface. It is not a runtime-conformance claim or an operational AG/NQ realization. See the v15 public index and release overview. The exact qualification results are in the candidate verification receipt.

Earlier release: 14.0.0 — Governed Admissibility Calculus

Released 2026-07-18. The annotated v14.0.0 tag and GitHub release archive commit ff491b8. The Zenodo v14 record was published 2026-07-19 with version DOI 10.5281/zenodo.21435270, under the concept DOI shown above.

v14 assembled the Admissibility Calculus: the governed-family signature (Admissibility.Calculus), its Weathering and BoundedPaidReachability instances, the dependent refusal-packet spine, a closed seven-entry indexed comparison framework, the stored-decision crossing (decide once; preserve both native outcomes; derive everything downstream from the stored pair), and the origin/history-bound BreakGlass terminal instance. The public Calculus root freezes 191 receipts over the separately gated rung-1 PathVerdict substrate, with every axiom named — the rung-7 instance’s Quot.sound/Classical.choice footprint is disclosed, not summarized away.

The frozen inventory and admission history are in docs/V14-RELEASE-LEDGER.md; per-rung packets and receipts in docs/V14-READINESS-LEDGER.md; the implemented calculus is presented as a progressive mathematical system in the docs/calculus/ textbook; and the research program in ordinary language in docs/PLAIN-LANGUAGE-SUMMARY.md.

13.0.0 — Repository Custody Migration

Released 2026-07-17.

v13 is a custody-only compatibility release: no new mathematical campaign and no theorem-body change, but a real module-path and enforcement boundary. It replaces the old ANNEX/Scratch/candidate sedimentary layers with three explicit dispositions:

Public evidence is a terminal state, not unfinished API. The v4-v7 checker/sequent substrate is recognized under LeanProofs.CustodyIndexed, and PathVerdict under LeanProofs.Admissibility.PathVerdict; both were already authoritative inputs to later work despite their old Scratch/ paths. The full 271-file audit, completed 53-file skunkworks transfer, deletion decisions, fail-closed gate, and final release checks are recorded in docs/V13-RELEASE-LEDGER.md. Versioned sections below retain archive-time custody wording where it explains what those releases actually contained. The v13 ledger governs that migration; the v14 ledger records the current additions and accounting.

Release verification: all 53 incubations have canonical sibling homes and pass its 26-check migration audit. The v13 release tree contains exactly 179 Lean modules — 82 stable, 96 public evidence, and one aggregate — and the whole-tree custody gate passes across ten stable roots and 98 root-ownership relations. The strengthened target gate passes across two repo-owned Lake projects: 23 public targets, 23 exact local closures, 19 Mathlib-free current-tree targets, 463 local target/module ownerships, one pinned-external target, and one locked external boundary; its reverse check also gives every public source a role-compatible target owner (179/179). The downstream fixture’s 19-job bare build passes. The final post-transfer public suite, clean 149-job sibling build, four-module Mathlib incubation island, and 29-check sibling CI all pass. The v12-to-v13 integrity audit accounts for every source deletion and confirms 171 retained/rehomed modules token-equivalent to v12 plus eight import-only roots.

The GitHub release and Zenodo version deposit are separate operator-controlled publication receipts beneath the concept DOI shown above. A version-specific DOI is assigned by Zenodo and is not inferred from the GitHub release or guessed in the source tree.

12.0.0 — Judgment Orientation

Released 2026-07-16.

Raw custody is a sequence; effective exact-origin contribution is its finite-support join-semilattice projection.

LeanProofs.JudgmentOrientation is a stable, Mathlib-free sibling axis beside admissibility, witnessing, and authority. Its exact five-module root proves:

The stable root excludes LeanProofs.JudgmentOrientation.Examples, which keeps the Streetlamp, source-blind laundering, four-relay, accumulator-repair, and payload-conflict fixtures as public evidence rather than dependencies of the general laws. Import with import LeanProofs.JudgmentOrientation; build the stable surface with lake build JudgmentOrientation and the fixtures with lake build JudgmentOrientationEvidence.

EffectiveSupport has a private representation; consumers receive its algebraic operations and laws rather than a frozen quotient carrier. The family does not authenticate origin issuance, provide Sybil or common-cause independence, turn reusable MayOrient evidence into a linear permit, justify privileged transitions, or prove runtime conformance. Its disclosed maximum footprint is [propext, Classical.choice, Quot.sound], enforced fail-closed per receipt by scripts/check-judgment-orientation-footprint.sh in CI.

Release inventory and gate receipts: docs/V12-RELEASE-LEDGER.md. The v12 GitHub release archives this tree. As verified 2026-07-20, the Zenodo concept’s version history contains no v12 record, so no v12 version DOI is inferred. Source provenance for the first four modules: skunkworks commit 4f8e076; Bridge was authored during promotion review.

11.0.0 — Occurrence-Exact Paid Recomposition

Released on GitHub and Zenodo. The v11 GitHub release was published 2026-07-16; the corresponding Zenodo record carries version DOI 10.5281/zenodo.21386096.

Ordered payments admit proof-relevant, occurrence-indexed checking with exact computed residue. Under exact attempt-level catalog completeness, paid global plans and paid catalog plans are equivalent without replacing native receipts, expected-payment evidence, payment traces, or residue. Endpoint-only completeness is insufficient.

The stable, Mathlib-free surface is LeanProofs.Witnessed.PaidRecomposition: its root imports only Payment and Catalog. PaymentTrace retains the exact ResourceChecker.removeAt equation for each context-relative occurrence; checkPayment returns either the exact computed residue and trace or a typed refusal of that submitted payment order. Catalog retains exact attempts, dependent native positive receipts, the expected-payment map, payment trace, and residue. Under ExactPaidCatalogComplete, exact_catalog_adequate proves equivalence between nonempty paid catalog and global plans, and exact_complete_globalizes_refusal derives the scoped negative corollary.

Three claim scopes remain distinct:

  1. acceptance or rejection of one submitted attempt or payment order;
  2. no accepted paid plan in one named catalog;
  3. global nonexistence only under exact attempt-level catalog completeness.

Evidence remains source-visible public evidence and is excluded from the stable root:

The fixed three-cycle fixture was intentionally not promoted because it adds no independent evidence.

v11 makes no new cut-connective or proof-calculus claim; no Hall, matching, 3DM, CSP, complexity, or general plan-synthesis novelty claim; and no persistent-token-serial claim. Occurrence indices are positions in the current submitted context. ResourceCheckerExec.checkTrace = none means only that the submitted trace was rejected. PaidGlobalPlan.injectiveOn is inherited plan plumbing, and the singleton corpus application supplies no nontrivial injectivity or matching evidence. The release has no refusal transition, refusal debt-preservation, dynamic-authority, resource-creation, or temporal-debt theorem. PC-1 and PC-2 remain closed. Stateful bounded realization/refusal remains the next frontier and is not part of v11.

Release inventory and gate receipts (a readiness-time record, not the later external publication record): docs/V11-READINESS-LEDGER.md.

10.0.0 — View Semantics and Bounded Projection

Distinguishability as a first-class axis: view refinement changes what is distinguishable without minting transition authority.

v10.0.0 lands the view-semantics campaign: a canonical distinguishability core over finite view systems, an exact characterization of deterministic bounded projection, a sound-and-complete finite checker with typed certificates, and a custody adapter proving greater visibility constructs no authority.

What v10 lands:

v10 makes no information-flow, noninterference, probabilistic-leakage, side-channel, runtime-compliance, or transition-authority claim. All ViewSemantics material is UNRATIFIED-CANDIDATE: the release archives the tree; it is not a custody promotion. SCRATCH incubations landed since v9 (reversal-authority, credit/standing, signal-authority, and sibling campaigns) ship in the archive and testify for nothing.

Release inventory: docs/V10-READINESS-LEDGER.md.

9.0.0 — Dynamic Traces and Profile Semantics

Dynamic execution over static witnesses, and checker-facing profile semantics.

v9.0.0 opens the dynamic-claims campaign: state-threaded traces in which every hop carries the exact static AuthorizedStep witness it consumes — no global Admissible judgment, no free composition — plus a minimal profile-checker semantics specimen for the RRP admissibility-gate prototype, the stack’s first named runtime correspondence target.

What v9 lands:

v9 is not a unified dynamic calculus, not process semantics, and not runtime authority — per-hop static witnesses are the design. ANNEX and UNRATIFIED-CANDIDATE material stays outside the 1.0 compatibility claim.

Release inventory: docs/V9-RELEASE-LEDGER.md.

8.0.0 — Sequent Admissibility Island

A Mathlib-free proof-theory specimen/library release.

v8.0.0 lands a kernel-checked sequent calculus in which no structural rule is primitive and all four — weakening, contraction, exchange, cut — are admissible, plus a multiplicity-faithful textbook presentation proved derivability-equivalent to it. The modules live under LeanProofs/ProofTheory/ (custody class UNRATIFIED-CANDIDATE; own Mathlib-free ProofTheory lean_lib, build-graph enforced), with the register fence and theorem inventory at LeanProofs/ProofTheory/README.md.

What v8 proves:

v8 is not a governance kernel or doctrine unifier (“admissible” here is literal Gentzen admissibility, the referent the governance vocabulary borrows; no Tier/Verdict/cap coupling, no typeclass, no unifier; build coverage is not promotion), not Mathlib Multiset-typed (List+Perm is the multiset with its quotient explicit), not height-preserving cut, not proof search, and not runtime enforcement.

Release inventory with audited theorem receipts: docs/V8-RELEASE-LEDGER.md; constructivity footguns caught in-release: LeanProofs/ProofTheory/SCARS.md.

7.0.0 — Artifact Authority Profiles

A Lean proof release for custody-aware authority semantics.

v7.0.0 proves the profile discipline: profiles are local, crossings are paid, receipts are not fungible across obligations, and coverage cannot be minted. The campaign modules live under LeanProofs/Scratch/ (custody class SCRATCH, fenced, CI-covered — build coverage, not promoted kernel authority); gap spec with the binding constitution (no shared custody language, no master profile, local profiles + paid pairwise bridges) at docs/V7-GAP-SPEC.md.

What v7 proves:

v7 does not claim a shared custody language (“Constellation Custody Protocol” is a retired name), a master profile or universal artifact authority schema, WLP semantics (envelope-only, untouched), runtime/JSON schemas/AG integration, a profile registry, issuer-level provenance-correlated portfolio accounting (the named v7.x remainder), or a graded “too much coverage” policy screen.

Release inventory with audited theorem receipts: docs/V7-RELEASE-LEDGER.md.

6.0.0 — Finite Custody Checking

A Lean proof release for custody-aware authority semantics.

v6.0.0 makes the v5 payment discipline finitely checkable. A Lean-native checker takes a liberal derivation tree and a finite context and returns a typed verdict — ok with a positional occurrence trace, or a typed refusal naming an offender. The campaign modules live under LeanProofs/Scratch/ (custody class SCRATCH, fenced, CI-covered — build coverage, not promoted kernel authority).

What v6 proves:

v6 does not claim a CLI, a runtime checker, Bridge Foundry, an artifact profiler, a derivability decision procedure (it checks a given tree; no proof search), a checker for arbitrary future structural systems, or a master admissibility layer; offender identity across the two refusal reporters is deliberately not claimed.

Release inventory with audited theorem receipts: docs/V6-RELEASE-LEDGER.md.

5.0.0 — Custody-Preserving Normalization

A Lean proof release for custody-aware authority semantics.

v5.0.0 delivers the normalization layer for the v4 sequent skeleton. The thesis is the custody inversion: classical normalization removes detours and preserves derivability; custody-preserving normalization removes only policy-licensed detours and REFUSES when removal would erase payment. The campaign modules live under LeanProofs/Scratch/ (custody class SCRATCH, fenced, CI-covered under CustodyIndexedSequents — build coverage, not promoted kernel authority).

What v5 proves:

v5 does not claim full Gentzen cut elimination, a full structural-rule algebra (node-form linear rules are named follow-up), or runtime enforcement; traced-twin coherence and the executable finite-support checker are the named v6 lane.

Release inventory with audited theorem receipts: docs/V5-RELEASE-LEDGER.md.

4.0.0 — Custody-Indexed Sequents

A Lean proof release for custody-aware authority semantics.

v4.0.0 introduces a parameterized indexed-sequent skeleton — the proof discipline for how the v3 lifecycle calculi may be crossed without silently erasing custody. The campaign modules live under LeanProofs/Scratch/ (custody class SCRATCH, fenced, CI-covered as their own build target CustodyIndexedSequents — build coverage, not promoted kernel authority).

What v4 proves:

The central invariant remains: no artifact may testify beyond the stage it actually survived.

v4 does not define a master Admissible judgment, does not introduce default bridge transitivity, does not claim runtime enforcement, and does not claim full Gentzen cut elimination — structural coverage is read discipline (contraction/consumption), not the full structural-rule algebra. The explicit follow-up is v5: Custody-Preserving Normalization.

Release inventory with audited theorem receipts: docs/V4-RELEASE-LEDGER.md.

3.0.0 — Bounded Lifecycle Calculi

A Lean proof release for custody-aware authority semantics.

v3.0.0 completes the bounded lifecycle-calculi family. The central invariant:

No artifact may testify beyond the stage it actually survived.

v3 models this invariant across nine local, bounded judgment systems (LeanProofs/BoundedCalculi/, custody class ANNEX — release surface, not promoted kernel authority):

What v3 does not claim. This is not a unified admissibility calculus: there is no master Γ ⊢ Admissible(a) judgment. The aggregate import (LeanProofs/BoundedCalculi.lean) establishes checkability and coexistence only — not intercalculus coherence, not default bridge composition, not runtime authority. Cross-calculus movement requires explicit bridge evidence, and bridge composition is not transitive by default. Sequents, bridge composition, and the broader custody-indexed sequent program are deferred to the next campaign (v3.x scratch exists under LeanProofs/Scratch/, fenced, named-not-claimed).

Release inventory with per-module theorem receipts: docs/V3-RELEASE-LEDGER.md. Campaign audit trail: docs/CHANGELOG-scratch-campaign.md. Lineage — Gentzen, linear logic, authorization logic, proof-carrying code/authorization, TLA, PROV, IFC, scoped credentials, supply-chain attestation — and what is distinct here: see Relation to prior work in WHAT-THIS-PROVES.md. The umbrella architecture (Custody-Aware Authority Semantics) and the runtime lanes (Bridge Foundry / compiled authority) live in the papers repo’s ToolTheory roadmap; v3 is the Lean proof slice only.

2.0.0 — WDC: model-independent normalization and audit fence

2.0.0 is the reserved WDC structural milestone: normalization is lifted from a freshness-model theorem to a model-independent admitting-class theorem (normal_form_iff_of_commutes over an explicit local commutation law, with a necessity counterexample showing the law is load-bearing), and the repo gains a classifier-based audit fence (axiom classes, native_decide policy, mathlib SHA pin — see docs/AUDIT-POLICY.md). The public surface is additive/non-breaking — existing 1.x imports are unaffected; the integer marks the reserved milestone, not an API break. See CHANGELOG.md.

The Witnessed Derivation Calculus surface (the Mathlib-free LeanProofs.Witnessed.* library, promoted in 1.4.0 and structurally strengthened in 2.0.0) provides:

The name is deliberately narrow. This is not a process calculus, a maximal admissibility logic, or a unification of every kernel in the repository. The calculus governs witnessed derivation across typed bridges; the formula/Gentzen/resource additions are the positive presentation and canonical-residue slices only, not implication, full linear logic, or model-to-world transfer. WitnessedDiscipline is a model filter beside it, not part of normalization, and the 2.0 normalization result is an admitting-class theorem, not universal normalization.

The ratified calculus lives in the canonical surface as LeanProofs.Witnessed.* — a separate Mathlib-free library (import LeanProofs.Witnessed), with its axiom footprint regression-gated by scripts/check-witnessed-footprint.sh. Its former standalone source is preserved by the v12 tag and Git history; the ratification/migration prose remains under experiments/no_free_lift_wiring/. The historical promotion gate is recorded in V2.0-EXIT-CRITERIA.md; the post-v2 frontier is tracked in docs/WITNESSED-FRONTIER-REGISTER.md.

Stable public surfaces

The exact stable roots are registered in scripts/stable-surfaces.tsv and enforced by the custody gate. The earlier roots remain small, separately scoped families; v14 adds the AdmissibilityCalculus root as the governed compositional object that relates its named families without silently collapsing their native judgments.

Local kernels decide admissibility. Witnessed movement between contexts requires an explicit bridge.

Three easily confused surfaces are related but distinct:

  1. Admissibility Kernels — small local refusal kernels (the stable 1.x public surface).
  2. Witnessed Derivation Calculus — the ratified calculus for witnessed movement and composition across typed bridges, a canonical Mathlib-free surface (LeanProofs.Witnessed.*) shipped in 1.4.0 and structurally strengthened in 2.0.0.
  3. Admissibility Calculus — the v14 governed-family signature, exact instance adapters and refusal spines, indexed comparisons, stored-decision crossings, and origin/history-bound BreakGlass terminal instance (LeanProofs.Admissibility.Calculus).

None is a universal model of institutions, software systems, or agency. They are not the repository’s only compatibility roots: CustodyIndexed, ProofTheory, ViewSemantics, DynamicTrace, SafetyBridge, PathVerdict, and JudgmentOrientation have their own exact roots; AdmissibilityCalculus is also exact-root governed. The machine source of truth is scripts/stable-surfaces.tsv; no aggregate or directory silently promotes a module.

Start here

How to read this repository

Most modules follow the same discipline:

  1. define a small model of a boundary or failure surface;
  2. state the invalid inference the system must not allow;
  3. prove that the inference cannot be derived under that model;
  4. leave implementation, policy, and world-level consequence outside the theorem.

The point is not to prove an entire software system correct. It is to make invalid promotions and unpaid boundary crossings mechanically visible before they become architecture.

Map

For the full module-by-module reference, see LeanProofs/Admissibility/README.md.

Stable 1.x public surface

The 1.x Admissibility Kernels work did not produce a unified calculus. It produced small refusal kernels and, in v1.3, a narrow witnessed-derivation calculus beside them. The separate v14 object is described above.

The stable public surface (Admissibility Kernels, unchanged since 1.0) is a Lean authority kernel with typed verdicts and object-level refusal theorems for admissible transition. General composition rules and meta-theorems are out of scope for the 1.x stable surface and live in separate kernel families. Not a sequent calculus, not a process calculus, not a proof-theoretic admissibility logic, not a unified maximal calculus — see the scope fence in LeanProofs/Admissibility/README.md for the full list of non-claims.

Importing LeanProofs.Admissibility.AdmissibilityKernels brings the eight stable modules into scope (Authority, StateTransition, Derivation, Execution, Corrective, Freshness, SurfaceAuthorization, WitnessInvariance). Seven specimen consumers live in LeanProofs.Admissibility.Examples, demonstrating the public API.

Admissibility Kernels models when evidence-backed claims may authorize transitions, proves that boundary-crossing upgrades are impossible by construction, and refuses laundering across the surface, freshness, witness, and authority axes.

(Migration note: this aggregator was previously named CalculusOne under an “Admissibility Calculus 1.0” framing. The rename correctly withheld “calculus” from that eight-module surface. Namespace Admissibility.CalculusOne is now Admissibility.Kernels; the marker theorem calculus_one_compiles is now kernels_compile; and the deprecated import shim shipped through v9 and was removed in v10.0.0. v14 later reused the name for a different, separately reviewed object under Admissibility.Calculus.)

Repository custody and compatibility

Every public Lean source carries Custody-Class: PUBLIC-SHIPPED plus one machine-readable Surface-Role: STABLE-SURFACE, PUBLIC-EVIDENCE, or (for the root contact build) REPOSITORY-AGGREGATE. Stable promotion is controlled by the exact registered root for each theorem family, not by directory, default-target membership, or the LeanProofs.lean aggregate. Public evidence is source-visible and citable but cannot enter a stable transitive closure. Live incubation belongs in the sibling skunkworks and may not be imported by a public module.

The whole-tree custody gate, exact surface registries, family-specific footprint gates, and Mathlib-isolation checks are independent receipts. This corrects the pre-v13 partial checker, which covered only a subset of the tree. Every public source carries a registered custody class, surface role, and target owner, and the gates fail closed on any drift; the exact counts for each release live in its ledger, and bash scripts/check-custody-classes.sh reproduces the current ones on demand. The v15 and v16 surfaces are public evidence rather than changes to the v14 stable roots. The historical GT-4A packet records an intermediate source-custody gate, not a pending current-tree disposition. See docs/V13-RELEASE-LEDGER.md for the migration, docs/V16-RELEASE-LEDGER.md for current published-release accounting, docs/GT4A-TARGET-CUSTODY-CANDIDATE_2026-07-20.md for that historical gate, and docs/AUDIT-POLICY.md for what each gate establishes.

experiments/ — tracked wiring witnesses (non-canonical)

The experiments/ tree holds reproducible integration artifacts that are not imported by the canonical proof surface — each is its own Lake project with its own toolchain pin. A successful build under experiments/ attests that the wiring checks; it does not promote any result into the relied-upon theorem surface (build-exit-0 is attestation of the math, never admission of a world claim). See experiments/README.md for the per-project custody contract (EXPERIMENTAL-WIRING).

The former no_free_lift_wiring/ Lake project has been retired from live source during the v13 cleanup because its promoted successor is LeanProofs.Witnessed.*. Its ratification, migration, and audit prose remains in experiments/no_free_lift_wiring/ as a historical record; the exact retired source remains recoverable from the v12 tag and Git history. The prose archive is not a build target or a second canonical implementation.

What this is not

This is not a complete formal model of institutions, platforms, incidents, or distributed systems.

It is not a general-purpose process calculus.

When a theorem lands here, it means a specific invalid inference has been isolated tightly enough to be checked mechanically.

Companion repos

Audit harness for the Δt framework

The audit-harness layer translates selected claims from the Δt framework into Lean so they can be checked against explicit definitions instead of persuasive prose. The framework’s prose papers make claims about how complex systems degrade, recover, misread themselves, or substitute proxies for reality. It is one consumer of the admissibility kernels, not the whole repo.

Some claims survive, some narrow, and some fail. Lean is used here to state the relevant types and premises explicitly, then check the resulting theorem or countermodel. Failed claims remain visible where they identify a real non-implication; see CLAIM-REGISTER.md for the BROKEN / STALE / SOUND / OPEN audit.

Paper-anchored modules

LeanProofs/TaxonomyGraph.lean — Formal encoding of the cybernetic failure taxonomy (15 domains, 14 primitive + 1 composite). Encodes the pipeline graph, role classifications, and reinforcing loops as separate relations. Proves reachability, terminality, role distinctness, and decomposition claims. Cashes out into Paper 15 (sharpen + expose looseness), with secondary tie-ins to P16 and P22.

LeanProofs/BranchSelector.lean — Dual-budget closure-family selection. Budget asymmetry / priming / susceptibility. Cashes out into Paper 9 (certify + sharpen).

LeanProofs/PersistenceModel.lean — Five-state Δc→Δh dynamics. Cumulative rollback depletion under detached commits; three-way recovery distinction. Quantitative-burn + trace-realization cluster (added 2026-05-08): closed-form commitsToHysteretic commit count; non-strict and strict commit-count monotonicity (strict requires positive capacity above the per-commit burn unit); realization bridge from closed-form arithmetic to actual run-trace semantics; trace-level post-repair faster doctrine theorem composing the strict inequality with two applications of the realization bridge. Cashes out into Paper 18 (sharpen + bridge; Appendix A v1.1 candidate).

LeanProofs/OpsMasking.lean — Operational masking, case (i) projection clause. Pointwise-equal projected actions produce identical trajectories. Cashes out into Paper 23 (bridge + certify).

LeanProofs/Paper24SharedVision.lean — Algebraic shard for Paper 24’s §4 metric probes. Sign correction on Proposition 2.

LeanProofs/RepairOperator.lean — Sovereign repair operator. No paper anchor; formalizes the working note working/sovereign-repair-operator.md.

P27 obligation skeleton — formerly LeanProofs/Admissibility.lean, now skunkworks formalization/Calculi/Scratch/P27ObligationSkeleton.lean (namespace P27). It is sorry-free (three real proofs against the local admissible definition) but retains two True-placeholder discharges pending substantive substrate-accusation / causal-binding predicates. It is not public evidence or a stable import. The skeleton is post-transition obligation accounting; the Admissibility kernels govern pre-action authorization.

First documented BROKEN claim

The audit’s first recorded finding, kept here as the chronological anchor for the BROKEN/STALE/SOUND register. Subsequent results — the Admissibility Kernels surface, the sorry-free kernel chain, and the cross-boundary specimens — are tracked in WHAT-THIS-PROVES.md and CLAIM-REGISTER.md; gaps against the AGI-requirements doc live in the closed 2026-05-10 reverse-gap audit. Not appended here.

(2026-04-02; refined 2026-06-29): The informal claim “Δh is the universal sink” is false as a pipeline reachability claim. Δs and Δk cannot reach Δh through pipeline edges; the static graph instead decomposes into three terminal closure families {Δg, Δa}, {Δx}, {Δh} (Δh is a terminal family, not the sink). Any “universal sink” reading of Δh would be a temporal-attractor claim rather than a graph-topological one — and that temporal claim is OPEN: it requires an explicit dynamics substrate the static graph cannot represent (the placeholder axiom that once stood in for it was removed in v2.0.0). The prose was compressing two different kinds of claims into one sentence. See CLAIM-REGISTER.md #1 for the full status.

Building

Requires elan and Lean 4.

lake build                  # default Mathlib-free stable and evidence targets
lake build V15Integration   # canonical v15 public modules
lake build V15IntegrationQualification # isolated v15 qualification leaves
lake build Witnessed WitnessedEvidence
lake build CustodyIndexed CustodyIndexedEvidence
lake build PathVerdict PathVerdictEvidence
lake build AdmissibilityCalculus
lake build PaidRecompositionEvidence
lake build JudgmentOrientation JudgmentOrientationEvidence
lake build ViewSemantics ViewSemanticsEvidence
lake build AdmissibilityEvidenceMathlib ViewSemanticsEvidenceMathlib
lake build GovernedTransitionBoundaries GovernedTransitionBoundariesEvidence # v16
(cd downstream/wdc-v2-consumer && lake build) # pinned public-evidence fixture
bash scripts/check-witnessed-footprint.sh   # re-attest the ratified WDC axiom footprint (fail-closed)
bash scripts/check-paid-recomposition-footprint.sh # corrected v11 closure/evidence custody + footprint
bash scripts/check-judgment-orientation-footprint.sh # v12 exact 13-receipt footprint
bash scripts/check-pathverdict-footprint.sh # v14 rung-1 exact 36-receipt footprint
bash scripts/check-calculus-footprint.sh   # v14 rungs 2-7 exact 191-receipt footprint
bash scripts/check-viewsemantics-footprint.sh # theorem/checker footprints (fail-closed)
bash scripts/check-viewsemantics-isolation.sh # cheap roots Mathlib-free; P25 isolated
bash scripts/check-governed-transition-boundaries-crossing.sh # v16 exact 10-source crossing custody
bash scripts/check-governed-transition-boundaries-footprint.sh # v16 exact 29-receipt footprint
bash scripts/audit-axioms.sh                # repo axiom classifier (signature/interface-law/specimen; 0 forbidden)
bash scripts/audit-native-decide.sh         # native_decide confined to finite-witness modules
bash scripts/check-mathlib-pin.sh           # lakefile mathlib rev == manifest SHA (no silent drift)
bash scripts/check-custody-classes.sh       # exact whole-tree custody and stable-root ownership
bash scripts/check-mathlib-free-targets.sh  # exact target closures and reverse source ownership

The ViewSemantics stable root and evidence roots are now explicitly separated. Its P25 adapter remains outside the default cheap graph and builds explicitly with lake build ViewSemanticsEvidenceMathlib.

Custody posture: the repository is not axiom-free; it is axiom-classified. WDC promoted receipts remain footprint-attested. See docs/AUDIT-POLICY.md for what each gate checks and the four axiom classes (signature / interface-law / specimen / forbidden — the last held at zero).

The former standalone wiring source is preserved by the v12 tag and Git history; the remaining experiments/no_free_lift_wiring/ prose is an audit archive, not a buildable canonical path.

Cross-references

Status

v16.0.0 released (2026-07-28): current release. Exact inventory and scope: docs/V16-RELEASE-LEDGER.md.

v15.0.0 released (2026-07-24): the Cross-Calculus Atlas records receipt-indexed correspondence across Governed Transport, Execution Custody, and Continuity Admission without a shared bridge algebra. Exact inventory and scope: docs/V15-RELEASE-CANDIDATE.md.

v14.0.0 released (2026-07-18): establishes the Governed Admissibility Calculus. The GitHub release is archived under v14.0.0; Zenodo version DOI 10.5281/zenodo.21435270 was published 2026-07-19. Exact inventory and scope: docs/V14-RELEASE-LEDGER.md.

v13.0.0 released (2026-07-17): Repository Custody Migration makes the public tree’s lifecycle classification match its actual dependency graph. It adds no theorem claim; the exact source accounting, stable/evidence split, and fail-closed verification receipts are recorded in docs/V13-RELEASE-LEDGER.md.

v12.0.0 released (2026-07-16): Judgment Orientation is promoted as an exact five-module stable sibling surface. Its frozen inventory and final gate receipts are recorded in docs/V12-RELEASE-LEDGER.md.

v11.0.0 released: Occurrence-Exact Paid Recomposition is in the stable Witnessed import surface and was published to GitHub and Zenodo (version DOI 10.5281/zenodo.21386096); see docs/V11-READINESS-LEDGER.md.

v2.0.0 released — the Witnessed Derivation Calculus now has model-independent admitting-class normalization and an explicit audit fence, while the stable 1.x Admissibility Kernels surface remains unchanged. All root-imported modules build. Sorry-free as of 2026-05-28. No theorems are currently admitted via sorry. Gaps surfaced by the dated 2026-05-10 AGI-requirements reverse-gap audit are recorded in the closed reverse-gap audit — a closed audit artifact scoped to that one requirements document, not the project’s live open-problems register.

The previously-admitted investigative null corrective_then_forward_is_not_monotone (formerly in LeanProofs/Admissibility/Corrective.lean) was replaced by a positive boundary result in LeanProofs/Admissibility/CorrectiveBoundary.lean: the abstract kernel’s existential remains formally undecidable in current vocabulary, but a parallel miniature kernel exhibits both possible answers — identity store ops + arbitrary env make the existential FALSE; nondegenerate ops + verdict-sensitive derivation make it TRUE. The abstract kernel is consistent with both, which is the doctrinally-correct stance. See CLAIM-REGISTER.md entries A1 (resolved) and #14 (boundary result) for the audit trail. The discipline that previously displayed the sorry now displays the resolution path — admitted-statement history is part of the public record, not erased once resolved.

Other open questions — what the kernel does not yet rule out — are tracked alongside the proofs themselves: CorrectiveMonotone is currently vacuously satisfiable at the abstract kernel level pending behavioral laws on applyUpdate / appendGap / appendRevocation (the boundary module supplies the model-dependence story without forcing the abstract kernel to commit); environment mutation (replacing the evaluator rather than the state) is a separate laundering vector outside WeaklyLessPermissive’s scope. See NOTES.md and the per-module pinned-questions blocks for the rest.

Reading the proofs

This repository is the canonical formal source. Required CI verifies that the formalization builds (lean-action on push); proof correctness rests on the Lean source itself, not on any rendered artifact.

The human-readable entry point for proof readers is this README plus the companion documents linked under Cross-references above.

The papers-side companion at docs/formalization-index.md in the papers repo inverts the view (paper → module).

GitHub Pages renders this README at https://unpingable.github.io/lean/ via classic Pages, so the proof reader’s portal is reachable from the web without additional infrastructure. Generated doc-gen4 API HTML is not currently published; if added later it will sit as a secondary reference layer beneath the human-readable portal, not as the front door.