Lean workflows
中文 · Installation · Usage
Proof tools
MathCode works directly on Lean files in the selected workspace. The agent
chooses tools as needed; /lean provides optional guidance.
| Tool | Use |
|---|---|
LeanGoal |
Inspect a goal at an explicit source position. |
LeanCheck |
Compile a file or temporary candidate for feedback. |
LeanSearch |
Search declarations through one selected provider. |
LeanVerify |
Strictly verify one fully qualified declaration. |
Only a successful LeanVerify result with data.verified=true certifies
completion. Its default timeout is 1,200 seconds; timeout_s can be set up to
3,600 seconds. Goal/check feedback alone is not a certificate.
The agent may use helper lemmas, subgoals, branching and theorem reuse. Atomic proof tools do not silently store theorems, add axioms, or update a vault.
Theorem library
/theorem-store store <file> <qualified-declaration>
/theorem-store sync
/theorem-store check
/theorem-store status
store verifies and stores one explicit theorem. It rechecks the source and
dependencies, verifies the renamed declaration in Stored.lean, and builds an
importable module. Failed publication rolls back the library update. Compilation
and publication each have a 300-second build budget.
sync discovers candidates and asks which declarations to store. check
compile-checks the assembled library; status reports stored count and vault
information. LibSearch is available only with an active vault through
MATHCODE_OBSIDIAN_VAULT or /obsidian on. Without one, use LeanSearch.
Axiom library
/axiomatize "A is faster than B"
/axiomatize list
/axiomatize check
/axiomatize remove <name>
Declarations are stored per vault with Lean compile checks and a consistency review. Import or reference them explicitly when they belong in the proof context. Atomic Lean calls do not inject stored assumptions automatically.
Obsidian
/obsidian on
/obsidian off
/obsidian generate
Use generate after changing proofs, then open the vault in Obsidian Graph View
to inspect dependencies. Lemma notes include definitions queried from Mathlib.
Generation updates MathCode-managed notes and recognized legacy projections;
it preserves unrelated user notes and fails on conflicting filenames.
Paper catalog IDs must not collide. If another paper already has the ID derived from a title and authors, choose a distinct ID or another vault. Dependency-cycle errors identify the involved claims and how to repair the catalog.
Optional feedback backends
Eligible generic compile callers can use the in-process REPL with
MATHCODE_LEAN_REPL=1. Atomic proof tools do not use that cache.
On macOS, an external Kimina Lean Server can provide LeanGoal and LeanCheck
feedback:
MATHCODE_KIMINA_SERVER=1
MATHCODE_KIMINA_CMD="/absolute/path/to/kimina-lean-server/.venv/bin/python -m server"
MATHCODE_KIMINA_CWD=/absolute/path/to/kimina-lean-server
MATHCODE_KIMINA_PROJECT_ROOT=/absolute/path/to/served-lean-project
The declared project and Lean version must match the current project. Start
Kimina directly with Python; any virtualenv must be below MATHCODE_KIMINA_CWD.
MathCode launches it in a loopback-only sandbox without provider credentials,
with writes limited to private scratch space. Setup, compatibility or transport
failures fall back to the pinned subprocess and report a warning.
Kimina feedback is not a completion certificate. LeanVerify and isolated paper
agents always use fresh isolated subprocesses. Linux and Windows use pinned
subprocesses for this feedback path; the release archives themselves support
only the platforms listed in the installation guide.