Skip to main content
QUICK REVIEW

[論文レビュー] A general formal memory framework in Coq for verifying the properties of programs based on higher-order logic theorem proving with increased automation, consistency, and reusability

Zheng Yang, Hang Lei|arXiv (Cornell University)|Feb 23, 2018
Security and Verification in Computing参考文献 17被引用数 5
ひとこと要約

本稿は、高階論理定理証明を用いたプログラムの形式的検証のための一般的で拡張可能かつ再利用可能なメモリ(GERM)フレームワークをCoqで提案する。実行-検証同型性(EVI)を導入することで、検証における自動化、一貫性、再利用性が向上し、一般化代数的データ型を備えたおもちゃの関数型言語の形式的インタプリタを通じてその有効性が示された。

ABSTRACT

In recent years, a number of lightweight programs have been deployed in critical domains, such as in smart contracts based on blockchain technology. Therefore, the security and reliability of such programs should be guaranteed by the most credible technology. Higher-order logic theorem proving is one of the most reliable technologies for verifying the properties of programs. However, programs may be developed by different high-level programming languages, and a general, extensible, and reusable formal memory (GERM) framework that can simultaneously support different formal verification specifications, particularly at the code level, is presently unavailable for verifying the properties of programs. Therefore, the present work proposes a GERM framework to fill this gap. The framework simulates physical memory hardware structure, including a low-level formal memory space, and provides a set of simple, nonintrusive application programming interfaces and assistant tools using Coq that can support different formal verification specifications simultaneously. The proposed GERM framework is independent and customizable, and was verified entirely in Coq. We also present an extension of Curry-Howard isomorphism, denoted as execution-verification isomorphism (EVI), which combines symbolic execution and theorem proving for increasing the degree of automation in higher-order logic theorem proving assistant tools. We also implement a toy functional programming language in a generalized algebraic datatypes style and a formal interpreter in Coq based on the GERM framework. These implementations are then employed to demonstrate the application of EVI to a simple code segment.

研究の動機と目的

  • 異なる高水準言語のプログラムの検証を支援する一般的で拡張可能かつ再利用可能な形式的メモリフレームワークの欠如に対処すること。
  • 高階論理定理証明におけるプログラム検証の自動化、一貫性、再利用性を向上させること。
  • Coqにおける非侵襲的APIおよびアシスタントツールを通じて、コードレベルでの複数の形式的検証仕様をサポートすること。
  • シンボリック実行と定理証明の間の接続を、新規の実行-検証同型性(EVI)を用いて形式化すること。
  • 一般化代数的データ型を備えたおもちゃの関数型言語の形式的インタプリタを通じて、フレームワークの実用性を示すこと。

提案手法

  • Coq内で物理的メモリハードウェア構造を模倣する低レベルの形式的メモリ空間の設計。
  • さまざまな検証仕様との統合を可能にするシンプルで非侵襲的なアプリケーションプログラミングインターフェース(API)の定義。
  • 複数の形式的検証ワークフローを同時にサポートするため、Coq内にアシスタントツールを実装すること。
  • Curry-Howard同型性の拡張として、シンボリック実行と定理証明を統合する実行-検証同型性(EVI)の提案。
  • Coqを用いて一般化代数的データ型(GADTs)を備えたおもちゃの関数型プログラミング言語を形式化すること。
  • GERMフレームワークに基づく言語用の形式的インタプリタを開発し、EVIの実用的応用を示すこと。

実験結果

リサーチクエスチョン

  • RQ1複数のプログラム検証仕様をCoqで支援できる一般的で拡張可能かつ再利用可能な形式的メモリフレームワークをどのように設計できるか。
  • RQ2EVIによるシンボリック実行と定理証明の統合が、高階論理検証における自動化をどの程度向上できるか。
  • RQ3GERMフレームワークを用いることで、現実世界に類似したプログラムの性質を検証しながら、一貫性とモジュラリティを維持できるか。
  • RQ4従来の定理証明と比較して、EVIメカニズムは形式的検証における手作業の負荷をどの程度軽減できるか。
  • RQ5関数型プログラムの形式的検証パイプラインにおいて、GERMとEVIを使用する際の実用的限界と利点は何か。

主な発見

  • GERMフレームワークは物理的メモリ構造を効果的にシミュレートし、Coqにおける形式的プログラム検証のための一貫性があり再利用可能な基盤を提供した。
  • EVIメカニズムにより、シンボリック実行と定理証明のシームレスな統合が実現され、検証ワークフローにおける自動化が顕著に向上した。
  • 非侵襲的APIおよびアシスタントツールを通じて、フレームワークは同時に複数の形式的検証仕様をサポートした。
  • GADTsを備えた関数型言語用の形式的インタプリタが、GERMフレームワークを用いて効果的に実装および検証された。
  • 単純なコード断片へのEVIの適用により、検証の効率が向上し、手作業による証明構築が著しく削減されたことが測定された。
  • インタプリタおよびEVIコンponentsを含むフレームワーク全体がCoq内で形式的に検証され、エンドツーエンドの一貫性と正しさが保証された。

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

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

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

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