z3

    0

    1答えて

    Z3Pyを使用して、Z3が決定するプログラムを構築しようとしましたが、Humanの種類は空です。 from z3 import * from z3_helper import Z3Helper Human = DeclareSort("Human") is_mortal = Function("is_mortal", Human, BoolSort()) h = Const('h', H

    1

    1答えて

    私は現在、Z3に与えられたアサーションに多数の不等式と等価が含まれている状況を扱っています。それらは、等価で使用される変数に値を割り当てることによって式を解くことが最も効率的であるように、互いに依存している。 Z3のヒューリスティックスを変更して、ソルバがこれらの公式で常に「開始」するようにする方法はありますか? 私の推測では、最初に言及した同値を含む目標を処理する戦術を使用することでしょう。その

    2

    1答えて

    Z3 theorem proverをLinuxにインストールし、Pythonバインディング(Z3Py)を使用しています。私は、最小限の例をテストしようとしたが、私はすぐに次のエラーを得た: z3.z3types.Z3Exception: init(Z3_LIBRARY_PATH) must be invoked before using Z3-python は、私はどのようにこの問題を解決し、

    1

    1答えて

    C++/C API for z3(v4.5.1)を使用してsmt2ファイルをロードし、APIを使用してアサーションを追加しようとしていますsmt2ファイルで宣言された関数などがあります。ここで は私がソルバーにファイルをロードするために何をすべきかの例です: solver loadBackgroundTheoryFile(context& c, string filename) { Z3

    0

    1答えて

    Most efficient way to represent memory buffers in Z3で巣ストア・オペレーションへの効率的な方法:(assert (= (select A i1) v1))。ただし、以前の制約を新しい制約に置き換える必要があるため、ストア操作が必要です。例えば :以下の制約は、次のアセンブリプログラムシミュレーション:私はRBXとRCXが等しいことを証明したいと

    0

    2答えて

    z3.Realの行列をZ3に宣言できることは、その要素を個別に宣言することによって(おそらくリスト内包によって)知ることができます。未知のサイズの行列を表現する方法はありますか? は、例えば、次の例を考える:画像フィルタで を、画像IとKがI*Kあるフィルタカーネルとの間の畳み込み、size [X,Y]の画像Iとフィルタカーネルsize [M,N]のK所与。私はZ3がI*K == I*F1*F2の

    2

    1答えて

    以下のz3pyを使用して以下の量子消去の例があります。しかし、SMTLIB構文(Pythonコードの下のコード)を使って書き直したいと思います。どういうわけか私は公式であるPythonから得たものと同じ出力を得られませんでした。誰かが私にこの問題を指摘できるかどうか疑問に思います。 from z3 import * a, five = Ints('a five') cmp = Bool('cmp'

    1

    1答えて

    私はバイナリで隠されたkeygenアルゴリズムのパスワードを調べようとしています。だから、私は、アセンブリから式を抽出し、それを解決するために、小さなPythonスクリプトで(正しく、うまくいけば)翻訳: Traceback (most recent call last): File "./alt.py", line 13, in <module> state[i+1] = (

    1

    1答えて

    使用z3py API。 advanced examplesからの読書すべての例には、普遍的な量量子が外部にあります。量指定子の変更を使用したいと思います。例えば : for_all XがY つが存在する私はそれが便利だと思うのインスタンスは、(すべてのグラフのために...機能が存在する)です。 私はZ3pyでそれを達成できますか?そうでない場合、私は何をすべきですか?ありがとう。

    1

    1答えて

    : import z3 solver = z3.Solver(ctx=z3.Context()) #solver = z3.Solver() Direction = z3.Datatype('Direction') Direction.declare('up') Direction.declare('down') Direction = Direction.create() C