第二章 谓词逻辑 在命题逻辑中,主要研究命题与命题之间的逻辑关系,其组成单元是原子命题,而原子命题是以一个具有真假意义的完整的陈述句为单位,不考虑其结构、成分(如主语,谓语等),对原子命题的联接关系的研究,不可能揭示原子命题的内部的特征。因此存在着很大的局限性:不能表达出每个原子公式的内部结构之间的关系,使得很多思维过程不能在命题逻辑中表示出来,例如著名的苏格拉底三段论
第二章 谓词逻辑 P:所有的人都是要死的; Q:苏格拉底是人; R:所以,苏格拉底是要死的。 显然,这三个命题有着密切的关系,当P和Q为真时,R必定为真,即R应该是P,Q的逻辑结果:即P∧Q→R永真。但实际上并非如此:当P,Q取“1”,而R取“0”时P∧Q→R <=>0,即P∧Q→R不是永真公式,即P,Q=>R不成立。用命题逻辑已无法正确地描述上述情况。
第二章 谓词逻辑 问题出现在哪里呢? 问题在于这类推理中,各命题之间的逻辑关系不是体现在原子命题之间,而是体现在构成原子命题的内部成分之间,即体现在命题结构以及深层次上,对此,命题逻辑无能为力。 所以在研究某些推理时,有必要对原子命题作进一步的分析,因此有必要引入谓词逻辑的概念。
2.1 谓词逻辑的基本概念与表示 在命题逻辑中,命题是具有真假意义的陈述句,从语法上分析,一个陈述句由主语和谓语两部分组成,比如: “阿星是中科大学生” “小强是中科大学生” 若用命题P,Q分别表示上述两句话,则P,Q是两个毫无关系的命题,这两个命题所表达的判断之间,没有任何逻辑关系。但事实上它们有一个共同的特性:“是中科大学生”。 因此,若将句子分解为:主语+谓语,同时将相同的谓语部分抽取出来,则可以表示这一类的语句。
2.1 谓词逻辑的基本概念与表示 此时,若用P表示:P:是中科大学生,P后紧跟:“某某人”,则上述两个句子可写为:P(阿星);P(小强)。 因此,为了揭示命题内部结构以及命题的内部结构的关系,就按照这两部分对命题进行分析,分解成主语和谓语,并且把主语称为个体词或客体,而把谓语称为谓词。
2.1 谓词逻辑的基本概念与表示 2.1.1谓词 定义2.1:在原子命题中,可以独立存在的客体(句子中的主语,宾语等),称为个体词(Individual)。而用以刻画个体词的性质或个体词之间的关系的词即是谓词(Predicate)。 单纯的谓词或单纯的个体词都无法构成一个完整的逻辑含义,只有将它们结合起来才能构成一个完整的,独立的逻辑断言。
2.1 谓词逻辑的基本概念与表示 定义2.2:个体词和谓词根据其具有的抽象分为两种: (1).表示具体或特定的个体词称为个体常量(Individual Constant),一般个体词常量用小写字母a, b, c, …表示;表示抽象的或泛指的个体词称为个体变量(Individual Variable),一般用x, y, …等表示; (1).表示具体性质或关系的谓词称为谓词常量(Predicate Constant),表示抽象的或泛指的性质或关系的谓词称为谓词变量(Predicate Variable),谓词一般都用大写字母F, G, H, …表示。
2.1 谓词逻辑的基本概念与表示 例2-1:指出下列命题的个体词和谓词。 (1).合肥是一个省会城市, (2).离散数学是计算机的基础课程, (3).姚明是一名篮球健将, (4).人是聪明的。 解:个体词:合肥,离散数学,姚明,人; 谓词:是一个省会城市,是计算机的基础课程,是一名篮球健将,是聪明的。
2.1 谓词逻辑的基本概念与表示 定义2.3:(1)个体词的取值范围称为个体域(或论域)(Individual Field),常用D表示;(2)宇宙间所有个体域聚集在一起构成的个体域称为全总个体域(Universal Individual Field)。 定义2.4:设D为非空的个体域,定义在 (表示n个个体都在个体域D上取值)上取值于{0,1}上的n元函数,称为n元命题函数或n元谓词(Propositional Function),记为P(x1, x2, …, xn),此时个体变量x1, x2, …, xn的定义域都为D, P(x1, x2, …, xn)的值域为{0,1}。
2.1 谓词逻辑的基本概念与表示 例2-2:符号化如下命题。 注意: P:上海是一个现代化城市; Q:甲是乙的父亲; R:3介于2和5之间; T:布什和萨达姆是同班同学。 注意: (1).谓词中个体词的顺序是十分重要的,不能随意变更。如F (b, c)与F (c, b)的真值就可能不同; (2).一元谓词用以描述一个个体的某种特性,而n元谓词则用以描述n个个体之间的关系; 解:设有如下命题函数; C (x):x是一个现代化城市; F (x, y):x是y的父亲; B (x, y, z):x介于y和z之间; S (x, y):x和y是同班同学; 用a, b, c, d, ,e, f, g, h分别表示:上海,甲,乙,3,2,5,布什和萨达姆,则上述命题可表示为: P:C (a);Q:F (b, c);R:B (d, e, f);T:S (g, h); 其中,C,F,B,S为谓词常量, a, b, c, d, ,e, f, g, h为个体常量。
2.1 谓词逻辑的基本概念与表示 (3).0元谓词(不含个体词的)实际上就是一般的命题; (4).一个n元谓词不是一个命题,但将n元谓词中的个体变元都用个体域中具体的个体取代后,就成为一个命题。 2.1.1量词 有了个体词和谓词的概念后,我们可以用具体的个体常量代换谓词中的个体变量,来获得相应的命题。但对有些命题,还是不能准确的符号化。
2.1 谓词逻辑的基本概念与表示 例2-3: 所有的x,R (x), R (x):x会吃人,x∈{老虎}; (2).每一个人都会犯错误; (1).所有的老虎都会吃人的; 所有的x,R (x), R (x):x会吃人,x∈{老虎}; (2).每一个人都会犯错误; 每一个x,P (x), P (x):x会犯错误,x∈{人}; (3).有些人是大学生; 有一些x,Q (x), Q (x):x是大学生,x∈{人}; (4).有一些自然数是素数。 有一些x,S (x), S (x):x是素数,x∈{自然数};
2.1 谓词逻辑的基本概念与表示 对这几个例子,我们仅仅符号化了一部分内容,而对句子中的“每一个”,“任意的”,“有一些”等等与个体词的数量有关的语句,无法用谓词来表示。因此我们需要在n元谓词前端加入限制词,即引入“量词”的概念。 定义2.5: (1).将日常生活和数学中常用的“一切的”,“所有的”,“每一个”,“任意的”等词称为全称量词(Universal Quantifier),符号化为“ ”;
2.1 谓词逻辑的基本概念与表示 (2).将日常生活和数学中常用的“存在”,“有一个”,“至少有一个”,等词称为存在量词(Existential Quantifier),符号化为“ ”。 x/ x:表示个体域里的所有的/有的个体; x F (x)/ xF (x):表示个体域里所有的/存在个体具有性质F; x:作用变量; F (x):量词的辖域。
2.1 谓词逻辑的基本概念与表示 我们再来看前面的例子: 上面表示有不好之处: ①总是要注明个体域; ②如果个体域注明不是很清楚的话,容易造成无法确定真值; ③不同命题函数中的个体可以居于不同的个体域,将它们组成复合函数时,不易表达。
2.1 谓词逻辑的基本概念与表示 因此,有必要对个体域进行统一,全部使用全总个体域,而此时,对每一个句子中个体变量的变化范围用一个特性谓词来刻划。统一成全总个体域后,在公式中就不必特别说明。 特性谓词在加入到命题函数中式遵循如下规则: (1).对应全称量词,刻划其对应个体域的特性谓词作为蕴含式的前件加入; (2).对应存在量词,刻划其对应个体域的特性谓词作为合取项加入。
2.1 谓词逻辑的基本概念与表示 例2-5:符号化下列语句。 (1).天下乌鸦一般黑; (2).那位身体强健的,用功的,肯于思考问题的大学生解决了一个数学难题; (3).张强和李平都是足球运动员; (4).每一个实数都存在比它大的另外的实数; (5).并非所有的动物都是脊椎动物; (6).尽管有些人很聪明,但未必一切人都聪明; (7).对于任意给定的ε>0,必存在着δ>0使得对任意的x,只要|x-a|<δ,就有|f (x) -f (a)|<ε成立。 解:(1).设F (x):x是乌鸦;G (x, y):x与y一般黑, 则:(任意x)(任意y) (F (x) ∧F (y) →G (x, y)) 或 ¬(存在x)(存在y) (F (x) ∧F (y) ∧ ¬G (x, y)) (2).设:P (x):x是强健的,Q (x):x是用功的,R (x):x是肯于思考的,S (x):x是大学生,T (x, y):x解决了y,a:那位,b:一个数学难题; 则:P (a) ∧Q (a) ∧R (a) ∧S (a) ∧T (a, b) (3).设Z (x):x是足球运动员,c:张强,d:李平 则: Z (c) ∧Z (d) (4).设:R (x):x是实数,L (x, y):x小于y 则:(任意x) (R (x) →(存在y) (R (y) ∧ L (x, y)) (5).设:A (x):x是动物,B (x):x是脊椎动物, 则:¬ (任意x) (A (x) →B (x)) 或:(存在x) (A (x) ∧ ¬B (x)) (6).设:M (x):x是人,C (x):x很聪明, (存在x) (M (x) ∧ C (x)) ∧ ¬(任意x) (M (x) → C (x)) (7).设:个体域为实数集合,则: (任意ε) ((ε>0) →(存在δ) ((δ>0)∧(任意x) ((|x-a|<δ) →(|f (x) -f (a)|<ε)))
2.1 谓词逻辑的基本概念与表示 例2-6:将下列命题形式化为谓词逻辑中的命题。 (1).所有的病人都相信医生; (2).有的病人相信所有的医生; (3).有的病人不相信某些医生; (4).所有的病人都相信某些医生。
2.1 谓词逻辑的基本概念与表示 例2-7:将下列命题形式化为一阶逻辑中的命题。 (1).任意一个整数x,均有另一个整数y,使得x+y=0; (2).存在这样的实数x,它与任何实数y的乘积均为y。 解:(1).设Z(x):x是整数;E(x,y):x=y;f(x, y)=x +y。 则原句形式化为:(任意x)(Z(x) →(存在y)(Z(y) ∧E(f(x, y), 0))); (2).设R(x):x是实数,E(x,y):x=y,g(x, y)=xy。 则原句形式化为:(存在x)(R(x) ∧(任意y)(R(y) →E(g(x, y), y))) 注:“x是整数”,“x是实数”均表示一个个体的性质,所以是一元谓词,“和等于0”,“乘积为y”均表示两个个体词的关系,所以是二元谓词,但“x+y”和“x与y的乘积”是两个数之间的运算,并非两个个体词的关系,所以不是二元谓词,因此,我们用二元函数f(x,y),g(x,y)表示之。
2.1 谓词逻辑的基本概念与表示 2.1.3谓词的语言翻译 设G (x)是关于x的一元谓词,D是其个体域,任取x0∈D,则G (x0)是一个命题。 是这样的一个命题:“对任意x,x∈D,G(x)都成立”其真值规定如下: 是命题:“存在一个x0∈D,使得G(x0)成立,其真值为:
2.1 谓词逻辑的基本概念与表示 当个体域D为有限集合时,设D={a1,a2,…,an},则: 因此,对于一个谓词,如果其中每一个变量都在一个量词作用下,用它就不再是命题函数,而是一个命题了。
2.1 谓词逻辑的基本概念与表示 例2-8:设P(x):x是素数,I(x):x是整数,Q(x,y):x+y=0;用语句描述下列句子,并判断其真假值。 解:(1).“对任意整数x,x一定是素数”,真值为“假”; (2).“存在一些整数x,x是素数”,真值为“真”; (3).“对任意的整数x,y,都有x +y=0”,真值为“假”; (4).“对任意的整数x,都存在着整数y,使得x +y=0”,真值为“真”; (5).“存在着整数x,使得对任意的整数y,都有x +y=0”,真值为“假”。
2.2 谓词的合式公式及解释 在前面,我们符号化得到的命题和命题函数就是一阶逻辑公式(谓词公式)。但是并不是随便的一些符号化组合就能成为一个谓词公式,所以我们需要给出严格的定义。为了排除自然语言的歧义,严格刻画概念间的关系,我们需要一种人工语言,从形式上表达命题,进而建立所需的形式证明系统。这种语言,如果限制于表达一阶命题,则称为一阶语言。
2.2 谓词的合式公式及解释 定义2.6:一阶语言F的字母表定义如下: (1).个体常元符号: (2).个体变元符号: (3).函数符号: (4).谓词符号: (5).量词符号: (6).联结词符号: ¬, ∧,∨,→,↔. (7).括号与逗号:( , ) .
2.2 谓词的合式公式及解释 2.2.1谓词的合式公式 为了方便处理数学和计算机科学的逻辑问题及谓词表示的直觉清晰性,首先引入项的概念。 定义2.7:一阶语言F中的项(Term),被递归定义为: (1).任何一个个体变元或个体常元是项; (2).如果f(x1, x2, …,xn)是任意n元函数,t1, t2, …, tn是任意的n个项,则f(t1, t2, …, tn)是项; (3).所有的项都是有限次使用(1),(2)得到的。
2.2 谓词的合式公式及解释 例2-9: 我们定义的项,包括了常量,变量及函数。 例如,x,a,f(x, a),f(g(x, a),b),h(x)均是项。函数的使用,能给谓词表示带来很大的方便。 例2-9: (1).周红的父亲是教授; (2).对任意的x,x2-1=(x+1)(x-1)是恒等式。 解:(1).设:f(x):x的父亲,P(x):x是教授,c:周红; 则:P(f(c)) (2).设:I(x):x是整数,E(x, y):x=y,f(x)=x2-1,g(x)=(x+1)(x-1); 则:(任意x)(I(x) →E(f(x),g(x))).
2.2 谓词的合式公式及解释 定义2.8:设R(x1, …, xn)是F的任意n元谓词,t1, t2, …, tn是F的任意的n个项,则称R(t1, t2, …, tn)是F的原子谓词公式(Atomic Propositional Formulae),简称原子公式(Atomic Formulae),由原子公式出发,可以递归定义谓词逻辑中的合式公式。 定义2.9:F的合式公式定义如下: (1).原子公式是合式公式; (2).若A是合式公式,则(¬ A)也是合式公式; (3).若A,B是合式公式,则(A∧B)、(A∨B)、 (A→ B)、(A ↔ B)也是合式公式;
2.2 谓词的合式公式及解释 (4).若A是合式公式;则 也是合式公式; (5).只有有限次地运用(1)~(4)构成的符号串才是合式公式。 合式公式也称为谓词公式,简称公式。 括号省略:与命题公式中的括号省略相同。但量词后面的括号省略方式为:一量词之辖域中仅出现一个原子公式,则此确定辖域之括号可省略,否则不能省略其括号。
2.2 谓词的合式公式及解释 例如, 等都是公式,而 不是公式。
2.2 谓词的合式公式及解释 2.2.2自由变元和约束变元 定义2.10:给定一个合式公式G,若变元x出现在使用该变元的量词的辖域之内,则称变元x的出现为约束出现(Bound Occurrence),此时的变元x称为约束变元(Bound Variable),若x的出现不是约束出现,则称它为自由出现(Free Occurrence),此时的变元称为自由变元(Free Variable)。 例2-10:求下列公式中各量词的辖域范围。
2.2 谓词的合式公式及解释 通常,一个量词的辖域是某公式G的子公式,因此,确定一个量词的辖域,就是找出位于该量词之后的相邻接的子公式。 (1).若量词后有括号,则括号内的子公式就是该量词的辖域; (2).若量词后无括号,则与量词邻接的子公式为该量词的辖域。 例2-11:判断下列公式中的个体变元是约束变元,还是自由变元。
2.2 谓词的合式公式及解释 注意以上的4个例子,在一公式中,某一个变元的出现既可以是自由的,又可以是约束的(如3中的y),因此易引起混淆。为了给人以一目了然的结果,对于表示不同意思的个体变元,我们总是以不同的变量符号来表示,即我们希望一个变元在同一公式中只以一种身份出现。由此我们引进两个规则:
2.2 谓词的合式公式及解释 规则1:(约束变元的改名规则) (1).将量词中出现的变元以及该量词辖域中此变量之所有约束出现,都用新的个体变元替换; (2).新的变元一定要有别于改名辖域中的所有其它变元。 规则2:(自由变元的代替规则) (1).将公式中出现该自由变元的每一处都用新的个体变元替换; (2).新变元不允许在原公式中以任何约束形式出现。
2.2 谓词的合式公式及解释 例2-12: (1).将公式 中的约束变元x进行改名; (2).将公式 中的自由变元y进行代入。 注意: (1).改名规则的施行对象是约束变元,代替规则的施行对象是自由变元; (2).改名规则只对公式中的一个量词及其辖域内施行,即只对公式的一个子公式施行,代替规则必须对整个公式同一自由变元的所有自由出现同时施行,即必须对整个公式施行; (3).改名或代替后公式等值。
2.2 谓词的合式公式及解释 定义2.11:设G是任意的公式,若G中无自由出现的个体变元,则称G为封闭的公式,简称闭式。 例如, 是闭式; 不是闭式。
2.2 谓词的合式公式及解释 2.2.3公式的解释 给定一个文字叙述的命题,可以符号化为谓词公式。反之,给定一个谓词公式,它表达怎样的意义呢?即谓词逻辑的语义问题,由于谓词公式是由一些抽象的符号构成的,即公式是由原子谓词公式(包括常量符号,变量符号,函数符号,谓词符号)通过逻辑联结词,量词,括号连接起来的抽象表达式,所以只有对它们给出具体的解释,公式才有实际意义。
2.2 谓词的合式公式及解释 定义2.12:谓词逻辑中公式G的每一个解释I (Explanation)由如下四个部分组成: (1).非空的个体域集合D; (2).G中的每个常量符号,指定D中的某个特定元素; (3).G中的每个n元函数符号,指定 到D中的某个特定的函数; (4).G中的每个n元谓词符号,指定 到{0,1}中的某个特定的谓词。
2.2 谓词的合式公式及解释 例2-13:设有公式: 在如下给定的解释下,判断该公式的真值。 (1).解释I为:①个体域为Z+,②P(x,y)指定为:“y ≥x”,③Q(x,y)指定为:“y≥1”; (2).解释I为:①个体域为Z,② P(x,y)指定为:“xy=0”,③ Q(x,y)指定为:“x=y”;
2.2 谓词的合式公式及解释 注意:封闭式在任何解释下都变成命题,而含有自由变元的公式在解释后一般仍为命题函数,但也可能变成命题。 2.2.4一些特殊的公式(判定问题) 例2-14:给出公式: 和 在给定的解释下求其公式的真值。 解:(1) 对任何解释I:
2.2 谓词的合式公式及解释 当P(a)取真值时,xP(x)也必为真,此时P(a) xP(x)为真; (2) 对任何解释I: 当xP(x)取值为真时,P(a)也必为真,此时xP(x)P(a)为真; 当xP(x)取值为假时, P(a)可真可假,此时xP(x)P(a)也为真; 所以公式的真值恒为真
2.2 谓词的合式公式及解释 例2-15:判断下列公式的真假: 从上述例子可知,谓词公式和命题公式一样,有可满足问题。 定义2.13:设A为公式,若A在任何解释下均为真,则称A为永真式,或有效公式。若A在任何解释下均为假,则称A为矛盾式,或永假式,若A至少存在一个解释使A为真,则称A为可满足式。
2.2 谓词的合式公式及解释 (1).永真式与矛盾式互为否定; (2).永真式一定为可满足公式。 判定问题:谓词逻辑的判定问题,指的是对任何一公式的有效性的判定,若说谓词逻辑是可判定的,就是要求给出一个可行的方法,使得对任一公式都能判断是否是有效的。所谓可行的方法,乃是一个机械方法,可一步一步做下去,并在有穷步内实现判断。一般来说,像数学定理的证明是不可行的。
2.2 谓词的合式公式及解释 哪些公式是可判定的呢? (1).谓词逻辑是不可判定的。也就是说,还没有一个可行的算法,可用来判断任意一个公式是否是可满足的。判定问题的困难在于个体域是个无穷集以及对谓词设定的任意性。但我们并不排除谓词公式的子类是可判定的; (2).只含有一元谓词变项的公式是可判定的; (3).如下公式: 若P中无量词和其它自由变元时,也是可判定的; (4).个体域有穷时的谓词公式是可判定的。
2.2 谓词的合式公式及解释 例2-16:判定下列公式的类型。 定义2.14:设A0是含命题变元p1, p2, …, pn的命题公式,A1, …, An是n个谓词公式,用Ai (1in)处处代替A0中的pi,所得公式A称为A0的代换实例或代入实例。 定理2.1:永真公式的代换实例都是有效公式,矛盾式的代换实例也都是矛盾式。
2.2 谓词的合式公式及解释 2.2.5等值式 定义2.15:设A,B是谓词逻辑中任意两个公式,若A↔B是永真公式,则称A与B是等价的或等值的,记作A<=>B,称为等价式或等值式。 常用的等价式 第一组:我们在命题逻辑中给出了24个等价式,我们由定理2.1知道,这24个等价式对应的永真公式的代换实例仍是永真公式。因此,这24个等价式的代换实例也是谓词逻辑中的等价式。
2.2 谓词的合式公式及解释 例: 第二组:由于谓词公式本身的特殊性,即引入了谓词和量词的概念,所以还有以下一些等价式: 1.消去量词等值式。设个体域为有限集D={a1, …an},则由谓词公式的真值定义,有
2.2 谓词的合式公式及解释 2.量词否定等值式 公式可由消去量词等值式推出。 3.量词辖域收缩与扩张等值式 设A(x)是任意的含个体变元x的公式,B中不含有x,则 (1):
2.2 谓词的合式公式及解释 (2): 4.量词分配律 5.改名规则
2.2 谓词的合式公式及解释 6.补充四条 置换规则:设Φ(A)是合式公式A的公式, Φ(B)是用公式B取代Φ(A)中所有的A之后的公式,若A<=>B,则Φ(A)<=> Φ(B)。 例2-17:证明下列等值式。
2.2 谓词的合式公式及解释 定义2.16:设A,B是谓词逻辑中的任意两个公式,若A→B为永真式,则称A永真蕴含B,记作A=>B。 常用的永真蕴含式
2.3 范式 在命题逻辑中,每个公式都有与之等值的范式,范式是一种统一的表达形式,对研究一个公式的判定问题起着重要的作用。对谓词逻辑公式来说,也有范式。 2.3.1前束范式 定义2.17:设A为一个一阶逻辑公式,如果A中的一切量词都位于该公式的最前端,且这些量词的辖域都延伸到公式的末端, 即A具有如下形式: Q1x1Q2x2…QkxkB,其中Qi(1ik)为或,B为不含量词的公式。则称A为前束范式。
2.3 范式 例: 定理2.2:(前束范式存在定理)一阶逻辑中的任何公式都存在与之等值的前束范式。(注:前束范式并不唯一)。
2.3 范式 证明:在一阶逻辑中,任何一个公式均可通过等值演算化为前束范式,化解过程如下: (1).消去除¬,∧,∨之外的联结词; (2).反复运用得摩根定律,直接将否定符¬移动到原子公式的前端(量词符后); (3).换名使各变元不同名; (4).使用谓词的等价公式,将所有量词提到公式的最前端。 例2-20:将下列公式化成前束范式
G=(Q1x1)(Q2x2)…(Qnxn)M(x1,x2, …xn) 2.3 范式 2.3.2SKolem标准形 定义2.18:设公式G是一个前束范式,如消去G中所有的存在量词和全称量词,所得到的公式称为SKolem标准形。 定理2.3:任意一个公式G都有相应的Skolem标准形存在,但此Skolem标准形不一定与原公式等值。 证明:由定理2.2知,公式G必有与之等价的前束范式,设G的前束范式为: G=(Q1x1)(Q2x2)…(Qnxn)M(x1,x2, …xn) (1).如果Qi是存在量词,且Qi的左边没有全称量词,则直接用一个常量符号a来取代xi在M中的一切出现,且该a不同于M中的任何其他常量符号; 证明:由定理2.2知,公式G必有与之等价的前束范式,设G的前束范式为:G=(Q1x1)(Q2x2)…(Qnxn)M(x1,x2, …xn) (1).如果Qi是存在量词,且Qi的左边没有全称量词,则直接用一个常量符号a来取代xi在M中的一切出现,且该a不同于M中的任何其他常量符号; (2).如果Qi是存在量词,且Qi的左边有全称量词(任意xj),(任意xl),…(任意xk),则直接用一个函数f(xj, xl, …xk)来取代xi在M中的一切出现,该函数符号f不同于M中的任何其他函数符号; (3).如果Qi是全称量词,则直接用一个变量符号x来取代xi在M中的一切出现,且该变量x不同于M中的任何其他变量符号: (4).反复使用上述(1), (2), (3),可消去前束范式中的所有存在量词的全称量词,此时得到的公式为该公式的Skolem标准形,且该标准形显然不于原公式等价。
2.3 范式 (2).如果Qi是存在量词,且Qi的左边有全称量词(任意xj),(任意xl),…(任意xk),则直接用一个函数f(xj, xl, … xk)来取代xi在M中的一切出现,该函数符号f不同于M中的任何其他函数符号; (3).如果Qi是全称量词,则直接用一个变量符号x来取代xi在M中的一切出现,且该变量x不同于M中的任何其他变量符号: (4).反复使用上述(1), (2), (3),可消去前束范式中的所有存在量词的全称量词,此时得到的公式为该公式的Skolem标准形。 例2-21:求下公式的Skolem标准形。
2.4 一阶逻辑的推理 在前面我们讨论了命题逻辑的推理理论,而谓词逻辑是命题逻辑的扩大系统,我们也就完全可以将命题逻辑中相应的术语,符号,规则扩展并借用过来。 在谓词逻辑中,从前提A1,…,An出发推理结论B的形式结构,依然可以采用如下的蕴含式形式: A1∧A2…∧An →B,若该式永真,则推理正确,否则称推理不正确,也就是说,判断推理是否正确,也就 是判断A1∧A2…∧An 是否永真蕴含B。
2.4 一阶逻辑的推理 2.4.1推理规则 我们知道在推理理论中,最重要的是推理规则,我们首先对谓词逻辑中的推理规则作一个小结:(我们还是采用构造证明法) 第一组:直接从命题逻辑逻辑中借用过来的规则,如:前提引入规则、结论引入规则、置换规则、CP规则; 第二组:谓词逻辑中由于引入量词而需要引进新的规则: 1.全称量词消去规则(简记为UI规则或UI)或叫全称特指规则,
2.4 一阶逻辑的推理 其中y为任意的不在A(x)中约束出现的个体变量,c为任意的个体常量; 例2-22:考虑个体域为实数集合,公式 ,其中F(x, y):x>y。消量词 2.存在量词消去规则(简记为EI)或叫存在特指规则,
2.4 一阶逻辑的推理 其中,c是使A为真的个体域中的某个个体,即一个特定的个体常项,要求 中无其它自由出现的个体变项,如有,必须用函数符号来取代。 例2-23:
2.4 一阶逻辑的推理 3.全称量词引入规则(记为UG)也叫全称推广规则, 其中无论A(y)中自由出现的个体变量y取何值,A(y)应该均为真,x不能在A(y)中约束出现。 例2-24:
2.4 一阶逻辑的推理 4.存在量词引入规则(简记EG)也叫存在推广规则, 其中,c是特定的个体常量,x不能在A(c)中出现过。 例2-25: 第三组:由推理定律而来的推理规则, 我们知道,推理规则实际上来源于推理定律,本质上是来源于一些永真蕴含式的,谓词逻辑中的推理定律(或永真蕴含式)有三个来源:
2.4 一阶逻辑的推理 (1).命题逻辑中的推理定律的代换实例,例:化简律: 附加率: (2).谓词逻辑中的每个等值式可以生成相应的两个推理定律,例:由全称量词的否定等值式 可得: 或 (3).谓词逻辑中因为引入量词后的所得永真蕴含式,前面给出的永真蕴含式。
2.4 一阶逻辑的推理 2.4.2推理规则的应用 一般情况下,总是假定相同的个体域(即全总个体域)下进行的。 (1).推理过程中,可以直接引用:前提引入、结论引入、置换、CP等规则以及谓词逻辑中的等价式和永真蕴含式导出的规则; (2).可以引用UI,EI规则消去量词,此时量词必须位于整个公式的最前端,且其辖域延伸到公式的末端; (3).可以引用UG,EG规则加入量词;
2.4 一阶逻辑的推理 (4).在推理过程中,如既要使用UI规则,又要使用EI规则消去量词,而且选用的个体是同一个符号,则必须先使用规则EI,再使用规则UI; (5).如果一个变量是用规则EI消去量词,对该变量在添加量词时,则只能使用规则EG,而不能使用规则UG,如使用规则UI消去量词,对该变量在添加量词时,则可使用规则EG和UG。
2.4 一阶逻辑的推理 例2-26:证明苏格拉底三段论。 2.4.3举例 例2-26:证明苏格拉底三段论。 例2-27:证明下述论断的正确性:所有的哺乳动物都是脊椎动物;并非所有的哺乳动物都是胎生动物。故有些脊椎动物不是胎生的。 例2-28:给出下面推理的证明: 前提: 结论:
2.4 一阶逻辑的推理 例2-29:构造下面推理的证明: 例2-30:证明下面论断的正确性。 前提: 结论: 有些学生相信所有的老师,任何一个学生都不相信骗子。所以,教师都不是骗子。
2.4 一阶逻辑的推理 例2-31:用反证法证明: 例2-32:证明:
2.5 谓词逻辑在计算机科学中的应用 2.5.1谓词逻辑与数据库语言 1张二维表可表示一个n元有序组的集合,可以用一个n元特性谓词来刻划:某元组属于二维表的充要条件是给其对应的谓词为真 如: F(x, y)=N(x) ∧(x=y) 即{(x, y)|F(x, y)}。 x y 1 2 3 …
2.5 谓词逻辑在计算机科学中的应用 对数据库而言,基本操作插入,删除等; 此外,修改,选择等都可以用谓词公式来表示,因而,可以用谓词逻辑这一工具来研究关系数据库。 基本操作 关系代数 逻辑公式 插入 R∨S {(x1, …xn)|P(x1, …xn) ∨Q(x1, …xn)} 删除 R-S {(x1, …xn)|P(x1, …xn) ∧¬Q(x1, …xn)}
2.5 谓词逻辑在计算机科学中的应用 2.5.2谓词逻辑与逻辑程序设计语言 我们知道谓词逻辑是不可判定的,但1965年美国数理逻辑学家罗宾逊Robinson,证明了谓词逻辑的“半可判定性”,即在谓词逻辑中存在一种算法,只要公式是永真的,就能用此算法推出,他们使用的算法叫消解原理,1972年法国马赛大学的Colmerauer设计了一种逻辑程序设计语言,Prolog语言,实现了消解法。 现实世界=>谓词逻辑表示=>Prolog程序=>计算机实现
2.5 谓词逻辑在计算机科学中的应用 1.子句和子句集 谓词公式→斯科林范式→子句集→Horn子句 (1).谓词公式→斯科林范式,一个命题公式; (2).斯科林范式:化为合取范式,将每个合取项用蕴含式表示,这种蕴含式称为子句; (3).一个公式总可以用一组子句来表示,每个子句具有单一的蕴含形式,公式是永真的,则该子句集中的每一个子句永真。
例2-35:试将“每个人都犯错误”用子句形式表示。 例2-36:试将祖先关系“父母是祖先,祖先的祖先是祖先”用子句集表示。 2.5 谓词逻辑在计算机科学中的应用 例2-34:求下公式的子句集。 例2-35:试将“每个人都犯错误”用子句形式表示。 例2-36:试将祖先关系“父母是祖先,祖先的祖先是祖先”用子句集表示。
2.5 谓词逻辑在计算机科学中的应用 2.消解原理 在公理系统中,有公理和定理两部分,公理是已知的永真公式,定理是要求证明的永真公式,公理可用子句集表示,设子句集S,则S={E1,E2,…,En},其中Ei(i=1,…n)表示子句。设定理用E表示,则
2.5 谓词逻辑在计算机科学中的应用 (1).子句集的相容性。 一个子句集如存在语义解释,则称它是相容的,否则称为不相容的。如{←P,P←}是不相容的子句集,而{P ←Q,Q ←R},{x ←,y ←}都是相容的,因为在现实世界中总可以找到一种语义解释使每个子句为永真。 相容性是一个公理系统的必备条件,一个不相容的公理系统在现实世界中是不存在的。 由相容子句集S可推得结论E,相当于S∪{¬E}是不相容的。
2.5 谓词逻辑在计算机科学中的应用 例如:我们可以由{A ←B,B}可得出A,它相当于{A ←B,B,¬A}是不相容的。 也就是说,要证明由S可推得定理E,相当于证明S∪{¬E}是不相容的。 (2).不相容性的证明方法。 定理2.4:设有永真公式 其中 则必有永真公式:
2.5 谓词逻辑在计算机科学中的应用 推论2.1:设有永真公式, 其中, 则必有永真公式, 推论2.2:由{P←,←P}可得□(空子句)。 其中, 则必有永真公式, 推论2.2:由{P←,←P}可得□(空子句)。 说明: (1).两个子句其不同的两边如有相同命题可消去,这是消解原理的基本思想,此方法叫反驳法; (2).由推论2.2知,由不相容的子句集可得空子句。
例2-37:试证由 可推出 2.5 谓词逻辑在计算机科学中的应用 这样我们可以得到一种证明方法,即由S为公理系统证明E为定理的过程可以改为: (1).作S1=S∪{¬E}={E1,E2,…,En,¬E}公理系统; (2).从¬E开始在S1内不断用反驳法; (3).最后如出现空子句则结束。 例2-37:试证由 可推出
例2-38:试证由 可推出P。 2.5 谓词逻辑在计算机科学中的应用 (3).代换合一与匹配。 在消解原理中,关键问题是合一式匹配,即要在两个子句中不同端寻找相同的命题,其实并非容易,两个谓词相同的含义有: ①两个谓词符相同; ②个体变元的数目相同; ③对应个体变元相同,这又可分为三种情形:
2.5 谓词逻辑在计算机科学中的应用 (a).两者均为变量,此时需要对作代换使之相同; (b).一个为变量,另一个为常量,此时必须对变量作代换使之与常量一致; (c).两者均为常量,此时两常量应相等。 代换:对一组变元x1, x2, …,xn, 它可分别用t1替换x1,t2替换x2,…tn替换xn,从而得到另一组变元t1, t2, …,tn, 这种替换过程叫代换,它可写成:
例2-39:设有公式E=F(x,y),代换Q={a\x,b\y},则EQ=F(a,b)。 例2-40:设公式 ,代换 则有 2.5 谓词逻辑在计算机科学中的应用 例2-39:设有公式E=F(x,y),代换Q={a\x,b\y},则EQ=F(a,b)。 例2-40:设公式 ,代换 则有 例2-41:试用反驳法消解子句集
2.5 谓词逻辑在计算机科学中的应用 合一:使两个公式相同的代换,称为合一,即对{E1,E2,…En},如果存在一种代换λ,使得E1 λ= …=En λ,则称此代换为合一。 匹配:合一不是唯一的,它可以有多个,其中最一般性的合一称为匹配,即对{E1,E2,…En},如果存在一个合一σ,使得对其他任一一个合一Qi,均存在代换λi,满足 则称σ为{E1,E2,…En}的匹配。
例2-42:设有一种关于父母和祖父母的客观事实,要求某些祖孙关系。 2.5 谓词逻辑在计算机科学中的应用 为了消解,我们引入了代换,使得若干个公式相同的代换称为合一,最一般的合一为匹配,在消解过程中,我们使用合一与匹配。 例2-42:设有一种关于父母和祖父母的客观事实,要求某些祖孙关系。 Father(John, Ares) ← Father(Ares, Bob) ← Mother(Mary, Ares) ← Mather(Ann, Bob) ← Parent(x, y) ←Father(x, y) Parent(x, y) ←Mather(x, y) Grandparent(x, y) ←Parent(x, z), Parent(z, y)
2.5 谓词逻辑在计算机科学中的应用 求证:Grandparent(John, bob) ← 例2-43:试证明下列的智力测试题目(水容器问题)。设有两个分别盛7升与5升的水容器,开始时两个容器均空,允许对容器做三种操作:①容器倒满水,②将容器中的水倒光,③从一个容器倒水至另一个容器,使一个容器倒光而另一个容器倒满。最后要求能使大容器中有4升水,并求其操作过程。
数理逻辑 例:有一逻辑学家误入某部落,被拘于牢狱,酋长有意放行,他对逻辑学家说:“今有两门,一为自由,一为死亡,你可以任意开启一门。为协助你脱逃,今加派两名战士负责解答你所问的任何问题。唯可虑者,此两战士一名天性诚实,一名说谎成性,今后生死由你自己选择。”逻辑学家沉思片刻,即向一战士发问,然后从容离开,该逻辑学家应该如何发问?
数理逻辑 命题逻辑: 1.命题的表示:命题,联结词,命题公式 2.命题的判定:真值表,等值演算,范式 3.命题的推理 谓词逻辑: 1.谓词的表示:谓词,量词,谓词公式 2.谓词的判定:解释,等值演算,前束范式与Skolem范式 3.谓词的推理
证明:设I是任意的一个解释, 若I使得x(A(x)B(x))为真,则有对任意的xD,都有A(x)B(x)为真,从而对任意的xD都有A(x)且对任意的xD都有B(x)为真,即xA(x)为真且xB(x)为真。所以, xA(x)xB(x)为真。 若I使得x(A(x)B(x))为假,则至少存在一个x0D,使得A(x0)B(x0)为假,从而存在x0D使得A(x0)为假且存在x0D使得B(x0)为假,即xA(x)为假且xB(x)为假。所以, xA(x)xB(x)为假。 因此,公式成立。