【发布时间】:2025-12-04 15:05:02
【问题描述】:
我正在编写一个需要转换的问题的 BV 编码
一些Int 到BitVec,反之亦然。
在mathsat/optimathsat可以使用:
((_ to_bv BITS) <int_term>) ; Int => BitVec
(sbv_to_int <bv_term>) ; Signed BitVec => Int
(ubv_to_int <bv_term>) ; Unsigned BitVec => Int
在z3 可以使用:
((_ int2bv BITS) <int_term>) ; Int => BitVec
??? ; Signed BitVec => Int
(bv2int <bv_term>) ; Unsigned BitVec => Int
在CVC4 可以使用:
((_ int2bv BITS) <int_term>) ; Int => BitVec
??? ; Signed BitVec => Int
??? ; Unsigned BitVec => Int
问:
-
z3是否有用于签名BitVec的bv2int函数? (看起来没有。) -
CVC4有任何bv2int功能吗? (我不知道。) - 这些转换函数是否有文档记录? (关于逻辑/理论的 SMT-LIB 网页似乎没有任何关于它们的信息。)
注意:我受限于基于文本的 SMT-LIB 接口(没有 API 解决方案)。
【问题讨论】:
标签: z3 smt cvc4 optimathsat mathsat