符号

SMT求解器的符号优化。可满足模理论(SMT)解算器效率的提高为其在软件验证、程序综合、函数式编程、精化类型等方面创造了大量的用途。在所有这些应用中,SMT解算器用于生成令人满意的赋值(例如。,缺陷的见证人)或证明不可满足性/有效性(例如,证明子类型关系成立)。我们经常感兴趣的不仅仅是找到一个任意满足的任务,而是一个优化(最小化/最大化)某些标准的任务。例如,我们可能对检测最大限度地利用能量的程序执行感兴趣(性能错误),或者合成不进行昂贵API调用的短程序。不幸的是,没有一个可用的SMT解算器提供这样的优化功能。本文在线性实数算法(LRA)理论的基础上,提出了一种有效的基于SMT的目标函数优化算法SYMBA。给出一个公式φ 一个目标函数t,SYMBA找到一个令人满意的赋值φ 使t值最大化。SYMBA利用高效的SMT解算器作为黑匣子。因此,它易于实现,并直接受益于SMT解决方案的未来发展。此外,SYMBA可以优化一组目标函数,重用它们之间的信息以加快分析速度。我们已经实现了SYMBA,并根据从程序分析任务中提取的大量优化基准对其进行了评估。我们的结果显示了SYMBA与竞争方法相比的能力和效率,并强调了其多目标函数特性的重要性。

这个软件也是同行评审按日记帐汤姆斯.