Bit Vector tactic leads to exit code 139 in Z3Py

2019-07-31 06:04发布

问题:

This is a simple bit vector problem:

import z3

s = z3.Tactic('bv').solver()
m = z3.Function('m', z3.BitVecSort(32), z3.BitVecSort(32))
a, b = z3.BitVecs('a b', 32)

axioms = [
    a == m(12432),
    z3.Not(a == b)
]

s.add(axioms)
print(s.check())

Python crashes with error code 139. Please note that, this is not my real problem, so I must use bit vector tactic in my project, though it doesn't have any problem with smt tactic or even qfbv tactic.

回答1:

It seems to be a bug in 4.4.0. With 4.4.0 and Ubuntu 16.04 LTS and Python 2.7 you can reproduce the issue. However in newer versions of Z3, it has been fixed. I tried 4.4.2 and it returns sat.

https://github.com/Z3Prover/z3/issues/685