Commit 9ecfddd
authored
proofs(idris2): close 3 Cat-A RMO non-theorem holes (#119B) — RMO.idr at zero holes (#134)
## Summary
Closes the last 3 Idris2 `?holes` in
`proofs/idris2/src/Filesystem/RMO.idr` by restating each non-theorem
signature to its correct shape and discharging it inline. **No new
axioms, no `believe_me`**. Mirrors the #60 / #61 / #119A "non-theorem
redesign" precedent.
Closes #129, #130, #131. Refs #119.
## Redesigns
* **`overwriteIrreversibleProof`** — prior signature `(recovery :
FileContent -> Maybe FileContent) -> recovery randomData = Nothing` was
refuted by `recovery = const (Just orig)`. Restated to "no recovery
function can be a universal inverse over the pre-overwrite space" —
given two distinct originals, any recovery yields a single `Maybe
FileContent`, which cannot equal both `Just orig1` and `Just orig2`.
Closed via `Just`-injection on `trans (sym eq1) eq2`.
* **`hardwareEraseIrreversibleProof`** — prior signature
`HardwareEraseProof -> (Unit -> Filesystem) -> Void` was refuted by `\()
=> empty`. Restated to take the post-erase state as input and witnesses
non-injectivity via function-determinism on `recovery postErase`. Closed
via `trans (sym eq1) eq2`.
* **`auditTrailCompletenessProof`** — prior signature `(entries : List
AuditEntry) -> (p : Path) -> ObliterationProof p -> Elem p (map
AuditEntry.path entries)` was refuted by `entries = []`. Restated to
name the append event introducing `p` into the log. Closed via a
`where`-bound `elemAtTail` lemma (induction on the prefix) +
`appendAuditEntry` unfolding.
## Verification
- ✅ `idris2 --build valence-shell.ipkg` clean (4/4 modules build).
- ✅ `grep '\?' src/Filesystem/RMO.idr` → **zero holes** in RMO.idr.
- ✅ Idris2 top-level hole count: 16 → 13 (`Operations.idr` 7,
`Composition.idr` 4, `Model.idr` 2; sub-holes 4 unchanged).
- ✅ No new imports, no `believe_me`, no `partial` annotations
introduced.
- ✅ Hits the #112 / #113 parser escape: `proof` is reserved in Idris2
0.8.0, so the `HardwareEraseProof` formal parameter is named
`eraseProof`.
## Frontier after this PR
All remaining 13 Idris2 top-level holes are in **Priority 2 frozen**
(primitive-eq groundwork pending owner sign-off on path 1/2/3) or
require Cat-A redesigns for `undoRedoIdentity` / `undoRedoComposition`
(filed separately). No quick wins left.
## Test plan
- [x] Idris2 build verifies all 4 modules typecheck under `%default
total`.
- [x] PROOF-NEEDS.md hole inventory updated (table + Foundational
Closure row + Priority Summary).
- [ ] CI: `idris-verification` workflow on PR.
- [ ] CI: PROOF-NEEDS / governance checks.
🤖 Generated with [Claude Code](https://claude.com/claude-code)1 parent cd2592d commit 9ecfddd
2 files changed
Lines changed: 96 additions & 39 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
| 32 | + | |
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | | - | |
| 41 | + | |
42 | 42 | | |
43 | | - | |
| 43 | + | |
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| 64 | + | |
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
| |||
74 | 75 | | |
75 | 76 | | |
76 | 77 | | |
77 | | - | |
78 | | - | |
| 78 | + | |
| 79 | + | |
79 | 80 | | |
80 | | - | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
81 | 86 | | |
82 | 87 | | |
83 | 88 | | |
| |||
197 | 202 | | |
198 | 203 | | |
199 | 204 | | |
200 | | - | |
201 | | - | |
202 | | - | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
203 | 209 | | |
204 | 210 | | |
205 | 211 | | |
| |||
215 | 221 | | |
216 | 222 | | |
217 | 223 | | |
218 | | - | |
219 | | - | |
220 | | - | |
221 | | - | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
222 | 229 | | |
223 | 230 | | |
224 | 231 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
109 | 109 | | |
110 | 110 | | |
111 | 111 | | |
112 | | - | |
| 112 | + | |
| 113 | + | |
113 | 114 | | |
114 | | - | |
115 | | - | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
116 | 125 | | |
117 | 126 | | |
118 | 127 | | |
119 | | - | |
120 | 128 | | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | 129 | | |
125 | | - | |
126 | | - | |
127 | | - | |
128 | | - | |
129 | | - | |
130 | | - | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
131 | 139 | | |
132 | 140 | | |
133 | 141 | | |
| |||
205 | 213 | | |
206 | 214 | | |
207 | 215 | | |
208 | | - | |
209 | | - | |
210 | | - | |
211 | | - | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
212 | 229 | | |
213 | | - | |
214 | | - | |
215 | | - | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
216 | 242 | | |
217 | 243 | | |
218 | 244 | | |
| |||
259 | 285 | | |
260 | 286 | | |
261 | 287 | | |
262 | | - | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
263 | 302 | | |
264 | 303 | | |
265 | | - | |
| 304 | + | |
| 305 | + | |
266 | 306 | | |
267 | | - | |
268 | | - | |
269 | | - | |
270 | | - | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
0 commit comments