Skip to main content
QUICK REVIEW

[論文レビュー] A Monadic Framework for Relational Verification (Functional Pearl).

Niklas Grimm, Kenji Maillard|arXiv (Cornell University)|Feb 28, 2017
Security and Verification in Computing被引用数 1
ひとこと要約

この論文は、計算をモナドとしてモデル化し、SMTベースの自動化、ユーザー定義効果、モナド的再帰化を活用することで、効果的プログラムの関係的性質を検証するF*における単一的フレームワークを提示している。関係的性質—情報フロー制御、プログラム同等性、暗号的セキュリティ—の検証は、単一検証と比較して最小限の追加作業で実現可能であることが示された。

ABSTRACT

Relational properties describe multiple runs of one or more programs. They characterize many useful notions of security, program refinement, and equivalence for programs with diverse computational effects, and they have received much attention in the recent literature. Rather than developing separate tools for special classes of effects and relational properties, we advocate using a general purpose proof assistant as a unifying framework for the relational verification of effectful programs. The essence of our approach is to model effectful computations using monads and to prove relational properties on their monadic representations, making the most of existing support for reasoning about pure programs. We apply this method in F* and evaluate it by encoding a variety of relational program analyses, including information flow control, program equivalence and refinement at higher order, correctness of program optimizations and game-based cryptographic security. By relying on SMT-based automation, unary weakest preconditions, user-defined effects, and monadic reification, we show that, compared to unary properties, verifying relational properties requires little additional effort from the F* programmer.

研究の動機と目的

  • 計算的効果を伴うプログラムにおける多様な関係的性質の検証を統一すること。
  • 各クラスの関係的性質と効果ごとに専用ツールを構築するための工学的作業を削減すること。
  • 証明支援ツールにおける純粋なプログラムの推論の既存サポートを活用して、効果的で関係的なプログラムの検証を行うこと。
  • 情報フロー、プログラム同等性、暗号的セキュリティを含む、さまざまな実用的解析に対してフレームワークを評価すること。
  • モナド的抽象化とSMT自動化を用いることで、関係的検証が単一検証と同等に軽量に行えることを示すこと。

提案手法

  • 計算的効果をモナドとしてモデル化し、計算的効果を構造的にカプセル化すること。
  • 関係的性質を計算のペア上のモナド的述語として表現すること。
  • 関係的推論に伴う証明義務をSMTベースの自動化で解決すること。
  • F*におけるユーザー定義効果を活用して、特定の計算的動作を正確に捉え、それらを推論すること。
  • モナド的再帰化を適用して、関係的仕様を型システムに直接埋め込むことにより、ツール支援を向上させること。
  • 関係的解析(例:プログラム同等性、リファインメント、セキュリティ)をF*におけるモナド的証明としてエンコードすること。

実験結果

リサーチクエスチョン

  • RQ1F*のような汎用的証明支援ツールは、効果的プログラムにおける多様な関係的性質の検証に効果的に使用できるか?
  • RQ2モナドによる効果のモデル化が、関係的性質の検証の複雑さをどの程度軽減できるか?
  • RQ3SMTベースの自動化とユーザー定義効果の統合が、関係的検証の実用性にどのように影響するか?
  • RQ4モナド的抽象化を用いることで、関係的検証を単一検証と同等に軽量に行えるか?
  • RQ5情報フロー、プログラム同等性、暗号的セキュリティを含む多様な解析において、このフレームワークはどの程度スケーラブルか?

主な発見

  • SMT自動化とモナド的抽象化のおかげで、このモナド的フレームワークにより、関係的性質の検証が単一検証と同等の作業量で実現可能である。
  • F*におけるユーザー定義効果により、計算的動作の正確なモデル化が可能となり、関係的証明におけるモジュラリティと表現力が向上した。
  • モナド的再帰化により、関係的仕様を型システムに直接埋め込むことができ、ツール支援と検証支援が強化された。
  • このフレームワークは、高階関数的プログラム同等性やゲームベースの暗号的セキュリティといった複雑な解析を効果的にエンコードできた。
  • このアプローチを用いた関係的検証は、純粋な単一性質の検証と比較して、プログラマーが追加で行う作業がほとんど不要である。
  • この方法は、情報フロー制御やプログラム最適化の正しさを含む多様な分野にスケーラブルに適用可能である。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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