z3py

    1

    2答えて

    y == max(x, 0)という制約を解決したいとします。私が考えることができるのは、次のものをエンコードすることです(z3pyインターフェイスで):If(x > 0, y == x, y == 0)。私の質問は以下の通りであった: Z3は、内部的に2つの制約に上記の式を変換するつもりです:x > 0 /\ y == xとx <= 0 /\ y == 0し、それらのORを取り、2つの制約のいずれ

    1

    1答えて

    私は、正方形を含む問題を最小限に抑えるためにz3の使用を検討していました。私はこの単純な例(Pythonの3のz3opt)書くときしかし: from z3 import * a = Real('a') b = Real('b') cost = Real('cost') opt = Optimize() opt.add(a + b == 3) opt.add(And(a >= 0,

    1

    2答えて

    Z3のビットベクトルが与えられた場合、どのようにしてこのベクトルの各ビットを集計できますか? 例えば、 a = BitVecVal(3, 2) sum_all_bit(a) = 2 は、これをサポートする任意の事前実装されたAPI /機能はありますか?ありがとうございました!

    1

    1答えて

    私は私の研究にz3を使用していますが、私は以下の問題があります。私は、配列を含む充足可能な数式のモデルを分析していますが、モデルの結果を理解できません。たとえば、私は2つの変数 'pkgcounter'と 'rxlen'と2つの命題p1とp2を持っています。私の目標は、両方の命題を満足するモデルがあるかどうかを調べることです。 [! - > 0] = [他 pkgcounter - - > 0]

    1

    1答えて

    BoolRefをz3Pyの1ビット長BitVecRefにキャストできますか?私の設計では、BitVecRefは他の二つのBitVecRef年代との比較から返されていることが必要です。これは、python boolをintにキャストするのと同じです。これは理想的である bv1, bv2, added = z3.BitVecs('bv1 bv2 added', 4) res = z3.BitVec(

    0

    1答えて

    私は、解くべき線形の実数演算の巨大なセットを持っており、私はそれらをソルバーに徐々に供給しています。 Z3はしばらくするといつも詰まっているようだ。 Z3は、内部的に、シンプレックスアルゴリズムから離れるなど、制約を解決する戦略を変更しようとしていますか?そうするためにZ3に明示的に指示する必要がありますか?私はZ3pyを使用しています。

    0

    1答えて

    SAT問題を解決するためにMicrosoftとPython 3のZ3-solverを使用することにしました。目的は長いモデル(最大50万のフィーチャーすべての可能な解決策を見つける。それらを見つけるために、私は最初の方程式に最初の方程式S1を加え、S1を除外したいと思います。 whileループを使ってやります。 フィーチャーモデルを分析したいので、SAT問題を解決することが重要です。 しかし、最初

    2

    1答えて

    私はz3pyの新機能です。私はz3pyで以下の対数表現をコード化しようとしています。 log(x,y) スタックオーバーフローを多数検索して同様の質問がありましたが、残念ながら十分な回答が得られませんでした。私を助けてください!

    1

    1答えて

    いくつかのツールを開発するのにZ3Pyを使用しています。私のコードでは、いくつかの情報を追跡するために複数のdictionariesを保持しています。時々、私は特定の辞書のキーとしてz3表現を使用する必要がある、とz3式はハッシュ可能ではないので(?右I午前) 注、私が今やっていることは次のとおりです。 翻訳します文字列への表現Python strを使用してz3の表現。 string表現を辞書のキ

    3

    1答えて

    現在、Z3pyを使ってホーン句の結合詞としてエンコードされている不変量を推論し、不変量のテンプレートも提供しています。以下のコードスニペットが表示されている場合は、最初に簡単な例から始めます。 x = 0; while(x < 5){ x += 1 } assert(x == 5) これは、ホーン節 X = 0 => Invの(X) X < 5/\のInv(X)=>のInv(X