我正在计划一些使用现成SMT解算器进行符号执行C代码的实验,并且想知道使用哪种求解器;看着如SMT比赛的参赛者只考虑开源系统,将其缩小到海狸,Boolector,CVC3,OpenSMT,Sateen,Sonolar,STP,Verit;这仍然是一个长长的名单。用于位向量算术的SMT解算器
试图一点点进一步缩小范围,我注意到,一些系统做广告来处理位向量的运算能力,而其他人只能做广告来处理一般的整数运算的能力。原则上,前者对于C是正确的,其中变量是机器字,而不是无限整数。它在实践中有多大的差异?如果你尝试为这种工作使用一个整数系统会发生什么?以下情况之一是否适用?
位矢量系统会更有效,但你可以使用,没有问题。
可以使用一般整数系统一些调整。
一般整数系统是罚款符号int(因为溢出的结果是不确定的),但将提供无符号错误的答案。
一般整数系统只是不适合机器字算术正确的,我可以在我的短名单减少到只有那些提供位向量的运算系统。
别的东西......?
我试图问一个具体的问题尽可能,但如果任何人都可以建议任何其他标准缩小名单,那将是伟大的!