Z3:如何将int排序转换为布尔排序

时间:2014-12-19 12:03:43

标签: z3 smt

我想在Z3中将bitvector理论转换为int理论,当遇到“bvnot”操作时,我用“not”重新划分它,这是一个简单的例子:

(assert(=(bvnot(ite(bvsle t0#x0a)#b1#b0))#b1)) 转型后:  (断言(=(不(ite(< t0 10)1 0))1))

然而,Z3报告了这个断言的错误: 无效的函数应用程序没有,在第1位的参数排序不匹配,预期Bool但给出Int

如何将int sort转换为boolean sort? Tanhks!

1 个答案:

答案 0 :(得分:0)

你已经拥有了所有东西,但常量1和0不是布尔值;相应的值为truefalse,即这应该有效:

(assert (= (not (ite (< t0 10) true false)) true))