1谓词逻辑语法
谓词逻辑是对命题逻辑的扩充,在其基础上引入了个体词、谓词、量词及函数符号。其中,个体词表示研究对象中可以独立存在的具体或抽象个体,个体的取值范围称为个体域或论域;谓词用来刻画个体的行为属性或个体间的相互关系;量词表示个体的数量属性;数符号的引入则为命题的符号化带来方便。为了建立严格的谓词逻辑演算系统,必须要有严格的形式化语言作为支撑,因此本小节首先给出谓词逻辑形式语言的定义。
定义 1.1 符号
谓词逻辑的形式语言(Language) ℒ由下列基本符号组成:
(1)个体常元:表示具体或特定的个体,1,2,3⋯;
(2)个体变元:表示抽象或泛指的个体,1,2,3⋯ ;
(3)函数符号:,, ⋯,若已知个体域,则元函数符号是到的任意一个映射。
(4)谓词符号:,, ⋯,若已知个体域,元谓词符号是上的任意一个谓词,换
而言之,是到*0,1+的一个映射。
(5)量词符号:、;
(6)联接词符号:、、、;
(7)括号与逗号:(、,、);
语言本身不具备任何意义,但可以根据需要解释成某种含义。
【解释】函数符号:以个体域为定义域,以个体域为值域。
举例:莎士比亚的儿子写了哈姆雷特。
D={莎士比亚,儿子,哈姆雷特}
{莎士比亚的儿子}{儿子}
所以函数son(莎士比亚)就是符号函数,如果不用符号函数,莎士比亚的儿子这个个体表示为莎士比亚的儿子,使用符号函数可以表示son(莎士比亚)。符号化的事物,计算机更容易处理。
【解释】谓词符号:莎士比亚的儿子写了哈姆雷特
WRITE(son(莎士比亚),哈姆雷特)
对于这个写这个事件进行了描述,写还是没写只有这两种可能,所以其取值为0或者1,这就是谓词函数。
定义1.2 项
项(Term):
(1)个体常元和个体变元都是项;
(2)若 ∈ ℱ 是零元函数,c 是项;
(3)若是任意元函数, > 0,1,2, ⋯ 是任意个项,则 1,2, ⋯ 是项;
(4)不存在其他形式的项;项的 BNF(Backus-Naur Form, BNF)范式可以表示为: : = ||(, ⋯ , ),其中,为任意个体项,为ℱ中的任意零元函数符号,f 为ℱ中任意 > 0的函数符号。
定义1.3公式
(1)若 ∈ 是n ≥ 1元谓词符号,1,2, ⋯ 是ℱ上的项,则
(1,2, ⋯ )是公式,该公式也称为原子公式(Atomic Formula)。
(2)若是公式,则()也是公式。
(3)若和是公式,则()、()和()也是公式。
(4)若是公式,为变元,则()和()也是公式。
(5)不存在其他形式的公式。
定义1.4 自由变元
设是谓词逻辑中的公式,如果是的语法分析树中的一个叶结点,且不存在从结点
到∀或的向上路径,则称在中的一次出现是自由的,否则称的出现是受约束的,公式中自由出现的变元为约束变元。例如,图 2.4 中三个叶子节点均为约束出现,变元的出现是自由的,因此为自由变元。
2.谓词逻辑语义
谓词逻辑语言ℒ中的公式在不同的语境或论域中有不同的语义。公式的真值依赖于谓词和函数符号的具体含义以及个体变元的取值范围,并随着它们的改变而变化。若赋予公式中的谓词和函数符号以具体含义,则可以构造一个语义模型,检测在这个特定模型中公式是否为真。
2.1模型M
假设ℱ为函数符号集,为谓词符号集合,每个符号都有确定的变元个数。由符号对
(ℱ,)构造的一个具体模型ℳ由如下数据项组成:
(1)论域:论域为一个非空集合,表示个体的取值范围,也称为解释域或个体域。
(2)常元集:常元视为零元函数符号,常元集为所有零元函数符号在论域中的具体解释。
(3)非零元函数集:由ℱ中的任意 > 0元函数符号 ∈ ℱ在论域A上的具体解释构成的集合。表示从到的一种映射。
(4)关系集:由中的任意 > 0元谓词符号 ∈ 在论域A上的具体关系集合构成的集合。为A 上元关系的子集,∈。
【解释】模型的概念比较抽象,下面看一个具体的事例
事例:用户选择一种登录方式登录,系统对用户的登录信息进行加密,两种加密算法,分别为 SSL 加密以及TLS加密。
加密
①公式P:(,) ∧ _()
‚论域A(个体的取值范围):{L_,_,_}
ƒ常元集login(零元函数在论域中的具体解释,把操作具体化):= _
„非零元函数集合secur_facility(x): _= {_,_ }
…关系集provide(x,y)(谓词符号表示的一种集合关系):{}(_,_)},采用该方法登录,系统应该采用SSL加密。
可以看出常元集是零元函数,模型中指定其具体操作。非零函数集是一元函数,指定对于变量的具体操作,关系集是二元函数,表明两个项之间的关系。
函数符号:零元代表函数符号
谓词符号:一元和二元代表谓词符号
2.2环境ℓ
环境指的是从变元集到模型中论域的一个映射函数ℓ:,该函数将每个变元与它在模型中的具体取值ℓ()联系起来。从本质上讲,环境是模型中所有变元取值的查询表。
ℓ[]-指的是将变元映射到具体值的一个查询表。
【解释】给变量具体的值,判断公式的取值。
在系统下检验需求公式
的满足情况:
当变元取值为_时,需求描述为:系统需要对用户登录信息进行 SSL 加密。根
据(4),在系统中,该需求可满足。即:ℳ ⊨ℓ[_](,) ∧ _()成立。
当变元取值为_时,由于(_,_) ∉ ,即系统对
用户登录信息未提供 TLS 加密,该系统不满足需求。即:
ℳ ⊨ℓ[_](,) ∧ _()不成立。
定义2.3谓词逻辑语义
给定关于符号对(ℱ,)的模型ℳ以及环境ℓ,对于(ℱ,)上的任一逻辑公式,通过对
的结构递归定义一个满足关系ℳ ⊨ℓ。若ℳ ⊨ℓ成立,表明在模型ℳ中相对环境ℓ,公式为真。
(1)若公式为原子公式,即 = (1,2, ⋯ ),若根据ℓ将1,2, ⋯ 解释为论域中的1,2, ⋯ ,ℳ ⊨ℓ(1,2, ⋯ )成立当且仅当(1,2, ⋯ ) ∈ 。
(2)∀:关系 ℳ ⊨ℓ∀ 成立当且仅当 ℳ ⊨ℓ,- ∀ 对所有的 ∈ 成立。
(3)∃:关系 ℳ ⊨ℓ∃ 成立当且仅当 ℳ ⊨ℓ,- ∃ 对某个 ∈ 成立。
(4)¬:关系 ℳ ⊨ℓ¬ 成立当且仅当 ℳ ⊨ℓ不成立。
(5)∨ :关系 ℳ ⊨ℓ1∨ 2成立当且仅当 ℳ ⊨ℓ1成立或 ℳ ⊨ℓ2。
(6)∧ :关系 ℳ ⊨ℓ1∧ 2成立当且仅当 ℳ ⊨ℓ1和 ℳ ⊨ℓ2都成立。
(7)→ :关系 ℳ ⊨ℓ1→ 成立当且仅当只要 ℳ ⊨ℓ1成立,则 ℳ ⊨ℓ2成立