arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2107.09472cs.PL
收藏

一个抽象解释器的验证函数式编程

Verified Functional Programming of an Abstract Interpreter

Lucas Franceschino, David Pichardie, Jean-Pierre Talpin

摘要:

抽象解释器是复杂的软件:即使抽象解释理论和伴随算法被很好地理解,它们的实现也会受到错误的影响,这可能会质疑它们计算的可靠性。虽然过去已经编写了一些正式验证的抽象解释器,但编写和理解它们需要使用证明助手的专业知识,并且需要大量的交互式证明。本文提出了一个形式验证的抽象解释器,完全编程和F* 验证编程环境中证明是正确的。由于F* 细化类型和SMT证明能力,我们证明了大量节省证明工作相比,以前的作品的基础上互动的证明助手。几乎所有的代码,我们的实现,包括证明,写在一个功能的风格,直接在文件中。

英文摘要:

Abstract interpreters are complex pieces of software: even if the abstract interpretation theory and companion algorithms are well understood, their implementations are subject to bugs, that might question the soundness of their computations. While some formally verified abstract interpreters have been written in the past, writing and understanding them requires expertise in the use of proof assistants, and requires a non-trivial amount of interactive proofs. This paper presents a formally verified abstract interpreter fully programmed and proved correct in the F* verified programming environment. Thanks to F* refinement types and SMT prover capabilities we demonstrate a substantial saving in proof effort compared to previous works based on interactive proof assistants. Almost all the code of our implementation, proofs included, written in a functional style, are presented directly in the paper.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑