Skip to main content
QUICK REVIEW

[論文レビュー] How Can I Do That with ACL2? Recent Enhancements to ACL2

Matt Kaufmann, J Strother Moore|Oct 21, 2011
Security and Verification in Computing参考文献 2被引用数 4
ひとこと要約

この論文は、ACL2バージョン3.6から4.3にかけての主な向上を要約し、ユーザーにとって実用的な改善に焦点を当てている。均一な等価性バリエーションの取り扱い(例:memberとmember-equal)、封入関数の実行時実行を可能にするdefattachユーティリティ、mbaおよびlogic-exec分離の改善といった主要な機能を導入している。これらの変更により、ルールライブラリの重複が削減され、対話型証明およびプログラム実行の両方の能力が向上する。

ABSTRACT

The last several years have seen major enhancements to ACL2 functionality, largely driven by requests from its user community, including utilities now in common use such as 'make-event', 'mbe', and trust tags. In this paper we provide user-level summaries of some ACL2 enhancements introduced after the release of Version 3.5 (in May, 2009, at about the time of the 2009 ACL2 workshop) up through the release of Version 4.3 in July, 2011, roughly a couple of years later. Many of these features are not particularly well known yet, but most ACL2 users could take advantage of at least some of them. Some of the changes could affect existing proof efforts, such as a change that treats pairs of functions such as 'member' and 'member-equal' as the same function.

研究の動機と目的

  • バージョン3.6から4.3の間に導入された、評価が低めに抑えられているが実際には大きな影響を持つACL2の向上についての認識を高めること。
  • 等価性テストの違いにのみ依存する関数(例:memberとmember-equal)を統合することで、ルールライブラリ内の重複を減らす必要に応えること。
  • 封入関数の実行時実行を可能にし、defattachユーティリティによる組み込み振るまいのカスタマイズを可能にすること。
  • ACL2におけるプログラミング、証明、システムレベルの機能の統合を改善し、産業利用およびユーザー主導の開発を支援すること。

提案手法

  • mba(相互的信念評価)マクロを導入し、論理的部品と実行部品を分離することで、証明器が:logic部品で推論できる一方で、効率的な実行が可能になる仕組みを説明する。
  • マクロ展開により、memberやmember-equalといった関数を論理的に同等に扱うことで、等価性バリエーションの均一な取り扱いを実現する。
  • defattachユーティリティを導入し、実行時に関数を実行可能対応関数にバインドできるようにすることで、封入関数の評価と組み込み証明器振るまいのカスタマイズを可能にする。
  • mba形式の簡略化を、ガード・ホルダを含む追加の文脈へ拡張し、システム全体で一貫した論理的取り扱いを保証する。
  • 詳細な例とドキュメンテーションのリンク(例::DOC equality-variants, :DOC defattach)を提供し、ユーザーが新機能を採用するのを支援する。
  • 実世界の例(例:binary-*を用いたfold)を用いて、defattachおよび改善された証明自動化の実用的利点を示す。

実験結果

リサーチクエスチョン

  • RQ1ACL2ユーザーは、等価性テストの違いにのみ依存する関数(例:memberとmember-equal)について、重複するルールセットをどのように排除できるか?
  • RQ2論理的整合性を損なわせることなく、証明開発中に封入関数を実行するためのメカニズムは何か?
  • RQ3実行時バインドを通じて、組み込みACL2証明器関数(例:リライトヒューリスティクス)の振るまいをユーザーがどのようにカスタマイズできるか?
  • RQ4最近のACL2の変更は、プログラミング、証明、システムインfraの統合をどのように改善しているか?
  • RQ5memberとmember-equalを論理的に同等の関数として扱うことで、どのような実用的影響が生じるか?

主な発見

  • memberとmember-equalの論理的取り扱いが統合された:memberの呼び出しは論理内ではmember-equalにマクロ展開され、別々のルールセットの必要がなくなる。
  • ACL2バージョン4.2以降では、定理 (defthm member-equal-reverse (iff (member-equal a (reverse x)) (member-equal a x))) が自動的に証明されるようになり、証明自動化の向上が実証された。
  • defattachユーティリティにより、封入関数を実行可能対応関数にバインドすることで、実行時評価が可能になった。例:(defattach ac-fn binary-*) により、(fold ’(2 3 4 5) 1) の評価が120を返すようになる。
  • アタッチメントは証明時には使用されないため論理的整合性が保たれ、defconst形式のような論理的文脈でも安全に無効化できる。
  • mbaマクロは、ガード・ホルダを含むより広範な文脈での簡略化をサポートし、論理的推論における一貫性が向上した。
  • これらの変更により、並列するルールライブラリの維持にかかるユーザーの負担が大幅に軽減され、産業利用および対話型形式検証における使いやすさが向上した。

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

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

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

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