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
Coq: re-verify 0 real gaps + fix build/verify from clean; add just run launcher (#164)
Two outstanding items, both verified with the actual toolchain.
## 1. Coq proof stack — re-verified 0 admits / 0 real gaps (Coq 8.18.0)
The full `_CoqProject` (11 files) compiles with **zero
`admit`/`Admitted`/`Axiom`** markers. `Print Assumptions` on the
load-bearing theorems:
| Theorem | Assumptions |
|---------|-------------|
| `obliterate_overwrites_all_blocks` | **Closed under the global
context** (zero axioms) |
| `overwrite_pass_equalizes_storage` (#57) | **Closed under the global
context** |
| `single_op_reversible` / `operation_sequence_reversible` /
`copy_file_reversible` / `mkdir_two_dirs_reversible` (#56) /
`obliterate_not_injective` (#58) | `functional_extensionality_dep` only
|
The historically-tracked "1 real gap" and the three 2026-06-02 admits
(#56/#57/#58) are all closed. Remaining assumptions are
standard/justified: Coq `functional_extensionality` (stdlib) +
`is_empty_dir_dec` (justified classical), Agda `funext` (structural).
**Net: 2 documented axioms, 0 real gaps.**
Docs reconciled (live docs only; dated audit snapshots left as records):
`PROOF_HOLES_AUDIT.md`, `README.adoc`, `FAQ.adoc`, `CLAUDE.md`,
`docs/wiki/`, `ROADMAP*.{adoc,md}`, `STATE.a2ml`, `methodology.a2ml`,
`CHANGELOG.adoc`.
## 2. Coq build/verify entry points — fixed to work from a clean
checkout
- `just build-coq` and `scripts/verify-proofs.sh` compiled an incomplete
file subset (missing `filesystem_composition.v` etc.), so
`posix_errors.v` failed with *"Cannot find a physical path bound to
logical path filesystem_composition."* Both now compile the full
`_CoqProject` chain in order and `mkdir -p extracted` before
`extraction.v`, matching the `validation.yml` CI oracle.
- `scripts/verify-proofs.sh`: fixed two latent `set -e` bugs that
aborted before any test ran — `((VAR++))` counters (first bump from 0
returns exit 1) → assignment form; per-test `cd` leaks → each command
runs in a subshell. Script now runs end-to-end (exit 0).
- gitignore `proofs/coq/.lia.cache`.
## 3. Launcher — add `just run` / `just launch`
The user-facing launcher was missing (no `run`/`setup`/`install`
recipe), and `QUICKSTART-USER.adoc` was an unfilled template promising
recipes that didn't exist.
- Added `just run *ARGS` (alias `just launch`): builds and starts the
interactive `vsh` shell, passing args through. **Verified end-to-end:**
`just run --version` → `vsh 0.9.0` (exit 0); REPL banner starts; `just
run <script>` executes and exits 0.
- Rewrote `QUICKSTART-USER.adoc` to the real flow — every `just` command
it cites is a real recipe (verified via `just --show`).
**Scope note:** full alignment to the external *launcher standard*
(`hyperpolymath/standards`) is not attempted — that repo is outside this
session's GitHub scope. This adds a real, verified launch entry point
consistent with what the quickstart already promised;
standard-conformance can follow when the standard is readable.
## Validation
- `coqc -R . ValenceShell` on all 11 files: clean; `Print Assumptions`
as tabulated.
- `just build-coq` and `scripts/verify-proofs.sh` from a cleaned tree:
exit 0.
- `just run --version`, `just run <script>`: exit 0 with correct output.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01KfgJznd6jzSeDYsSXGAXkU
---------
Co-authored-by: Claude <noreply@anthropic.com>
axiom-detail = "is_empty_dir_dec: Filesystem = Path -> option FSNode is infinite-domain; universal quantification over all paths is not constructively decidable. Migration: switch to FMaps.t FSNode."
94
-
proof-debt-items-closed = [1, 2]
95
-
proof-debt-open = [3]
99
+
proof-debt-items-closed = [1, 2, 3]
100
+
proof-debt-open = []
96
101
97
102
[dogfooding-status]
98
103
# Section present per CRG v2.0 schema. Honest disclosure follows.
Copy file name to clipboardExpand all lines: .machine_readable/bot_directives/methodology.a2ml
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -98,7 +98,7 @@ constraints = [
98
98
"Lean -> Rust correspondence is property-tested only (~85% confidence), NOT mechanised — closing this is the critical-path blocker to v1.0.0",
99
99
"Elixir NIF build is broken — impl/elixir/ is reference-only; do not block work on it",
100
100
"BEAM daemon is designed but not implemented — no current SNIF carrier",
101
-
"Coq has 1 remaining real proof gap: obliterate_overwrites_all_blocks (mechanical induction over overwrite passes) — see docs/PROOF_HOLES_AUDIT.md",
101
+
"Coq has 0 remaining real proof gaps: obliterate_overwrites_all_blocks is CLOSED (Print Assumptions: Closed under the global context, re-verified 2026-07-16 under Coq 8.18.0) — see docs/PROOF_HOLES_AUDIT.md",
102
102
"Agda has 1 structural axiom (funext) — provable in cubical Agda, intentional in intensional TT",
103
103
"Coq has 1 justified decidability axiom (is_empty_dir_dec) — infinite-domain Filesystem = Path -> option FSNode; switching to FMaps.t FSNode is the documented migration",
104
104
"RMO (GDPR / secure deletion) primitives are stubs in impl/rust-cli/src/commands/secure_deletion.rs — proofs exist for the model, runtime does not yet bind to them",
-~478 theorem candidates across 6 proof systems + Idris2 ABI layer (per issue #42 deep-audit inventory, 2026-06-01)
89
-
-3 proof holes remaining: 1 real gap (Coq `obliterate_overwrites_all_blocks`), 1 justified axiom (Coq `is_empty_dir_dec` — infinite-domain decidability), 1 structural axiom (Agda `funext` — standard in intensional TT) — see `docs/PROOF_HOLES_AUDIT.md`
89
+
-2 proof holes remaining, **0 real gaps**: 1 justified axiom (Coq `is_empty_dir_dec` — infinite-domain decidability), 1 structural axiom (Agda `funext` — standard in intensional TT). The former real gap (Coq `obliterate_overwrites_all_blocks`) is CLOSED — re-verified 2026-07-16 via `Print Assumptions` (*Closed under the global context*) under Coq 8.18.0 — see `docs/PROOF_HOLES_AUDIT.md`
90
90
- Idris2 ABI layer: **0 proof holes** (all closed 2026-07-01, issue #151 root — builds under `--total`), 0 `partial` markers, 2 registered primitive-eq axioms (`axStringEqRefl`, `axBits8EqRefl`; gated by `.github/scripts/check-idris2-believe-me.sh`)
2.**1 real proof gap**remaining (Coq `obliterate_overwrites_all_blocks`— mechanical induction over overwrite passes), plus 2 documented axioms (1 justified decidability + 1 structural funext) — see `docs/PROOF_HOLES_AUDIT.md`
98
+
2.**0 real proof gaps**— the former Coq `obliterate_overwrites_all_blocks`gap is CLOSED (re-verified 2026-07-16, *Closed under the global context*); 2 documented axioms remain (1 justified decidability + 1 structural funext) — see `docs/PROOF_HOLES_AUDIT.md`
99
99
3.**NOT production-ready** — research prototype only
0 commit comments