热度 1
对这三个问题,我们先从第三个问题谈起。如果说我们初始的经验知识(α、β、γ)是对我们日常上千次上万次体验的总结,使我们不必在面对同样情况、事件、对象不必从头思考,那么这个总结过程我们就可以看做是“抽象”,这里的“抽象”用作动词。排除每次经历中无关紧要的部分和没有共同点的部分,归纳出共同点和通用点,形成第一次认识上的“飞跃”。
如果将“抽象”得来的知识通过一种特定的语言表达出来,我们就可以将这种语言所表述的客体、事件、事实看做是“模型”。例如做菜用的“菜谱”就是可以看做是面对“做菜”这个事件的“模型”:它舍弃了许多和做菜通用规律无关的细节,例如,到哪里去买食材、用什么品牌的调味品、使用的加热器是煤气炉还是电炉还是烧煤炉等等,只将做菜所必须、而且每次通用的部分【按顺序】列出,并给出流程实施时必要的参数:需要的食材种类、数量(份量)、调味料的多少、火候的大小、加热时间长短等。可以说,一个菜谱就是应对做某道菜这个事件的抽象模型。当然,如果有人从做菜“悟”到了别的什么,使得菜谱中的一些法则适用于比做菜这个事件更大的范围(也就是我们所说的其它世界),那么,菜谱中所含的抽象就升高到另外一个层次。例如,我们可以把菜谱中“做菜”这一场景“虚化”,从中抽取到“流程”(procedure)和“参数”(parameter),最后我们看到不仅是做菜,所有解决问题的过程都是如此,如果我们可以让这个过程变成机械的、通用的过程,亦即不必再费思量地每次要考虑每次流程的具体情况,那么这个模型所对应的世界就不在仅仅限于做菜,也不仅限于具体的操作流程,而变成一种通用“理论”,那么,这个模型就称为人类通用知识的一部分。而且反过来,这个诞生于厨房的知识就可以用在意想不到的其它领域。因此,模型的本质是所对应的世界,说白了就是所适用的场景。世界的范围决定了模型的通用程度。
**************************************************************************
注:函数的参数的适用范围
如果我们可以从现实世界抽取到“流程”和“参数”这样抽象的概念,那么,我们的模型要回答的下一个问题是,对一个特定的“流程”,我们是否可以接纳所有现实世界的对象作为“参数”?如果答案是“否”,那么下一个问题就是:如何确定参数,换句话说就是什么样的对象可以作为这个流程的操作对象。正如我们上面所述,代表世间对象的种类区分有两种,一是种属不同,而是层次不同,这个层次更正规的说法就是“阶”(order)。而类型论的核心就是研究后者。因此从最广泛的意义上说,类型论的研究属于数学与哲学的范围。
数学和哲学,大概人类历史上作为最通用的知识了。数学,不用说,它是人类所有知识体系中最严格、最理性的领域。而哲学,则是一个宽泛的具有多种歧义的概念。我们这里所说的哲学大致上是指以逻辑作为推理法则的、以探讨哲学基本问题:存在和概念为中心内容的思想体系,可以容纳在这个体系的具体学说包括19世纪中叶兴起的分析哲学以及后续的各种学派,包括逻辑主义、形式主义、直觉主义和结构主义。以及从这些学派派生的现代哲学流派。从性质上来说,大致属于“科学哲学”的范畴,从而排除了其它包括宗教哲学、历史哲学、伦理哲学以及辩证哲学、艺术哲学、美学哲学等专注于某个人文科学领域的哲学学说。
哲学在我们所讨论的类型论中的作用就是,我们对世界的认知模型如何建立,在这个模型中的概念,我们如果区分,区分的依据是什么?
而数学则是一个特殊领域。虽然数学在现实世界中,有着广泛的应用,许多数学概念也具有现实世界的实用背景,但作为一个体系,数学的世界仍然是个“先验”的体系,数学领域的成果不是对自然界某些现象的发现,而是证明,纯粹的理性推理结果。因此和其它领域不同的是,数学世界和为其建立的模型实际上是不同概念体系之间的对应。例如自然数所对应的模型是数轴、有序对对应的模型是二维平面等。而类型论则是在这些形式系统中出现的个体对象发现其恰当的适用范围和精确的定义。
这样就引申出一个问题:建构模型的基础是什么?对这个问题的探讨是形式科学最本质的问题,也是数学哲学讨论的基本问题。这个问题就是:在一个形式系统中,最小的原始元素是什么?它们是如何聚合在一起构成更大的单位,最终形成一个统一的系统?这些原始的、中间的元素之间有着什么样的关系,它们之间又是如何互动从而产生新的元素?
对这个问题的答案很多,但大致归纳起来有两大类:第一,存在性;第二,建构性。存在性的意思是,形式系统内的所有元素,首先要证明它们的存在,而证明的手段,就是符号逻辑;而建构性是指,只要通过一定的程式、规则“建立”其元素我们就可以证明其存在。第一种存在性,就是大部分数学定理证明的理论依据,亦即,一个假说、猜想只有通过数学证明才能证明其存在(假说、猜想为真);而现代计算机程序则是建构性的典型案例:如何知道最大公约数存在?通过一个算法,在机器上实现这个算法,对给定的一组数,得到相应的公约数,从而“证明其存在”。而无论是存在论还是建构论其实都面对着一个共同的问题:那就是形式系统的“结构”。学数学的大概都知道布尔巴基学派,这个学派曾经试图统一所有的数学领域,提出所有数学问题都可以归结为“数学结构”问题,“结构”是统一所有数学分支的一般性概念。虽然到目前为止这个观点并未被所有学者接受,但是在实际的科学活动中结构已成为解释一般形式系统的最基础概念。例如,在“结构”这个概念下,构成“结构”的基本组成部分的“集合”,确实已经成为数学各个分支的共同概念和基础。而现代代数学,以“结构”为基本思想,其研究对象“群、环、域”等,已经超出了对数的研究,开始走向更一般的对象的结构的研究,产生了“泛代数”(universal algebra)这样的数学分支。
因此,结构是我们建立论域模型的基础。我们将在今后的讨论中详细探讨结构的概念,这里只勾勒一个大概的全景图:
1. 问题的论域(universe of discourse),它的数学表示就是一个集合;
2. 论域内的对象(object):对象可以是单个原子元素,也可以是原子元素的集合,亦即、在论域集合上的子集。有些理论将函数看做论域的基本元素,不过这里“函数”的概念已经超出了传统的数学观念,甚至比计算机程序设计语言中的“函数”概念还要宽泛,例如组合逻辑以及其后续发展的组合范畴逻辑,这里暂且不表,我们仍然利用直观的“个体”、“属性”等表示论域中的基本对象。
3. 对论域元素的操作(operation):可以陈述论域元素的性质、论域元素的关系,以及从给定元素产生新元素的操作方法和规则;
这样的一个系统,我们就称之为结构。
**************************************************************************
下面我们谈谈上述的第一个问题:语言问题。首先要说的是,什么是语言?美国生成语法学家乔姆斯基把语言形式化地定义为“句子的集合”,更确切地说就是:给定一个语法,由这个语法所能产生的所有合法句子的总和就是语言。这个定义明确、清晰,因为在生成语法的语境下我们可以明确定义语法,可以明确定义什么是语言理论,因此作为语言理论->语法->句子的集合->语言的派生过程是透明的。不过这个定义的一个缺陷就是没有定义语言的与其它系统的对应关系,亦即语义。当然,从语言的形式化研究角度语义并不是一个语言成立的必要条件,尤其是非自然语言的研究。但是,当一个语言要被用来表示某个模型时,语义就是语言研究的重点了。在我们研究类型论时,我们所关心的仍然是对模型的精确、严格的描述问题,因此最合适的语言就非形式语言莫属。当下最成熟的形式语言有两类:逻辑语言和计算机程序设计语言。但是对这两种语言的语义研究前者比后者更加成熟,故我们这里只考虑前者。基于这个思想我们这里所指的语言,基本上沿袭了乔氏的定义:语言是句子的集合,不过,由于我们的语言是用来表述(denote)某个特定的模型,因此只说语言是句子的集合就远远不够了,应当是:对于某个特定的模型,使得所定义的语言是由其命题为真的句子组成,这样的句子我们称之为“断言”(assertion)。站在语言的角度,我们通常把“模型”说成是“论域”(universe
of discourse)。
而作为语言的基本构成,句法(syntax)和语义(semantics),是语言研究的核心内容。而作为对模型的完整描述,语言还要包含一套推理规则(deductive rules),这个规则的目的就是在确定了对论域一小部分对象的断言之后,能够得到新的断言,前者我们称作“公理”、“定义”,后者称之为“定理”。其中,“公理”、“定义”是原生的,所以又称为“设定”(assumption),而定理则是派生而来,因此其明确的派生、推理过程——证明就是这个语言的重要部分。证明对于模型本身也是很重要的,其中哥德尔的最伟大成就就是确认了模型与证明之间的关系。关于这个问题,我们以后再谈。这里想强调的就是:语言问题是现代逻辑学、数学和哲学研究的中心问题之一。
关于第二个问题,如何确定模型?如何确定模型的基本元素,如何从基本元素派生新的元素,如何保证整个模型不会出现前后矛盾?对这些问题的回答,就不是一两句话就可以说清楚了。例如我们上面提到了“流程”,如何保证一个“流程”可以完成预期的任务?如果这个“流程”只能在“理论上”可以完成任务但现实中所需要占用的资源大大超出了我们的预期,造成实际上无法完成任务。最重要一点,我们如何事先知道这个流程能否有“能力”完成预期任务?它对“参数”的限制是什么?例如,如果这个流程拿自己当参数加入到该流程中会产生什么?这一系列的问题,催生了许多边缘学科,如计算理论,包括可计算性和计算复杂性、可计算函数(前二者可归约成后者)、递归函数理论,以及我们现在正在讨论的类型论以及相应的形式化——λ-演算。我们无法在这样的小文中探讨所有这些题目,类型论是我们当前关注的重点。但有一点是要记住的:这些学科并不是互相孤立地存在,相互之间你中有我我中有你,我们在探讨类型论时,随时会谈到上述有关的话题。
最后,我们应当了解的是,除了集合论、类型论之外,从上个世纪40年代开始又出现了范畴论,其目的和类型论相似,但基本思想或者说对问题的接近方法(approach)却大不相同,核心概念是映射叠加和同构,该理论目前已成为理论计算机科学的一个热点。不过,集合论、类型论和范畴论,其哲学理念是想通的,按我的理解是对哲学观念的数学化。
GMT+8, 2024-5-22 01:02 , Processed in 0.025501 second(s), 17 queries , Gzip On.
Powered by Discuz! X3.2
© 2001-2013 Comsenz Inc.