z3

    1

    1答えて

    現在、問題をZ3にエンコードしようとしています。「tristate」ブール型(つまり、true,falseおよびunknownのブール値)をモデル化したいと考えています。ここで が、私はそれをモデル化してきた方法です。 #!/usr/bin/env python import z3 from collections import OrderedDict TristateValues =

    2

    1答えて

    配列に新しい値を格納することができ、そうすると新しい配列が返されます。 MkApp関数を使用してレコードのセレクタにアクセスできることはわかっていますが、レコードの値をどのように置き換えることができますか? 、私はレコードのN番目のコンポーネントを更新する統一的な方法がありますとは思わない (declare-datatypes (T1 T2) ((Pair (mk-pair (first T1)

    1

    1答えて

    extracting the decimal value from a Z3 stringについては、以前の質問から、は、BitVec8を1文字列に変換することが可能です。たとえば、次のクエリ実行中: (declare-const s String) (declare-const someBV8 (_ BitVec 8)) (assert (= (str.len s) 6)) (asser

    3

    2答えて

    私は量子に問題があります。 a(0)= 0とし、a(n + 1)はx(n)の値に基づいてa(n)+1またはa(n)+2のいずれかになります。任意のx(。)とすべてのnについて、a(n)< = n * 2と期待できます。ここで はZ3のためのコードです: (declare-fun a (Int) Int) (declare-fun x (Int) Int) (declare-fun N() In

    2

    1答えて

    行列やベクトルを含む式の性質を証明したいと考えています(サイズは大きくなる可能性がありますが、サイズは固定されています)。 Iは、式の結果は、対角行列または三角行列である、またはそれは、正定であることを証明したい例えば ... そのために私は、エンコードよく知られた特性をたいと思いますし、以下のような線形代数からアイデンティティ、: ||x + y|| <= ||x|| + ||y|| (A *

    2

    1答えて

    Z3は、しばしば、中間関数の束として定義されたモデルを返します。たとえば、次のようなことがよくあります(私の不適切な構文を許してください)。 (define-const myArray (Array Bool Int) (_ as-array f)) (define-fun f (x Bool) Int (f!10 (k!26 x))) ...などです。 私は私のプログラム(ライブラリバイン

    3

    1答えて

    SHA(x)のようなz3でハッシュ関数を表現したいと考えています。いくつかの研究をした後、z3は注入性を非常によくサポートしていないように見えるので、私は制約を持つことができません(そして、これは厳密には衝突のために真実ではないことを認識している間、ヒューリスティックとして、プロジェクト) forall([x, y],Implies(SHA(x)==SHA(y), x==y)) とソルバーが終

    3

    2答えて

    私はPythonでZ3 Thoerem Proverを使って方程式を解こうとしています。 しかし、私が得る解決策は間違っています。 from z3 import * solv = Solver() x = Int("x") y = Int("y") z = Int("z") s = Solver() s.add(x/(y+z)+y/(x+z)+z/(x+y)==10, x>0, y>