【发布时间】:2014-03-12 02:28:25
【问题描述】:
本着这篇文章的精神,我实现了依赖类型的 lambda 演算:http://www.andres-loeh.de/LambdaPi/LambdaPi.pdf 演算,有效,我用它做了实验,并扩展了几件事:许多宇宙,硬编码的归纳公理。但是,我想添加归纳类型来做更复杂的事情。
我正在考虑两种方法
- 介绍 Fin-N、Product 和 W-类型,并用它们表示归纳类型。
- 生成归纳和递归公理。
这两种方式我都不喜欢。第一个太低级,需要大量的努力才能从高级语言转换为核心语言。第二种方法工作量很大,而且容易出错,因为复杂归纳类型的递归原理的生成有很多极端情况,即正/负出现。
如何做到这一点?这些类型在 Coq、Agda 和 Idris 等现有系统中是如何实现的?
【问题讨论】:
标签: coq agda dependent-type idris