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
proofs(coq): re-verify 0 admits/0 real gaps; fix build+verify from clean
Verified the Coq proof tree with coqc + Print Assumptions under Coq 8.18.0:
the full _CoqProject (11 files) compiles with zero admit/Admitted/Axiom
markers. obliterate_overwrites_all_blocks and overwrite_pass_equalizes_storage
are 'Closed under the global context'; single_op_reversible,
operation_sequence_reversible, copy_file_reversible, mkdir_two_dirs_reversible
and obliterate_not_injective depend only on standard functional_extensionality.
The historically-tracked '1 real gap' and the three 2026-06-02 admits
(#56/#57/#58) are all closed. Remaining assumptions are standard/justified:
functional_extensionality (stdlib) + is_empty_dir_dec (justified classical),
Agda funext (structural).
Build/tooling fixes (both failed 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
dependency order and mkdir -p extracted before extraction.v, matching the
validation.yml CI oracle.
- verify-proofs.sh: fixed two latent set -e bugs that aborted before any test
ran — ((VAR++)) counters (first bump from 0 returns exit 1) replaced with
assignment form; per-test cd side effects isolated via subshell.
- gitignore proofs/coq/.lia.cache (Coq Lia build artifact).
Docs reconciled to 0 real gaps (live docs only; dated audit snapshots left as
records): PROOF_HOLES_AUDIT.md, README.adoc, FAQ.adoc, CLAUDE.md,
docs/wiki/{Verification-Status,For-Developers}.md, ROADMAP.adoc,
docs/ROADMAP_TO_V1.md, STATE.a2ml, methodology.a2ml, CHANGELOG.adoc.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KfgJznd6jzSeDYsSXGAXkU
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
* Composition: sequences of operations reverse correctly
361
-
* ~478 theorem candidates proven across 6 verification systems (1 real gap + 2 axioms remain — see `docs/PROOF_HOLES_AUDIT.md`)
362
-
* 2026-06-02 snapshot: 4 admits in `proofs/coq/rmo_operations.v` are annotated with explicit obligations; Idris2 0.8.0 keyword/parse fixes landed alongside (#112/#113/#115/#117) and the build oracle is strict (#118).
361
+
* ~478 theorem candidates proven across 6 verification systems (0 real gaps; 2 justified/structural axioms remain — see `docs/PROOF_HOLES_AUDIT.md`)
362
+
* 2026-07-16 re-verification: `proofs/coq/` compiles with **0 admits** under Coq 8.18.0; `Print Assumptions` on the load-bearing theorems reports *Closed under the global context* or dependence only on standard `functional_extensionality`. Idris2 0.8.0 keyword/parse fixes landed earlier (#112/#113/#115/#117), the build oracle is strict (#118), and the Idris2 layer is hole-free (#151/#152).
363
363
364
364
=== ❌ What Is NOT Guaranteed
365
365
@@ -604,7 +604,7 @@ See link:LICENSE[LICENSE] for full text.
604
604
605
605
**Made with ❤️ by humans and AI, for humans who value formal correctness.**
606
606
607
-
**Status**: Advanced Research Prototype (v0.9.0) | **RSR**: PLATINUM (105/100) | **Proofs**: ~478 theorem candidates (1 real gap remaining) | **Tests**: 736 passing
0 commit comments