Anthropicは、Claudeモデルが既存コードの形式検証用の証明を自動生成できると発表した。GoogleのOSS-Fuzzプロジェクトに参加する123のライブラリを使ったテストでは、Claudeは数週間でおよそ1億8,000万行の証明を生成した。証明はRocq検証器でチェックされ、Anthropicによると、人間のレビュアーの作業はほとんど必要なかった。
システムが実際に行ったこと
Claudeは新しいプログラムを書いたわけではない。クラッシュテストのケースを数学的な命題に置き換え、コンパイル済みの機械語を解析して、コードがその命題を満たすことを示す形式的な証明を出力した。バグに遭遇した場合は、Claude自身がコードを修正することも認められていた。広く使われているPDFリーダーを1週間かけて調べたところ、Claudeは通常なら1年間で報告されるのと同数のセキュリティバグを発見した。別のライブラリでは、10年以上見つからなかった論理上の誤りも発見した。
制限とコスト
Anthropicは、証明が有効なのは、特定のプロセッサアーキテクチャ上で動くシングルスレッドのプログラムで、入力が64 MB未満の場合に限られると注意を促している。計算負荷は高く、個々の証明で数億トークンに達することもあるが、同社は総費用を明らかにしていない。より小規模なテストでは、新しいOpus 5.5モデルは、前世代のモデルに比べてトークンを約40%少なく使い、証明の半数を完成できた。
なぜ重要か
AIがコードを自動検証できれば、開発者はバグ探しやパッチのレビューに費やす時間を減らせる可能性があり、とりわけ安全性が重要なソフトウェアで役立つ。ただし、現在の手法にはハードウェアや入力サイズの厳しい制約があるため、一般的なアプリケーションの多くでは、従来のテストが依然として必要だ。