Loop-invariant synthesis is the basis of every program verification procedure. Due to its undecidability in general, a tool for invariant synthesis necessarily uses heuristics. Despite the common belief that the design of heuristics is vital for the effective performance of a verifier, little work has been performed toward obtaining the optimal heuristics for each invariant-synthesis tool. Instead, developers have hand-tuned the heuristics of tools. This study demonstrates that we can effectively and automatically learn a good heuristic via reinforcement learning for an invariant synthesizer PCSat. Our experiment shows that PCSat combined with the heuristic learned by reinforcement learning outperforms the state-of-the-art solvers for this task. To the best of our knowledge, this is the first work that investigates learning the heuristics of an invariant synthesis tool.
翻译:循环变量合成是每个程序核查程序的基础。 由于其一般的不可变性, 一个非变量合成工具必然使用超自然学。 尽管人们普遍认为超自然学的设计对于核查者的有效运行至关重要, 但几乎没有为获得每种变量合成工具的最佳超自然学而做任何工作。 相反, 开发者对工具的超自然学进行了手动调整。 这项研究表明, 我们能够通过为不变量合成者 PCSat 强化学习学习来有效和自动地学习一种良好的超自然学。 我们的实验显示, 超自然科学实验结合了通过强化学习学到的超自然学, 超越了这项工作的最先进的解决者。 根据我们的知识, 这是第一次调查如何学习一种变量合成工具的超自然学的工作。