我想在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!
金
答案 0 :(得分:0)
你已经拥有了所有东西,但常量1和0不是布尔值;相应的值为true
和false
,即这应该有效:
(assert (= (not (ite (< t0 10) true false)) true))