HMC: Verifying Functional Programs Using Abstract Interpreters
HMC: Verifying Functional Programs Using Abstract Interpreters
复制标题
HMC:使用抽象解释器验证功能程序
DOI:
--
复制
发表时间:
2010
期刊:
影响因子:
--
通讯作者:
A. Rybalchenko
中科院分区:
文献类型:
--
作者:
Ranjit Jhala;R. Majumdar;A. Rybalchenko
We present Hindley-Milner-Cousots (HMC), an algorithm that reduces verification of safety properties of typed higher-order functional programs to interprocedural analysis for first-order imperative programs. HMC works as follows. First, it uses the type structure of the functional program to generate a set of logical refinement constraints whose satisfaction implies the safety of the source program. Next, it transforms the logical refinement constraints into a simple first-order imperative program and an invariant that holds iff the constraints are satisfiable. Finally, it uses an invariant generator for first-order imperative programs to discharge the invariant. We have implemented HMC and describe preliminary experimental results using two imperative checkers - ARMC and INTERPROC - to verify OCAML programs. By composing type-based reasoning grounded in program syntax and state-based reasoning grounded in abstract interpretation, HMC enables the fully automatic verification of programs written in modern programming languages.