【Programming Languages And Lambda calculi】第二章 结构归纳法 2.1 基础

本文详细介绍了结构归纳法在证明编程语言相关论点中的作用,特别是针对递归定义集合的证明。通过举例和定理2.1的证明,阐述了结构归纳法的基本要素和归纳要素,强调了正确构造归纳证明的重要性,为理解和应用结构归纳法提供了清晰的指导。
摘要由CSDN通过智能技术生成

章节2 结构归纳法

上一章定义的r关系是一个函数,但我们如何证明?这里有一个半正式的证明:

r关系由一对约束定义。第一个约束为以 f 开头的•表达式,结果由表达式的右侧部分唯一确定。第二个约束为以 f 开头的•表达式,结果被唯一确定为 t 。因为一个表达式仅可以以f或者t开头,所以只有一个约束会被应用,因此结果也是唯一的。

上述的论点是相当有说服力的,因为它以来于一个表达式直接可观察的性质:这个表达式由 f 还是 t 开头。其他关于 B 的关系可能不那么容易证明。例如,我们并不显而易见地发现 evalr 是一个函数。其根本原因是因为B是递归定义的,并没有能够直接列举所有有趣的案例的方法。所以,为了证明更加一般的论点,我们必须使用 归纳法

数学归纳法是以自然数为基础的。通常的证明过程为:

  1. 证明当 n = 0(1) 时成立。
  2. 假设 n = m 时成立,那么可以推导出在 n = m + 1 时论点也成立。

在大多数情况下,在我们将要考虑的证明中,并没有为集合元素提供肉眼可见的自然数 n,但是在论证一个表达式属于某个集合的过程中,可以基于论证的步骤数为表达式派生出我们所需要的自然数 n。

抛开为数学归纳法反复寻找合适的自然数的过程,我们将会使用 结构归纳法 ,它直接作用于语法定义的集合元素,其基本原理与数学归纳法一致。

2.1 结构归纳法的要素

结构归纳法应用在证明一个没有递归定义的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值