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
Multi-file Coq projects are now checkable. Before this, a bare `coqc B.v` where
B `Require`s an in-tree sibling A errored "Cannot find a physical path bound to
logical path A" (ground-truthed) — so any Coq file with a local dependency
verdicted Error.
check_file now stages the target and its in-tree transitive `Require` deps into
a temp build tree, compiles the deps in topological order (deps before
dependents; `coq_transitive_deps` is a cycle-safe post-order DFS) so each `.vo`
exists, then checks the target against `-R <build> ""`. It all happens under
temp, so the source tree stays clean. External stdlib/MML requires resolve on
coqc's own load path (they're skipped as non-in-tree).
Honesty preserved — a transitive admit is NOT whitewashed. Dogfooded: a
dependent whose dep contains `Admitted` gets a per-file `check` verdict of
`proven` (the dependent's own content is sound), but the reasoning graph demotes
its EFFECTIVE verdict to `admitted` via the And-edge to the admitted dep. So
dep-ordering makes projects checkable without letting a transitive admit ride
through green — the self/effective split does its job.
Verification (actually run): cargo fmt --check, clippy -D warnings, cargo test
(174 pass, +1 topo-order unit), check-spdx.sh — all green. Dogfooded vs real
coqc 8.18.0: a 3-module A←B←C chain of real Qed proofs → `check C.v` = proven;
`reason --check` → A/B/C all proven; the admit-taint case demotes as above.
Residual (the 3%): `_CoqProject`-driven custom `-Q`/`-R` prefix remapping. The
empty-prefix convention (`Foo.Bar` ↔ `Foo/Bar.v` under the root) is fully
working; only non-default logical prefixes remain a follow-on.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012MpYSh6Wy8YMBH2E3qVyT7
"M10 (Mizar): DONE (85%) — turned out to be a REAL verify, not detect-only: static i386 verifier runs on x86_64; provisioned + adapter (accom+verifier+.err) + dogfooded (proven/error). HEAVY TAIL M8-M10 COMPLETE. Remaining: local-article prel export.",
435
455
"M7 client INVESTIGATED 2026-07-01 → BLOCKED (stub stays): no confirmed Echidna HTTP contract exists (dispatch.rs says API unconfirmed; ECOSYSTEM.a2ml gives no endpoints/schema; the echidna repo is out of this session's access scope). Building a client would mean inventing an unverifiable contract — forbidden. Unblock: a published Echidna API + a reachable instance to dogfood; then wire Dispatch::run behind a cargo feature. ROADMAP TERMINUS — all tractable items done; M7's client is the sole residual, externally blocked.",
436
-
"Deeper cuts deliberately scoped out (available if the owner wants them): Coq _CoqProject logical-path resolution + dependency-ordered compilation; Mizar local-article prel export (miz2prel); Isabelle session-qualified imports + multi-session builds; and the arghda-studio visual layer that consumes the frozen reason/0.1 JSON.",
456
+
"HEAVY-TAIL COMPLETION CUTS (owner asked for these 2026-07-01, doing foundation-first, one PR each, real-tool dogfood): [DONE] Coq dependency-ordered compilation (M8 90→97%); [NEXT] Mizar local-article prel export via miz2prel so cross-article refs check (M10 85→~100%); [THEN] Isabelle session-qualified imports + multi-session builds (M9 90→~100%). Residual after: Coq _CoqProject custom -Q/-R prefixes (3%); arghda-studio visual layer (separate repo, out of this session's scope; AffineScript).",
0 commit comments