归纳族

归纳族 (又叫广义代数数据类型指标类型) 是归纳类型依值类型论中的推广, 它允许构造子的返回类型仅仅是归纳类型对于它参数的一组实例的特化, 因此归纳族的类型中总是有参数.

例如, 考虑如下类型:

类型定义为 , 有一个自然数类型参数,

构造子 ,

构造子 .

而它的消去规则只用考虑可能的构造子, 比如 对这两个构造子都不适合, 这个类型拥有如下特征:

没有任何可用的构造子, 因此这是空类型.

有一个构造子可用 , 因为若存在 使得 , 那么 , 与前文矛盾. 这可以看作单位类型.

两个构造子均可用, 一共两个不同的实例.

一共三个不同的实例.

事实上, 一共有 个不同的实例.

以上类型被称为有限集合类型, 是典型的归纳族. “族” 这个名字是因为可以把 看作定义了一类型的函数.

1定义

定义 1.1. 考虑依值类型论中的归纳类型和它的构造子若将构造子的类型定义改为那么这便是一个归纳族.

这个定义可以借助 类型非常简单地推广到多参数的情形.

2例子

Martin-Löf 类型论中的相等类型可以视为一种归纳族.

类型部分:

构造子:注意 .

3相关概念

简化归纳族

术语翻译

归纳族英文 inductive family

广义代数数据类型英文 generalized algebraic data type

指标类型英文 indexed type