On proving the correctness of program transformations based on free theorems for higher-order polymorphic calculi
On proving the correctness of program transformations based on free theorems for higher-order polymorphic calculi
复制标题
证明高阶多态演算中基于自由定理的程序变换的正确性
DOI:
10.1017/s0960129504004578
复制
发表时间:
2005
影响因子:
0.5
通讯作者:
Patricia Johann
中科院分区:
文献类型:
--
作者:
Patricia Johann
A number of program transformations currently of interest can be derived from Wadler's ‘free theorems’ for calculi approximating modern functional languages. Although delicate but fundamental issues arise in proving the correctness of free theorems-based program transformations, these issues have usually been left unaddressed in the correctness proofs appearing in the literature. As a result, most such proofs are incomplete, and most free theorems-based transformations are applied to programs in calculi for which they are not actually known to be correct. The purpose of this paper is three-fold. First, we raise and clarify some of the issues that must be addressed when constructing correctness proofs for free theorems-based program transformations. Second, we offer a principled approach to developing such proofs. Third, we use Pitts' recent work on parametricity and observational equivalence to show how our approach can be used to give the first proof that transformations based on the Acid Rain theorems preserve observational equivalence of programs in a polymorphic lambda calculus supporting FPC-style fixpoints and algebraic data types. Correctness of the foldr-build rule, the destroy-unfoldr rule, and the hylofusion program transformation for this calculus follows immediately. The same approach is expected to yield complete correctness proofs for free theorems-based transformations in calculi that even more closely resemble languages with which programmers are concerned in practice.
DOI:
--
发表时间:
--
期刊:
影响因子:
--
作者:
通讯作者:
--