z3Py:将BoolRef转换为一位BitVecRef

直友

是否可以在z3Py中将BoolRef其转换为一位长BitVecRef在我的设计中,要求BitVecRef从其他两个之间的比较中返回a BitVecRef这类似于将pythonbool转换为int这是一个用法示例:

bv1, bv2, added = z3.BitVecs('bv1 bv2 added', 4)
res = z3.BitVec('res', 1)
s = z3.Solver()
s.add(res == (bv1 < bv2))
s.add(added == added + z3.ZeroExt(3, res))

这将是理想的,但是类型(bv1 < bv2)Boolref,并且会引发“排序不匹配”错误。有没有办法投的结果(bv1 < bv2),这样res就可以断言等于它?

克里斯托夫·温特斯泰格(Christoph Wintersteiger)

位向量不能自动转换为布尔值。通常的方法是将它们包装在if-then-els中,例如在本示例中,而不是

s.add(res == (bv1 < bv2))

我们可以说

c = If(bv1 < bv2, BitVecVal(1, 1), BitVecVal(0, 1))
s.add(res == c)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Z3PY将Int转换为Python int

来自分类Dev

或z3Py中的位向量

来自分类Dev

如何将z3py表达式转换为smtlib 2格式

来自分类Dev

是否可以将一位的位向量转换为SMTLib2中的布尔变量?

来自分类Dev

将float转换为至少有一位小数的字符串(javascript)

来自分类Dev

Python:将一位数字十进制转换为十六进制

来自分类Dev

(Java)将符号的字符串转换为一位整数数组

来自分类Dev

将一位数字代码转换为完整的单词代码python

来自分类Dev

如何将一位数的整数数组转换为 2 位或更多位

来自分类Dev

python将一位数字的日期和月份转换为两位数

来自分类Dev

从z3py获得证明

来自分类Dev

Z3py模型退回EMPTY

来自分类Dev

z3py:存在量词的使用

来自分类Dev

在 Z3Py 中评估 BitVec

来自分类Dev

(Z3Py)BitVec类型转换,“排序不匹配”错误

来自分类Dev

z3py对存在的可满足数目进行强制转换

来自分类Dev

z3py:如何在z3py中表示整数或字符数组

来自分类Dev

在SQL Server中将时间结果转换为一位数值

来自分类Dev

当日期列具有一位数字的月份和日期时,SQLite将字符串转换为日期

来自分类Dev

我的程序将电子表格转换为Excel文件。但这仅适用于一位用户

来自分类Dev

将数字增加一位

来自分类Dev

签名的部门在z3py中不起作用

来自分类Dev

从Z3Py中的模型检索数组

来自分类Dev

如何在z3py中设置内核数

来自分类Dev

Z3py对号角子句的不变感应

来自分类Dev

Z3Py中的(assert(= a 10))的等效项

来自分类Dev

在Z3Py中编码可允许的集合

来自分类Dev

z3py,使用种子给出随机解

来自分类Dev

在Z3Py中索引BitVec的元素