什么是模态逻辑?

这是为好友写的简介。似乎有些通用价值,那就放在博客上吧。

逻辑学是一层层建立起来的,就像先学小学算术,再理解中学代数,才能较好地理解微积分一样,对于数学系/计算机系的学生而言,一般都要求先有命题逻辑和一阶逻辑的基础,然后再学模态逻辑。 给没学过这两个预备课程的人讲解微积分不容易,或许像不懂文言文的小朋友读古诗一样:可感受音韵的和谐之美,大致能体会诗歌的含义,但细微妙处则难得深入体验。模态逻辑亦是如此。

Wikipedia等百科全书自然是有些讲解,比如http://baike.baidu.com/view/87317.htm, http://en.wikipedia.org/wiki/Modal_logichttp://en.wikipedia.org/wiki/Multimodal_logic,不过都过于数学化了(这毕竟是个数学问题)。如果要彻底了解,恐怕要从基础的逻辑学开始。推荐《面向计算机科学的数理逻辑》:http://book.douban.com/subject/1277302/,有中文版。可以只读逻辑学相关的两三章内容,总共100页左右。这是我读过的最清晰易懂的逻辑学书。

虽说有书可读,我也试着写个简介在此,并不保证每句话都是数学上无可挑剔的,只是希望用尽量短的篇幅说明模态逻辑的基本思想。

首先,形式逻辑学是把“推理”抽象化和符号化的过程。比如三段论描述的是“如果命题a可以推出命题b,且b可以推出c,那么a就可以推出c”,用符号写就是如果a->b /\ b->c为真,则a->c为真 。在最简单的“命题逻辑”中,定义了“否定(非)”、“推出(->)”、“并且(/\)”、“或者”这么一些个符号,一些推理规则(如三段论),和它们的含义。注意这里的“并且”和“或者”都仅仅是符号,是逻辑学家用数学语言精确定义了它们的意思。对于一个逻辑系统而言,只需要定义一组“符号”以及合理的“推理规则”,就可以进行“语法(syntax)”层面的推理,可以暂时忘记背后的“语义(semantics)”,得到新的定理。

(附注:所谓命题,如abc,可指“今天下雨”或是“21”,是一个句子,它要么是“真”要么是“假”的。)

更复杂的逻辑系统可以引入更多的概念,在不同的“论域”上讨论问题。比如,一阶逻辑就引入了“所有、任意(for all)”和“存在(exist)”的概念,因此可以说“对任意的地球人x,都存在x个头更高的地球人”。相应的要引入一些推理规则,比如“如果对于论域中所有的元素x,命题p(x)都不成立,那么,不可能存在论域中的一个元素x,使得命题p(x)成立”。很不幸用中文描述逻辑学非常麻烦,用符号就好很多:——这虽然会引入更多的数学练习,但是要搞明白的话,似乎是必须的。

模态逻辑定义了两个新概念:“处处成立”的命题和“只是某些时候成立”的命题,符号分别是[] p<> p。它把“论域”进一步扩展了,可以说在这个世界里,pq成立,而在另一个世界里,p成立,q不成立。假如论域中只包含上述两个世界,那么可以结论说[]p为真,<>q为真,但[]q为假因为q只在一个世界里成立。“世界”之间也可以有转移关系,比如从世界i可以通往世界j,从j可以通往k,但是k不能通往i,等等,于是可以定义说在某个世界上,[] p为真的意思是,在从它出发可达的各个世界上都有p为真;而<>p为真的意思是,至少存在一个从它可达的世界,使得p为真

模态逻辑的通用之处(和麻烦之处)在于,它只说了某种叫做“世界”的东西和定义了两个简单的符号。前面说过,语法层面的推理跟背后的语义是无关的。我可以把“世界”理解为“时间”,这样就得到了模态逻辑的一个特例——时态逻辑。“无论是在哪一天,1+1=2都成立”,这是一个[]类型的命题。“自今日起,在将来的某个时间,上帝会降临”,这是一个<>类型的命题。

“世界”也可以理解为“一些人”,而“[]”这个符号可以理解为“知道”,或“相信”。比如,对于我们班上的同学,每个人都知道x是班长。再如,有些人相信上帝,有些人不相信。

模态逻辑的趣味和意义也在于此。可以相对自由地给“世界”和“[]”、“<>”找个解释,然后在此基础上构造一个特殊的逻辑系统,虽然未必每个系统都像时态逻辑一样有用和好用(有用是指,它的语义刚好能跟现实世界吻合;好用是指,其中的公式比较简单,人脑易懂,计算机容易处理)。人们已经构造了大量的模态逻辑系统:除了描述时态、信任,还有描述道义、知识的,等等。

现在总结和反省一下这些概念。所有形式逻辑的研究,都是想用数学语言精确地描述我们真实世界中的某一类问题及其推理过程。通过彻底的符号化,忘掉“意义”,进行符号化的推理,可得到一些新的结论。如果这个逻辑系统是“好”的,那么得到的新结论也将是符合真实世界的。例如,在几何学5个公理的基础上,可以证明勾股定理这个不是那么显而易见的新结论;再如所谓“爱因斯坦的问题”,在熟悉命题逻辑之后就可以像做算术题一样轻易解答。引入模态逻辑后,可研究更多类型的推理过程,比如如下的智力题:

“有甲乙丙三人同向而站,现在有三个红帽子两个白帽子,丙能看到甲乙的帽子,乙能看到甲的帽子,甲谁的都看不见,另一个人给他们带上帽子,问丙知不知道自己带什么帽子。丙说不知道,然后乙也说不知道,最后甲说他知道,问甲为什么知道?”

当然,即使没学过模态逻辑,也可以想明白上面这个问题。数学语言精确描述带来的好处包括:可以更清晰透彻地理解“推理”这个过程,满足我们对数学和哲学的好奇心;具备清晰的理解之后,有助于人脑解决相对复杂的推理问题;也可以让计算机“算”出这些问题的解,由此带来的应用就更广了,例如model checking。

This entry was posted in 学而思, 形式化方法. Bookmark the permalink.

3 Responses to 什么是模态逻辑?

  1. Feng Liang says:

    学习中。。。

  2. Liangqin Sun says:

    哈哈,找到大本营了。

  3. Xiangpeng says:

    haha 这是一个很少有人留言的大本营

发表评论