EasyProver、Leanの定理証明を実コード検証へ拡張
導入
自動定理証明の評価対象は、独立した数学問題から実際のプログラムへ広がりつつある。論文「Scaling Lean Theorem Proving for Real-World Code Verification」は、Leanを基盤とする証明システムEasyProverと、実装ベースの検証課題を作るAegisを紹介する。従来のベンチマークが飽和に近づくなか、現実的なソフトウェア検証能力をどう測るかが背景にある。
EasyProverの構成
EasyProverは追加学習を行った専用モデルではなく、既存のフロンティアモデルを複数の役割に分けて動かす。主な構成は次の通りだ。
- 再帰エージェントによる証明目標の分解と推進
- 探索分岐ごとの隔離コンテキスト
- 非同期探索とタクティクの並列試行
- Leanの解析・型検査を支える弾力的なelaborationサービス
PutnamBenchでは672問中669問を証明し、資料にある6件のIMO 2026形式化をすべて完了した。NTP4VCでは600件中597件を解決し、VERINAの189課題についてはすべて証明または反駁を与えた。モデル性能だけでなく、探索の分割と実行管理が大規模な自動証明の成否を左右することが分かる。
Aegisが持ち込む実装レベルの難しさ
研究チームは、既存の手書きベンチマークが簡単になりすぎていると見て、Aegisを設計した。この仕組みは競技プログラミングの問題から安全なRust実装を作り、Aeneasを用いてLeanへ変換し、仕様候補を生成する。固定された命題には、Leanカーネルで確認された証明または反駁が付与される。
生成物は、差分検証されたRust-Leanプログラム対が2,045組、候補仕様が11,533件に達する。課題には固定幅整数演算、明示的な失敗、生成されたループ、型変換、可変操作の関数化が含まれる。抽象的な定理では見えにくい、実装と仕様のずれを評価できる点が特徴だ。
2,000命題の層化サンプルでは、1件あたり30分の制限内に1,054件、52.7%を証明した。これは実コード検証が解決済みという意味ではないが、飽和した数学ベンチマークよりもシステム間の差を測りやすい。データは他の証明器の評価や、強化学習の報酬にも利用できる。
意義と残された課題
この研究は、自動証明の進歩を単純な正解率だけで捉えない方向を示す。探索アーキテクチャ、仕様生成、プログラム変換、そしてカーネル検査済みのラベルが一体となるからだ。Rust実装をLean表現へつなぐことで、抽象命題ではなく具体的なプログラムの振る舞いを検証対象にできる。
一方、52.7%という結果は、長い依存関係や仕様の品質にまだ大きな課題があることも示している。今後は複雑な制御構造を扱う能力や、反駁を人間が確認しやすくする仕組みが重要になる。AIが生成するコードは、動くだけでなく、機械検査可能な保証を伴うかどうかで評価される段階へ進みつつある。
コメント
ログイン状態を確認中…
コメントを読み込み中…