/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
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install formal-provers - 安装完成后,直接呼叫该 Skill 的名称或使用
/formal-provers触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Formal Methods 是什么?
Formal verification with Lean 4, Coq, and Z3 SMT solver. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 319 次。
如何安装 Formal Methods?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install formal-provers」即可一键安装,无需额外配置。
Formal Methods 是免费的吗?
是的,Formal Methods 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Formal Methods 支持哪些平台?
Formal Methods 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Formal Methods?
由 Will.hou(@willamhou)开发并维护,当前版本 v1.0.8。