本論文では、関数型プログラムが状態を隠蔽するライブラリと相互作用する際の表現不変量を自動的に検証する新しい手法を提案している。
主な内容は以下の通り:
表現不変量を、状態依存の履歴を表す記号的有限オートマトン (SFA) を用いて表現する。これにより、状態依存の制約を柔軟に表現できる。
SFA を用いた表現不変量を、型システムに組み込むことで、プログラムの型検査時に表現不変量の保存を自動的に検証できるようにする。提案する Hoare Automata Types (HATs) は、SFA を用いた事前条件と事後条件を型に組み込むことで、状態依存の振る舞いを記述する。
HATs に対する双方向型検査アルゴリズムを開発し、SMT ソルバを用いた自動検証を可能にする。
提案手法を実装したツール Marple を用いて、OCaml の実用的なデータ構造実装の表現不変量を自動的に検証できることを示す。これは、状態依存の表現不変量を自動的に検証できる初めてのシステムである。
Egy másik nyelvre
a forrásanyagból
arxiv.org
Mélyebb kérdések