论文标题
用于主管验证条件的分类数据锤模型简单线性算术
A Sorted Datalog Hammer for Supervisor Verification Conditions Modulo Simple Linear Arithmetic
论文作者
论文摘要
在上一篇论文中,我们已经表明,在简单的线性真实算术(HBS(SLR))上属于Horn Bernays-Schönfinkel片段的子句可以在有限的一阶常数集上转换为HBS子句集。该翻译可以保留有效性和满意度,如果我们以正面或存在量化的验证条件(猜想)扩展输入,则仍然适用。我们称此翻译为数据锤。其在Spass-SPL中实现与Datalog推理器VLOG的结合建立了一种有效的方法,可以在角片段中确定验证条件。我们验证了主管代码的两个示例:汽车中的车道变更助手和增压发动机的电子控制单元。在本文中,我们通过几种方式改进了数据锤:我们将其推广到混合实体算术和有限的一阶分类;我们将可接受的不平等的类别扩展到可变范围和积极扎根的不平等之外;我们通过软键入学科大大降低了锤子输出的大小。我们将结果称为排序的数据锤。它不仅允许我们处理更复杂的主管代码,并更简单地对已经考虑的主管代码进行建模,而且还提高了我们在现实世界基准示例上的性能。最后,我们通过接近耦合替换了Spass-SPL和VLOG之间基于文件的接口,从而导致单个可执行的二进制耦合。
In a previous paper, we have shown that clause sets belonging to the Horn Bernays-Schönfinkel fragment over simple linear real arithmetic (HBS(SLR)) can be translated into HBS clause sets over a finite set of first-order constants. The translation preserves validity and satisfiability and it is still applicable if we extend our input with positive universally or existentially quantified verification conditions (conjectures). We call this translation a Datalog hammer. The combination of its implementation in SPASS-SPL with the Datalog reasoner VLog establishes an effective way of deciding verification conditions in the Horn fragment. We verify supervisor code for two examples: a lane change assistant in a car and an electronic control unit of a supercharged combustion engine. In this paper, we improve our Datalog hammer in several ways: we generalize it to mixed real-integer arithmetic and finite first-order sorts; we extend the class of acceptable inequalities beyond variable bounds and positively grounded inequalities; and we significantly reduce the size of the hammer output by a soft typing discipline. We call the result the sorted Datalog hammer. It not only allows us to handle more complex supervisor code and to model already considered supervisor code more concisely, but it also improves our performance on real world benchmark examples. Finally, we replace the before file-based interface between SPASS-SPL and VLog by a close coupling resulting in a single executable binary.