← 最新の論文
🤖 AI

Combining Mechanical and Agentic Specification Inference for Move

本論文は、Move Prover 向けの仕様推論ツールを提示し、健全な weakest-precondition 分析と自律的コーディング CLI を相乗的に組み合わせることで、検証仕様の自動生成と洗練を実現し、ループ不変条件や構造的不変条件といった複雑な性質を処理しつつ、手作業によるボイラープレートを効果的に削減する。

原著者: Wolfgang Grieskamp, Teng Zhang, Vineeth Kashyap

公開日 2026-05-12
📖 1 分で読めます☕ さくっと読める

原著者: Wolfgang Grieskamp, Teng Zhang, Vineeth Kashyap

原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

複雑な家(「Move スマートコントラクト」と呼ばれるソフトウェア)を建設していると想像してください。その家が安全であることを確認したいとします。つまり、ドアは正しい鍵でしか開かないこと、屋根が決して崩壊しないこと、そして家の中の金庫がお金を安全に守っていることを確認したいのです。

家が安全であることを証明するためには、家の各部がどのように振る舞うべきかを正確に説明する詳細な「ルールブック」(「仕様書」と呼ばれます)を作成する必要があります。このルールブックを手書きで作成するのは、極めて退屈で、単調であり、人間のミスが起こりやすい作業です。それは、家のすべての単一のレンガに対して法的な契約書を書こうとするようなものです。

この論文は、このルールブックを自動的に作成するのを助ける「超スマートな建設アシスタント」として機能する新しいツールについて説明しています。これは、「硬直したロボット」と「創造的な人間」という、非常に異なる種類の二人の助手を組み合わせたものです。

二人の助手

  1. 硬直したロボット(機械的分析):
    これは超精密な電卓のようなものです。設計図(コード)を見て、家が立つために必要な絶対的な最小限のルールを機械的に計算します。「このレバーを引けばドアが開く」といった明白なことを見つけるのが得意です。しかし、複雑でループするタスク(セキュリティガードが巡回ルートを歩くようなもの)になると行き詰まります。なぜガードが円を描いて歩いているのか、そのパターンが何かを理解することはできず、単に動きを見て混乱するだけです。

  2. 創造的な人間(AI エージェント):
    これは「Claude Code」AI です。パターン、慣用句、高レベルの概念を理解するのが得意です。そのセキュリティガードを見て、「ああ、わかった!ガードは順番にすべてのドアを確認しており、確認されたドアの数は常に増えているのだ」と言うことができます。ロボットには理解できない「ループ不変条件」(繰り返される動作のルール)を作成するのが得意です。ただし、AI は時に誤った方向に創造的になり、設計図に実際には一致しないルールを考案してしまうことがあります。

二人が協力する方法

このツールは、これら二人を「モデルコンテキストプロトコル(MCP)」と呼ばれるループの中で組み合わせます。MCP は、彼らを建設現場に接続するウォーキー・トークイのようなシステムです。

  1. ロボットが開始する: コードをスキャンし、基本的で確実な事実(「最弱事前条件」)を書き出します。「わかりました、鍵を持っていればドアは開きます」と言います。
  2. 人間が隙間を埋める: AI はロボットの作業を見て、「ここにループがありますね。パターンを推測してみましょう:カウンターは毎回 1 つずつ増えています」と言います。そして、これらの高レベルなルールを追加します。
  3. 審判が確認する: 「Move Prover」が厳格な建築検査員として機能します。結合されたルールブックを受け取り、それが真実であることを証明しようとします。
    • ルールが機能すれば、素晴らしい!
    • ルールが失敗した場合(例えば、AI が間違ったパターンを推測した場合)、検査員は「反例」を AI に送り返します。
  4. 修正: AI は検査員のメモを読み、自分の間違いに気づき、ルールを書き直します。検査員が満足するまで、このプロセスが繰り返されます。

論文からの実世界の例

著者たちは、このツールを 3 種類の「家」でテストしました。

  • 検索エンジン: リストから特定の項目を探す関数です。ロボットは基本的なロジックを解明しましたが、「これまでに確認された項目の数は、常に総項目数より少ない」ということを推測する必要がありました。
  • 数学の問題: べき乗(例えば 252^5)を計算する関数です。ロボットは数学を処理しましたが、ループが厄介でした。AI は乗算のパターンを説明する「ヘルパー関数」を考案する必要があり、その後、チームは数学が暴走しないことを証明するために特別な「証明のヒント」(検査員のためのカンニングペーパーのようなもの)を追加する必要がありました。
  • 銀行振込: 二人の間でお金を分割する関数です。これには「グローバル状態」(銀行の元帳)の変更が含まれていました。AI は、お金が一つの口座からもう一つの口座へどのように移動したかを正確に追跡し、途中でお金が生成されたり消滅したりしないことを確認する必要がありました。

なぜこれが重要なのか

これ以前は、これらのルールブックを作成することが大きなボトルネックでした。それは、家のすべての単一の釘に対して契約書を書く弁護士を雇うようなものでした。

  • ロボットは、人間が嫌う退屈で機械的な数学を行います。
  • AIは、ロボットが苦手とするパターン認識を行います。
  • 検査員は、二人のどちらかが嘘をつかないことを保証します。

その結果、開発者が AI に「このコードの安全ルールを書いて」と尋ねると、AI はロボットに導かれ、検査員にチェックされながら、人間が単独で行うよりもはるかに速く、検証済みで安全なルールブックを作成できるシステムが生まれました。

結論

これは、すべてを完璧に解決する魔法の杖ではありません。AI は依然として、近道を取らないようにするために、特定の「スキル」(行動方法に関する指示)によって導かれる必要があります。しかし、これは大きな前進を表しています。機械がロジックを扱い、AI が直感を扱い、形式的な検証者が真実を保証するというパートナーシップが、開発者自身のコーディング環境内ですべて協力して働くという点です。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →