模板辅料

用类型化模板COQ认证元编程。Template Coq(URL)HTTPS://TEMPOLTE-COQ.GITHUBIO/TEMOPLATE-COQ}是Coq的插件,最初由Malecha(18)实现,它提供了COQ术语和全局声明的重组器,如COQ内核中所表示的,以及表示命令。最初,它是为了在加伊纳的COQ AST上编写功能而开发的。最近,它被用在CurtCoQ认证的编译器项目[4 ]中,作为其前端语言,导出参数性属性[3 ],并将Coq项提取到CBV $ lambda $ -演算〔13〕。然而,语法缺乏语义,无论是键入语义还是操作语义,这应该反映为COQ中的形式规范,即Coq类型理论本身的语义。该工具也是相当粗糙的骨骼,只提供基本的引用和引用命令。我们将其推广到处理由COQ实现的归纳构造(CIC)的整个演算,包括定义和诱导的内核声明结构,并实现用于Coq逻辑环境的一般操作的单子。我们演示了这种设置如何允许COQ用户定义多种类型的通用插件,其正确性可以在系统本身中被容易地证明,并且可以在提取之后有效地运行。我们给出了一些实现插件的例子,包括参数翻译。我们还提倡使用模板COQ作为高级工具的基础。