摘要:本文主要探讨动态认知逻辑技术结果背后的思想,着重强调其在方法论方面的一般想法。文章在公开宣告逻辑的基础上展开讨论,重点考察了归约公理的意义,揭示了其本质是在基本语言中提前解析动态信息对认知产生的影响。以公共知识为例文章说明了并非对所有的逻辑算子都能找到归约公理,有时候我们需要丰富基本语言的表达力。而且,我们从如何给出一个逻辑的角度提出动态认知逻辑实际上是在“动态化”认知逻辑,这种动态化的方法可以应用在其他静态的逻辑系统中。我们以动态偏好逻辑为例说明了这一过程如何实现。
关键词:动态认知逻辑 动态偏好逻辑 公开宣告逻辑 归约公理 动态化
一、引论
从1980年代开始,在逻辑的研究领域发生了所谓的“动态转向”。与先前研究静态的逻辑系统及系统的证明不同,大家开始关注逻辑的动态特征,证明不再被看作是一个人的思考,而被看成是一个动态的过程。多主体的逻辑系统逐渐成为逻辑研究的一个重要内容。特别是,当信息在人们的生活中扮演着越来越重要的角色时,逻辑开始研究信息给我们的认知带来的变化,以及如何对此类现象进行逻辑抽象的刻画。动态认知逻辑、信念修正理论、和动态偏好逻辑纷纷成为逻辑研究的重要领域。在对信念的研究中,1980年代出现了所谓的AGM理论,它利用公设(postulate)的方法来研究信念的修正。后来,AGM的方法也被用来处理偏好的改变。另一方面,1990年代出现一种新型的逻辑:动态认知逻辑,它重视研究信息来源的机制以及逻辑系统的性质。有趣的是,动态认知逻辑的方法也用来处理信念的改变和偏好的改变。还有,动态认知逻辑的方法也被引入道义逻辑,用来处理在道义情境中发生的动态变化。这些应用性研究表明,动态认知逻辑具有一般意义上的方法论。本文的主旨正是要反思动态认知逻辑的研究,揭示其技术结果背后更为一般的方法论思想。
在给出动态认知逻辑的形式定义之前,我们先介绍动态认知逻辑的一些直观想法和简要历史。所谓动态认知逻辑,简言之,就是由认知逻辑和动态逻辑组合而成的一个逻辑。认知逻辑(epistemic logic)是关于知识的逻辑,或广义而言,关于知识和信念的逻辑。知识在日常生活中扮演着非常重要的角色。从上个世纪五、六十年代,哲学家们开始试图对知识和信念的推理进行形式化分析。最有影响的著作是欣迪卡(Hintikka)1962年的专著《知识和信念》,他第一次系统研究知识和信念的逻辑属性。近年来,来自不同领域(包括经济学、语言学、人工智能和理论计算机科学)的研究者们再度对知识和信念产生了浓厚的兴趣。与认知逻辑早期的研究不同,他们关注更多的是知识、信念与行动之间的关系,而且往往在实际应用的背景之下思考问题。譬如说,一个机器人为了完成一项任务需要知道什么?它知不知道自己知道某件事情?拥有多少知识它才会做某件事情?一个经济学意义上的主体如何根据已有的信息做出投资的决定?他知不知道其他主体的知识?一个数据库何时应该对一个问题回答“我不知道”?另一方面,动态逻辑 (dynamic logic) 则最初出现在计算机科学领域,它对程序的结构以及由程序的运行引发的状态变化进行逻辑刻画。信息流导致认知状态的改变!这就是动态逻辑与认知逻辑的结合点。动态认知逻辑对信息流所引起知识变化这一现象进行建模。特别是,信息流的“流动机制”在动态认知逻辑中得到了详尽的探讨,从最简单的“公开宣告”到复杂的“欺骗”和“秘密告知”等。这方面的文献很多,我们将会在下文逐渐提到。
本文的结构如下:第二节给出公开宣告逻辑的语法、语义以及公理系统,这是我们关于动态认知逻辑讨论的基础。我们将会看到其公理系统中最为典型的公理,即所谓的“归约公理”。第三节是本文的重点,集中讨论归约公理的本质及其意义。第四节则从如何定义一个逻辑的语法和语义的角度来看动态认知逻辑,强调其“动态化”的方法。第五节总结全文,给出一些本文研究得到的结论。
二、公开宣告逻辑
新信息的出现有各种各样的机制,最简单的一种是“公开宣告”(public announcement),即,通过他人的告知而获得知识。公开宣告逻辑是动态认知逻辑中最简单的一种,由于本文所关注的重点是动态认知逻辑的方法论,我们的讨论大部分都将在公开宣告逻辑中展开。以下主要引入公开宣告逻辑的背景、语法和语义等。
公开宣告逻辑有着很直观的背景,如下是一个典型情境,这是两个主体之间的问和答。我们用Q表示问问题的那个主体,用A表示回答问题的主体。
Q:辛亥革命是1911年爆发的吗?
A:是的。
我们用P 表示“辛亥革命于1911年爆发”。当Q提出问题时,Q传递的信息是他不知道P是否成立,可以用认知语言表示为:
ØKQPÙ ØKQØP
并且他认为A也许知道:
<K>Q (KAP Ú KAØP )
A肯定回答后,传递的信息是她知道P,她让Q知道P,Q知道A知道P,如此等等,直至任意有穷深度的迭加,这样就产生了公共知识,表示如下:
C{Q, A}P
我们在后面会进一步介绍公共知识这个概念。在这个简单的对话中,信息的流动可以用下图表示。
图1
图中左边的整圆和右边的半圆都表示模型,用M 和 M|P 分别表示。左半圆表示P为真的可能世界,右半圆表示P为假的可能世界,s表示模型中的可能世界。M|P是M的子模型,其论域是{t∈M│M, tú=P}。公开宣告真命题P把模型M 更新变成了其子模型M|P,这样的更新有时候又被称为“剔除可能世界”。
在上面的模型变化中,关键是公式的真值在更新中可能发生变化:不知道P的主体在宣告后知道了P。公式的真值随着信息的流动而变化是十分地微妙的。在合适的逻辑形式中,系统地刻画这种变化是非常有意义的。公开宣告逻辑就是对“公开宣告”这样的动态行动进行研究的逻辑。下面我们给出一些基本定义和基本结果,为后面的讨论做准备:
定义1 令G 是可数的原子命题的集合,G 是有穷的主体集。p指称任意的原子命题,a表示任意的主体。公开宣告逻辑的语言是在认知语言中增添了行动的模态词,定义如下:
P ::= p│Ø │ │K a │[!P]
我们将把K a 读作“主体a知道 ”,把[!P] 读作“在公开宣告P之后 成立。”我们也可以把命题动态逻辑中常用的程序算子,如“组合”、“选择”、“迭代”加入到动态行为的词汇中——但是,在本文我们不准备讨论包含它们的复杂行为模式。
定义2 给定可数的原子命题集G 和有穷的主体集G,一个克里普克模型M = (S, {~a| aÎG},V )定义如下,其中
(a) S是可能世界的集合,
(b) V是对命题变元的赋值函数,
(c) 对每个主体aÎG,都有一个认知可及关系~a连接s到所有她不能区分的可能世界。
本文将设定~a关系为一个等价关系,即,它满足自返性、对称性和传递性。一旦给定了模型,我们就可以解释什么时候一个公式在模型的某个世界上是真的。
定义3 给定一个模型M 和一个状态sÎS,我们递归定义一个公式在 M,s上是真的:
M,sú= p 当且仅当 sÎV(p)
M,sú= Øj 当且仅当 并非 M,sú= j
M,sú=j y 当且仅当 M,sú= j 或 M,sú= y
M,sú= Ka j 当且仅当 任意的t,若t ~a s,则M,tú=j
M, sú= [!P] 当且仅当 如果 M, sú=P,那么M|P, sú= 。
在公开宣告的条件下,有如下完备的逻辑演算:
定理 1 公开宣告逻辑可以由下面的公式和推理规则进行完全地公理化:
1. 所有命题逻辑重言式的特例
2. K a(j ®y)®(K a j ® K a y)
3. K a j ® j
4. K a j ® K a K a j
5. Ø K a j ® K a Ø K a j
6. [!P]q (P→q) 对任意原子命题q
7. [!P] Ø (P→Ø [!P] )
8. [!P]( ) ([!P] [!P] )
9. [!P] K a (P→K a [!P] )
分离规则(MP):从j®y和j,推出y。
必然化规则(Nec):从j,推出K aj。
可以看出上面的公理和规则是在认知逻辑系统S5的基础上增加关于动态算子的公理所得。注意:公理6-9都是等值式,等值式的左边[!P]之后的公式从原子命题到复杂的认知命题,而等值式的右边是更为简单的公式。特别是,[!P]之后没有认知算子的出现。换句话说,它们把复杂的公式归约为简单的公式,因此被称为“归约公理”。
定理 2 公开宣告逻辑是可判定的。
公开宣告逻辑的可判定性与认知逻辑(模态逻辑)的可判定性之间有着密切的关系,我们后面会对此进行讨论。
以上我们简要给出了公开宣告逻辑的一些基本知识。公开宣告逻辑还有其他丰富的内容,包括基于互模拟的模型理论、语言表达力和计算的复杂性等问题。此外,动态认知逻辑中还有不少开放的问题值得我们进一步研究。下一节我们首先讨论归约公理在动态认知逻辑中的地位和作用,以及它们的方法论意义。
三、归约公理的方法论意义
上面刚刚提到,归约公理都是等值式,这是一个显然的语法特征。归约公理递归地给出了公开宣告之后所有公式的变化,从简单的命题到复杂的认知公式,等值式的右边把动态算子向公式内层推进。具体而言,公理6是对原子命题的归约,表明原子命题的真假不受公开宣告的影响。公理7和8是对否定式和合取式的归约。公理9是对认知公式的归约,这个公理最为重要,以下我们详细解释其“归约”过程。同时,下面的说明可以看作是此公理的一个可靠性证明:
回到图1所示情境,比较更新前后的两个模型:(M, s)和(M|P, s)。公式[!P] Ka 的意思是在模型M|P中,所有与s有~a可及关系的可能世界都满足 。在M中相应的可能世界是与s有~a可及关系且满足P的那些可能世界。考虑到在更新过程中公式的真值是可以改变的,所以正确描述M中的那些可能世界不再是它们满足 ,而是 [!P] ——它们在更新后变成了 。当P在公开宣告 成真后,!P只是部分执行。因此,我们需要做出断定,在右边的条件中!P正在执行。也就是说,P是真的。将所有的这些加在一起,[!P] K a 表达的意思与P K a (P [!P] )相同。但是考虑到算子[!P]只是在作部分执行的影响,我们可以将最终的公式简化为它的等值式P K a [!P] 。
上面的分析有两个主要特征。首先,这种分析是组合的,它逐步打开动态模态词[!P]后面的“附加条件”。其次,动态的“归约公理”将我们的动态认知语言中的每一个公式逐步化归为只包含静态的纯认知语言的等价公式。就模型而言,这样的分析意味着当前的静态模型已经包含了主体间交流后他们的知识发生变化的所有信息。用一个口号来讲,就是:“当下的认知状态已经包含了关于未来的认知信息”。当然,这个特性对静态的基本语言是有所要求的: 该语言必须够丰富,能够进行提前解析动态行为。
另外,就逻辑而言,归约程序意味着,公开宣告逻辑是完全的,因为基本的认知逻辑是完全的。另外,公开宣告逻辑是可判定的,因为它在静态认知的基本语言中是可判定的。正如定理2所述。
需要指出的是,对于扩展基本认知语言的新算子,并非一定能够找到它的归约公理。假定我们增加一个新的认知算子到公开宣告逻辑语言中去,比如说公共知识,用符号“CG ”表示“ 是群体G中的主体的公共知识”。语义上讲,CG 是指“ 在所有经过有限步可及运算后可通达的可能世界中是真的”。遗憾的是,对于公式[!P]CG 不存在归约公理。为了得到CG 的一个归约公理,需要首先引入一个新的概念——条件公共知识来扩展基本的认知语言:
CG(P, ),
这个公式的语义解释为“ 在所有经过有限步可及关系的运算后可通达的可能世界中是真的,且所有通过的世界都满足P ”。可见,一般的公共知识CG 是它的一种特例,即,CG((, )。利用这个新算子,在公开宣告逻辑中我们首先写出公共知识算子的归约公理:
[!P]CG CG(P, [!P] )
注意后件中[!P]的作用。在左边,用!P更新之后我们看到的是M|P中满足 的可能世界,但是它们对应于在初始模型M中满足先前的公式[!P] 的可能世界。
然后,更重要的是要找到条件公共知识算子的归约公理,见下面的定理。
定理 3 包括条件公共知识的公开宣告逻辑通过增加下面的归约法则以后可以完全地公理化,法则如下:
[!P]CG( , ) CG(P [!P] , [!P] )
关于公共知识的例子告诉我们,尽管归约公理具有十分重要的意义,但是寻找归约公理的过程需要艰辛的工作,有时候还不得不面临失败。
最后,需要指出的是,在动态认知逻辑中,动态的算子可能会是很复杂的行为,譬如前面提到的“秘密告知”、“欺骗”等。不管动态的行为何等复杂,重要的问题还是要得到归约公理。可以说,归约公理是动态认知逻辑核心,理解了它们也就掌握了动态认知逻辑的精髓。
四、“动态化”的一般方法
前面我们讲到,动态认知逻辑是动态逻辑和认知逻辑的组合。更确切地说,动态认知逻辑是对认知逻辑进行了“动态化”。事实上,这样的动态化是有章可循的。从前面的关于公开宣告逻辑语言和模型的定义可以看出其一般的工作原理。首先,有一个静态的语言和与之相匹配的模型来表达某种信息状态。譬如,基本的认知语言和克里普克模型。接着,将相关的包含-信息的动态事件分析为改变模型的某种更新,例如,公开宣告或更为复杂的行为事件。这些事件能在动态扩张的语言中被清楚地表达出来,该语言也能通过这些事件发生以后成立的命题来陈述这些事件所产生的影响。换句话说,我们把静态的逻辑作为基本逻辑,对其进行了动态的扩展。原则上,这样的方法适用于其他任意的逻辑系统。我们举一个动态偏好逻辑的例子说明这一点。
偏好逻辑的静态语言和模型定义如下:
定义4 给定 G为有穷的原子命题集,G 为有穷的主体集,p指称任意的原子命题,a表示任意的主体。偏好逻辑的语言按照下面的方式给出:
P::= p | Øj | j Úy | [pref]aj
我们将会同时使用偏好算子的对偶形式,即<pref> aj(=:Ø[pref]aØj)。
定义5 偏好模型是个三元组M= (S, { a | aÎG}, V)。其中S是可能世界集, V是对命题变元的赋值, a是世界集上的自返、传递关系。
直观地说,s a t表示“对主体 a 而言,t 至少跟 s 一样好”。
给定静态的语言和模型之后,要研究动态行为改变偏好的现象,我们引入动态的算子“#j”到静态的语言中,它表示“建议j”这样的信息事件。这样,就得到了扩展的新的动态偏好逻辑的语言。接着,我们如下在语义上定义偏好关系在这个运算下是如何变化的。
定义6 给定任意的认知偏好模型 (M, s),升级模型 (M#j, s) 定义如下:
(a) (M#j, s) 跟模型 (M, s) 具有相同的论域、赋值及现实世界,除了
(b) 新的偏好关系现在成了:
*a = a —{(s, t) | M, s ⊨ j 且 M, t ⊨ Øj }。
注意:与公开宣告不同,偏好的改变是模型上可能世界之间关系的变化,而不是可能世界的剔除。
最后,最主要的任务是要给出[#j][pref]a j 的归约定理,即,在语言中陈述建议之后偏好如何改变。以下是归约公理:
<#j><pref>ay « (Øj Ù <pref>a<#j>y) Ú (<pref>a(j Ù <#j>y))
这个公理准确地为主体改变偏好关系进行提前解析。它说出了下面的本质性质:在用 j 将偏好关系更新之后,从当下世界到 j-世界的偏好链接成立,当且仅当,在更新之前有相同的链接存在。这意味着并不能排除下列的情况:即从满足 j 的现实世界到某个其他满足 Øj 的世界之间的链接。关于链接有三种情况,可用右边的两个析取肢来简单地描述之。最后,因为更新有可能已经改变了公式的真值;我们必须很谨慎地说,在更新之前,链接所指向的世界相对于j,它应该满足 <#j>。
一旦找到了归约公理,我们自然可以得到完全的动态偏好逻辑系统。同样,动态化方法也用在了信念逻辑和道义逻辑中,有不少研究者们正在做这方面的工作。从这种意义上说,动态认知逻辑的设计是模块化的,它独立于任何静态模型及其语言的特性。在静态层面上,无论你选择什么样的模型,都可以得到一个完全的公理系统。在此基础上,有一组刻画事件影响的动态归约公理集。在归约公理集起作用的状况下,每一个公式都等值于相应的一个静态公式。因此,换个说法,如果静态的基本逻辑是完全的,那么它的动态扩张就是完全的;如果静态的基本逻辑是可判定的,那么它的动态扩张也是可判定的。
五、结论
动态认知逻辑是近年来迅速发展起来的一个逻辑分支,在哲学、计算机和人工智能领域有着广泛的应用前景。本文主要是从方法论的角度来看待动态认知逻辑研究的技术结果,揭示其一般的思想。文章主要以公开宣告逻辑为基础,重点考察了归约公理的意义,揭示了其本质在于在基本语言中提前解析动态信息对主体的认知产生的影响。以公共知识为例本文说明了并非对所有的算子都能找到归约公理,有时候我们需要加强基本语言的表达力。接着,我们从定义逻辑的角度提出动态认知逻辑实际上是在“动态化”认知逻辑。一般的规律是,如果基本的静态逻辑系统是完全的,则动态的系统就是完全的;如果基本的静态逻辑系统是可判定的,则动态的系统也是可判定的。并且,我们指出,这个方法可以应用到其他领域。文章以动态偏好逻辑为例说明了这样的动态化如何实现。总之,文章给出了动态认知逻辑技术背后的一般思想和方法,一方面,这可以帮助我们理解现存的动态认知逻辑的研究结果,另一方面,也为我们的逻辑研究提供新的方法论指导。
本研究受教育部人文社科基金青年项目《动态认知逻辑的基本理论及应用研究》(项目编号:08JC72040002)和国家社科基金青年项目《面向知识更新和信念修正的动态逻辑研究》(项目编号:09CZX033)的资助。郭美云、郭佳宏为本文的初稿提出了宝贵的修改意见,特此感谢。
(原载世界哲学》2010年第3期)
参见 J. Gerbrandy. Bisimulation on Planet Kripke. PhD thesis, ILLC, University of Amsterdam, 1999;
模式有效不是所有公开宣告逻辑公理的特征,看一下前面提到的原子命题的一条归约公理:
[!P]q P q