评估 Z3 表达式

Evaluate a Z3 expression

我在 Z3py 中有一个约束,比如说,

z3.Real('x')<=3

是否有一种简单的内置方法来评估潜在模型的 'true' 或 'false' 约束?例如,使用 z3.Real('x')->2 评估约束应该得到 'true'。

您可以在 Solver.check returns sat 时可以提取的模型下评估表达式(使用 Solver.model() 检索模型),或者您可以表示自己的模型作为替换(当模型只提到常量时),然后使用 'substitute' 方法将模型中的值替换到表达式中,然后使用 'simplify' 计算结果表达式。