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
The Lean `#print axioms` audit now reaches IMPORTED files, not just import-free
ones. When a `lakefile.lean`/`lakefile.toml` is found at or above the file, both
the elaboration and the audit run via `lake env lean` (cwd = the lake root),
injecting the project's LEAN_PATH so project-local imports resolve.
- `lake_root(file, include_root)` — the nearest ancestor with a lakefile, else
None (bare-`lean` fallback).
- `run_lean(file, lake_root)` — `lake env lean <file>` under a lake project (cwd
= root), falling back to bare `lean` when there's no lakefile or `lake` itself
is absent. Both `check_file` and `axiom_audit` route through it.
- The audit copy stays in a clean temp dir: LEAN_PATH entries are absolute, so
imports resolve regardless of the copy's location (ground-truthed).
Assumes the project is already built — arghda checks proofs, it does not run
`lake build` (a deliberate scope line, not a gap). With no lakefile the behaviour
is unchanged (core + import-free files via bare `lean`).
Verification (actually run): cargo fmt --check, clippy -D warnings, cargo test
(168 pass, +1 `lake_root` unit), check-spdx.sh — all green. Dogfooded vs real
Lean 4.13.0 + Lake 5.0.0 on a built lake project: the importing file `Demo.lean`
(imports Demo.Basic) → proven (an unresolved-import error before this change);
the leaf → proven; negative control (the same file copied OUTSIDE the lake
project) → error, confirming the fix is the lake-env resolution specifically.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012MpYSh6Wy8YMBH2E3qVyT7
# — the reasoning graph now sources REAL verdicts from a four-state workspace's
119
135
# `proven/` state, no re-check needed. New `arghda reason <path> --workspace
@@ -375,13 +391,13 @@ milestones = [
375
391
actions = [
376
392
"ENGINE-SPINE DELIVERABLE COMPLETE: M0-M7 + M11 all landed. v0.1 spec closed. Six backends (agda, agda-cubical, idris2, lean4 Assistant; z3, cvc5 Solver) + reasoning graph + doctor + groove + dispatch seam. Remaining work is refinement + the heavy tail:",
377
393
"M7 follow-on: the real Echidna orchestrator HTTP client (feature-gated), once Echidna's API is confirmed — only Dispatch::run changes.",
378
-
"M6 follow-on: #print axioms audit DONE (import-free files promote honestly); remaining = lake-env/LEAN_PATH so imported files can be checked + audited too.",
394
+
"M6 follow-on: DONE (M6 → 100%) — lake-env resolution (`lake env lean` under a lakefile) so IMPORTED Lean files elaborate + get #print-axioms-audited too, not just import-free ones. Dogfooded on a built lake project.",
"M3 follow-on: DONE — `reason --workspace <ws>` sources real verdicts from a `proven/` state (workspace_verdicts) + demotes stale-proven via the content-hash closure. Refinement follow-ons bucket now complete.",
"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.",
384
-
"Next, climb up: M6 (lake-env/LEAN_PATH so imported Lean files get audited), M4 (totality-hole ?name + per-def partial lint for Idris2), M7 (real Echidna HTTP client, feature-gated). Each its own focused draft PR, gate green, real-tool dogfood where installed.",
400
+
"Next, climb up: M4 (totality-hole ?name + per-def partial lint for Idris2), M7 (real Echidna HTTP client, feature-gated — but FIRST confirm Echidna's API actually exists; if not, keep the honest stub). Each its own focused draft PR, gate green, real-tool dogfood where installed.",
0 commit comments