z3pyをアプリケーションに統合しようとしています。次のような小さな実数を含むアサーションがあります
solver.add(x <= 1e-6)
次に、次のエラーが発生しました。
File "~/src/solver/z3.py", line 2001, in __le__
a, b = _coerce_exprs(self, other)
File "~/src/solver/z3.py", line 846, in _coerce_exprs
b = s.cast(b)
File "~/src/solver/z3.py", line 1742, in cast
return RealVal(val, self.ctx)
File "~/src/solver/z3.py", line 2526, in RealVal
return RatNumRef(Z3_mk_numeral(ctx.ref(), str(val), RealSort(ctx).ast), ctx)
File "~/src/solver/z3core.py", line 1774, in Z3_mk_numeral
raise Z3Exception(lib().Z3_get_error_msg_ex(a0, err))
src.solver.z3types.Z3Exception: 'parser error'
アサーション中
solver.add(x <= 1e-4)
大丈夫そうです。
したがって、z3にはある種の精度制限があると思います。もしそうなら、最初のアサーションを通過させるオプションはありますか?
ありがとう。