【发布时间】:2019-08-15 15:44:28
【问题描述】:
以下是等价的吗?
mkInt(3) 和 (IntExpr) mkIntConst("3")?
第二个不是创建一个名为“3”的整数常量,对吧?我想要的是使用mkIntConst 创建一个数值为3 的常量。有可能吗?
【问题讨论】:
以下是等价的吗?
mkInt(3) 和 (IntExpr) mkIntConst("3")?
第二个不是创建一个名为“3”的整数常量,对吧?我想要的是使用mkIntConst 创建一个数值为3 的常量。有可能吗?
【问题讨论】:
mkIntConst创建具有给定名称的符号值。 (所以在你的例子中,变量名为3,它确实不的值为3。
mkInt 使用该值创建一个常量。
所以是的,这些是完全不同的。
如果您想创建一个具有值3 的符号值,则使用mkIntConst 创建一个符号值,然后向求解器添加一个断言,表明它等于3。
【讨论】:
toString() 运算符,并且也了解了表示形式的差异。 mkIntConst("3") 显示 |3| 而mkInt(3) 显示 3。