mcpField
C
cs-formal

cs-formal

github.com/alphaonedev测试与质量56 次安装
代码仓库

关于 cs-formal

cs-formal 是用于软件属性与规格验证的 OpenClaw skill,面向需要形式化方法的开发和研究工作。它涵盖 Hoare 三元组、TLA+、Coq、Lean 和类型论相关流程。

主要功能

  1. 01检查 Hoare 三元组
  2. 02生成并检查 TLA+ 模型
  3. 03使用 Coq 和 Lean 证明
  4. 04求值 System F 构造
  5. 05以 JSON 导出证明和模型

适用场景

  1. 01检查代码前置条件与后置条件
  2. 02对并发系统行为进行模型检查
  3. 03使用依赖类型证明定理

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill cs-formal

安装后在 Claude Code 中输入/cs-formal确认已加载。

详细介绍

cs-formal

用途

此技能提供在计算机科学中应用形式化方法的工具,包括类型论(HoTT 和 System F)、逻辑系统、Hoare 三元组、用于模型检查的 TLA+,以及在 Coq 或 Lean 中进行验证。可用于证明程序正确性并验证规范。

适用场景

在验证软件属性时使用此技能,例如使用 TLA+ 检查分布式系统中的并发错误、在依赖类型中证明定理(例如 HoTT),或通过 Hoare 三元组检查代码不变量。此技能适用于安全关键代码、学术证明,或将形式化验证集成到开发工作流中。

主要功能

  • 解析并验证 Hoare 三元组:例如,{P} C {Q},其中包含前置条件和后置条件。
  • 生成 TLA+ 规范,用于对并发系统进行模型检查。
  • 使用 Coq/Lean 进行定理证明,包括归纳类型和策略。
  • 计算类型论构造,例如 System F 多态函数。
  • 使用 OpenClaw 的 API 将证明或模型导出为 JSON,以便集成。

使用模式

通过 OpenClaw 的 CLI 进行交互式会话,或通过 API 执行脚本化工作流。使用 CLI 时,命令前缀为 openclaw cs-formal。使用 /api/cs-formal/verify 等 API 端点,并提供 JSON 负载。始终指定工具(例如 --tool coq)和输入文件。对于流水线,可通过管道将输出传递给其他技能,例如先验证 TLA+ 模型,再分析结果。

常用命令/API

使用 OpenClaw 的 CLI 直接执行:

  • openclaw cs-formal verify --tool coq --file proof.v --tactic induction:使用归纳策略对 proof.v 执行 Coq 证明。
  • openclaw cs-formal check-hoare --pre "{x > 0}" --code "x = x + 1" --post "{x > 1}":验证 Hoare 三元组。
  • openclaw cs-formal model --tool tla --spec "Init == ... Next == ...":生成并检查 TLA+ 模型。

调用 API 时,向 https://api.openclaw.ai/cs-formal/verify 发送 POST 请求,并提供类似以下内容的 JSON 请求体:

{"tool": "lean", "file": "theorem.lean", "options": {"tactic": "simp"}}

在请求头中通过环境变量 $OPENCLAW_API_KEY 设置身份验证,例如 Authorization: Bearer $OPENCLAW_API_KEY。配置文件应采用 YAML 格式,例如:

tool: coq
file: proof.v
tactics:
  - intro
  - apply

集成说明

在 VS Code 等 IDE 中集成时,可将 OpenClaw 添加为插件,并在 .openclawrc 文件中进行配置:cs-formal: { apiKey: $OPENCLAW_API_KEY, defaultTool: "tla" }。对于 CI/CD,可使用如下脚本:export OPENCLAW_API_KEY=your_key; openclaw cs-formal verify --tool lean --file path/to/file。与其他技能结合使用,例如将输出通过管道传递给“debugging”技能进行错误分析。确保已通过 apt install coq 或类似命令安装 Coq 或 TLA+ 等依赖项。

错误处理

使用 openclaw cs-formal lint --tool tla --file spec.tla 检查常见错误,例如 TLA+ 规范中的语法问题(如缺少运算符)。此命令会返回包含错误代码的 JSON(例如,“TLA001: Undefined constant”)。对于 Coq 中的证明失败,可解析输出中的“stuck”状态,并尝试调整策略,例如某个策略失败时,使用 openclaw cs-formal retry --tactic alternative。通过检查 HTTP 状态码(例如,身份验证问题对应 401)处理 API 错误;如果网络故障,则回退到本地模式。始终验证输入,例如确保 Hoare 三元组的条件是格式正确的字符串。

具体使用示例

  1. **验证循环的简单 Hoare 三元组:**使用 openclaw cs-formal check-hoare --pre "{n >= 0}" --code "WHILE n > 0 INVARIANT n >= 0 DO n := n - 1 END" --post "{n = 0}" 确认不变量成立,然后导出结果以供进一步分析。
  2. **使用 TLA+ 对并发系统进行模型检查:**运行 openclaw cs-formal model --tool tla --spec "CONSTANT N \\n VARIABLE x \\n Init == x = 0 \\n Next == x' = x + 1" 检测死锁,并将输出集成到测试流水线中。

图关系

  • 相关领域:“algorithms”(用于算法设计中的逻辑证明)、“software-engineering”(用于代码审查中的验证)、“data-structures”(用于数据建模中的类型论应用)。
  • 集群:通过“computer-science”集群连接,共享计算机科学工具。

评论

支持 Markdown