プログラムの形式検証に使う仕様、一度書いたら直せないのが当たり前でした。それがカスケード的な失敗の元凶になっていたという指摘です。
タイトル: SpecAgent: Empowering Program Verification with Agentic Synthesis of Formal Program Specifications
URL:
📝 概要
C言語プログラムの検証に使うACSL仕様(事前条件・事後条件・ループ不変条件)を、複数の専門エージェントが協調して合成するSpecAgentです。計画立案・検索拡張生成・検証・修復・批評を反復するエージェント的プロセスとして仕様合成を再定式化しています。
❓ 解決する課題
既存手法は一度生成した仕様を不変として扱う「前進のみ」のワークフローのため、下流の関数で検証が失敗しても上流の根本原因である仕様に戻れず、効果のない局所修復を繰り返してしまいます。
💡 方法論と提案手法
計画立案エージェントが対象と依存関係を特定し、検索拡張型の生成エージェントが184件の知識ベースから類似例を注入してACSLを生成。Frama-C/WPによる検証ゲートを通し、修復エージェントが根本原因を診断、批評エージェントがACCEPT・IMPROVE・REPLANの3択で仕様の強度を判定します。
📊 実験結果
DeepSeek-V4で精度96.82%・再現率88.95%を達成し、全ベースラインを上回りました。アブレーションでは修復機能の追加が精度を大きく改善し、完全な構成では生成のみに比べ再現率が8.02ポイント向上。811件の実世界検証対象のうち604件(74.5%)を解決し、コストもPregussやCodexより低く抑えました。
#
プログラム検証# #
AIエージェント#