Computer Software
Print ISSN : 0289-6540
Formal Verification of Functional Programs Performing Infinite Input/Output
Masayuki MIZUNOEijiro SUMII
Author information
JOURNAL FREE ACCESS

2017 Volume 34 Issue 2 Pages 2_114-2_119

Details
Abstract
Although formal verification of compilers is extensively studied, compilers for higher-order functional programming languages with side effects such as input and output are rarely verified. This is due to the difficulty of formalizing the semantics of programs performing infinite input and output. We have mechanically verified the K-normalization of call-by-value higher-order functional programs with recursive functions, pairs, and external function calls that can possibly cause side effects, by the Coq proof assistant. K-normalization is a program transformation that gives explicit names to all subexpressions via let-expressions. Its formalization is non-trivial because of the manipulation of bindings. We defined the meanings of programs as infinite sequences of external function calls, using coinductive big-step operational semantics. We also adopted de Bruijn indices by comparison with other techniques to represent bindings.
Content from these authors
© 2017 Japan Society for Software Science and Technology
Previous article
feedback
Top