מושגי ליבה
プログラム検証器の信頼性を高めるためには、入力プログラムの意味論を中間検証言語プログラムに忠実に捕捉する前端の翻訳の正式な検証が不可欠である。
תקציר
本論文では、プログラム検証器の前端翻訳の正式な検証のための新しい手法を提案する。この手法は、入力言語と中間検証言語の正式な意味論に基づいて、前端翻訳の正しさを自動的に証明する。
具体的には以下の通り:
入力言語(Viper)と中間検証言語(Boogie)の正式な意味論をIsabelleで定式化する。
前端翻訳の正しさを前方シミュレーション(forward simulation)を用いて証明する手法を開発する。この手法は以下の特徴を持つ:
言語間のセマンティックギャップを小さな部分証明に分解することで、自動化を可能にする
一般的な前方シミュレーション判断式を定義し、様々な翻訳の側面に適用できるようにする
非局所的な検査条件を適切に扱うための仕組みを提供する
既存のViper-to-Boogie実装に対して、提案手法を適用し、自動的に前方シミュレーション証明を生成・検査する。
評価の結果、提案手法は効果的であり、Viper-to-Boogie翻訳の正しさを自動的に検証できることを示す。