Z3 - mkInt() 与 mkIntConst()

Z3 - mkInt() vs mkIntConst()

以下是否等价?

mkInt(3)(IntExpr) mkIntConst("3")?

第二个不是创建一个名为“3”的整数常量,对吧?我想要的是使用 mkIntConst 创建一个数值为 3 的常量。可能吗?

mkIntConst 创建 具有给定名称的符号值。 (所以在你的例子中,变量被命名为 3,它确实 not 具有值 3.

mkInt 使用该值创建常量。

所以是的,这些完全不同。

看这里:https://z3prover.github.io/api/html/classcom_1_1microsoft_1_1z3_1_1_context.html#a99be64ea1573a49e683067bf6023ffa4

如果您想创建一个值为 3 的符号值,则创建一个 mkIntConst,然后向求解器添加一个断言,表明它等于 3 .