In this report, we present the preliminary work developed for our research project for the APDC (\'Area Pr\'atica de Desenvolvimento Curricular) course. The main goal of this project is to develop a framework, on top of the Why3 tool, for the verification of effectful higher-order programs. We use defunctionalization as an intermediate transformation from higher-order OCaml implementations into first order ones. The target for our translation is WhyML, the Why3's programming language. We believe defunctionalization can be an interesting route for the automated verification of higher-order programs, since one can employ off-the-shelf automated program verifiers to prove the correctness of the generated first-order program. This report also serves to introduce the reader to the subject of deductive program verification and some of the tools and concepts used to prove higher order effectful programs.
翻译:在本报告中,我们介绍了我们为APDC课程(\'Area Pr\'atica de Desenvolvimento levelmento subjector)的研究项目开发的初步工作。该项目的主要目标是在“Wax3”工具之上开发一个框架,用于核查有效的高阶程序。我们使用解职作为中间转换,从高阶OCaml实施到第一阶执行。我们翻译的目标是为什么ML,即Why3的编程语言。我们认为,解职可能是自动核查更高阶程序的一个有趣的途径,因为人们可以使用现成的自动程序核查器来证明生成的第一阶程序的正确性。本报告还向读者介绍扣减程序核查的主题,以及用来证明更高顺序有效程序的一些工具和概念。