【问题标题】:Z3 - mkInt() vs mkIntConst()Z3 - mkInt() 与 mkIntConst()
【发布时间】:2019-08-15 15:44:28
【问题描述】:

以下是等价的吗?

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

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

【问题讨论】:

    标签: java z3


    【解决方案1】:

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

    mkInt 使用该值创建一个常量。

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

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

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

    【讨论】:

    • 感谢您的澄清!
    • 我只是在它们上使用了toString() 运算符,并且也了解了表示形式的差异。 mkIntConst("3") 显示 |3|mkInt(3) 显示 3
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    相关资源
    最近更新 更多