[論文レビュー] Hyper Hoare Logic: (Dis-)Proving Program Hyperproperties (extended version)
この論文は、伝統的なホア論理を一般化することで、任意のプログラム状態の集合について推論できる新たなプログラム論理、Hyper Hoare Logicを導入する。これにより、非干渉性などのハイパープロパティの証明と、バグの存在などの性質の反証を、1つの形式的体系内で可能にする。主な貢献は、従来のホア論理では到達できない、複雑なトレースおよびハイパープロパティを包括的に捉える、健全かつ完全な論理であり、Isabelle/HOLで形式的証明が確立されている。
Hoare logics are proof systems that allow one to formally establish properties of computer programs. Traditional Hoare logics prove properties of individual program executions (such as functional correctness). Hoare logic has been generalized to prove also properties of multiple executions of a program (so-called hyperproperties, such as determinism or non-interference). These program logics prove the absence of (bad combinations of) executions. On the other hand, program logics similar to Hoare logic have been proposed to disprove program properties (e.g., Incorrectness Logic), by proving the existence of (bad combinations of) executions. All of these logics have in common that they specify program properties using assertions over a fixed number of states, for instance, a single pre- and post-state for functional properties or pairs of pre- and post-states for non-interference. In this paper, we present Hyper Hoare Logic, a generalization of Hoare logic that lifts assertions to properties of arbitrary sets of states. The resulting logic is simple yet expressive: its judgments can express arbitrary program hyperproperties, a particular class of hyperproperties over the set of terminating executions of a program (including properties of individual program executions). By allowing assertions to reason about sets of states, Hyper Hoare Logic can reason about both the absence and the existence of (combinations of) executions, and, thereby, supports both proving and disproving program (hyper-)properties within the same logic, including (hyper-)properties that no existing Hoare logic can express. We prove that Hyper Hoare Logic is sound and complete, and demonstrate that it captures important proof principles naturally. All our technical results have been proved in Isabelle/HOL.
研究の動機と目的
- 従来のホア論理が悪い実行組み合わせの不在の証明しかできないという制限を克服し、このような組み合わせの存在についての推論を可能にする。
- 証明と反証の能力を1つの論理に統合し、過剰近似(ハイパーサイフティ)と不足近似(不正誤り)の推論の二元論を克服する。
- 単一または固定サイズの状態タプルから、任意の状態集合へのアサーションの一般化を実現し、非定数または可変数の実行を含む複雑なハイパープロパティの表現を可能にする。
- 終了するプログラムの任意のハイパープロパティの表現と検証に関して、論理が健全かつ完全であることを示す。
- 主な証明原理(例:分岐における同期的推論)が自然に符号化可能であることを示し、実用的検証ツールの基盤を提供する。
提案手法
- 標準的なホア論理の判断を拡張し、固定サイズの状態タプルではなく、任意の状態集合に関する前件と後件のアサーションを許容する。
- プログラム命令が初期状態集合と最終状態集合の間の関係と関連付けられる一般化された判断形式を導入し、集合に基づくアサーションで表現する。
- テンソル積演算子(例:$A igotimes_{x=1,2} B$)を用いた新しいアサーションクラスを定義し、異なる分岐における状態の不重複部分集合を同期的に推論可能にする。
- 2つの異なるプログラム分岐を並列に推論できる同期的推論規則を設計し、構造的類似性を活用して証明のモジュラリティを向上させる。
- Isabelle/HOLにおける形式的定式化を用いて論理の健全性と完全性を証明し、すべての判断が論理的に妥当であり、すべての妥当なハイパープロパティが導出可能であることを保証する。
- 同一の論理的枠組み内で、決定性、非干渉性、バグの存在といった複雑なハイパープロパティを符号化することで、表現力の高さを示す。
実験結果
リサーチクエスチョン
- RQ11つのプログラム論理が、実行の組み合わせの存在と不在の両方を表現可能か。特に、バグや非決定性を含むものも含む。
- RQ2任意の状態集合に関するアサーションが、非有界の実行数を含むトレースおよびハイパープロパティをすべて捉えられるか。
- RQ3構造的に類似しているが同一ではない分岐に対しても、ホア風の論理で分岐間の同期的推論が可能か。
- RQ4このような論理が、終了するプログラムのすべてのハイパープロパティについて健全かつ完全か。
- RQ5関係的推論や不正誤りのための既存の証明原理が、統一されたフレームワーク内に自然に埋め込めるか。
主な発見
- Hyper Hoare Logicは、終了するプログラムのすべてのハイパープロパティについて健全かつ完全である。これは、実行集合に関する推論の基盤的結果を確立する。
- 従来のホア論理では到達不可能だったハイパープロパティを表現・検証可能である。特に、実行の悪い組み合わせ(例:実行時エラーの存在、非決定性)の存在を含むものも含む。
- 同期的推論規則により、構造的類似性を持つが異なる分岐を有するプログラムのモジュラリティの高い検証が可能になり、証明の効率が向上する。
- Isabelle/HOLにおける論理およびそのメタ理論の形式的定式化により、正しさが保証され、ツール連携およびさらなる検証ツール開発の基盤が得られる。
- この論理は既存のアプローチを包含する。非干渉性のための過剰近似推論、バグ検出のための不足近似推論、およびハイブリッド推論を、1つの統一されたフレームワーク内でサポートする。
- 本論文は、状態集合の推論が、すべてのハイパープロパティを捉えるのに十分であることを示している。完全性定理(定理10)により、このアプローチの表現力が裏付けられている。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。