Skip to main content
QUICK REVIEW

[論文レビュー] Certified proofs in programs involving exceptions

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

この論文は、モグィのモノイド的アプローチを装飾付き等式論理で拡張することで、例外を含むプログラムの認証可能な証明システムを提示する。2段階の検証を可能にし、まず純粋な状態で性質を証明し、次に意味的装飾を用いて例外を統合する。整合性が証明されており、Coqで検証された例により、例外の伝搬と処理が示されている。

ABSTRACT

Exception handling is provided by most modern programming languages. It allows to deal with anomalous or exceptional events which require special processing. In computer algebra, exception handling is an efficient way to implement the dynamic evaluation paradigm: for instance, in linear algebra, dynamic evaluation can be used for applying programs which have been written for matrices with coefficients in a field to matrices with coefficients in a ring. Thus, a proof system for computer algebra should include a treatement of exceptions, which must rely on a careful description of a semantics of exceptions. The categorical notion of monad can be used for formalizing the raising of exceptions: this has been proposed by Moggi and implemented in Haskell. In this paper, we provide a proof system for exceptions which involves both raising and handling, by extending Moggi's approach. Moreover, the core part of this proof system is dual to a proof system for side effects in imperative languages, which relies on the categorical notion of comonad. Both proof systems are implemented in the Coq proof assistant.

研究の動機と目的

  • 動的評価を伴うプログラム、特にコンピュータ代数分野における例外処理の形式的定式化を、形式的検証を支援する形で行う。
  • 純粋な計算の推論と例外などの計算的効果の推論を分離する証明システムを提供する。
  • モグィのモノイド的アプローチを、例外の送出と処理の両方を含むように拡張し、状態効果と双対性を持つコモノイドを用いて表現する。
  • 構文と等式に例外挙動を追跡する装飾を導入することで、Coqにおける機械検証可能な証明を可能にする。
  • 継承とキャストを用いた階層的例外型を、現実的なプログラミング言語機能へと拡張する。

提案手法

  • 著者らは、効果情報(例:純粋、例外的、両方)を式に付加する装飾付き構文を導入し、式が例外とどのように相互作用するかを分類可能にする。
  • 値が通常の結果または例外である「X + Exc」というモノイドに基づく例外用のコア言語を定義し、タグ付け、アンタグ付け、例外の処理を行う操作を定義する。
  • 弱い等価(効果を無視して)と強い等価(効果を保持して)を区別する装飾付き等式により、モジュラーな証明構築を可能にする。
  • 証明システムは例外モノイドのクライスリー圏に基づき、状態コモノイドのコクライスリー圏と双対化されており、圏論的双対性を活用する。
  • キャスト操作を用いて例外型のサブタイプをサポートし、型安全性とサブタイプの不変性を保持するように意味論を定義する。
  • すべての証明がCoq証明支援ツールで形式化され、機械的に検証されており、同じフレームワーク内で状態効果用の双対実装も提供されている。

実験結果

リサーチクエスチョン

  • RQ1例外を含むプログラムの形式的証明を、純粋な推論と効果的な推論の間のモularityを保ちながらどのように構造化できるか?
  • RQ2純粋なプログラム論理の検証と例外などの計算的効果の推論を分離する証明システムを設計できるか?
  • RQ3装飾付き等式論理が、例外の存在下で弱い等価と強い等価の両方をどのようにサポートできるか?
  • RQ4状態効果と例外効果の双対性が、統一された証明フレームワークを設計する上で果たす役割は何か?
  • RQ5階層的例外型とキャストを、例外の証明システムに形式的に統合する方法は何か?

主な発見

  • 証明システムは、定理5.5で正式に確立された例外の意味論的意味論に関して整合的である。
  • フレームワークは2段階検証を可能にし、まず装飾を削除して純粋な断片で証明を検証し、次に装飾を再活性化して効果に依存する性質を検証する。
  • Coqで検証された証明により、伝搬器が弱い等価と強い等価の規則を用いて、合成を通じて正しく例外を伝搬することが示されている。
  • キャスト操作を用いて例外型のサブタイプをサポートし、型安全性と結合性を保持する意味論が提供されている。
  • このアプローチは状態効果用の証明システムと双対であり、モノイドとコモノイドを用いて計算的効果を統一的に扱える。
  • フレームワークはCoqで実装されており、http://coqeffects.forge.imag.fr で利用可能であり、実用的応用を示している。

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

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

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

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