Smt 如何在boolector中使用64位整数
我试图使用创建一个模型,但找不到表示64位整数的方法。事实上,数字总是被截断为32位。我想这是因为我使用的是Smt 如何在boolector中使用64位整数,smt,Smt,我试图使用创建一个模型,但找不到表示64位整数的方法。事实上,数字总是被截断为32位。我想这是因为我使用的是boolector\u int,它有一个uint32作为参数(请参阅) 有人能给我一个表示这样一个数字的方法吗?老实说,目前我不明白为什么可以创建一个64位的boolector\u bitvec\u sort和boolector\u int只接受uint32 谢谢该boolector\u int函数用于从实际int32\t转换。类似地,boolector\u unsigned\u int用
boolector\u int
,它有一个uint32
作为参数(请参阅)
有人能给我一个表示这样一个数字的方法吗?老实说,目前我不明白为什么可以创建一个64位的boolector\u bitvec\u sort
和boolector\u int
只接受uint32
谢谢该
boolector\u int
函数用于从实际int32\t
转换。类似地,boolector\u unsigned\u int
用于从实际的uint32\u t
转换
对于您的用例,请使用以下函数之一:
boolector\u const
boolector\u constd
boolector\u consth
这有点迂回,但本质上,您将首先将常量转换为字符串,然后再传递它。(不同的变体基本上允许二进制、十进制和十六进制表示。)这样,您就不必担心该常数的实际宽度,因为这些函数还将目标
排序作为参数。仅澄清一下,数字2**60表示为(model(define fun v_0()(u-BitVec 64)#x0000000000000000)