Skip to content

Commit ba9b072

Browse files
docs(proof): modshells SPARK no-op exemption (reconcile stale audit) (#49)
## What Adds `PROOF-NEEDS.md` to modshells with a **documented SPARK no-op exemption**. ## Why `PROOF-NEEDS.md` was never on `origin/main` — the 2026-05-18 audit copy existed only as an untracked local artifact, and it was **stale** (claimed "Rust only, no SPARK"). 2026-05-19 census ground truth: modshells is **9 Ada units with zero `SPARK_Mode` markers**. ## Decision recorded **No SPARK proof action is owed this cycle** (explicit exemption, not drift): - Ada units are migration-source for `wip/rust-spark-migration` (Rust/SPARK consolidation) — contracts on soon-deleted Ada would be waste. - Zero `SPARK_Mode` markers ⇒ no proof claim ⇒ cannot be SPARK theatre; passes the estate SPARK Theatre Gate (standards#135) vacuously. - Estate audits should treat modshells **resolved-by-exemption** and stop re-triaging it. **Re-open trigger:** `wip/rust-spark-migration` merging to `main`, or any new `SPARK_Mode` marker appearing in the Ada source. Plan item 5 (declare + move on). Refs hyperpolymath/standards#124 Co-authored-by: hyperpolymath <hyperpolymath@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 103fdfa commit ba9b072

1 file changed

Lines changed: 49 additions & 0 deletions

File tree

PROOF-NEEDS.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Proof Requirements
2+
3+
<!-- SPDX-License-Identifier: PMPL-1.0-or-later -->
4+
<!-- Created 2026-05-18 by estate proof-debt audit; reconciled 2026-05-19. -->
5+
6+
## Current state (reconciled 2026-05-19)
7+
8+
The original 2026-05-18 audit entry claimed "Rust only, no SPARK present".
9+
That was **stale**. Ground truth (direct census 2026-05-19):
10+
11+
- Source is **Ada** (9 units: `config_store`, `shell_validator`,
12+
`shell_manager`, `modshells` main, tests), **not** "Rust only".
13+
- **Zero `SPARK_Mode` markers** anywhere. There is therefore **no SPARK
14+
proof theatre to demote**, and nothing for the estate SPARK Theatre Gate
15+
(hyperpolymath/standards#135) to flag — modshells passes it vacuously.
16+
- A Rust/SPARK rewrite is in flight on branch `wip/rust-spark-migration`
17+
(bounded consolidation into one verified binary; tracked in the
18+
migration plan outside this repo).
19+
20+
## SPARK proof stance — DOCUMENTED NO-OP / EXEMPTION
21+
22+
**No SPARK proof action is owed for modshells in the current audit cycle.**
23+
This is an explicit, deliberate exemption, not unresolved drift:
24+
25+
1. The Ada units are *migration source*, scheduled for replacement by the
26+
`wip/rust-spark-migration` Rust/SPARK consolidation. Adding SPARK
27+
contracts to soon-to-be-deleted Ada would be wasted effort.
28+
2. Because there are zero `SPARK_Mode` markers, modshells makes **no proof
29+
claim** — it cannot be "SPARK theatre" (theatre requires a hollow
30+
claim). It is honest by absence.
31+
3. Estate audits and the SPARK Theatre Gate should treat modshells as
32+
**resolved-by-exemption** and not re-triage it until the Rust/SPARK
33+
migration lands, at which point the *Rust/SPARK* tier (seam + stance)
34+
is assessed against the new binary, not the Ada source.
35+
36+
Re-open trigger: merge of `wip/rust-spark-migration` to `main` (assess the
37+
Rust/SPARK seam then), or any new `SPARK_Mode` marker appearing in the Ada
38+
source before then (would reintroduce theatre risk).
39+
40+
## Recommended prover
41+
42+
- **Idris2** if a contract surface is warranted post-migration; otherwise
43+
N/A under the exemption above.
44+
45+
## Priority
46+
47+
**RESOLVED-BY-EXEMPTION** (2026-05-19). Was LOW/policy-relevant; the
48+
seam-or-exemption decision is now made: documented exemption pending the
49+
`wip/rust-spark-migration` rewrite. No SPARK work owed this cycle.

0 commit comments

Comments
 (0)