We propose a new cyclic proof system for automated, equational reasoning about the behaviour of pure functional programs. The key to the system is the way in which cyclic proof and equational reasoning are mediated by the use of contextual substitution as a cut rule. We show that our system, although simple, already subsumes several of the approaches to implicit induction variously known as "inductionless induction", "rewriting induction", and "proof by consistency". By restricting the form of the traces, we show that global correctness in our system can be verified incrementally, taking advantage of the well-known size-change principle, which leads to an efficient implementation of proof search. Our CycleQ tool, accessible as a GHC plugin, shows promising results on a number of standard benchmarks.
翻译:我们为纯功能程序的行为提出了一个新的自动、等式论证系统。 系统的关键在于如何通过使用背景替代规则来调解循环证明和等式推理。 我们展示了我们的系统,尽管简单,但已经将多种隐含的上岗培训方法归为“ 上岗培训 ” 、 “ 重写上岗培训 ” 和“ 一致校准 ” 。 通过限制跟踪形式,我们显示我们系统中的全球正确性可以逐步得到验证,同时利用众所周知的规模变化原则,从而有效地实施证据搜索。 作为GHC插件,我们的循环Q工具显示了一些标准基准的可喜结果。