通过Z3中的约束将常量值传递给函数

时间:2018-12-18 00:02:49

标签: python z3py

我在Z3中观察到,如果我在求解器的约束中使用函数,则无法将其传递给常量。

例如:

在下面的函数中,gen()是一个需要2个输入的函数。第一个输入是一个表示长度为10的字符串的BitVec()。第二个gen()函数的参数将用于其中的一些计算。但是,我注意到即使我通过约束将常量值作为第二个参数传递,当Z3求解方程时,该函数内部的值也不同。

from z3 import *

def gen(input, v):
    outer_counter = v

    for i in range(len(input)):


    return result

s = Solver()

input = [BitVec("input%s" % i, 8) for i in range(10)]

s.add(gen(input, 0) == 0xAABBCCDD)
s.add(gen(input, 1) == 0xABCDABCD)

那么,Z3中是否有一种方法可以通过约束来调用一个函数,并同时传递一个固定值?

0 个答案:

没有答案