私はZ3optを使用しています。私のモデルの大部分は標準SMTLIBで表現することができますが、その一部は文字列処理、連想配列などの構造を持つ汎用プログラミング言語で実装する必要があります。Z3が外部定義された関数を呼び出すことはできますか?
外部定義関数をZ3モデル?私はこれがソルバーのパフォーマンスを殺すだろうが、モデルのほんの一部に過ぎないことを知っています。
- 明確化のために編集 -
IはZ3(例えば三角関数)によってサポートされない機能をサポートするために(関数ポインタまたは同等品など)の制約の実装を提供することを望みます。私はZ3がこのようなブラックボックスの制約を使うとき、ヒューリスティックを適用できないというトレードオフを受け入れるだろう。
私はZ3を呼び出す前に前処理ステップを提案していると思いますが、それでは不十分です。私が探しているのは、順列をテストするときにソルバによって呼び出されるカスタムアサーションを書く方法です。 – daw
Nikolajが言及しているAPIを見てください。 – Heyji
私は、APIを使用して小分けのz3 SMTLIB式を構築することについて質問していません。 Z3でサポートされていない関数(trig関数など)をサポートするために、(関数ポインタまたは同等のものとして)制約の実装を提供したいと思います。私は実際の答えはそれができないことだと思います。 – daw