Skip to main content
QUICK REVIEW

[論文レビュー] Abstraction and Acceleration in SMT-based Model-Checking for Array Programs

Francesco Alberti, Silvio Ghilardi|arXiv (Cornell University)|Apr 16, 2013
Formal Methods in Verification参考文献 38被引用数 9
ひとこと要約

本稿では、SMTに基づく配列プログラムのモデルチェックにおける加速度計算と単調な抽象化の新規統合を提案する。加速度計算により、配列更新遷移の一次式で定義可能な加速を計算し、SMTソルバーにおけるインスタンス化技術を用いて得られるネストされた全称量化子を処理することで、発散のない到達可能性解析を実現する。この手法は、特にネストされたループを含む複雑な配列プログラムにおいて、単独での抽象化や加速度計算よりも顕著に検証収束を改善する。

ABSTRACT

Abstraction (in its various forms) is a powerful established technique in model-checking; still, when unbounded data-structures are concerned, it cannot always cope with divergence phenomena in a satisfactory way. Acceleration is an approach which is widely used to avoid divergence, but it has been applied mostly to integer programs. This paper addresses the problem of accelerating transition relations for unbounded arrays with the ultimate goal of avoiding divergence during reachability analysis of abstract programs. For this, we first design a format to compute accelerations in this domain; then we show how to adapt the so-called 'monotonic abstraction' technique to efficiently handle complex formulas with nested quantifiers generated by the acceleration preprocessing. Notably, our technique can be easily plugged-in into abstraction/refinement loops, and strongly contributes to avoid divergence: experiments conducted with the MCMT model checker attest the effectiveness of our approach on programs with unbounded arrays, where acceleration and abstraction/refinement technologies fail if applied alone.

研究の動機と目的

  • 無限大の配列やネストされたループを含む状況下でも、配列プログラムの到達可能性解析における発散を解消すること。
  • ネストされた量化子を含んでも、一次式で定義可能な配列更新遷移の加速度計算手法を開発すること。
  • 加速度計算によって生じる複雑な論理式を効果的に処理するため、加速度計算と単調な抽象化を統合し、抽象化/精錬ループにおける収束性を向上させること。
  • 加速度計算と抽象化の統合が実用的検証において有効であることを実証すること、特に両者単独では失敗するプログラムにおいて有効であることを示すこと。

提案手法

  • プレスブルグ算術に自由関数記号を含む理論において、配列更新遷移の加速度計算を形式化する。
  • 加速度によって導入される全称量化子を管理するため、単調な抽象化技術を適用し、SMTソルバーにおける効率的なインスタンス化を可能にする。
  • ループを加速された関係に置き換えることで、遷移系を事前処理し、任意の反復回数後の到達状態を1ステップで計算可能にする。
  • MCMTモデルチェッカーに加速度モジュールを統合し、バックワード到達可能性解析に加速度計算と抽象化/精錬を併用する。
  • SMTソルバーの複雑さを軽減するため、加速された論理式に含まれるネストされた量化子を処理するための宣言的インスタンス化戦略を採用する。
  • 加速された遷移系と抽象化/精錬ループを統合し、安全検証における収束性を向上させる。

実験結果

リサーチクエスチョン

  • RQ1無限大の配列によって生じる複雑さがあるにもかかわらず、SMTに基づくモデルチェックにおいて加速度計算が配列更新遷移に効果的に適用可能かどうか。
  • RQ2加速度によって生じるネストされた量化子を、精度を損なわずにSMTソルバーで効率的に処理する方法は何か。
  • RQ3加速度計算と単調な抽象化を統合することで、配列プログラムにおける抽象化/精錬ループにおける収束性はどの程度向上するか。
  • RQ4従来の加速度手法では処理できなかった、ネストされたループや複雑な配列の性質(例:すべての要素が異なること)を含むプログラムを、提案手法が検証可能かどうか。
  • RQ5加速度計算と抽象化の統合により、実世界のベンチマークにおいて検証性能とスケーラビリティに測定可能な向上が見られるか。

主な発見

  • バックワード探索が発散する39個の安全な配列プログラムのうち23個で、加速度計算単体で発散を防止でき、到達可能性解析の安定化を実証した。
  • 加速度計算が成功する13のプログラムで、抽象化単体では収束に失敗しており、両者の相補性を確認した。
  • 加速度計算と抽象化/精錬の併用による統合構成は、60秒の制限時間内に全55のベンチマークを解決し、両者単独では失敗する状況でも完全な収束を達成した。
  • 加速度処理の事前処理オーバーヘッドは最小限であり、不正なプログラムの性能に影響を与えないため、実世界での利用に実用的である。
  • 従来の加速度手法が処理できなかった、ネストされたループや量化子を含む不変条件(例:allDiff)を含む複雑な配列プログラムを、本手法は正常に検証できた。
  • 実験により、加速度計算と抽象化の統合が、SMTに基づく配列プログラムのモデルチェックにおけるスケーラビリティと頑健性を顕著に向上させることを確認した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。