使用嵌入式语言击败生产力检查器

使用嵌入式语言击败生产力检查器
尼尔斯·安德斯·丹尼尔森
在偏爱和交互式定理证明程序中的递归(2010年PAR),EPTCS第43页, 2010.[pdf格式,突出显示的代码,带代码的tarball]

摘要

一些通用语言,如Agda和Coq,允许使用同位语构造无限值和证明。防护的共递归是一种递归形式,其中任意递归调用是允许的,只要它们由共导构造函数保护。谨慎性确保项目富有成效,即无限值的有限前缀可以在有限时间内计算出来。然而,许多生产性程序没有得到保护把它们放在有保护的形式中是很重要的。

本文给出了一种将生产程序转化为保护程序。该方法相当于定义特定于问题的语言作为数据类型,以特定问题编写程序语言,并为这种语言编写一个谨慎的翻译。

勘误表

在第7节中,出现了三处斜体地图(英寸不动产税,国家统计局国家统计局₂′)应替换为构造函数地图(设置为sans-serif字体)。

尼尔斯·安德斯·丹尼尔森
上次更新时间:2013年5月13日星期一12:35:04 UTC。