lambda演算与函数式编程,数理逻辑与符号计算,数学机械化

这段时间,因为学习sicp,被其中一些强大的特性所震惊,比如里面有一些特别重大的特性,使用lambda函数直接构建cons,car,cdr,源代码是这样的。

(define (cons x y)
  (define (dispatch m)
    (cond ((= m 0) x)
          ((= m 1) y)
          (else (error "Argument not 0 or 1 -- CONS" m))))
  dispatch)
(define (car z) (z 0))
(define (cdr z) (z 1))

这样就可以通过这三个运算符构建整个数据抽象层,内部的运算对象是完全封闭的,没有类型的划分,也就是可以存储任意的数据结构,甚至可以囊括一个面向对象系统的原型,但是更精妙的还在后面,实际上lmabda演算就是一个类似图灵机的通用计算模型,最初是由20世纪30年代的数学家邱奇发展起来,它在当时的数学公理化浪潮下诞生的其中一个通用计算模型,也就是说,我们可以使用函数的lambda演算里面的三个规约规则为基础,构建整个程序语言,包括自然数的定义,运算,逻辑表达式的规约。

(define 0 (lambda (f x) x))
(define 1 (lambda (f x) (f x)))
(define 2 (lambda (f x) (f (f x))))
(define true (lambda (x y) x))
(define false (lambda (x y) y))
(define if (lambda (x y z) (x y z)))
...

在理解这个模型的强大之处后,我开始了一场特别奇异的学习历程,首先我的视野突然回到了1900年,这是一个距离理解数学发展史最近的一次数学家大会,因为这是最后一位数学全才希尔伯特发表著名的23个数学问题的那次会议,以后的数学就再也没有出现过一个通晓所有研究领域的人了,希尔伯特曾经写过一本非常著名的书《几何基础》,用以对欧几里得的公理化体系进行进一步的完善和改造,然后他在里面的第一次表露了一种对数学的公理体系进行更加严格的抽象的想法,以至于当时的一部分数学家开始了构建基础数理逻辑运算层面的研究,其中以哥德尔和塔斯基分别给出了自己的结论,哥德尔的研究表明,任意一个逻辑推理和演绎系统,只要存在自指性质的定理,都将陷入悖论,从而推翻整个逻辑体系,然而数学家们的理想其实只要能够为一些通用的定理进行一般化抽象就可以,并不需要进行那样的严密论述,所以塔斯基的结论则更适用一些,塔斯基证明了,一般的初等几何定理都可以使用机械化方法实现证明,也就是可以制造通用推理机,代替人脑对欧几里得公理体系下的数学定理进行证明,这是一个伟大思想的开端,当然这样的思想其实很久之前就存在了

一切问题都可以转化为数学问题,一切数学问题都可以转化为代数学问题,而一切代数学都可以转化成方程,因此,一旦解决了方程求解的问题,一切问题将迎刃而解

这是笛卡尔的原话,最早大概可以从他发明直角坐标系的时候,他对几何问题转化为代数的解析几何做出伟大贡献的时候就产生过的思想,无独有偶,同为在数学领域和哲学领域都做出巨大成就, 并诞生了欧陆理性主义这个哲学学派的莱布尼茨,也说过

精炼我们的推理的唯一方式是使它们同数学一样切实,这样我们能一眼就找出我们的错误,并且在人们有争议的时候,我们可以简单的说,让我们计算“calculemus”,而无须进一步的忙乱,就能看出谁是正确的。

想想微积分课程里面混杂的运算符号多么令人印象深刻,没有人会去有资格去验证一个运算的真假的时候,一套全新的运算系统也许会彻底消失在历史的洪流,这样的故事发生的最著名的一次便是伽罗瓦的群论的发展历程,这或许是代数学里面最引人入胜的重大变革,关于解决五次及以上方程解的问题,争议是好的,避免错误的争议也许最好的方法就是使用通用机器来验证一切,因为机器是纯粹的,比任何一个更厉害的数学家更严密,我国著名数学家吴文俊后期发展了数学机械化这一个学科,里面使用了一些特殊的方法 ,将计算机自动推理的步伐迈向了几何定理,并达到了完备的证明步骤,在这个方向,可能还会有更加重大的研究突破,在不远的将来。

你可能感兴趣的:(lambda演算与函数式编程,数理逻辑与符号计算,数学机械化)