我正在尝试使用boolector创建模型,但是我找不到代表64位整数的方法。实际上,该数字总是被截断为32位。我认为这是由于我使用boolector_int
作为参数(请参见doc)的uint32
有人可以建议我代表这种数字吗?老实说,目前我看不到为什么可以创建一个64位的boolector_bitvec_sort
并且boolector_int
只接受uint32
的原因。
谢谢
答案 0 :(得分:1)
boolector_int
函数旨在从实际的int32_t
进行转换。同样,boolector_unsigned_int
旨在从实际的uint32_t
进行转换。
对于您的用例,请使用以下功能之一:
boolector_const
boolector_constd
boolector_consth
基本上接受字符串作为参数来放入常量。请参阅:https://github.com/Boolector/boolector/blob/ae2a749b858b42c06d436353d8c1857b05021b2e/src/boolector.h#L707-L743
这有点round回旋,但是从本质上讲,您将首先将常量转换为字符串,然后将其传递。 (不同的变体本质上允许二进制,十进制和十六进制表示。)这样,您不必担心该常量的实际宽度,因为这些函数还将目标sort
作为参数。>