Skip to main content
QUICK REVIEW

[論文レビュー] Formal verification in Coq of program properties involving the global state effect

Jean‐Guillaume Dumas, Dominique Duval|arXiv (Cornell University)|Oct 2, 2013
Logic, programming, and type systems参考文献 12被引用数 4
ひとこと要約

この論文は、命令型プログラムにおけるグローバルステート効果を形式的に検証するためのCoqベースのフレームワークを提示する。装飾付き証明システムを用い、ステート効果を構文から分離することで、ステート効果を項の装飾として符号化し、圏論的意味論を活用することで、リードとアップデート操作の可換性といった性質の機械化された検証を可能にする。完全な証明は再利用可能なCoqライブラリに統合されている。

ABSTRACT

The syntax of an imperative language does not mention explicitly the state, while its denotational semantics has to mention it. In this paper we present a framework for the verification in Coq of properties of programs manipulating the global state effect. These properties are expressed in a proof system which is close to the syntax, as in effect systems, in the sense that the state does not appear explicitly in the type of expressions which manipulate it. Rather, the state appears via decorations added to terms and to equations. In this system, proofs of programs thus present two aspects: properties can be verified {\em up to effects} or the effects can be taken into account. The design of our Coq library consequently reflects these two aspects: our framework is centered around the construction of two inductive and dependent types, one for terms up to effects and one for the manipulation of decorations.

研究の動機と目的

  • 構文に明示的に表れないが意味論に影響を与えるグローバルステートを操作する命令型プログラムの性質を形式的に検証する課題に対処すること。
  • 副作用、特にグローバルステート効果を扱うプログラムについての等式的推論を支援するCoqで検証されたフレームワークを開発すること。
  • 効果を追跡する装飾を用いることで、内部ステート表現を露呈せずにプログラムの性質の検証を可能にすること。
  • 既知のステート効果性質の証明(例:リード/アップデートの可換性)を機械化し、再利用可能なCoqライブラリとして統合し、効果付きプログラムの推論を可能にすること。

提案手法

  • フレームワークは、効果システムにインspiredされた装飾付き証明システムを用い、ステート効果は型ではなく、項および等式に付加された注釈によって追跡される。
  • グローバルステート効果は、特に強いモノイドと前モノイド圏を用いた圏論的構成によってモデル化され、状態付き操作の意味論が形式化される。
  • Coqにおいて2つの帰納的で依存型の型を定義する:1つはステートを無視した効果までの項を表し、もう1つはステート効果を追跡する装飾を扱う。
  • 弱い等値性、強い等値性、順列、射影といった重要な規則がCoqに符号化され、段階的等式的推論を支援する。
  • フレームワークは2段階の検証プロセスをサポートする:まず効果が同一であるか(効果装飾を用いて)チェックし、次に結果が同一であるか(弱い等値性を用いて)検証する。
  • Coqライブラリはこれらの規則を統合し、完全な証明の機械化を可能にし、リードとアップデート操作の可換性の例で実証されている。

実験結果

リサーチクエスチョン

  • RQ1内部ステート表現から抽象化された形で、グローバルステート効果を伴うプログラムの性質をどのように形式的に検証できるか。
  • RQ2ステート効果用の装飾付き等式証明システムをCoqで完全に機械化可能か、数学的厳密性を保ったままか。
  • RQ3効果と結果の間の責任の分離を、Coqのような証明支援ツールでどのように形式化・検証できるか。
  • RQ4フレームワークは、複雑な状態付きプログラムの性質のモジュラで再利用可能な検証をどの程度サポートするか。
  • RQ5フレームワークは、ステート効果のヒルベルト=ポスト完全性に関する複雑な証明に欠陥を検出できるか。

主な発見

  • フレームワークは、リードとアップデート操作の可換性の検証を成功裏に機械化し、変数の値を読み取ることと別の変数を更新することが、順序を入れ替えてもよいことを証明した。
  • 証明 `lookup j ∘ update i ∼ pi2 ∘ (perm prod (update i) id) ∘ (prod id (lookup j)) ∘ inv pi1` はCoqで完全に検証され、フレームワークの複雑な等式的推論能力を示している。
  • Coqライブラリは、http://coqeffects.forge.imag.fr で入手可能で、グローバルステート効果のヒルベルト=ポスト完全性について16ページ以上の形式化証明をサポートしている。
  • フレームワークは、初期版のヒルベルト=ポスト完全性証明に顕在しない欠陥を発見するのを助け、その有用性、特に微細な誤りの検出能力を裏付けた。
  • このアプローチによりモジュラな検証が可能になる:まず装飾を用いて効果をチェックし、その後結果を比較することで、拡張可能で構造的な推論が可能になる。
  • フレームワークは拡張可能であり、ステート効果の基礎的性質の検証に成功しており、例外など他の効果への拡張も可能性を有する。

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

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

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

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