Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Z3がサポートする理論の例は何ですか


Z3がサポートする理論の例は何ですか


Microsoft Researchによって開発された最先端の満足度モジュロ理論(SMT)ソルバーであるZ3は、ソフトウェアの検証と分析に重要な幅広い理論をサポートしています。 Z3がサポートする理論の例を次に示します。

- 算術:これには、整数と実際の算術の両方が含まれ、Z3が数値を含む方程式を解くことができます。
- 固定サイズビットベクトル:デジタルサーキットとバイナリデータのモデリングに役立ちます。これらは、固定長のビットのベクトルです。
- 拡張配列:アレイはインデックスから値まで関数として扱われ、Z3がデータ構造について推論できるようにします。
- データ型:Z3は、リスト、ツリー、レコードなどの複雑なデータ構造に関する推論をサポートしています。
- 解釈されていない関数:これらは、動作が定義されていない関数であり、実装の詳細を抽象化するのに役立ちます。
- 量子:Z3は、実存的な数量詞と普遍的な量子の両方を処理でき、ドメインのすべてまたは一部の要素に適用されるプロパティについて推論することができます。

さらに、Z3は、組み合わせの問題に役立つカーディナリティや擬似ブールの不平等など、他の理論と組み合わせて拡張または使用できます。また、カスタム理論のエンコーディングと公理化をサポートし、ソフトウェア検証と正式な方法[3] [4] [9] [10]におけるさまざまなアプリケーションに汎用性があります。

引用:
[1] https://theory.stanford.edu/~nikolaj/programmingz3.html
[2] https://specs.openstack.org/openstack/congress-pecs/specs/rocky/alternative-engine-z3.html
[3] https://en.wikipedia.org/wiki/z3_theorem_prover
[4] https://ceur-ws.org/vol-418/paper10.pdf
[5] https://jfmc.github.io/z3-play/
[6] https://www21.in.tum.de/~boehmes/proofrec.pdf
[7] https://microsoft.github.io/z3guide/docs/logic/intro/
[8] https://stackoverflow.com/questions/73789804/theory-of-arrays-in-z3-1-1-model-is-is-difficult-2-do-not-not-know-ho
[9] https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/nbjorner-aplas11.pdf
[10] http://theory.stanford.edu/~nikolaj/z3navigate.html