第五章一阶逻辑的语法和语义.docx
《第五章一阶逻辑的语法和语义.docx》由会员分享,可在线阅读,更多相关《第五章一阶逻辑的语法和语义.docx(11页珍藏版)》请在冰豆网上搜索。
第五章一阶逻辑的语法和语义
一阶谓词逻辑部分——一阶语法:
1定义字母表的定义
一个一阶语言L的字母表由以下符号组成:
1)一组非逻辑符号,其中包含:
i)一个(可能空的)个体常项集;{a1,a2,…}
ii)对每个n1,一个(可能空的)n元谓词集;{F11,F12,…,F21,F22,…,Fn1,Fn2,…,…}
iii)对每个n1,一个(可能空的)n元函数符号集{f11,f12,…,f21,f22,…,fn1,fn2,…,…}
2)一组固定的逻辑符号,其中包含:
i)个体变项x0,x1,x2,…(可数无穷多);
ii)量词,[];
iii)联结词,,[,,];
iv)等词[];
v)括号),(。
注1:
我们上面定义的,可以叫做带等词的一阶语言的字母表。
形式语言对其字母集(及其每个子类)的大小做了限定,要求它(它们)是可数的。
这是因为,对不可数集合,一般没有一个能行的方法来判定一个对象是否属于它。
注2:
所有一阶语言有共同的逻辑符号,它们的字母表的差别完全由非逻辑符号决定,所以,在不引起误解的情况下,我们不妨把一个一阶语言就简单地看成它的非逻辑符号集。
注3:
一个语言(的字母表)虽然可能是为了描述某个特殊的结构而设计的,但字母表一旦给定,这个语言也可以用来描述其他的结构,只要这些结构的组成与这些字母(的一部分)相匹配就行。
注4:
在谈论一个一阶语言的时候,我们需要一些元语言的变项来代表这个(对象)语言字母表中的任意某类符号。
我们约定,在元语言中用
x,y,z等代表一阶语言的个体变项;
c,d,e等代表一阶语言的个体常项;
P,Q,R等代表一阶语言的谓词;
f,g,h等代表一阶语言的函数符号。
2项的归纳定义
下一步我们要从字母表中构造一阶语言的词项(以下简称项)。
项的作用是指称或表示结构中的个体,所以个体常项是一种项,个体变项是另一种项,而函数,如f(x)=x的母亲,其函数值也代表个体,所以函数表达式也是项。
现在的问题是:
到底哪些东西是项,或者,我们如何确切定义项的集合?
设L为一阶语言。
L-项定义为:
1)基始条件:
i)L字母表中的每个个体常项是L-项。
ii)每个个体变项是L-项。
2)归纳条件:
对任意n1,若f是L的n元函数符号,且符号串t1,…,tn是n个L-项,则它们的连接ft1…tn也是L-项。
3)封闭条件:
没有其他东西是L-项。
注1:
叙述这个定义时,我们用到了新的元语言变项t。
以后我们就用r,s,t等代表项。
注2:
如此定义的L中的项具有可判定性,具体的判定步骤我们省略。
项的长度是有穷的,但是项的集合可以是可数无穷的。
3公式的归纳定义
语言中有了项,我们便可以用不同的方式指称结构中的个体。
但是,仅能指称个体,还不足以描述结构。
我们还需要语言中其他的表达式,来表达个体具有什么性质(属于什么集合)以及个体间具有什么关系(个体的有序组属于什么集合),或者说,表达关于结构的一阶命题。
这种表达式,叫做公式。
公式与项类似,也是字母表中的符号组成的符号串,也能用归纳定义把它确定下来。
定义设L为任意一阶语言。
L的公式(或L-公式)定义为:
1)基始条件:
i)对L的任意n(n1)元谓词P和任意n个L-项t1,t2,…,tn,Pt1…tn是L-公式;
2)归纳条件:
ⅰ)如果A是L-公式,则A也是L-公式;
ⅱ)如果A,B是L-公式,则(AB)也是L-公式;
ⅲ)如果A是L-公式,x是个体变项,则xA也是L-公式;
3)封闭条件:
没有其他东西是L-公式。
注1:
可以看出,这里定义的还是L-串的某种连接形成的L-串。
基始条件确定的公式,称为原子公式。
原子公式由谓词和项直接连接而成。
其他非原子公式都是从原子公式出发,添加真值联结词或量词形成的。
归纳条件确定的公式ⅰ)ⅱ)ⅲ)分别称为否定式、蕴涵式、全称式。
注意,x或x放在一个公式A之前形成新公式的时候,并不要求A中出现x。
注2:
定义中出现了元语言变项A和B,我们约定以后就用它们代表公式。
注意,象Pt1…tn、A、(AB)、xA等等的,有元语言变项出现于其中的,本身作为符号串都不是公式(公式只由对象语言中的符号组成),它们称为公式模式。
每个公式模式都代表形如自身的一切公式。
显然,与L-项的情形一样,每个L-公式也是有穷长的。
公式的集合可以是可数无穷的。
注3:
对于一个符号串是否是公式,我们也有能行的可判定程序。
4自由和约束、代入
4.1定义对一个量化式xA(或xA),称其子公式A是量词x(或x)的辖域。
一般而言,如果xA(或xA)作为子公式出现在公式B中,则称A是这个量词在B中的辖域。
直观上看,一个量词的辖域就是紧跟着它的最短公式。
比如,在L1st-公式x1(P01c1(P01c1P11x1))中,x1的辖域就是(P01c1(P01c1P11x1));而在(P01c1x1(P01c1P11x1))中,x1的辖域则是(P01c1P11x1)。
一个量词在一个公式中可能有多次出现,此时它的每一次出现都有一个辖域。
例如,在x1(P01c1x1(P01c1P11x1))中,x1的第一次出现的辖域是(P01c1x1(P01c1P11x1)),而第二次出现的辖域则是(P01c1P11x1)。
4.2定义在公式中,一个变项x如果出现在某个形如x(或x)的量词的辖域中,或它就紧跟在(或)后面,则称x在A中的这处出现是约束的。
变项的非约束的出现,称为自由出现。
如果x在A中有一处自由出现,则称x是A中的自由变项。
如果x在A中的所有出现都是约束的,则x是A中的约束变项。
4.3例考虑以下Lord-公式:
x0x1;
x0(x0x1x0x1)
x0(x0x1x1x0x1)
在第一个公式中,所有变项的所有出现都是自由的,因此两个变项都是自由变项。
第二个公式中,x0的三处出现都是约束的,因此是约束变项,而x1的两处出现都是自由的,所以x1是自由变项。
第三个公式中,x1的第一处出现是自由的,第二处出现是约束的,但既然x1有自由出现,它就是这个公式中的自由变项。
4.4定义设L是一个一阶语言,s是一个L-项。
对任意变项x和L-项t,我们如下递归定义t在s中对x的代入,记为s[x/t]:
1)若s为个体常项,则s[x/t]s。
2)若s为个体变项y,则s[x/t]y若yx;
否则t若yx。
3)若s为ft1…tn,则s[x/t]ft1[x/t]…tn[x/t]。
容易归纳证明,s[x/t]仍然是L-项。
4.5定义设L是一个一阶语言,A是一个L-公式。
对任意变项x和L-项t,我们如下递归定义t在A中对x的代入,记为A[x/t]:
容易归纳证明,A[x/t]仍然是L-公式。
4.6定义设L是一个一阶语言,A是一个L-公式。
对任意变项x和L-项t,称t在A中对x可代入,如果x在A中不自由地出现于某个y(或y)的辖域中,这里的y是出现于t中的一个变项。
t在A中对x可代入也称为t在A中对x是替换自由的。
4.7举例及练习
(1)x3对公式中的x2是自由的,而x1对公式中的x2则是不自由的。
因为x2自由地出现在x1的辖域中,而x2并没有自由地出现在x3的辖域中(在这里有两个意思:
或者x2没有出现在x3的辖域中,或者x2出现在x3的辖域中,但是x2的出现是不自由的)。
对于
(1)中所举的例子来说,是因为x2没有出现在x3的辖域中。
(2)也有可能出现x2约束地出现在x3的辖域中的情况,例如x3对公式中的x2是自由的。
因为在这个公式中没有x2的自由出现。
由上不难看出,项t对公式A中的变元x是自由的,主要是看t对x在A中的自由出现进行代入是不是自由的。
而对x的约束出现进行代入则没有太多的意义。
就好像这个例子所看到的那样。
(3)
(4)课堂练习
(5)项t对公式A中的x代入(t对A中x的替换)举例:
请指出
(2)的这些代入中,哪些是不自由的。
(6)项t对公式A中的x代入(t对A中x的替换)课堂练习:
一阶谓词逻辑部分——一阶语义
1.结构与解释
1.1定义设L是一阶语言。
一个L-结构Å是一个有序对<Å,>,它满足以下性质:
1)Å是个体的非空集合,称为Å的全域或L的论域。
2)是定义在L的非逻辑符号集上的函数,使得
i)对L的每个个体常项c,(c)Å。
ii)对L的每个n元谓词P,(P)是Å中的一个n元关系。
iii)对L的每个n元函数符号f,(f)是Å中的一个n元函数。
我们用正体字母Å等代表结构,相应地用斜体Å代表它们的全域。
全域Å的基数|Å|标示结构Å的大小,当Å为有穷集、可数无穷集、不可数集时,Å也就分别称为有穷结构、可数无穷结构或不可数结构。
由定义知,一个L-结构Å=<Å,>首先有一个作为语言L的论域的非空个体域Å,然后它有一个解释函数,把L中的个体常项、谓词、函数符号分别解释为Å中个体、关系(一元关系是性质)和函数。
以后我们把的值(c)、(P)、(f)等记作cÅ、PÅ、fÅ。
对应于语言的记法,我们经常也把一个结构记为它的全域和其中的cÅ、PÅ、fÅ等组成的有序组。
例如,Lm={a,P,Q,f},一个Lm结构就可记为A=,其中
a是Å中个体aÅ的名字;
P表达Å的子集(Å中的性质)PÅ;
Q表达Å2的子集(Å中的二元关系)QÅ;
f表达Å中一元函数fÅ。
一个L-结构Å一旦给定,它就是语言L之外的一个世界,其中的事实独立于语言L而成立。
在L之外述说Å中成立的事实,要使用L之外的符号(如aÅ,PÅ,QÅ,fÅ等等)。
比如我们说:
PÅ(aÅ)(或aÅPÅ);对个体a,bÅ,QÅ(a,b)(或QÅ);等等。
注意这里的区别:
a,P,Q,f等是语言Lm中的符号,它们可以构成项、公式等Lm表达式,对结构进行描述,但它们不能用在Lm之外述说关于结构的事实;而aÅ,PÅ,QÅ,fÅ等,不是Lm中的符号,它们不能出现在Lm的项、公式之中。
如Pa是公式,但PÅ(aÅ)或QÅ(a,b)是在Lm之外关于结构中事实的述说,混同二者的表达,如PaÅ,Q(a,b)以及PÅ(a)等都是没有意义的。
还要注意,一个n元函数符号必须解释为论域A中的n元全函数,即它的定义域为An(对An的所有元素有定义),值域包含在A中(函数对A封闭)。
如A中的一元函数fÅ必须对A中所有的a有定义,且所有的fÅ(a)均属于A。
1.2定义对给定的L-结构Å=<Å,>,一个Å中的赋值是从L的个体变项集到Å的全域Å中的一个函数:
:
{x0,x1,x2,…}Å。
1.3定义对语言L的一个解释指有序对=<Å,>,其中Å是一个L-结构,是一个Å中的赋值。
定义中的Å叫做的结构,Å的全域Å也称解释的全域。
显然,一个解释就是一个结构加上其中的一个赋值,把结构未能照顾到的个体变项一并规定了指称。
一个L-解释能够确定所有L-项的指称,我们把这个事实总结为如下的递归定义:
1.4定义设t是一个L-项,=<Å,>是一个L-解释。
我们称t在之下所对应的个体为t在之下的指称,记为tÅ[]。
tÅ[]是满足以下条件的函数的值:
1)若t为个体变项xi(i0),则tÅ[](xi);
2)若t为L的个体常项c,则tÅ[]cÅ;
3)若t为ft1…tn,其中f是L的n元函数符号(n1),t1,…,tn是n个L-项,则
tÅ[]fÅ(t1Å[],...,tnÅ[])。
可以用归纳法简单地证明,对每个t,tÅ[]是的全域Å中的个体。
个体常项的指称直接由结构确定;个体变项的指称由赋值确定;ft1…tn的指称则是其子项t1,…,tn的指称t1Å[],...,tnÅ[]经过结构中的函数fÅ运算的值。
定义了每个L-项t的指称tÅ[]之后,L的每个形如Pt1…tn的原子公式都表达某个确定的命题。
Pt1…tn在L-解释=<Å,>之下可满足,当且仅当,存在有赋值使得PÅ(t1Å[],...,tnÅ[])在结构Å中成立,或者说在Å中有事实:
PÅ。
Pt1…tn在L-解释=<Å,>之下为真,当且仅当,对任意赋值都使得PÅ(t1Å[],...,tnÅ[])在结构A中成立,或者说在A中总有事实(不论赋值如何给个体变项赋值):
PÅ。
1.5定义与赋值x-等值的赋值(x/a)
给定一个赋值。
我们有时需要用到一个新的赋值,它把某个体变项x对应到某个体a上,而对其他个体变项,它跟的作用完全相同。
当a(x)时,两个赋值实际上没有区别;当a(x)时,二者的唯一区别就是在x处的函数值不同。
这个新的赋值,我们记为(a/x),它的定义如下:
对任意的个体变项y,
a
,若yx,
(x/a)(y)(y),若yx。
如果解释=<Å,>,则把相应的新解释<Å,(x/a)>记为(x/a)。
显然,(x/a)保持了中的结构,所以,对语言中的所有非逻辑符号,二者都有相同的解释。
但是,(x/a)用(x/a)替换了中的,从而具有了一个新的赋值。
两个解释若有区别的话,则它们唯一的区别在于x处的赋值不同。
2量词的语义解释
在任何解释下,全称量词读作“对所有的…”或“对任意的…”,存在量词读作“存在…”或“至少有一个…”。
于是,公式x(x)似乎能解释为:
对论域中所有的x,(x)为真;而x(x)则解释为:
论域中至少有一个x,使得(x)为真。
但是,这种表达方式有问题:
这里的x,根据我们的约定,代表语言中的个体变项,因此不能在未加限制的情况下,同时又用来表示论域中的对象。
所谓“论域中所有的x”、“论域中至少有一个x”的说法,混同了两个层次的语言。
其实,x(x)要说的无非是:
论域中任意个体都有(x)表达的性质;而x(x)则表示:
论域中至少有一个个体有(x)表达的性质。
但要严格表达这些意思,则需要从“一个个体a具有性质(x)”开始分析。
对任意解释=<Å,>,“论域Å中的个体a具有(x)所表达的性质”的准确的意思是,当我们用a来解释x而其他符号的解释都不变时,(x)在这个新解释下为真。
采用上节末引入的记法,这即是说,(x)在新解释(a/x)=<Å,(a/x)>=<Å,,(a/x)>之下为真。
所以,
x(x)在之下严格读作:
对所有的aÅ,(x)在(x/a)之下为真。
x(x)则读作:
存在aÅ,使得(x)在(x/a)之下为真。
注:
在一个个体域中,如果存在个体具有某性质,则显然并非全部个体都没有此性质。
这就是说,“至少有一个,使得…”蕴涵“并非对所有的,都不…”。
另一方面,我们的语义学假定了经典逻辑的排中律,就是说,我们假定,全域中任何一个个体或者有某性质或者没有某性质。
这导致,“并非对所有的,都不…”反过来蕴涵“至少有一个,使得…”。
所以,x等价于x。
这使得我们可以用全称量词加上联结词来定义存在量词。
换言之,我们可以把所有形如x的公式看作形如x的公式的缩写,因而在原则上去除符号。
同理,x也等价于x,我们也可以用存在量词定义全称量词。
两个量词,在理论上只需要一个,不必都作为初始符号放在语言的字母表中。
我们之所以同时采取两个,是考虑到在实际应用上这样更方便一些。
3满足和真
字母表中的所有符号都得到解释之后,一个语言的所有公式都表达命题。
我们知道命题代表真值。
那么,一个公式在什么条件下被解释为真或假呢?
前面我们讨论了在一个解释之下,一个原子公式何时为真,一个量化式或含有联结词的复合式的真值如何被它们的子公式的真值决定。
这些内容构成了一个充分的基础,使我们能够递归地确定“一个L-公式在一个L-解释下为真”的确切含义。
塔斯基语义告诉我们:
定义真必须先定义可满足。
3.1定义设L是一阶语言,=<Å,>是一个L-解释。
对任意L-公式A,在之下可满足,记为Å|=A[];A在之下不可满足,记为Å|A[]:
1)若A是原子公式Pt1…tn,其中P是L的n元谓词,t1,...,tn是n个L-项,则
Å|=A[]PÅ
因此,Å|A[]PÅ
2)若A为B,则
Å|=A[]Å|B[],其中“Å|B[]”表示“并非Å|=B[]”
3)若A为BC,则
Å|=A[]如果Å|=B[],那么Å|=C[],即“或者Å|B[]或者Å|=C[]”
4)若A为xB,其中x为个体变项,则
Å|=A[]对每个aÅ,Å|=B[(x/a)]
1)直接规定了原子公式在一个解释下可满足的条件。
2)—3)确定了如何从子公式的可满足得到用联结词联结它们之后的复合公式的可满足,它们实际上定义了对联结词的解释。
4)则定义了对量词的解释。
量化式的真值也是由子公式的真值决定的,但这里要考虑的不仅是子公式在原解释下的真值,还包括解释中赋值变动后对子公式真值的影响。
3.2设L是一阶语言,=<Å,>是一个L-解释。
对任意L-公式A,A在之下为真,记为(A)T;A在之下为假,记为(A)F。
(A)是满足以下条件的唯一的函数的值:
1)若A是原子公式Pt1…tn,其中P是L的n元谓词,t1,...,tn是n个L-项,则
(A)T对中的任意赋值都有Å|=A()
2)若A为B,则
(A)T(B)F
3)若A为BC,则
(A)T如果(B)T,那么(C)T
4)若A为xB,其中x为个体变项,则:
(A)T对每个aÅ,(x/a)(A)T
对每个aÅ,对任意赋值都有Å|=A[(x/a)]。
对一个L-公式集和一个L-解释,我们用()T表示:
对每个A,都有(A)T(或者,对任意的A,若A,则(A)T)。
当为空集时,因为对任意的A,A总为假,所以,对任意的,()T。
3.3定义对L-语句和L-解释=<Å,>,如果(A)T,则称A在结构Å中为真,或Å为A的模型。
如果为L-语句集,且对每个A,Å为的模型,则称Å为的模型。
直观上讲,每个闭公式直接表达关于结构的某个命题,如果这是个真命题,则这个结构就是那个闭公式的模型。
闭公式的集合如果表达关于某个结构的一组真命题,则也以这个结构为模型。
但开公式不是如此,在其中的自由变项没有确定的指称时,它们不表达关于结构的命题。
含有一个自由变项的开公式,此时的作用类似于一元谓词,表达某个性质;含有n个自由变项的开公式则类似于n元谓词,表达某个n元关系。
只有用赋值确定了全部自由变项的指称时,开公式才表达关于结构的命题。
4.语义后承
一个推理是有效的,当且仅当在一切情形之下,如果它的前提都真,则它的结论为真。
现在,我们对这个直观表达中涉及的所有概念都有了精确的分析。
首先,我们建立了形式的一阶语言,用其中的公式表示一阶命题(的真值)。
然后我们用“解释”这个概念代替了模糊的“情形”概念。
最后我们澄清了“一个公式在一个解释之下为真”的确切含义。
于是,推理的有效性就可以用如下方式精确地定义。
4.1定义设为语言L的一个公式集,A是一个L-公式。
如果对任意的L-解释,只要()T,就有(A)T,则称A为的语义后承,记为╞A。
显然,A为的语义后承,直观上表达的就是:
从前提集到结论A的推理是有效的。
注意,这里的既可以是有穷集(包括空集),也可以是无穷集。
定义中的“只要…就…”表达的是实质蕴涵。
以后我们经常把
{A1,…,An}╞A简写为A1,…,An╞A;
{A1,…,An}╞简写为,A1,…,An╞。
特别地,
╞A就记为╞A。
因为对任意的,()T,所以,╞相当于说:
对所有的,(A)T。
由定义易知,A不是的语义后承,当且仅当存在L-解释,使得()T,但(A)F。
4.2例对任意公式A、B、C,以下的语义后承关系成立:
1)A,B╞AB;
2)AB╞A,AB╞B;
3)A╞AB,B╞AB;
4)A╞BA;
5)A,AB╞B;
6)A,A╞B;
7)AB,AB╞A