You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
proof-debt: enumerate 32 partial-marker sites in PROOF-NEEDS.md per standards#203 (#75)
`bash scripts/check-trusted-base.sh .` reported 32 of 34 escape hatches as
undocumented. The symbolic-postulate breakdown in §"What Remains Postulated"
classifies these by name, but the script needs file:line entries for its
per-site documentation check.
This PR adds a "## Escape-Hatch Enumeration (2026-05-27)" section listing
every reported site with file:line + classification:
- AXIOM-STUB (8): genuine trusted-base entries (verifyEd25519, sha256,
ed25519Correctness, sha256CollisionResistant, signatureNonReplayable,
signatureNonMalleable, tamperEvidence, replayPrevention).
- AXIOM-TRANSITIVE (21): partial inherited from spec-stub references;
proof terms themselves are total (Refl, (), sym, rewrite, structural
induction). Adds nothing new to trusted base.
- DISCHARGE-PENDING (3): normalizedIsSafe, absolutePathRejection,
ociLayoutEnforcement — tractable proofs already documented in
§"Path to eliminating remaining String postulates".
The remaining 2 of 34 (the two assert_total spec-crash stubs) were already
documented in §"assert_total Usage (2) — ACCEPTABLE".
After this PR `bash scripts/check-trusted-base.sh .` reports green:
[OK] All 34 escape hatch(es) are documented
No code changes; only PROOF-NEEDS.md is touched.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|`container-stack/cerro-torre/verification/idris/ImporterProofs.idr:176`|`symlinkSafety`| AXIOM-TRANSITIVE | Same proof pattern as `extractionSafety`|
198
+
|`container-stack/cerro-torre/verification/idris/ImporterProofs.idr:208`|`absolutePathRejection`| DISCHARGE-PENDING | Needs `SafePath` semantics over `List Char`|
199
+
|`container-stack/cerro-torre/verification/idris/ImporterProofs.idr:242`|`ociLayoutEnforcement`| DISCHARGE-PENDING | Needs `DecEq` on `TarEntry` paths |
200
+
|`container-stack/cerro-torre/verification/idris/ImporterProofs.idr:282`|`zipSlipPrevention`| AXIOM-TRANSITIVE | Same proof pattern as `extractionSafety`|
-**AXIOM-STUB** (8): `verifyEd25519`, `sha256`, `ed25519Correctness`, `sha256CollisionResistant`, `signatureNonReplayable`, `signatureNonMalleable`, `tamperEvidence`, `replayPrevention`. These are the genuine trusted-base entries.
220
+
-**AXIOM-TRANSITIVE** (21): Type-signature partiality inherited from AXIOM-STUB references. Every proof term is total; the only reason these are `partial` is Idris2 0.8's lack of a `postulate` keyword forcing partiality propagation through any caller of a spec stub.
221
+
-**DISCHARGE-PENDING** (3): `normalizedIsSafe`, `absolutePathRejection`, `ociLayoutEnforcement` — tractable proofs documented in §"Path to eliminating remaining String postulates" above.
222
+
223
+
Total: 32 sites enumerated. The remaining 2 of 34 markers reported by the script are the two `assert_total` documented in §"assert_total Usage (2) — ACCEPTABLE" above.
0 commit comments