LEAN 类型理论之注解(Annotations of LEAN Type Theory)—— 归纳类型(Inductive Type)的定义

        归纳类型(Inductive Type)是下图的类型等式(Type Equation)的解,那从下述等式出来,看看LEAN是如何定义归纳类型的。

一、归纳规格 K(Inductive Specification K)

        K 在《归纳类型(Inductive Type)浅析》中,指的是类型函数的函数体。这里,根据LEAN的定义,K 是归纳规格的类型(The type of inductive specification),是和类型(Sum Type),即代表了一些列的构建函数(a list of constructors),其中 (c : e)表示一个构建函数(constructor),其名字为 c,类型为 e。

        因此,有 K ≡ ∑ᵢ(cᵢ:αᵢ),其中 K 可以为 0,即该归纳类型没有构建函数(no constructor)。也就是,无构建函数的归纳类型,因不能构建其正规元素,即空集。

二、望远镜表示法(Telescope Notation,x :: α)

        1. x :: α ≡ x₁:α₁, x₂:α₂, ..., xₙ:αₙ

        2. Γ,x::α ⊢ e : β ≡ Γ, x₁:α₁, x₂:α₂, ..., xₙ:αₙ  ⊢ e : β

        3. Γ ⊢ x::α ≡ Γ ⊢ x₁:α₁ and Γ,x₁:α₁ ⊢ x₂:α₂ and ... Γ, x₁:α₁, x₂:α₂, ..., xₙ₋₁:αₙ₋₁ ⊢ xₙ:αₙ

        4. λx::α.β ≡ λx₁:α₁.λx₂:α₂....λxₙ:αₙ.β

        5. e::α, f:∀x::α.β ⊢ f e : β[e/x] ≡ f e₁ ... eₙ

三、归纳规格K的定义(Γ,t : F ⊢ K spec)

        基于上述的望远镜表示,定义了 K 作为一个归纳类型的合适的归纳规格。也就是说明,K是如何组织其归纳类型的构建函数。

四、构建函数的定义(Γ,t : F ⊢ α ctor)

1. 无参构建函数(Constructor without argmuent),如 zero: Nat。

2. 有无递归参数的构建函数(Constructor with non-recursive arguments)

3. 有递归参参数的构建函数(Constructor with recursive arguments)

        其中,类型变量 t 指向的是,正在定义的归纳类型。

五、归纳函数的定义

1. 语法表达结构,分别是,归纳类型定义(Definition),构建函数(Introduction),归纳类型的正规元素的使用函数(Elimination)。

2. 归纳类型赋型规则(Typing Rule),也叫类型构造规则(Type Formation Rule)。

3. 归纳类型的构建函数赋型规则(Typing Rule for constructors),同时也是该归纳类型的正规元素定义规则(Introduction Rule),因构建函数就是用来构建其正规元素(canonical element)的。

由于归纳类型的使用规则(Elimination Rule)比较复杂,通过下一篇文章进行阐述。

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值