z3 - ctx-solver-simplify(和类似的策略)是否会产生等效的公式,或者只是 SAT 等效的公式,或者我做的事情完全错误?

标签 z3

我正在尝试制作 z3 (我正在使用 z3py)来简化我的一些公式(以便我可以或多或少地获得人类可读的输出)。使用 ctx-solver-simplify 策略对我来说似乎是一个不错的选择,因为在几次传递中它会产生漂亮的紧凑公式。但很快我就遇到了一种情况,ctx-solver-simplify 的输出似乎并不等于原始公式(它看起来更像是可满足性等价的)。另外,也可能是我没有正确处理战术。

这就是我想要做的:http://rise4fun.com/Z3Py/g5sX 。因此,我构造了一个公式 Set2(定义 Set2 之前的所有内容都只是定义它所需的设置),它具有特定的令人满意的赋值。应用 ctx-solver-simplify 后,我得到了一个公式(作为目标),但此作业无法满足该公式。那我错了什么?

  • 我是否错误地假设 ctx-solver-simplify 会产生等效公式?
  • 我是否以错误的方式处理策略及其输出?
  • 还有什么吗?

谢谢。

最佳答案

我一直在研究这个问题,但到目前为止还无法直接重现该错误 与我们当前的分支机构。上下文简化器中的一个错误不久前已修复,它可以 Z3 的在线版本体现了这一点。 我还可以做一些事情来仔细检查我们是否可以重现该错误 我将根据我的发现更新这篇文章。

关于z3 - ctx-solver-simplify(和类似的策略)是否会产生等效的公式,或者只是 SAT 等效的公式,或者我做的事情完全错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13040538/

相关文章:

z3 - Z3 : "failed to find a pattern for quantifier (quantifier id: k!18) " 中的警告消息背后的原因是什么

Python——优化不等式系统

python - 无法在 z3py 中提取 Z3 EnumSort 的值

Z3Py:不相等元组的约束

z3 - 我可以在 Z3 中重播证明吗?

z3 - 如何使用 z3 BitVec 或 Int 作为数组索引?

z3 - Tseitin 编码下的令人满意的模型

python - z3 smt 求解器采用什么形式的输入?如何使用文件读取需要求解的方程?

arrays - Z3 解算器中的二维数组

c++ - 在 C++ 中使用 Z3 API 的段错误