Я изучаю Z3 и возможно мой вопрос не актуален, так что наберитесь терпения.
Предположим, у меня есть следующее:
c1, c2 = z3.BitVec('c1', 32), z3.BitVec('c2', 32)
c1 = c1 + c1
c2 = c2 + c2
c2 = c2 + c1
c1 = c1 + c2
e1 = z3.simplify(c1)
e2 = z3.simplify(c2)
Когда я печатаю их sexpr():
print "e1=", e1.sexpr()
print "e2=", e2.sexpr()
Output:
e1= (bvadd (bvmul #x00000004 c1) (bvmul #x00000002 c2))
e2= (bvadd (bvmul #x00000002 c2) (bvmul #x00000002 c1))
Мой вопрос: как я могу оценить числовое значение «e1» и «e2» для пользовательских значений c1 и c2?
Например, e1(c1=1, c2=1) == 6, e2(c1=1, c2=1) == 4
Спасибо!