学逻辑以致用
摘自《愿随前薪作后薪》 王宗昱主编 北大哲学系百年系庆丛书 北京大学出版社2012
毛翊 (87级北大哲学系逻辑学专业本科生,德克萨斯大学逻辑学博士,现任atsec公司副总裁)
1987年,北大哲学系首次在本科设立逻辑专业,并且面向理科招生。
87级的逻辑学生是这一尝试下招募进来的新兵,被逻辑前辈们寄予殷切的 期望。专业的设计思想是以我们文理兼备的素质,配以系统全面的学习和严格强力的训练,给中国的逻辑科研和教育输送前沿人才。
这一殷切的期望毫不含糊地体现在逻辑专业的课程要求上,最基础的逻辑课有两个演算和四论,另加逻辑史和应用逻辑。两个演算就是命题演算和一阶演算。四论就是集合论、证明论、递归论和模型论。逻辑史展现了从古希腊的亚里士多德逻辑到现代数理逻辑的演进。逻辑在哲学、语言学、数学和计算机等学科中的应用统归于应用逻辑或哲学逻辑的名下。这方面的逻辑课细列出来有模态逻辑、时态逻辑、条件句逻辑、道义逻辑、非单调逻辑和语义学等。既然逻辑是数学的基础,我们又被要求着、鼓励着学了数学分析、实变函数、概论和拓扑学。计算机科学根植于逻辑学,图灵(Turing)和冯·诺依曼(von Neumann)这些先驱的计算机学家同时也是著名的逻辑学家,仅此一条就有十足的理由让首届逻辑学本科生去修点计算机系的课。于是,计算机原理和组成、汇编语言、程序语言、操作系统等科目以或必修或选修的形式出现在我们的课程安排中。再者,我们身在哲学系,自然少不了本系的特色课,这也是"文理兼备"中修炼"文"功的部分。西哲、中哲、马哲、伦理等等,也纷纷挤上我们的课程表。这还没罗列全呢。大家除了都学英语外,同学中还有再将德语或日语作第二外语的,有些干脆德日两语都学了。我们这一个十几人的小分队,可谓是十八般武艺、七十二招变术都学了,着实在炼丹炉里被好好地烤了一烤。
如此沉重的课业负担,逼得我们几乎天天背着书包,提着饭袋,早出晚归,披星戴月,奔旋在各教学楼之间。就我本人而言,还赔进去很多周末和节假日。一句话,我们学得很辛苦! 跟数学系的同学一起修课时,觉得他们的数学直观还是高过我们一筹,我们不能像他们那样"谈笑间,情椿灰飞烟灭"般轻松自如地攻破数学难题,我们主要靠的是笨鸟先飞、愚公移山精神。上计算机系的课程,有时为了买到他们的教材,还得费尽周折,上机练习的时间更是从来都没有给我们这一编外的小分队安排过,我们基本得靠纸上谈兵的功夫学点理论知识。跟哲学班的同学一起上课时,又羡慕他们的功课大多是侃一侃、悟一悟就能过关,不会有被一道证明题卡住,百思不得其解的窘迫。感慨呐,都是同系本科生,忙闲相差何其大!回首当年,现在想起来有点遗憾,本该多多结交各路北大学子,多多参与各种学生社团,多多涉足学三的周末舞会,多多观看六毛钱一场的好电影,多多享用报告讲座天天有的名校待遇。青春难再啊一一除了努力学习外,该让生活更精彩!
共同修炼逻辑的患难经历,倒是把我们逻辑班的同学紧紧地团结在一起,像是长征路上过来的战友。我们忙得无暇旁顾其他,偶尔组织一次班级活动,比如元旦联欢会、春游,大家都倍加珍惜,积极参与,互相帮助,其乐融融。最让我难忘的是在大三结束的暑假,去河南荣阳社会调查实习。期间我们住在农村老乡家或村办企业的宿舍,男生提水,女生洗碗,像个温暖的大家庭。有一年我们还集体在六院的逻辑教研室熬夜撰写申请先进班集体的材料,最后也得到系领导的认可,并授予先进班集体的奖状。
用比喻的方式说,87级的逻辑专业是逻辑教研室的第一个孩子,而且大学四年享受着独子的待遇。系里直到90级才给我们添了少数几个学弟学妹,可他们又被送去军训一年,所以在本科期间没有和他们有过交往。尽管逻辑前辈望子成龙、望女成凤的心愿,造成了我们繁重的学业负担,但我们却有着最仁慈、最热心的老师,对我们的成长关爱有加。老师希望我们学得越多越好,但从来都不会故意为难我们。不像在中学,不仅要懂原理,还要解题神速,搞题海战术。老师们采用的是引导鼓励、自由取舍的方针。为了不让我们有挫败感,当我们学习遇到困难和问题,老师会和我们一起商量想办法解决,在考试前也总会给我们详细的辅导。所以,我们学生不仅自己团结,经常干脆把老师也给"团结"了。大家给当时比我们大不了几岁的叶峰老师过生日。有些老师在课间休息时抽烟,本来不抽烟的学生非要围着老师转,主动接受二手烟。还有就是去老师家蹭饭,去得最勤的是宋文坚老师家,去得最远的是邢滔滔老师家。集体的温暖转化为攻克逻辑学习中遇到难关的持久耐力。
求索逻辑的漫漫长路中,最大的困惑就是"学逻辑有什么用?"同学中时不时地有人在问,这一问题很像是"担下葫芦起个瓢",从入学开始追随我们到毕业,还跟随少数几个同学到了研究生学习阶段。平心而论,这一"有什么用"的问题对所有其效用不是立竿见影的基础理论学科都存在,比如,学高深的数学有什么用?想在股市碰碰运气的话,小学六年级的算术就够了。再比如,我们生活在一个宏观低速的空间,学量子物理有什么用?有些学科则很幸运,如跟互联网相关的计算机科学和信息科学,它们基本上是当今社会亿万富翁的摇篮,它们的效用是如此显而易见,大伙儿不会质问"学这玩意儿有什么用?"这些学科前,常常是人满为患。其实逻辑和计算机科学只差一步之遥,是基础和应用的关系,可一下子就显得门前冷落鞍马稀了。这一天壤之别归因于基础学科的"基础"二字。数学已经是够基础的学科了,而逻辑则堪称是数学之基础。
这基础之又基础的结果是,绝大多数的逻辑课(如,两个演算,四论)极其抽象枯涩,比数学课有过之而无不及。经过层层抽象,色香味形都没了,学起来好像在啃硬骨头。逻辑学常用一些很专门的人工符号来精确指代一些特定的概念。如,上下颠倒的A(即)表示"所有";左右镜像的E(即)表示"有些"。一个逻辑公式要在脑子里转上好几个弯,才能对应到自然语言上的一个翻译。这样风格的功课一门一门地学着,也难免同学们一个接一个不停地问,"学逻辑有什么用?"老师们在我们孜孜不倦地追问下会说"逻辑在计算机科学里大有用处,学好逻辑就很容易学好计算机课了。"我们的反驳之一是"计算机系的同学没有学那么多逻辑,计算机课学得反比我们好。"反驳之二是"如果为了用在将来从事计算机相关行业,那我们干脆直接全部都转到计算机系不就行了吗?"当然,那也只是说说而己,没有人真的去尝试。原因之一是那时北大转系很不容易。转系只能在第一年内申请,转成功的也会降一级,跟下一年新生一起上课。老师提供过的另一个回答是"学好逻辑可以上研究生。"北大当时流行的一句话是,"四处推销无人要,只好去考研。"问题是,"上了研后又怎么样呢?"一种回答是,"出国留学啊。学计算机的出国竞争太激烈;学逻辑的就好多了。"老师还耐心地举了几个出国成功的榜样来鼓励我们,好像出了国境,再有"学逻辑有什么用"的问题,就该由那边高鼻子蓝眼睛的洋老师们去回答了。我在逻辑崇山峻岭间攀越的亦步亦趋正是应了老师们预设的轨迹:大学毕业后上了研究生,后来在美国德克萨斯大学获得专于逻辑学的哲学博士,不过现在却从事着信息安全领域的工作。至于我的洋老师们如何谈逻辑的功用,稍后再叙。
话说当时,偷眼看看我们的老师,他们好像没有整日困惑于"学逻辑有什么用"的疑问上,反而是畅游在逻辑的殿堂里,充分享受着学术研究的愉快,乐此不疲。记得叶峰老师曾说过"要是让你成天写程序,你就会烦写程序了。"这话一点都不假,后来有一段时间,我也曾经成天写程序,写得不想再写了,庆幸自己学过逻辑,在计算机领域里还可以干点儿不是成天写程序的事情。我们当时青春年少,自己修行不到家,还不得其中味。俗话说,干一行,爱一行,行行出状元嘛。就我本人而言,逻辑学久了,渐渐入味了,"有什么用"的问题慢慢变得不那么急切了,对于将来干什么的担忧,抱着车到山前必有路的心态,期待着柳暗花明又一村的出现。
由于1989年历史事件的影响,北大推迟到金秋十月才开学。久别了的燕园,处处点缀着黄灿灿的银杏树叶,天是别样的蓝。这一年,我们上大三。那时所有的基础课(逻辑的基础,数学的基础,计算机的基础等等)都已经学完,我们迎来了第一个哲学逻辑课,那就是模态逻辑。模态逻辑里最好玩的一个概念是"可能世界"。可能世界的概念最先由莱布尼茨提出。虽然他自己的生活并不尽如人意但他仍然认为我们生活的现实世界是上帝创造的,并且是所有可能世界中最好的。著名逻辑学家和哲学家克里普克(Kripke)在其19岁时发表的一篇论文里将可能世界用于逻辑语义学中的模型构造,首次证明了一些模态逻辑系统的完全性。由此他一举成名。今天这种语义学被称为可能世界语义学或克里普克语义学,是各类哲学逻辑或应用逻辑最为基础和重要的一种语义学。在可能世界语义学中,当我们构造模型时,可以在一个可能世界里对原子命题(即描述基本事件的命题)根据需要任意赋值(即规定其真假)。那就等于说,可能世界里的事就像是故事里的事。故事里的事,是也就是,不是也是;故事里的事,不是就不是,是也不是!换句话说,故事里的事由你编写,可以任意美好,也可以极端糟糕,跟现实世界里的真实情况无关。只是作为逻辑的语义装置,在同一个可能世界里不能出现矛盾。如果一个可能世界要对现实世界产生影响的话,两者起码是可通达的。通达关系是带方向的,就像是你爱的人不一定爱你,而爱你的人又不为你所爱。如果两个世界互相通达,这样的可通达关系就具有对称性。除对称性之外,可通达关系还可以是自返的、传递的或偶性的。这些性质也可以组合起来同时拥有。说来神奇,就这么个可能世界加上个可通达关系,就可以把"可能的必然"、"必然的可能"、"可能的必然的可能",如此种种层层叠置、繁难复杂得自然语言里根本不会遇到的模态词说得个一清二楚。
在模态逻辑课上,我们第一次接触到使得等值置换规则失灵的弗雷格谜题(Frege’s Puzzle):皑撒知道晨星是晨星,但是晨星又是暮星,所以皑撒知道晨星是暮星。但事实上,皑撤不知道晨星是暮星。这让我们看到,原来逻辑理论也有不足的地方。知道一个理论的不足,或许就是将来做研究和走向学者道路的起点。在这一门课上,我们第一次昕到关于名字的历史因果命名理论:一个叫"达特河口"的小镇在流经的达特河改道后,仍然被继续叫做"达特河口",那是为什么?克里普克解释说,那是因为,某年某月的某一天,某一群人给某小镇命名的"因"造成了该小镇被叫做"达特河口"的果,这一因果关系沿着历史链条传承了下来,而且还将继续传承下去。这就是著名的历史因果命名理论。可教我们模态逻辑的周北海老师认为历史因果命名理论不完全正确,他著文提出名字组合说。大意是,名字有原子名和复合名之分,复合名由原子名组成。比如,"达特"、"河"、"口"都是原子名,而"达特河口"则是由它们组合起来的复合名。对于原子名克里普克的观点是正确的,而复合名则要复杂很多,不完全是由克里普克理论可以解决的。论述的细节略去不谈,印象深刻的是一一原来像克里普克提出的这么权威的理论也可以被反驳的啊!学到这一手后,当时就举一反三,试着来反驳一下我们眼前的"权威"。下课后,与周老师一起去食堂就餐,看到主食有窝窝头,就故意问一句,"那窝窝头是‘窝窝'加‘头'吗?"年少得意,还不依不饶追加一句,"要不,你吃窝窝我吃头?"
模态逻辑比所有之前学过的逻辑基础课都有趣,令人耳目一新。模态逻辑又是其他哲学逻辑和应用层面各逻辑分支的根基所在,闪耀着学逻辑以致用的一线光芒。当时只觉得模态逻辑好玩,常拿那里面的一些术语来开玩笑地解释好莱坞电影中穿越时空、穿越梦境、营造假想世界的各种离奇情节,其真正功效还是在进了美国德州大学攻读博士学位期间慢慢领悟的。我哲学系的导师尼古拉斯·艾什(Nicholas Asher)用模态逻辑来刻画常识推理(即与数学中用到的单调推理相对立的非单调推理),也用模态逻辑来给自然语言提供形式语义学,所有这些思想和成果都包容在他创建的SDRT中(Segmented Discourse Representation Theoy,我把它中译为"分段式语篇表示理论")。2000年8月,我平生第一次去巴黎,在世界逻辑大会上宣读了我和艾什教授的合作论文,好像练了十几年的逻辑基本功,终于连成一套拳路,打擂比武,也可登台亮相了。
在德州大学就读时,充分利用校园资源,我还在计算机系得了个硕士学位。原来在北大跟着计算机系上的、用纸上谈兵法学了个懵懵懂懂、似懂非懂的那些课,经过反当再消化后,好像让我豁然开窍,恍然大悟了。俗话说得好,技多不压身呐,说不定哪天就真的用上了。我在德州大学计算机系时,上过一门研究生讨论班的课,叫"形式语义学与模型检测",开课老师是艾伦·爱默森(Allen Emerson)教授。他把模态逻辑用在检查程序的正确性上,将近三十年的成果积累,为他在2007年赢得了国际上享有盛誉的图灵奖。当时在他的课上,是1999年,他看我抱着整套的《哲学逻辑手册》在啃读,就跟我聊起了逻辑和计算机的事。大意是:计算机科学还很年轻,统共才五十几年的历史,拿一点点逻辑用在计算机科学的任何地方都可以出成果。逻辑学很古老,尽管他交往过的逻辑学家(如Johan van Benthem)都绝顶聪明,但要在古老的逻辑学里出点成果可不太容易。
我不记得是从什么时候起,我不再问"学逻辑有什么用"了,就像是所有教过我的中美两国的老师们,只想沉浸在其中,乐此不疲,须奥离不了。我现在从事的是信息安全领域的工作,用曾经训练有素的在证明中找漏洞的本事来找软件设计中的安全漏洞,用形式语义学来为各种信息安全产品的安全属性建立刻画模型。我大量的工作就是为我们的客户撰写详尽的评估报告来论证他们产品的安全属性,并得时刻准备着像律师一样答辩美国政府审核机关提出的任何疑问。心里暗自庆幸,亏得逻辑内功深厚,能使论证环环紧扣、滴水不漏。要不然,我那中国腔的英文哪能抵挡得了美国人的唇枪舌剑啊。替公司招募新员工时,总忘不了向应聘者问上一句,"逻辑课修过吗?学得怎么样啊?"有时在工作中也免不了跟一些脑子糊涂、辩论起来不得要领的人打交道,真想建议他们去学学逻辑。
在美国,其实几乎人人都学过一点逻辑和思维方法,或被称之为批判性思维。美国是个崇尚辩论的国家,真理越辩越明嘛,这一点在总统竞选的场场辩论会上就得以充分体现。学点逻辑,就会让人思路变得清晰明白,习惯于辩论说理,而不盲目相信一个宗教、一种学说。修炼逻辑的过程像是给思维做做体操。拿举重练的是体力作比方,逻辑课上练的是脑力。在逻辑课上得到强化训练的是联想比对、抽象概括、区分同异、辨析前提、识别规律、应用规则、解决问题、消解矛盾等等这一类明晰思辨的能力。这样的一类能力何时何地不需要呢?只要一动脑思考,就会用到这些能力。比如,一个一年级的孩子一本正经地做了一个有关沙漠里的蜡鱼(desert pupfish)的研究课题,激发她研究好奇心的恰是因为她识别出了一对矛盾体:沙漠里没有水,而鱼只有在水里才能生活,这沙漠里的蜡鱼该是怎样神奇的鱼儿呢?再比如,有孩子学到"企鹅是鸟,鸟会飞,但企鹅不会飞"时,就质疑"既然企鹅不会飞,为什么还要叫它们鸟呢?"去参观了企鹅馆后,作恍然大悟状说,"原来企鹅是在水里飞的!"好像终于为"企鹅是鸟"的事找到了一个协调一致的解释。可见小小孩童的每一个脑筋拐弯的底层都是由逻辑引擎在推动啊!
学没学过逻辑的差别在于,这类在逻辑课中得以强化的能力是自发地用着还是自觉地去运用。就像是一个不懂车的内部结构和原理的人也能把车开得满城跑,但是懂得车的内部结构和原理的人来开车,才能最大限度地发挥车的功效;学过逻辑的人,会自觉地去理清思绪,从而能够更好地发挥大脑进行理性思维的功用。美国孩子成长过程中的各类考试(如SAT, LSAT, GRE, GMAT, PCAT, MCAT,等等)都包含对逻辑思维能力的测试。批判性思维类的课程和教材,针对各年龄段的都有,体现了逻辑训练从娃娃抓起的精神,从鉴定学前班孩子的资赋,一直到成人就职的面试,考察其逻辑思维能力都是一项基本的衡量标准。美国大学里开设逻辑人门课程非常普遍。
有一年,我被母校德州大学请回去教授逻辑课,回想自己在北大初学逻辑时的困惑,也想提前为自己设防,不要出现被学生团团围住来盘问"学逻辑有什么用"的场景,就特意下工夫给抽象的推理规则配上了很多具体实例,把上课的幻灯片也做得五彩缤纷,有时还添加点卡通图片。良药不一定非要苦口,美国给孩子吃的药都是甜的,还可以当场选择加入各种水果口味。仿效给良药裹上糖衣的做法,我也会给逻辑课穿插点花絮。
比如,让学生们去读卡罗尔(Lewis Carroll)的《爱丽丝漫游奇境记》,并告诉他们这书出自于一位逻辑学家的手笔,也常把斯穆里安(Raymond M.Smullyan)脍炙人口的逻辑奇书Whαt is the Name of this Book (中译本《这本书叫什么?奇谲的逻辑迷题》康宏逵译)中的趣味题带到课堂上来讲。再比如,跟学生们讲讲这样的故事:俗话说冤家路窄,有一位文豪在过一座独木桥时,不巧与他平日打笔战的对手迎面相遇。他的对手挑衅地说,"我从来不给傻瓜让路。"这位文豪反唇相讥地说,"我恰恰相反!"说完就微笑着让到一边,让他的对于先通过独木桥。在这场口战中,究竟是谁占到了便宜呢?
还有就是提及些出于幼儿之口的儿童逻辑。比如,有位妈妈劝三岁女儿吃鱼,说是可以游泳快,孩子马上提议吃蝴蝶,因为她想飞。妈妈阻止女儿不要练芭蕾里的踞脚旋转动作,怕摔断(break)腿,女儿安慰说,"我的腿不是玻璃做的,玻璃会碎,我的腿不会碎(break)!"可以想象,课堂上笑声一浪高过一浪,这些笑声后都蕴藏着逻辑的真谛。学生们不觉得是在啃硬骨头了,而是在享用一顿顿有滋有昧的美餐。学期结束后,有些学生给我写邮件说,这是他们上过的最好玩最有用的课了。
听说北大的逻辑课也做了很多改革,本科生逻辑专业现在已经不再存在,批判性思维一类的大众逻辑课也开设起来了。我想这一改革的方向是对的:不以"计划经济"的机制来随机挑选和安排很少很少的人学很多很多的逻辑,而是让很多很多的人都来学一点点逻辑,让他们终生受用。等到师傅领进门后,修行就在自身了。感兴趣的、愿钻研的学生可以进一步修更多、更高深的逻辑课。只有心甘情愿、非逻辑不学的人,经过系统地学习,不懈地钻研,或许真能冒出几个顶级的逻辑学家,将来也得个图灵奖什么的。
蓦然回首,再试着来回答当年总是困惑我们的"学逻辑有什么用"的问题,我觉得答案的构成有点像斯穆里安在六岁时过愚人节的故事。斯穆里安的哥哥一大早就对他说"我今天会用你从来没被骗过的办法来骗你!"可怜的小斯穆里安等他哥哥来骗他,等了整整一天,一直到他母亲来催他去睡觉,他哥哥还没来骗过他。最后母亲只好命令哥哥来骗他一下,好让斯穆里安快快结束等待,赶紧去睡觉。他哥哥幸灾乐祸地笑着对斯穆里安说,"你已经被骗了!你一直在等我来骗你,是不?可我没来骗你,那你不就被骗了吗?"这一晚斯穆里安久久不能入睡,寻思着,我究竟是被骗了呢,还是没有被骗?说是被骗了,但是又没有真的被骗走什么;说是没被骗,但还是被骗了。
我也一直在思考,我们87级逻辑班的同学们,学了那么多逻辑课,对我们究竟是有用呢还是没用?说是有用吧,但我们同学中没有出一位前辈所殷切期待的逻辑学家,献身于逻辑科研和教学事业,从这一意义上说,好像真的是学非所用。说是没用吧,同学们元论是从政、经商、执教、公司白领,都业绩累累,好像逻辑的内功在释放经久不息的能量,让我们在所从事的工作中脱颖而出,走向成功。这么看来,学逻辑还是有用的!当然,这番有用无用的思考与斯穆里安被骗没被骗的故事只是在结构形式上有点像而已,两者还是有个本质的区别,在于是否涉及自指悖论。
趁隆重庆祝哲学系成立一百周年之际,用我们感恩怀旧的心,一起构建一个可能世界,在其中投射出一栋后现代的模型屋,让如今忙碌在国内外各个工作岗位上的老同学们和当年的老师们相聚一堂,炒个大集合,炖个递归汤,做个叠置蛋糕,再加个符号杂拼果盘,对苦日悉心培养过我们的老师们说"谢谢你们,当年为了一个模型,几行证明,伤透脑筋,熬夜到天明,今天我们心里充满真挚的感谢和崇高的敬意!"