Skip to main content
QUICK REVIEW

[論文レビュー] Formal Proofs of Tarjan's Algorithm in Why3, Coq, and Isabelle

Ran Chen, Cyril Cohen|arXiv (Cornell University)|Oct 29, 2018
Logic, programming, and type systems参考文献 8被引用数 4
ひとこと要約

この論文は、Why3、Coq、Isabelle/HOLという3つの異なる証明支援ツールを用いて、有向グラフにおける強連結成分を求めるTarjanのアルゴリズムの形式的正しさの証明を提示している。著者は、有限集合、スタック、写像を用いた関数型で抽象的なレベルでアルゴリズムを実装し、線形時間の動作を保証するとともに、3つのシステムすべてで一貫した正しさの証明を達成した。また、表現力、自動化、検証スタイルの違いを強調しながら、複雑なグラフアルゴリズムの異種ツール間での形式的定式化の可能性を示した。

ABSTRACT

Comparing provers on a formalization of the same problem is always a valuable exercise. In this paper, we present the formal proof of correctness of a non-trivial algorithm from graph theory that was carried out in three proof assistants: Why3, Coq, and Isabelle.

研究の動機と目的

  • 3つの異なる証明支援ツールを用いて、強連結成分のためのTarjanのアルゴリズムを形式的に検証すること。
  • Why3、Coq、Isabelle/HOLの間で、表現力、自動化、検証ワークフローの違いを、非自明なアルゴリズムに対して比較すること。
  • アルゴリズムの線形時間動作を保つ、一貫性があり、抽象的で読みやすい形式的定式化を生成すること。
  • 異種の証明システム間で複雑なグラフアルゴリズムを形式化することの課題と利点を評価すること。
  • 今後の異種ツール間比較の基盤を提供し、アルゴリズムの命令型実装の検証を可能にする基盤を提供すること。

提案手法

  • 低レベルのデータ構造から離れて、有限集合、スタック、写像を用いた関数型スタイルでアルゴリズムを定式化した。
  • すべてのシステムで同じ論理的議論に依存する、コアとなるインヴァリアントに基づく証明戦略を採用した。
  • 深さ優先走査、スタック管理、コンponents検出を担当する、相互再帰関数 dfs1 と dfs を使用した。
  • 主な補助関数には、add_stack_incr(スタックにプッシュしてシリアル番号を割り当てる)、split(頂点までスタックをポップする)、set_infty(頂点を非活性化する)がある。
  • 証明は、インダクティブな述語(Why3)、依存型と高階論理(Coq)、Isarと自動化(Isabelle/HOL)を用いて構造化した。
  • 終了性は、Well-Founded関係とdomintrosを用いてIsabelleで処理したが、Coqでは明示的な上限、Why3では自動プローバーのチェックに依存した。

実験結果

リサーチクエスチョン

  • RQ1Why3、Coq、Isabelle/HOLの設計選択と表現力が、Tarjanのアルゴリズムの形式的証明の構造と保守性にどのように影響するか?
  • RQ2基礎論理が異なる3つの証明支援ツール間で、同じ論理的議論をどの程度再利用できるか?
  • RQ3複雑なグラフアルゴリズムを形式化する際、自動化、可読性、検証の安定性の間にはどのようなトレードオフがあるか?
  • RQ4自動化の有無が、形式的証明の開発とデバッグにどのように影響するか?
  • RQ51つの抽象的定式化が、複数の証明システムにおける形式的検証の共通基盤として機能できるか?

主な発見

  • 形式的証明は、同じアルゴリズム的抽象化とコア論理を用いて、すべての3つのシステム(Why3、Coq、Isabelle/HOL)で正常に実装された。
  • Why3は、外部のSMTおよび超限論理プローバーに依存することで、最も高い自動化水準を達成したが、信頼できる証明検証を保つために注意深い仕様定義が必要だった。
  • Coqの依存型は、非常に表現力があり、簡潔な形式的定式化を可能にしたが、証明にはより多くの手動操作と専門知識が求められた。
  • Isabelle/HOLは表現力と自動化のバランスを取っており、Sledgehammerが証明探索を著しく支援した。また、Isarにより人間が読みやすい証明構造が得られた。
  • Isabelle/HOLにおける証明は、元のWhy3バージョンの50%短く、可読性と保守性の向上を示している。
  • 終了性の処理は各システムで異なっていた:明示的な上限(Coq)、well-founded関係(Isabelle)、信頼できるプローバーのチェック(Why3)で処理され、すべてのアプローチが形式的に検証された。

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

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

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

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