継続更新

検証条件のためのニューラル定理証明:実世界ベンチマーク

ソフトウェアの信頼性を数学的に保証するプログラム検証において、最大の難所である「検証条件(VC)」の自動証明を解決するため、機械学習を用いたニューラル定理証明(NTP)を実世界の複雑なコードに適用する初のベンチマーク「NTP4VC」を構築した。

検証条件のためのニューラル定理証明:実世界ベンチマーク の図解
論文図解

TL;DR(結論)

ソフトウェアの信頼性を数学的に保証するプログラム検証において、最大の難所である「検証条件(VC)」の自動証明を解決するため、機械学習を用いたニューラル定理証明(NTP)を実世界の複雑なコードに適用する初のベンチマーク「NTP4VC」を構築した。 LinuxカーネルやContiki-OSといった産業規模のプロジェクトから、Why3やFrama-Cなどの既存ツールを用いてVCを抽出し、専門家が作成した2400以上の規則に基づき、論理的な意味を保持したままIsabelle、Lean、Rocqの各形式言語へ自動翻訳する高信頼なパイプラインを実現した。 最新の言語モデルや定理証明に特化したモデルを用いて評価した結果、成功率は最高でも約2%に留まり、既存の自動定理証明器(ATP)が苦手とする複雑な論理問題に対して、現在のAI技術には依然として巨大な課題と研究の余地があることが浮き彫りになった。

なぜこの問題か

プログラム検証は半世紀以上にわたり、ソフトウェアの信頼性を数学的な厳密さで保証するための基盤技術として研究されてきたが、その普及は安全性が極めて重視される特定の領域に限定されている。この普及を妨げている最大の要因は、プログラムの正当性を論理式として符号化した「検証条件(VC)」の証明に、膨大な手動作業と専門知識が必要となる点にある。通常、検証ワークフローでは検証条件生成器(VCG)がVCを作成し、それを自動定理証明器(ATP)が処理するが、既存のATPは特定の領域の問題には強いものの、複雑な実世界のコードに対しては証明に失敗したりタイムアウトしたりすることが非常に多い。例えば、産業界で広く利用されているFrama-Cを用いた場合、連結リストのライブラリを検証するために、元のC言語のコード量に匹敵する約600行もの注釈(アノテーション)を手動で記述しなければならないケースがある。このように、VCの自動証明能力の不足がプログラム検証全体のボトルネックとなっており、人間による介入を減らすための新しいアプローチが切実に求められている。…

核心:何を提案したのか

本研究の核心は、プログラム検証における自動証明の限界を打破するために、ニューラル定理証明を検証条件(VC)に適用する「NTP4VC」というタスクを定義し、その評価のための初の実世界マルチ言語ベンチマークを構築したことにある。このベンチマークは、LinuxカーネルのスケジューラやContiki-OSのメモリ管理プログラム、さらにはC++の標準テンプレートライブラリ(STL)の一部といった、実際に運用されている産業規模のプロジェクトから抽出されたVCで構成されている。既存のNTP研究が主に数学的な定理の証明やパズル的な問題に焦点を当てていたのに対し、本提案はプログラムの動作保証という実用的かつ産業的な側面に特化している点が最大の特徴である。…

続きはログイン/プランで閲覧できます。

続きを読む

ログインで全文を月 2 本まで無料で読めます

ログインして続きを読む

無料プランで全文は月 2 本まで読めます。

Related

次に読む