如何在 boolector 中使用 64 位整数

How to use 64 bit integers with boolector

我正在尝试使用 boolector but I cannot find a way to represent a 64 bit integer. In fact, the number is always truncated to 32 bit. I think this is due to the fact that I'm using boolector_int which has an uint32 as a parameter ( see the doc )

创建模型

任何人都可以建议我一种表示这样一个数字的方法吗?老实说,目前我看不出为什么可以创建 64 位的 boolector_bitvec_sortboolector_int 只接受 uint32.

的原因

谢谢

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

有点迂回,但本质上你会先将常量转换为字符串,然后将其传递。 (不同的变体本质上允许二进制、十进制和十六进制表示。)这样您就不必担心常量的实际宽度,因为这些函数也将目标 sort 作为参数。