gpt4 book ai didi

Z3 python 对待 x**2 与 x*x 不同?

转载 作者:行者123 更新时间:2023-12-01 05:26:55 24 4
gpt4 key购买 nike

Z3 Python 接口(interface)似乎不喜欢 ** 运算符,它可以处理 x*x 但不能处理 x**2 如下例所示

>>> x,y = x,y=Reals('x y')
>>> z3.prove(Implies(x -6 == 0,x**2 -36 == 0))
failed to prove
[x = 6]
>>> z3.prove(Implies(x -6 == 0,x*x -36 == 0))
proved

最佳答案

您可能在 Linux 或 OSX 上使用 4.3.0 版。 4.3.0 版在这些平台上存在配置问题。如果是这样,我建议你下载版本4.3.1 . 4.3.1 版将在 Linux 和 OSX 上证明这两个查询。在 4.3.0 版中,Linux 和 OSX 默认不启用自动配置。因此,Z3 将始终使用对非线性算术不完整的通用求解器,也不支持幂运算符。启用自动配置后,Z3 检测到这两个问题在非线性实数算术片段中,并切换到 nlsat solver .

顺便说一句,要在 4.3.0 版本上手动启用自动配置,您可以使用命令 z3.set_option(auto_config=True) .

关于Z3 python 对待 x**2 与 x*x 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13446967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com