/install formal-provers
formal-methods
Formal verification tools for the academic workspace. Type-check Lean 4 proofs, verify Coq theories, and solve SMT satisfiability problems with Z3.
Prerequisites
This skill requires the following binaries installed locally (declared in metadata.openclaw.requires.bins):
| Binary | Install |
|---|---|
lean |
Lean 4 via elan |
coqc |
Coq via opam install coq |
z3 |
Z3 via package manager or GitHub releases |
Use prover_status to check which provers are available before use. The skill gracefully handles missing binaries — only installed provers will work.
Source: github.com/Prismer-AI/Prismer (Apache-2.0)
Description
This skill invokes locally installed formal verification provers via subprocess. No Docker, containers, or external services required.
Execution model: Each invocation writes source code to a temporary directory (os.tmpdir()/formal-methods-\x3Chash>/), runs the prover binary with cwd set to that directory, captures stdout/stderr, and applies a 60-second timeout. The exact commands are:
- Lean:
lean \x3Cfilepath>— may read Lean 4 stdlib and elan-managed toolchains from~/.elan/ - Coq:
coqc \x3Cfilepath>— may read Coq stdlib and opam-managed packages from the opam switch - Z3:
z3 \x3Cfilepath>— self-contained, only reads the input file. Accepts declarative SMT-LIB2 format only.
Filesystem access: The skill itself only writes to the temp directory. However, Lean and Coq read their installed standard libraries and search paths (managed by elan/opam) as part of normal operation. The skill does not explicitly constrain --include paths or environment variables.
Network access: The skill does not make network requests. However, if Lean source contains import of unresolved packages, lake tooling could theoretically attempt a fetch — this is a Lean runtime behavior, not initiated by the skill. To prevent this, avoid lakefile.lean or lake-manifest.json in the temp directory (which the skill does not create).
Usage Examples
- "Check if this Lean 4 proof type-checks"
- "Verify my Coq induction proof"
- "Is this SMT formula satisfiable?"
- "What provers are available?"
Process
- Check availability — Use
prover_statusto see which provers are installed - Write proof — Draft your Lean/Coq code or SMT formula
- Verify — Use
lean_check,coq_check, orz3_solveto verify - Iterate — Fix errors based on output and re-check
Tools
lean_check
Type-check Lean 4 code.
Parameters:
code(string, required): Lean 4 source codefilename(string, optional): Source filename (default:check.lean)
Returns: { success, output, errors, returncode }
Example:
{ "code": "theorem add_comm (a b : Nat) : a + b = b + a := Nat.add_comm a b" }
coq_check
Check a Coq proof for correctness.
Parameters:
code(string, required): Coq source codefilename(string, optional): Source filename (default:check.v)
Returns: { success, compiled, output, errors, returncode }
Example:
{ "code": "Theorem plus_comm : forall n m : nat, n + m = m + n.\
Proof. intros. lia. Qed." }
coq_compile
Compile a Coq file to a .vo object file.
Parameters:
code(string, required): Coq source codefilename(string, optional): Source filename (default:compile.v)
Returns: { success, compiled, output, errors, returncode }
z3_solve
Solve a satisfiability problem using Z3 with SMT-LIB2 format.
Parameters:
formula(string, required): SMT-LIB2 formula
Returns: { success, result, model }
Example:
{ "formula": "(declare-const x Int)\
(assert (> x 5))\
(check-sat)\
(get-model)" }
prover_status
Check which formal provers are available and their versions.
Parameters: None
Returns: { provers: { lean4: { available, version }, coq: { available, version }, z3: { available, version } } }
Notes
- Requires provers declared in
metadata.openclaw.requires.bins:lean,coqc,z3 - Z3 only accepts declarative SMT-LIB2 format — no arbitrary code execution
- Each invocation has a 60-second timeout (
execSyncwithtimeout: 60000) - Temp files are written to
os.tmpdir()/formal-methods-\x3Chash>/ - Lean/Coq will read their installed standard libraries (elan/opam managed) as part of normal type-checking
- The skill itself makes no network requests; Lean imports should avoid lake-managed dependencies to prevent unintended fetches
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install formal-provers - After installation, invoke the skill by name or use
/formal-provers - Provide required inputs per the skill's parameter spec and get structured output
What is Formal Methods?
Formal verification with Lean 4, Coq, and Z3 SMT solver. It is an AI Agent Skill for Claude Code / OpenClaw, with 319 downloads so far.
How do I install Formal Methods?
Run "/install formal-provers" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Formal Methods free?
Yes, Formal Methods is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Formal Methods support?
Formal Methods is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Formal Methods?
It is built and maintained by Will.hou (@willamhou); the current version is v1.0.8.