cs-formal について
cs-formalは、ソフトウェアの性質や仕様に形式手法を適用するOpenClawスキルです。Hoareトリプル、TLA+、Coq、Lean、型理論を使った検証に対応します。
主な機能
- 01Hoareトリプルの検査
- 02TLA+モデルの生成と検査
- 03CoqとLeanによる証明
- 04System F構成要素の評価
- 05証明とモデルのJSON出力
活用シーン
- 01コードの事前条件と事後条件の確認
- 02並行システムのモデル検査
- 03依存型による定理証明
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill cs-formalインストール後、Claude Code で/cs-formalを入力して読み込まれたか確認します。
詳細
cs-formal
目的
このスキルは、型理論(HoTT および System F)、論理体系、ホーアの三つ組、モデル検査のための TLA+、Coq または Lean による検証など、コンピューターサイエンスにおける形式手法を適用するためのツールを提供します。プログラムの正しさを証明し、仕様を検証する際に使用します。
使用する場面
分散システムにおける並行性のバグ(例:TLA+ を使用)などのソフトウェアの性質を検証する場合、依存型(例:HoTT)で定理を証明する場合、またはホーアの三つ組を使ってコードの不変条件を確認する場合に、このスキルを適用してください。セーフティクリティカルなコード、学術的な証明、または開発ワークフローへの形式検証の統合に使用します。
主な機能
- ホーアの三つ組を解析して検証します。例:事前条件/事後条件を表す
{P} C {Q}。 - 並行システムのモデル検査用に TLA+ 仕様を生成します。
- 帰納型やタクティックを含む定理証明のため、Coq/Lean と対話します。
- System F の多相関数など、型理論の構成要素を評価します。
- OpenClaw の API を使用して、統合用に証明やモデルを JSON としてエクスポートします。
使用パターン
対話型セッションには OpenClaw の CLI から、スクリプト化されたワークフローには API からこのスキルを呼び出します。CLI では、コマンドの先頭に openclaw cs-formal を付けます。JSON ペイロードを使用する /api/cs-formal/verify などの API エンドポイントを使用します。常にツール(例:--tool coq)と入力ファイルを指定してください。パイプラインでは、出力をパイプでつなぐなどして他のスキルと連携させます。たとえば、TLA+ モデルを検証してから結果を分析します。
主なコマンド/API
直接実行するには、OpenClaw の CLI を使用します。
openclaw cs-formal verify --tool coq --file proof.v --tactic induction:induction タクティックを使って proof.v に対する Coq の証明を実行します。openclaw cs-formal check-hoare --pre "{x > 0}" --code "x = x + 1" --post "{x > 1}":ホーアの三つ組を検証します。openclaw cs-formal model --tool tla --spec "Init == ... Next == ...":TLA+ モデルを生成して検査します。
API 呼び出しでは、次のような JSON 本文を指定して https://api.openclaw.ai/cs-formal/verify に POST リクエストを送信します。
{"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
統合に関する注意事項
OpenClaw をプラグインとして追加することで、VS Code などの IDE と統合できます。.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 のようなスクリプトを使用します。他のスキルと組み合わせることもできます。たとえば、出力を「デバッグ」スキルにパイプで渡してエラーを分析します。Coq や TLA+ などの依存関係が apt install coq などでインストールされていることを確認してください。
エラー処理
openclaw cs-formal lint --tool tla --file spec.tla を実行して、TLA+ 仕様の構文の問題(演算子の不足など)といった一般的なエラーを確認します。このコマンドは、エラーコード(例:「TLA001: Undefined constant」)を含む JSON を返します。Coq の証明に失敗した場合は、出力から「stuck」状態を解析し、タクティックを調整して再試行します。たとえば、タクティックが失敗した場合は、openclaw cs-formal retry --tactic alternative を使用します。API エラーが発生した場合は、HTTP ステータスコード(認証の問題を示す 401 など)を確認し、ネットワークに問題があればローカルモードに切り替えます。ホーアの三つ組の条件が整形式の文字列であることを確認するなど、入力は必ず検証してください。
具体的な使用例
- ループの単純なホーアの三つ組を検証する:
openclaw cs-formal check-hoare --pre "{n >= 0}" --code "WHILE n > 0 INVARIANT n >= 0 DO n := n - 1 END" --post "{n = 0}"を使用して不変条件が成り立つことを確認し、結果をエクスポートしてさらに分析します。 - 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」クラスターを介して、共通のコンピューターサイエンスツールとつながっています。