第3章 认知逻辑理 论 逻辑学是研究思维形式及其规律的科学,包括传统逻辑、辩证逻辑、数理逻 辑等[79]。逻辑学能为其他学科提供逻辑分析、逻辑推理、逻辑论证、逻辑批判等 工具,因此是一门工具性学科。学习逻辑学,就是要掌握思维的形式结构及其 规律,并能熟练运用逻辑的符号对思维推理或论证过程用形式化方法表示和分 析[80-81]。正如欧洲近代哲学的奠基人之一笛卡儿的思想所述,各门具体学科研 究的是其相关的具体内容,而逻辑学是研究思维本身的形式法则。因此,逻辑 学是一种客观性和普遍性的思想,无论以什么为研究对象,都可以抽象出它的 思维形式。形式逻辑对思维的研究是从形式结构着手的,对思维内容它并不研 究的,或者说它是透过形式来表现内容的[82];而计算机模拟人的思维形式就是 从人的思维的逻辑形式入手的,例如人工智能的显著特征之一就是逻辑推理。 智能系统中主体知识库的表达、推理模式的建立就是一阶逻辑、直觉逻辑、模态 逻辑、多值逻辑和模糊逻辑等的充分运用[83],所以逻辑学理论是计算机科学的 基础理论之一,计算机科学蓬勃地发展又反过来推动了逻辑学的进一步发展。 随着逻辑学的不断发展,它的表达力也越来越强大,它的逻辑论证能力也不断 扩展[84]。关于逻辑的论证性,有不少学者进行了研究[85,89],论证逻辑是逻辑学 中一个不可分割的部分,在论证逻辑真当中起着重要的作用[89-90]。近年来,逻 辑学研究中产生的新理论与新方法在数学、语言学[90-91,86,92-93]、法学[94]、经济 学[95],尤其是在计算机科学及人工智能领域中[96-99]已有不少的应用。因此,逻 辑学越来越被这些领域尤其是计算机科学和人工智能领域的研究者关注,越来 越多的学者在研究数学、计算机科学的同时还研究逻辑学,或者逻辑学研究者 研究逻辑学在这些领域的应用[100-103,97,99]。 作为模态逻辑的一个分支,动态认知逻辑是认知逻辑融合动态逻辑形成 的。动态认知逻辑是知识、行为以及它们之间的相互关系的逻辑。它不是一种 逻辑而是一整套逻辑,可用来描述理性主体系统中静态和动态的两方面信息。 本章主要参考文献[83,104]来介绍动态认知逻辑的理论基础。 3.1 命题逻辑 有“真”或“假”两个值的陈述句,或者说不是真就是假的陈述句称为命题。 下面给出命题逻辑的概念。 定义3.1:命题公式假设 P 是命题变元集(它的元素通常用p、q、r、p1、 p2、p3 等来组成), 最简单的基本命题语言可用公式 φ 表示为 φ:: = |p|..φ| φ ∨φ, 其中 p ∈ P 这个定义的含义是,一个公式可以由3种方式构成:元子命题 p 是一个公 式,如果 φ 是一个命题公式, φ 的否定.. φ 和φ∨ φ 也是公式。这是命题公式最 简洁的表示,因为其他联结词均可由以上两个联结词直接或间接定义。也可以 解释为命题公式由命题变元或命题变元和联结词构成。命题基本联结词有..、 ∨、∧、→等,分别表示否定、析取、合取、蕴含。之所以用否定和析取就能表示 所有基本的联结词,是因为 ..(.. φ ∨..ψ) φ ∧ψ= φ →ψ= .. φ ∨ ψ 命题逻辑的语义是由命题公式的真傎来定义的。命题逻辑不能完全表达 认知信息,认知概念的处理方法与模态逻辑的模态词相似,所以认知逻辑被称 为认知模态逻辑。 3.2 模态逻辑 模态逻辑是在命题逻辑或谓词逻辑中加入模态词形成的,根据对模态词的 不同解释可形成认知逻辑、道义逻辑、时态逻辑、动态逻辑、可证性逻辑、信念逻 辑等,这就使得它的表达力在大大增强。因此模态逻辑在很多行业都有着不同 程度的应用,使逻辑学得到不断的丰富和发展。模态逻辑的最大特点是发展了 关系语义[105],关系语义指的是框架、模型、可满足性和有效性等概念,在社会科 学、经济学、数学等领域有着成功的应用。同时还在可能世界中引入了程序,于 是模态语言理论在计算机科学中得到了广泛的应用,成为计算机科学领域非常 有用的工具。尤其是认知逻辑和时态逻辑,时态逻辑描述了随着时间变化中的 逻辑[98]、公开宣告和认知行为引起知识在认知活动中的变化,因此动态认知逻 辑表达了公开宣告等认知行为导致的知识变化的逻辑模型及其模型的变 30 31 化[106]。这与计算机程序中一个操作引起的各参与方拥有的信息的变化刚好吻 合,于是计算机程序的模态逻辑描述成为可能。 模态逻辑是为了形式化模态概念在基本逻辑的基础上加入了模态算子即 模态词而形成,最典型的是模态词“必然”(用“□”表示)和“可能”(用“◇”表 示)[107]。在命题逻辑的基础上加上模态词称为命题模态逻辑,在谓词逻辑的基 础上加上模态词称为谓词模态逻辑。模态逻辑比命题逻辑、谓词逻辑的表达力 强得多。 定义3.2:命题模态公式 假设P 是命题变元集,最基本的模态语言L□ 可 用BNF(Backus-Naurform)范式表示为 φ::= |p|..φ|φ ∨φ|□φ 其中p ∈P 这个公式的意思是一个真的常量是一个公式,一个命题变元是基本模态 公式,如果φ 是一个模态公式,φ 的否定和φ 的析取以及必然φ 也是模态公式。 这是模态公式的最为简洁的表示,因为 =.. φ ∧ψ =..(..φ ∨ ..ψ) φ →ψ =..φ ∨ψ ◇φ =..□..φ 定义中的“□”和“◇”在基本模态语言中表示必然和可能。狭义上讲,模态 逻辑研究涉及“必然”和“可能”表达式使用的推理。然而,术语“模态逻辑”被更 广泛地用于涵盖具有相似规则和各种不同符号的一系列逻辑。根据对“□”的 解释不同形成不同的模态语言,最为著名的几种模态逻辑是:认知逻辑、道义逻 辑、时态逻辑、信念逻辑[108]。 模态语言之间的相互区别在于模态词的不同。模态语言以一个模态词集 (在基本模态语言中是{□,◇})加上命题变元集P 为基础构成。如果一个模态 词有两个元素..和..,使得“..φ:=......φ”,则称..和..互为对偶。显然,□ 和◇互为对偶,但是Ka(主体a 知道)和Ba (主体a 相信)之间没有对偶关系。 模态语言的语义是用可能世界的语义学来解释的,如此构建的语义理论称为克 里普克(Kripke)语义学。它有两个层面的解释:框架的和模型的。克里普克框 架和模型是定义模态逻辑语义最常用的结构。下面定义两个概念。 定义3.3:基本模态语言L□ 的框架 基本模态语言L□ 的框架是一个二元 组F=(W ,R),其中W 是一个非空的可能世界集,R 是W 上的一个二元关系。 W 是可能世界w 的集合,它的元素通常称为w 、v、s、t 等,wRv 或Rwv 表示关 系R 在世界w 、v 之间成立。在世界W 成立的元素可以用一个非空的原子命 32 题集P 来描述,这些原子命题代表了相关世界的基本事实,因此任意一个可能 世界w (w ∈W )都可以看作一个非空的原子公式集。根据模态逻辑具体应用 领域的不同,W 中的元素,它或者表示状态(state)或者是节点(node)或者是情 景(situation)或者是点(point)等。W 上的R 是二元的,描述可能世界之间的可 及关系。wRv 这种关系在集合理论上写作:(w ,v)∈R。如果假定R 至少包 含一种关系,框架就是一个关系结构,W 则是这个关系结构的域。 定义3.4:基本模态语言L□ 的模型 基本模态语言L□ 的模型是一个二元 组M=(F,V),其中F 是一个框架,V 是一个函数,它指派给每个命题符号p 成立的一个子集V(p),其中p∈P 。形式上来说,V 是一个映射:p→P(W ),其 中P(W )表示W 的幂集。函数V 被称为一个赋值。 给定模型M=(F,V),称M是以框架F 为基础的模型,或者F 是模型M 所依据的框架。从形式上看,模型比框架多了一个赋值或者说模型是一个带有 值函数的框架,模型也可以看作一种关系结构,即(W ,R,V)。定义模型是为了 解释模态语言。假定将模型M中的一个世界标记为w ,一个点模型就可以写 作:M,w 。 定义3.5:模态语言L□ 的语义归纳 令M=(W ,R,V)是一个模型且w ∈ W ,将“公式φ 在模型M中的世界w 为真”,记作M,w φ,则模态语言L□ 的语 义归纳定义如下。 M,w ° 当且仅当M,w ; M,w p 当且仅当w ∈V(p); M,w ..φ 当且仅当M,w φ; M,w φ∨ψ 当且仅当M,w φ 或者M,w ψ; M,w □φ 当且仅当对任意一个v∈W ,如果Rwv,那么M,v φ。 显然这与命题语言不同,模态语言的模型是基于一个世界来描述一个公式 的真,对任意一个公式φ 对一个世界来说或者为真或者为假,因此有M,w φ 或者M,w φ。对于变元p 的赋值定义扩展到任意一个公式φ,有V(φ)={w| M,w φ},意思是说任意一个公式或命题的值可以看作使它为真的世界的集 合。“M,w φ”也称为公式φ 在模型M中的w 世界是可满足的,“M,w φ”称 为公式φ 在模型M中的w 世界是不可满足的。关于M,w □φ,是说模型M 中与世界w 可及的所有世界v 都满足φ,所以φ 必然为真。例如,在一个克里 普克模型M=(W ,R,V )中,给定W ={w ,v,s},关系R 有Rsv,Rsw 。M, s □p,如图3.1所示。 如图3.1所示,模型M中的世界或者称为状态或称为点v、s、w ,用圆圈表 33 图3.1 模型M中M,s □p,M,s ◇q 示,在这些世界或状态或点成立的命题写在其中,例如状态v 满足的命题是p、 q 这两个命题,或者说这两个命题在世界v 是真的,即M,v p 和M,v q。可 及状态用箭头表示。状态s 的可及状态是v 和w ,M,s □p,因为M,v p 和 M,w p。M,s □q,因为M,v q 和M,w q。但是,M,s ◇q,因为存在 一个v,使得Rsv,并且M,v q。所以说在一个世界必然p 为真依赖于它的可 及世界中p 是不是都为真。在一个世界可能p 为真,是存在一个与它可及的世 界满足p。在一个世界一个模态公式是否为真,依赖于与它可及的其他世界的 事实,这是模态逻辑的一条重要的性质。 3.3 动态认知逻辑 3.3.1 认知逻辑概述 认知逻辑的发展和应用已经远远超越了哲学的起源,广泛应用到经济学、语言 学、计算机科学等相关的学科,已成为这些领域重要的形式化工具[109],在计算机科 学中已经大量应用到人工智能、分布式计算和计算机安全领域[110]。目前,动态认知 逻辑在哲学、社会学、计算机科学中有着广泛的应用[88,96,111-135]。国内有不少学者对 其进行研究[88,90-91,106,111-117]。动态认知逻辑的发展也趋向于实际应用[145-148]。 动态认知逻辑是模态逻辑的一个重要分支。动态认知逻辑是动态逻辑与 认知逻辑的结合,它能表示这两方面的知识,一是主体的知识,二是主体的行为 执行引起主体变化的知识。通过其克里普克(Kripke)语义学,认知逻辑受到模 态逻辑发展的影响很大。在认知逻辑中对认知概念的处理与逻辑模态词“必 然”与“可能”的处理方法类似,□φ 表示知道φ,例如,主体a 知道φ,写作“Kaφ” (本书中用K表示知道算子,不同的字体表示不同的含义)。有时也用□φ 表示 相信φ,主体a 相信φ,写作:“Baφ”(这里的B表示相信算子)。K 和B是认知 逻辑中主要的认知算子,认知逻辑主要的研究就是围绕这一特征进行的。在认 知逻辑中,主体a 知道某一事实,这一事实就被认为是真的,形式化的表达就 是:Kaφ→φ。而相信就不是这样了,Baφ→φ 是假的。 认知逻辑系统采用逻辑系统S5(自反性和欧性)。认知逻辑基本的表达知识 34 的逻辑是基于一个原子命题集P 和一个有限主体集A 上的,原子命题p、q、r 等 描述在现实世界中的事件的状态,例如,在计算机程序运行中的每一个状态。在 后面的描述中,p 是P 中一个任意的原子命题,a 是A 中的一个任意主体。 定义3.6:基本的认知语言 令P 是原子命题集,A 是主体集。多主体认 知逻辑语言LK 用BNF范式表示如下: φ::= |p|..φ|φ ∨φ|Kaφ 在这个公式中,p∈P ,a∈A 。这个公式的含义是,原子命题是公式,公式 使用..(否定)、∨(析取)或Ka (认知算子)构成复杂公式。根据定义,(p ∧.. KaKa(p∧Ka ..p))和..Ka ..(p∧Ka (q∧..Kar))是公式。另外,也会使用一 些典型的元素来表示原子命题,例如,q、r 或p'、q'、r'、p″等主体也可以用其他 的变量来表示,例如,b、c 和a'、b'等在后面的实例中,也用别的符号来表示主 体,诸如S 表示发送者,R 表示接收者等。通常采用标准缩写和惯例来表示公 式,例如:(φ∨ψ)=..(..φ∧..ψ),符号作为p∨..p 的简写和.. 。而且, (φ→ψ)=(..φ∨ψ);(φ.ψ)是双向蕴含的简写。 这里仅仅增加一个一元算子来对命题逻辑进行一个最为简单的扩展。对 任意一个主体a,Kaφ 表示主体a 知道φ。主体a 可以是在博弈中的一个玩家、 一个机器人、一个机器或者是一个过程或进程。在认知定义中,主体a 不知道 ..φ 表示为(..Ka ..φ)。这个表达有时也解释为φ 是与a 的知识是一致的,或 主体a 可能知道φ,写作K^aφ=..Ka ..φ。对A 中的任意一个主体群B,如果B 中每一个主体都知道φ,写作EBφ。因此,增加EB 这个算子对每个B.A 有 EBφ =∧ b∈B Kbφ 因此,形如p ∧ ..Kap 表示p 是真的而且主体a 不知道它。公式 (..KaKbp∧..Ka ..Kbp)表示主体a 不知道是否b 知道p。形如Ka(p→EBp) 表示主体a 知道如果p 为真,那么在主体集B 中的每一个主体知道p。 对认知逻辑的语义解释是用克里普克模型。文献[149]中阐明克里普克的 可能世界语义的哲学思想是“可能世界”是“世界可能呈现的状态或可能会采取 的方式”。在克里普克模型中,可能世界或称为状态,可及关系是不可区分的关 系。形如“Kap”主体a 知道p 用克里普克模型图表示a 可及的状态w 和w' 中,φ 都为真,如图3.2所示。 图3.2 模型M中,主体a 知道p 35 如图3.2所示,对主体a,状态w 和w'都是可及的(Raww'),表示a 对状态 w 和w'不可区分,在w 和w'中p 为真,这里将在这个状态为真的公式标在状 态圆圈上面。“Kap”主体a 知道p 也就是说主体a 可及的所有世界里p 都为 真。在应用克里普克模型分析问题时,把所有可能的情况看作一个世界或一个 状态,具体用一个例子来说明。假如主体a 住在上海,主体b 住在北京,a 显然 知道上海是否在下雨,而b 是不清楚的。但是b 知道a 知道上海是在下雨或没 有下雨。实际上a 知道上海是在下雨。用p 表示上海在下雨,..p 表示上海没 有下雨。这两种情况用两个状态1和0来表示。事实状态用下画线标明。 规定在状态1中p 为真,在状态0中p 为假。这个模型如图3.3所示,状 态0和1对b 可及,也就是说b 不能区分状态0和1,b 不知道p 的值。在认知 模型中,所有的关系是等价关系,所有的状态是自反的对称的和传递的。所以b 知道a、知道p,或者a 知道..p。a 对这两个状态不可及,所以a 对这两个状态 是可以区分的,也就是说,a 知道p 或者a 知道..p。事实上a 知道p。为了图 形的简洁,常常省略自反和对称箭头,上面的模型精简为如图3.4所示的状态。 图3.3 模型表明Kb (Kap∨Ka ..p)∧..Kbp 图3.4 图3.3的精简 从上面的例子可以得出基本认知语言的语义如下。 定义3.7:模态语言LK 的语义归纳 给定主体集A ,原子命题集P ,认知模 型为M=(W ,R,V)且状态w ∈W ,基本认知模态语言LK的语义归纳定义如下: M,w 当且仅当M,w . ; M,w p 当且仅当w ∈V(p); M,w ..φ 当且仅当M,w φ; M,w φ∨ψ 当且仅当M,w φ 或者M,w ψ; M,w Kaφ 当且仅当对任意一个w'∈W ,如果Raww',那么M,w' φ。 从这个语义可以看出,认知语言也是基于一个世界来解释的,认知公式 Kaφ 的真依赖于主体a 的所有可及世界φ 是否都为真。 在图3.2中,在认知模型M中,状态之间可及关系Ra 是自反的(例如,任 意一个w ,有Raww ),因此M满足Kaφ→φ。在认知模型M中,在一集合W 36 上的关系R 是一系列可及关系之一,对所有的a∈A ,Ra 有以下几种情况: (1)所有克里普克模型的类有时表示为K,因此K φ 与φ 是一致的。 (2)关系Ra 是连续的,如果对所有的w ∈W ,都存在一个w'使得Raww'。 在克里普克模型M=(W ,R,V)中,如果所有的关系Ra 是连续的,就可以表示 为KD。 (3)关系Ra 是自反的,如果对所有的w ∈W ,都有Raww 。在克里普克模 型M=(W ,R,V)中,如果所有的关系Ra 是自反的,就可以表示为T。 (4)关系Ra 是传递的,如果对所有的w ,v,t∈W ,如果有Rawv 和Ravt, 那么Rawt。在克里普克模型M=(W ,R,V)中,如果所有的关系Ra 是传递的, 就可以表示为K4。自反且传递的模型类表示为S4。 (5)关系Ra 是欧性的,如果对所有的w ,v 和t,如果有Rawv 和Rawt,那 么Ravt。在克里普克模型M=(W ,R,V)中,如果所有的关系Ra 是欧性的,就 可以表示为K45。连续且传递和欧性的模型类表示为KD45。 (6)Ra 是对称关系对所有的w ,w',如果Raww',那么Raw'w 。 (7)Ra 是等价关系如果Ra 是自反的传递的和对称的,称为等价关系。同 样地,如果Ra 是自反的和欧性的,Ra 也称为等价关系。具有等价关系的克里 普克模型类表示为S5。在本书中的认知模型主要应用模型类S5。 在不影响任意主体知识的情况下,两个认知状态M,w 和M,w'如何不同? 换句话说,一个模型和另一个模型从哪个粒度上可以区分,认知语言LK 如何去 表达这个问题。下面引出一个基本概念。 定义3.8:互模拟 给定两个模型,M=(W ,R,V)和M'=(W',R',V'),一 个非空的关系R.W ×W'是一个互模拟,当且仅当,对所有的w ∈W 和w'∈ W'有(w ,w')∈R,且满足下列条件: ① 若w ∈V(p)当且仅当,w'∈V'(p),对所有的p∈P 。 ② 对任意a∈A 和所有的v∈W ,如果Rawv,那么,存在一个v'∈W',使 得R'aw'v'和(v,v')∈R。 ③ 对任意a∈A 和所有的v'∈W',如果R'aw'v',那么,存在一个v∈W , 使得Rawv 和(v,v')∈R。 写作(M,w ).(M',w'),当且仅当与w 和w'相关联的M和M'存在互模 拟,称(M,w )和(M',w')互模拟。如果模型M和M'之间有一个互模拟关系相 连接,那么M和M'是互模拟,写作M.M'。 显然,上面的3个条件是说,对于(M,w )和(M',w')要互模拟,在M,w 和 M',w'都要满足原子命题为真,不仅是在w 和w',而且在所有可及状态都是递 37 归的。第二个条件是说,保留从M,w 到M',w'的认知公式,第三个条件是保 留M',w'到M,w 的知识。在认知语言中是不能区分互模拟模型,更精确地 说,如果(M,w )≡LK (M',w'),当且仅当,M,w φ,对所有的φ∈LK,有M',w' φ。对所有的点模型M,w 和M',w',如果(M,w ).(M',w')那么(M,w ) ≡LK (M',w')。也就是说,如果这两个点模型是互模拟的那么它们在语言LK上 是等价的。 一个逻辑系统是一公式集,这一公式集在模型类上是有效的。这个公式集 被称为公理系统,它是一个被称为公理的公式集合和推理规则构成。推理规则 提供了从公理出发推演出系统内定理的工具。由公理推演出定理的过程被称 作证明。因此,认知逻辑系统可以看作一个认知模态公式集,它包括所有命题 重言式并且在MP、US、和N 规则下封闭。封闭的意思是说,在这个逻辑系统中 其他公式可以从其推演。认知逻辑系统的公理如下: Ka(φ→ψ)→(Kaφ→Kaψ) (分配公理) Kaφ→φ (知道公理) 若φ,则Kaφ (必然性规则,又称N 规则) 若φ 和φ→ψ,则ψ (MP规则) Kaφ→KaKaφ (正内省公理) ..Kaφ→Ka ..Kaφ (负内省公理) 分配公理是说主体知道所知道东西的所有逻辑后承。也就是说,在该蕴含 式中知道算子可以进行分配的。知道公理是说,主体知道φ,那么φ 为真。如 果说主体知道φ,而φ 又不是事实,这就导致不一致。而事实也是如此,人们所 知道的东西都必须是事实。N 规则是说如果主体知道一个逻辑系统中的所有 可证公式,则就会知道系统内所有定理。 3.3.2 群体知识 前面已经提到了普遍知识“每一个人都知道”的概念,在这一节中,介绍一 些为多主体系统的群体知识的概念。群体知识在多主体系统中有重要的作用, 因为主体之间的影响和互动很多是建立在群体知识的基础之上的。知道知识 可以直接由经验获得,也可以通过交流获得,群体知识主要由交流获得。这里 主要强调后面的应用中要用到的公共知识。 前面介绍了普遍知识EBφ 表示对每个B .A ,B 中每一个主体都知道φ。 但这并不说明每一个主体都知道别的主体也知道φ。这个称为普遍知识,即团 体每个成员都知道的知识。公共知识是不仅每个成员知道,而且每个成员都知 38 道群内的其他成员都知道这个知识。例如,交通规则“红灯停,绿灯行”是驾驶 员的公共知识,就是说不仅每个驾驶员知道这条规则,并且每个驾驶员都知道 每个驾驶员都知道每个驾驶员都知道这条规则,等等。假如有某个驾驶员虽然 自己知道这条规则,但不知道是否别人都知道,或者说他怀疑可能有人不知道, 那么这个驾驶员就会缺乏安全感。这意味着该规则能否真正成为公共知识是 驾驶员们遵守规则安全驾驶的前提条件。所以公共知识是群知识的迭代,即 EBEBEB …φ =En Bφ, n ≥0 这里用算子C 来表示公共知识,群体B 的公共知识表示为 CBφ =∧∞ n=0En Bφ 因此,可以给出含有公共知识的认知语言LKC的定义。 定义3.9:含有公共知识的认知语言LKC的语法 令P 是原子命题集,A 是 主体集,B.A ,a,b,c∈A ,语言LKC为含有公共知识的多主体的认知逻辑语言, 用BNF表示为 φ::= |p|..φ|φ ∨φ|Kaφ|CBφ 有时,把B 里面的小群体的公共知识表示为Caφ、Cabφ、Cabcφ……因此,LKC是用 公共知识(CommonKnowledge)扩展LK形成的。 定义3.10:含有公共知识的认知语言LKC的语义 对原子命题集P 和主体 集A 给定一个模型M=(W ,R,V )且状态w ∈W ,含有公共知识的认知语言 LKC的语义归纳定义如下: M,w 当且仅当M,w . ; M,w p 当且仅当w ∈V(p); M,w ..φ 当且仅当M,w φ; M,w φ∨ψ 当且仅当M,w φ 或者M,w ψ; M,w Kaφ 当且仅当对任意一个w'∈W ,若Raww',则M,w' φ; M,w CBφ 当且仅当对任意一个w'∈W ,若RBww',则M,w' φ。 3.3.3 公开宣告逻辑 动态认知逻辑是认知逻辑和动态逻辑相结合而形成的逻辑。公开宣告是 动态认知逻辑的基础系统,在文献[150]中有详细的阐述。动态逻辑以模态逻 辑为基础发展并形成。在计算机系统中,一个程序的调用和执行或者一个消息 的发送是一个行动,一个模态可以表示一个行动,动态逻辑是一种多模态逻辑。 因此,动态逻辑可以表示计算机中程序执行和程序调用。动态认知逻辑是一个 39 非常活跃的研究领域。它主要能够刻画由行动引起的主体知识变化,而且能够 形式化这些变化的信息。这些知识和由行动引起的知识变化都要分别表示。 近年来,认知逻辑在计算机以及人工智能和社会科学等许多学科领域中都有着 不同程度的应用,主要表示群体知识和多主体之间的互动引起的认知信息的变 化。这种互动性的认知活动存在两个方面:一方面是从初始状态获取信息,另 一方面是获取信息后的行为产生新的状态。从知识的角度来说,又可以看作知 识的处理和知识变化的处理,即从初始状态到最终状态的变化情况。知识的动 态变化可以理解为“知识—行为—新状态—新知识”的过程,这使得认知逻辑和 动态逻辑可因此而结合。目前的做法是用模态算子来表示知道和引起知识变 化的行动,使“知道”和“行动”同在一个系统中存在并且互相影响,行动的对象 可以是一个知识的命题,这就刻画了知识以及知识的动态变化。 公开宣告是日常信息交流的一种形式,类似于现实生活中的广播。在动态逻辑 中,公开宣告被认为是一种行为,于是,公开宣告逻辑(publicannouncementlogic, PAL)就是包含公开宣告的动态认知逻辑。对公开宣告逻辑的研究促进了动态认知 逻辑的进一步发展。对于多主体之间的通信的系统,公共知识及其相关知识是必不 可少的。公共知识结合行为模型更丰富了逻辑的表达性和完整性[151-152]。在用餐密 码协议的验证中,还有学者把符号技术应用在知识逻辑的模型检测中[153],为匿名广 播提供了一种机制。下面介绍公开宣告逻辑的语法和语义。 如果某人诚实地对一群朋友说“一棵树上开着红色的花”。“一棵树上开着 红色的花”这个事实就成为了他们的公共知识。这是对事实的一种宣告,宣告 的事实就变成了公共知识。但这容易造成一种错误的直觉:不管此人宣告什 么,所说的内容都会变成公共知识,但是这对某些认知命题并不成立。例如,a 告诉b:“John当选为美国总统了,可是你还不知道这个消息。”a 说的这句话可 以形式地表达为p∧..Kbp。在a 说这句话前,p∧..Kbp 是真的,但当a 说了 后,b 就知道了“John当选为美国总统了”,也就是说在公开宣告之后,p∧..Kbp 就变成了假命题。如果一个命题在公开宣告之后就变成了假命题,这个宣告就 称为不成功的宣告。在后面的应用中,只讨论宣告一个事实后变成了公共知识 的这种情况。下面给出公开宣告逻辑的语法。 定义3.11:公开宣告逻辑LKC[]的语法 给定一个原子命题集P 和一个有 限的主体集A ,公开宣告逻辑LKC[]用BNF表示为 φ::= |p|..φ|φ ∨φ|Kaφ|CBφ|[φ]ψ 其中,B.A 和a∈A,p∈P,φ 和ψ 表示两个变量以及可能不同或相同的两个公 式。语言LKC[]在语言LKC基础上增加一个符号“[]”,表示增加一个动态模态算子。 40 归纳构造[φ]ψ 表示:宣告φ 或用φ 更新后,ψ 成立。对其他的动态现象来说,更 新是一个更普遍的概念。这里的宣告总是意味着公开和真实的宣告。 公开宣告φ 的作用是将认知状态限制到使φ 成立的那些状态以及可及状 态。宣告φ 被看作带相应的动态模态算子[φ]的认知状态转换器。为了对动态 算子的语义解释,需要增加一个句子|φ|M 表示模型M中满足φ 的状态或点, 形式化表示为|φ|M={w ∈D(M)|M,w φ},其中D表示域。 定义3.12:含有公共知识的公开宣告逻辑LKC[]的语义 对原子命题P 和 主体集A ,给定一个模型M=(W ,R,V)且状态w ∈W ,含有公共知识的公开宣 告逻辑LKC[]的语义归纳定义如下: M,w 当且仅当M,w . ; M,w p 当且仅当w ∈V(p); M,w ..φ 当且仅当M,w φ; M,w φ∨ψ 当且仅当M,w φ 或者M,w ψ; M,w Kaφ 当且仅当对任意一个w'∈W ,若Raww',则M,w' φ; M,w CBφ 当且仅当对任意一个w'∈W ,若RBww',则M,w' φ; M,w [φ]ψ 当且仅当若M,w φ,则M|φ,w ψ。 其中,M|φ=(W',R',V')定义如下: W'=|φ|M R'=R ∩(|φ|M×|φ|M) V'(p)=V(p)∩|φ|M M,w <φ>ψ 当且仅当M,w φ 且M|φ,w ψ 从上面的定义可以看到,表示公开宣告后,主体知识的变化是在模型中把 认知状态限制到φ 成立的那些状态去,而且保留这些状态已有的认知可及 关系。这 里用3个玩家玩卡片的游戏来说明公开宣告如何产生模型的变化。甲、 乙和丙分别从3张卡片当中抽取一张卡,每人只知道自己的卡,不知道别人的 卡,3张卡片上的数字分别是0、1、2,这是公共知识。事实上,甲有卡0,乙有卡 1,丙有卡2。甲现在说:“我没有卡1”。 用012表示甲有卡0,乙有卡1,丙有卡2。这副卡是大家都知道的,但玩家 只能看到自己的卡,其他的玩家也只有一张卡。他们只知道自己的卡上的数字 而且别人的卡的数字一定是和自己的不同的。换句话说,012和021对于甲来 说是一样的,也就是甲对这两个状态是不可区分的,因为他不知道乙是1还是 2,也不知道丙是2还是1。同样,012和210对于乙也是一样的。所以对所有 的玩家来说,总共有6种不同的情况。因为只知道自己的卡而产生的等价关系 和玩家实际拥有什么卡的真实情况,可以得到认知状态(Hexa,012), 其中Hexa 表示模型名称,真实状态用下画线标明,5所示。 如图3. 分别用a、b、 c 代表甲、乙、丙三人。图3.021 是 a 认 5中012 是事实状态, 为的可能状态,因为认为乙可能是1或2,丙或许是2或许是1,这两个状态对于 甲来说不可区分。乙只知道自己是卡1,他认为甲可能是0也可能是2,丙可能 是2或0,012 和210 对于乙来说不可区分,乙认为如果甲是2,那么甲对210 和 201 不可区分,以此类推,共有6个状态。状态之间连线上的主体表示他们对这 两个状态不可区分,也就是说,这两个状态对他们来说是等价的。为了图的简 洁,用线代表了箭头,省略了自反的箭头。 用0a 表示甲有卡0,1表示乙有卡1,以此类推。认知公式Ka ..(Kb0a ∨ Kb1a ∨Kb2a )表示甲知道乙(b) 不知道他的卡。甲认为乙可能有卡2,但实际上,乙 ^ )。” 制到使这个公式为真的状态上。那些认为1a 的状态以及与它相连的连线删 去,模型变为如图3. 有卡1,形式化为1b ∧Ka2b 。甲宣告“我没有卡1(..1a 这个宣告将把模型限 6所示状态。 图3.模型Ha甲有卡0,乙有卡1,丙有图3.甲宣告“我没有卡1”后 卡2以及他们不可区分的状态变化后的模型 5ex6 接下来乙说:“ 我还是不知道甲的卡号。”这句话可以形式化为(..(Kb0a ∨ Kb1a ∨Kb2))。 所以模型(a) 仅存对于乙不可区分的状态。乙的宣告导致的认知模型变化为 如图3. 7所示的状态。 可以看出,乙这一宣告对于甲来说是很有启发性的,假如他现在知道乙的 卡。不过,乙还是不知道他的。如果甲宣布他现在知道乙的卡,那就对Ka1b∨ Ka2b 在状态012 和210 成立的就可以区分了。这毫无疑问,甲一旦知道乙的卡 41 也就知道丙的卡了。这一宣告无疑表明卡的真实状态是012(即0a1b2c ), 所以 最后模型就剩下一个状态了,如图3. 8所示。 012 7 图3.甲宣告“我知道乙的卡号” 后变化后的模型后变化后的模型 图3.乙宣告“我不知道甲的卡号” 8 这就没有进一步能宣告的信息了。整个模型的变化过程如图3.9所示。 42 图3. 93 次宣告后模型的变化过程 如果把一个不安全的网络中的一个消息发送操作看作一个宣告,那么就可 以应用这种分析方法来表明参与的各个主体的知识的变化。 公开宣告的公理(符号“.”表示等价): ((分配公理) Kaφ→ψ)→(Kaφ→Kaψ) Kaφ→ φ (知道公理 ) 如果φ,那么Kaφ (必然性规则,即N规则 ) 如果 φ 和φ→ψ,那么 ψ (MP 规则 ) Kaφ→KaKaφ (正内省公理 ) ..Kaφ→Ka ..Kφ (负内省公理 ) [φ→p)(a) ( φ]p.(原子命题持久性) [φ→..[ψ)(宣告与否定公式) φ]..ψ.(φ] [φ](ψ∧χ)φ]φ] ( φ]Kψ.( .([ aψ∧ ψ[ ) χ) 宣告与合取公式) [[( aφ→Kφ]宣告和知道) ψ]φ∧[ψ] [φ][χ.[φ] χ (宣告组合) 3.4 认知行为 3. 3.3节介绍了模型更新的一种方式——公开宣告。公开宣告作为一种认 3.— 知行为对参与的所有主体传达了相同的信息并导致了模型域的限制。如果想 要对不同的主体传达不同的信息就要采用更复杂的更新方式称之为认知行为 (epistemicactions)。这种更新可能使模型域不变但是可及关系精化,也可能使 模型域变大,甚至复杂度是由非互模拟状态的数量来衡量。 在公开宣告中,[φ] ψ 表示公开宣告 φ 后, ψ 成立。在认知行为逻辑[φ] ψ 中 φ 是一个行为或动作,当 φ 发生, ψ 成立。模型中每一个可能的行为构成一 个状态。下面,用一个例子来说明。假定有网络中有3个主体a、b、c,主体 a 发 送一个消息给主体b, b 不确定他收到的消息是 a 发送的还 c 代表一个攻击者, 是 c 发送的。假设消息为p,Sbp 表示主体 a 发送一个消息 p 给主体b。这个 a 过程中,10 所示。 而 b 不知道消息来源于 a 还是c。模 a 和 c 都知道是 a 做了这个动作, 型表示如图3. 图3.而 b 不知道消息来源于 a 还是c 10 a 和 c 都知道是 a 发送消息 p 给b, 43 44 通常情况下,用方框表示可能发生的行为,用圆圈表示克里普克的世界或 状态。用下画线表示事实行为。行为更新的克里普克模型是由世界或状态和 行为成对构成。例如,图3.10中在状态1,主体a 发送一个消息p 给主体b,在 状态2,主体c 发送一个消息p 给主体b。当然一个动作的发生还需要前提条 件的,比如a 发送一个消息p 给主体b,那么首先a 要有消息p,这就是他执行 发送行为的前提条件。 根据上面的例子给出认知行为逻辑的语法和语义。 定义3.13:认知行为逻辑语言LAct(Act表示行为Action)的语法 根据上 面的例子,假定一个原子命题集P 和一个有限的主体集A ,α 代表行为,认知行 为逻辑LAct用BNF(Backus-Naurform)表示为 φ::= |p|..φ|φ ∨φ|Kaφ|CBφ|[α]ψ α::=Sb ap|α ∨α|α ;α 当B.A 和a,b∈A ,p∈P ,Sb ap∈α。Sb ap 是行为发送,α∨α 表示行为的 选择,α;α 表示这两个行为顺序执行。 定义3.14:认知行为逻辑语言LAct的语义 对原子命题P 和主体集A ,给 定一个模型M=(W ,R,V)且状态w ∈W ,认知行为逻辑LAct的语义归纳定义 如下: M,w 当且仅当M,w . ; M,w p 当且仅当w ∈V(p); M,w ..φ 当且仅当M,w φ; M,w φ∨ψ 当且仅当M,w φ 或者M,w ψ; M,w Kaφ 当且仅当对任意一个w'∈W ,如果Raww', 那么M,w' φ; M,w CBφ 当且仅当对任意一个w'∈W ,如果RBww', 那么M,w' φ; M,w [α]ψ 当且仅当对所有的M',w',如果(M,w )|α|(M',w'), 那么M',w' ψ; M,w [Sb ap]ψ 当且仅当对所有的M',w',如果M,w Pre(Sb ap)和 (M,w )|Sb ap|(M',w'),那么M',w' ψ。 |α∨β|=|α|∨|β| |α;β|=|α|..|β| 其中参数含义如下: Pre(Sb ap)表示执行动作Sb ap 的前提条件。|Sb ap|表示动作Sb ap 可执行。 45 (M,w )|Sb ap|表示动作Sb ap 在点(M,w )是可执行的。 |α∨β|表示动作α 和β 之间的一个不确定的选择,或α 被执行或β 被执行。 |α;β|表示动作α 与β 顺序执行,“..”表示顺序,执行完α 后再执行β。 3.3.5 行为模型 这一节引入“行为模型”的方法来描述认知行为。为了阐明这个方法,用一 个具体的例子来说明。假如有a、b、c3个玩家玩掷硬币的游戏,c 为裁判。c 向空中抛一块硬币,在空中抓住它并用手掌蒙住盖在桌上,谁也没有看到硬币 的哪一面朝上的。这时,有两种可能的状态:硬币的正面朝上(H),硬币的背面 朝上(T),用两个状态表示这个情况,如图3.11所示。状态1满足硬币正面朝 上,状态2满足硬币背面朝上。这个模型用Toss来表示,有Toss,1 H,Toss, 2 T。 图3.11 a、b、c 都不知道硬币的哪一面朝上 这时,谁也不知道硬币究竟哪一面朝上,所以每个参与者都对这两个状态 可及,这两个状态对每个参与者都是不可区分的。这时候,c 忍不住偷偷松开手 掌看了一下,看到硬币正面朝上,但是a、b 没有看见这一行为,从而认为什么也 没有发生,用σ 表示这个偷看行为,用τ 来表示什么也没有发生,这个行为模型 用A表示。满足这个行为前提条件的点称为行为点,这个结构(A,σ)称为行为 模型,如图3.12所示。 图3.12 c 偷看了硬币,a,b 以为什么也没有发生,行为模型(A,σ) 只有c 才知道σ 发生了,a,b 不能区分σ 和τ,用双重的矩形来表示真实的 行为。显然,c 偷看到硬币朝上,这个行为只能在满足H 的状态发生,也就是硬 币朝上的那个状态,不满足H 的状态是不可能发生这一行为的。表示在行为σ 后,模型更新如图3.13所示。 也就是说,只有在状态1才能发生σ,在状态1和2都可以发生τ。 这个更新过程如图3.14所示。这个更新是积更新,这个偷看行为只有c 才 知道,a 和b 都不知道,并且只能在状态1发生,行为σ 需要一个前提条件H,只 图3.行为 σ 发生后的结果模型 13 有状态1满足,即Prσ)=H 。这个更新模型称为行为模型,这两个行为加上 e( 各自的前提条件,描述了认知行为。 图3.行为更新过程 14 图3. 14 展示了从认知状态的初始结构和行为模型的结构到结果认知状态 的结构。在初始状态时, b 不能区分状态1和2, a,也就是不能区分H和T哪 一个为真,也不能区分认知行为 σ 和τ。也就是说,不能区分两个状态和两个行 为,即一个行为在一个状态被执行,另一个行为在另一个状态执行,而在结果状 态仍然不能区分。行为 σ 在状态1执行,行为 τ 在状态1和2都可以执行。a, b 仍然不能区分。尽管 c 在初始状态不能区分状态1和2,但在结果状态,是能 够区分的。也就是说,虽然在初始状态不能区分这两个状态,但是只要能区分 这两个行为,这两个行为的结果也是能够区分的, 1,和(2, τ)对 a 和 b 来说是一样的, 1,~ ab (τ), 即在结果模型中(σ) 表示为(σ)2,因为在初始状态1和2对 a 和 b 来说不可区分1~ ab2,行为模型中,bτ。 σ 和 τ 对 a 和 b 来说不可区分σ~ a 46 47 总结起来说:两个结果状态对一个主体不可区分,当且仅当,它们是在两个已经 不可区分的状态中发生的两个不可区分的行为的结果。形式化为对任意的主 体a,有(1,σ)~a(2,τ),当且仅当1~a2和σ~aτ。 说明:这个对(1,σ)的成立表明σ 在状态1能够被执行,仅当在初始模型中 状态1满足执行σ 的前提条件,即Toss,1 Pre(σ)。 这个构造被看作一个认知状态和一个行为模型的限制模态积。两个模态 结构的模态积,通过它们的域的笛卡儿积或者它们的一部分完成一些计算并保 留在这些结构上的信息编码,见上例。这个积是受限制的,这是因为没有做完 全的笛卡儿积,当σ 在状态1能够被执行,仅仅才允许对(1,σ)成立。由于这个 行为是认知行为,因此在这个对(1,σ)中的事实值是在原来状态1中成立的事 实值,这个是不能改变的。显然,在结果结构中的指派点是由原始结构的指派 点构成的对。模型(Toss,1)描述为1~ab2,和行为模型(A,σ)描述为σ~abτ。 计算它们的限制模态积如图3.13。这个笛卡儿积构成3个点,这是因为Toss,1 H,Toss,2 T,即Toss,1 Pre(σ),Toss,1 Pre(τ),Toss,2 Pre(τ)。尽管 笛卡儿积是由4个点构成,然而这个限制模态积只有3个点:(1,σ),(1,τ),(2, τ),因为Toss,1 Pre(σ),Toss,1 Pre(τ),Toss,2 Pre(τ)。 定义3.15:行为模型 给定主体集A 和原子命题集P ,令L是任意的模态 逻辑语言。一个S5行为模型M是一个结构(A,~,Pre),A是行为的域或者说 行为集,对每一个主体a∈A,~a 是在A上的等价关系,使得Pre:A→L是对每 一个行为δ∈A的前提条件的函数,指派一个前提条件Pre(δ)∈L。一个指定 的S5行为模型是一个结构(M,δ)(δ∈A)(在表示行为模型时常常省略S5)。 定义3.16:行为模型逻辑的语法 给定主体集A 和原子命题集P ,令 L.. 是任意的行为模型逻辑语言,用BNF表示为 φ::= |p|..φ|φ ∨φ|Kaφ|CBφ|[α]ψ α::=(M,δ)|α ∨α 当B.A 和a∈A ,p∈P ,δ∈A,(M,δ)是点行为模型。α∨α 表示行为的 选择。定 义3.17:行为模型逻辑L.. 的语义 对原子命题集P 和主体集A ,给定一 个模型M=(W ,R,V)且状态w∈W ,有认知状态(M,w),行为模型M=(A,~, Pre),α 是行为,φ 是公式。行为模型逻辑L.. 语义归纳定义如下: M,w 当且仅当M,w . ; M,w p 当且仅当w ∈V(p); M,w ..φ 当且仅当M,w φ; 48 M,w φ∨ψ 当且仅当M,w φ 或者M,w ψ; M,w Kaφ 当且仅当对任意一个w'∈W ,如果Raww', 则M,w' φ; M,w CBφ 当且仅当对任意一个w'∈W ,如果RBww', 则M,w' φ; M,w [α]ψ 当且仅当对所有的M',w',如果(M,w )|α| (M',w'),则M',w' ψ; (M,w )|M,δ|(M',w') 当且仅当M,w Pre(δ)和(M',w')= (M..M,(w ,δ)); |α∨β|=|α|∨|β| Pre(δ)表示执行动作δ 的前提条件。|α|表示动作α 可执行。 在这里行为的执行是一个积更新,是一个点模型到点模型的映射。积更新 后结果模型中的世界是世界与行为对。 M'=(M..M)是认知模型和行为模型的限制积,M'=(W',R',V')有 W'={(w ,δ)|w ∈W ,δ∈A,和M,w Pre(δ)}; (w ,δ)~'a(w',δ') 当且仅当w ~aw'和δ~aδ'; (w ,δ)∈V'(p) 当且仅当w ∈V(p)。 在结果模型中,一个主体不能区分两个世界,当且仅当在这之前它就不能 区分这两个世界以及在这两个世界执行的两个不同的行为。 3.3.6 非单调逻辑 认知推理在计算机科学以及人工智能中有许多重要的应用。传统的推理, 主要指演绎推理和完全归纳推理还有单调的模态逻辑推理等,它们都具有一条 很重要的性质———单调性。在单调推理方法中,都是基于一个重要的假设:主 体总是记得它之前的知识。推理的单调性是,增加任何新的前提都不会推翻已 经得出的结论形式化为,若Γ φ,则Γ,ψ φ。这里Γ 表示任意公式集,ψ、φ 是 任意公式,意思是说:若Γ 能够推出φ,当增加新的前提ψ 时,结论φ 仍然成立。 推广而言,一旦一个结论得出,那么它总是有效的,即使增加新的信息。单调认 知逻辑应用在密码协议中,表示当主体知道某消息后它将一直知道,不管后面 它的信息增加多少它也不会丢失这些消息。在这种逻辑下,主体知道某知识就 不会失去,也就是说,主体拥有的知识总是单调增加的。事实上,在现实生活 中,主体的知识可能具有非单调性,例如在文献[84]中阐明了在一个论辩系统 中有可废止理论,那么就要采用非单调推理。由于主体的知识、接收的信息、拥