Z3のソースコードを参照すると、QF_FPAを参照しているファイルがたくさん出てきました。QF_FPAは、量子のない浮動小数点演算のように見えます。しかし、私はその状態に関するドキュメントや、さまざまなフロントエンド(特にSMT-Lib2)でどのように使用できるかを見つけることができないようです。これはIEEE-754 FPのエンコーディングですか?もしそうなら、どの精度/演算がサポートされていますか?すべてのドキュメントが最も役に立ちます。QF_FPA? Z3はIEEE-754の算術演算をサポートしていますか?
7
A
答えて
7
はい、Z3は最近のSMTワークショップpaperのRuemmerとWahlが提案した浮動小数点演算をサポートしています。現在の段階では、公式のFPA理論はなく、Z3のサポートは非常に基本的です(ビットブラスターのみ)。私たちはこれをまだ積極的に宣伝していませんが、Ruemmer/Wahlの論文(QF_FPAとQF_FPABVの設定ロジック)で提案されているように正確に使用できます。現時点では、FPAの新しい決定手続きに取り組んでいますが、それが利用可能になるまでには時間がかかるでしょう。
(set-logic QF_FPA)
(declare-const x (_ FP 11 53))
(declare-const y (_ FP 11 53))
(declare-const r (_ FP 11 53))
(assert (and
(= x ((_ asFloat 11 53) roundTowardZero 0.5 0))
(= y ((_ asFloat 11 53) roundTowardZero 0.5 0))
(= r (+ roundTowardZero x y))
))
(check-sat)
3
浮動小数点ロジックは、v4.4.2でQF_FPとQF_FPBV名前が付けられます。
はここFPA SMT2式は次のようになり何の簡単な例です。 RELEASE_NOTESの理論の説明へのリンクは壊れています。正しいページはhttp://smtlib.cs.uiowa.edu/theories-FloatingPoint.shtmlです。上記の提案例は、
(set-logic QF_FP)
(declare-const x (_ FloatingPoint 11 53))
(declare-const y (_ FloatingPoint 11 53))
(declare-const r (_ FloatingPoint 11 53))
(assert (and
(= x (fp #b0 #b00000000010 #b0000000000000000000000000000000000000000000000000010))
(= y (fp #b0 #b00000000010 #b0000000000000000000000000000000000000000000000000010))
(= r (fp.add roundTowardZero x y))
))
(check-sat)
+0
例を更新してくれてありがとうございました!以来、SMT FP標準が更新されました。これは本当に新しい構文です。私たちはZ3からすべての古いシンボルを削除しており、私たちは最終的な基準のみをサポートしています。 –
関連する問題
- 1. Sightlyは実際に算術演算子をサポートしていませんか?
- 2. Javascriptの算術演算の加算演算子はありますか?
- 3. Cプログラミング!算術演算子演算
- 4. C++の算術演算
- 5. 算術演算 - JavaScriptの
- 6. Javaでの算術演算
- 7. c#算術演算のリスト
- 8. doctrine QueryBuilderの算術演算
- 9. enum値の算術演算
- 10. Stackdriverモニタリングチャートの算術演算
- 11. ユーザーフォームの算術演算
- 12. int - Javaの算術演算
- 13. オブジェクトの算術演算
- 14. HLSLの>算術演算子は何をしますか?
- 15. 算術演算がオーバーフロー
- 16. オーバーロード算術演算子
- 17. 算術演算を実行するPig
- 18. 算術演算用ポインタをキャストする -
- 19. アンドロイドシェルで算術演算をする
- 20. 値のテーブルから算術演算を計算する
- 21. ポインタのポインタの算術演算(* argv [])?
- 22. C#のデフォルトの算術演算子
- 23. デルファイのジェネリック型での算術演算
- 24. 複数のVBAユーザーフォームの算術演算
- 25. アセンブリーでの算術演算の登録
- 26. Pythonの日付の算術演算
- 27. long long型の算術演算/論理演算
- 28. swiftでのビット演算と算術演算
- 29. 算術演算エラーでスタックする
- 30. 正規表現での算術演算
でなければなりません。この浮動小数点演算のサポートは、z3の最新の安定版4.3.2に組み込まれていますか?また、浮動小数点理論のサポートは、安定したバージョンまたは不安定なバージョンの他の理論、例えば線形整数算術と組み合わせられていますか? – user1779685
4.3.2部分的なサポートしかなかったため、現在のリリースは4.4.0で、理論の組み合わせを含めて完全サポートされています。浮動小数点数から実数/有理数への変換では非線形制約が導入されるため、線形算術との組み合わせも非線形になります。 –
変換と理論の組み合わせに関する知識をお寄せいただきありがとうございます。私はgithubをチェックしました。より幅広いサポートを提供する4月末のz3リリースはすばらしいニュースです。すぐに試してみる。 – user1779685