Bounded model checking (BMC) is a vital technique to find property violations in programs. BMC can quickly find an execution path starting from an initial state to the bad state that refutes a given property. However, BMC techniques struggle to falsify programs that contain loops. BMC needs to unfold the program loops up to the bound k, which sometimes leads to a considerable state-space to be explored. Here, we develop an innovative software verification approach that exploits interval methods via contractors to prune the state-space exploration of programs that contain loops. In particular, this is the first work that exploits interval methods via contractors to analyze the loop variables search-space and identify where the property is guaranteed to hold and prune the domain where it holds. Experimental results show a performance boost in terms of space and time as contractors removed 99% of the search-space in some examples and made them substantially faster to verify with BMC.
翻译:双轨模式检查( BMC) 是发现程序中违反财产的重要技术。 BMC 可以快速找到执行路径, 从初始状态到否定特定财产的坏状态。 但是, BMC 技术很难伪造包含环状的程式。 BMC 需要将程序环展开到绑定 k, 这有时会导致一个相当大的州空间需要探索。 在这里, 我们开发了一个创新的软件核查方法, 通过承包商来利用间隔方法, 将含有环状的州空间探索程序进行精细的探测。 特别是, 这是首次利用间隔方法, 通过承包商来分析循环变量搜索空间, 并查明该属性的保有位置。 实验结果显示, 承包商在某些例子中移除了99%的搜索空间, 并大大加快了与 BMC 的核查速度 。