一阶语言的语形Word文档格式.docx
- 文档编号:19499340
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:16
- 大小:31.64KB
一阶语言的语形Word文档格式.docx
《一阶语言的语形Word文档格式.docx》由会员分享,可在线阅读,更多相关《一阶语言的语形Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
3)Am的一个子集P={孟子};
4)Am2的一个子集Q={<
孟母,孟子>
};
5)Am上的一个一元函数f:
f(x)=x的母亲。
如果我们设计一个一阶语言Lm来描述Am,Lm就必须包含下列符号:
1)个体常项a(指称孟子);
2)一元谓词P(表达集合P);
3)二元谓词Q(表达集合Q);
4)函数符号f(表达函数f)。
(我们把语言Lm之内的符号用斜体书写,如P,注意它与P在语言层次上的差别。
)
当然,这些只是Lm中的非逻辑符号。
为了表达Am中的“孟子P并且<
Q”(对应于S中的“孟子贪玩并且孟母关心孟子”),“并非所有的个体都不属于P”等较复杂的事实,Lm中还需要量词、个体变项和联结词等逻辑符号。
这些非逻辑符号和逻辑符号,组成了Lm的初始符号表或字母表。
对这个例子做一下抽象,考虑一个普遍的情形,其中的全域、特定个体、关系、函数等都无特别的限制。
按照上例提示的语言构造方法,我们可以如下定义一般的一阶语言的字母表:
1.1定义一个一阶语言L的字母表由以下符号组成:
1)一组非逻辑符号,其中包含:
i)一个(可能空的)个体常项集;
ii)对每个n1,一个(可能空的)n元谓词集;
iii)对每个n1,一个(可能空的)n元函数符号集
2)一组固定的逻辑符号,其中包含:
i)个体变项x0,x1,x2,…(可数无穷多);
ii)量词,;
iii)联结词,,,;
iv)等词;
v)括号),(。
在所有这几类中,采用什么样的符号无关紧要,但我们要求所有这些符号都是可辨认的、相互不同的。
这里采用的符号中,称为全称量词,是存在量词。
,,,,分别称为否定词、合取词、析取词和蕴涵词。
这个定义涵括了种种不同的一阶语言。
从定义可以看出,所有的一阶语言都具有共同的逻辑符号,它们的差别只在非逻辑符号上。
等词是一个特别的二元谓词。
我们假定每个一阶语言都需要等词,所以把它单拿出来作逻辑符号。
还有其他的定义方式,不假定等词是每个一阶语言都必需的,因而把等词与其他谓词同等看待,也放到非逻辑符号里。
相对于这种定义,我们上面定义的,可以叫做带等词的一阶语言的字母表。
L的这些初始的符号,是用来进一步构造L的词项、公式等语言对象的。
后面会说明,一个词项或公式是一个有穷长的符号串,其中出现的个体变项只有有穷多个。
但为了组成任意有穷长的项或公式,字母表里就必须有可数无穷多的个体变项。
至于个体变项之外的其他逻辑符号,我们只需要有穷多个。
二者相加,每个一阶语言都有可数无穷多逻辑符号。
另一方面,不同的语言的非逻辑符号的任何一类,根据语言所要描述的结构的不同,都可以是有穷集(包括空集)或无穷集,甚至是不可数集。
因为
|字母集|=|逻辑符号集|+|非逻辑符号集|=0+|非逻辑符号集|
所以,一个语言的字母表的大小取决于它的非逻辑符号集的大小。
当非逻辑符号集可数时,字母集可数;
当非逻辑符号集不可数时,字母集也不可数。
如果我们进一步要求L是一个形式语言(见第一章4.2节的描述),我们就必须要求它的字母集及其每个子类都是能行可判定的,就是说,对任何一个符号,它是否属于L的字母集,是不是L的逻辑符号,是不是L的非逻辑符号,是逻辑符号的哪一类,是非逻辑符号的哪一类等问题,我们都分别有能行的程序来判定。
形式语言对其字母集(及其每个子类)的大小做了限定,要求它(它们)是可数的。
这是因为,对不可数集合,一般没有一个能行的方法来判定一个对象是否属于它。
我们以下谈论的,除非特别指明,都是形式语言。
所以,它们的字母表和其中的每一类符号都是能行可判定的,特别就大小来说,是可数的。
词项、公式等对象的形态最终由字母表决定。
又因为所有一阶语言有共同的逻辑符号,它们的字母表的差别完全由非逻辑符号决定,所以,在不引起误解的情况下,我们不妨把一个一阶语言就简单地看成它的非逻辑符号集。
若它的非逻辑符号集是有穷的,我们就说这个语言是有穷的;
反之就称这个语言是无穷的。
比如,上例的Lm可以简化地表达为:
Lm={a,P,Q,f}。
显然,Lm是有穷语言。
一个语言(的字母表)虽然可能是为了描述某个特殊的结构而设计的,但字母表一旦给定,这个语言也可以用来描述其他的结构,只要这些结构的组成与这些字母(的一部分)相匹配就行。
比如,Lm能够用来描述任何只具有一个特指个体,一个性质,一个二元关系和一个一元函数的结构,甚至组成上更贫乏的结构。
比如,Lm能描述以自然数集N为全域的包含特指个体0、N中一元后继函数s与N中二元关系“…小于或等于…”的结构。
这时,a指称0,Q表达“…小于或等于…”,f表示s。
在谈论一个一阶语言的时候,我们需要一些元语言的变项来代表这个(对象)语言字母表中的任意某类符号。
我们约定,在元语言中用
x,y,z等代表一阶语言的个体变项;
c,d,e等代表一阶语言的个体常项;
P,Q,R等代表一阶语言的谓词;
f,g,h等代表一阶语言的函数符号。
注意,在本书的书写中,为了强调对象语言和元语言的区别,我们用斜体字母表示个体变项和非逻辑符号在对象语言(一阶语言)里的出现,用黑体字母表示它们的元语言变项。
至于其他的逻辑符号(量词、联结词、等词等),它们在元语言中的出现,就用原符号来表示,从上下文即可分辨这些出现的语言层次。
下面我们举几个具体的一阶语言字母表的例子。
1.2例L0=。
这个语言没有非逻辑符号,但有一个二元谓词(等词),能表达相等关系。
它是最小的一阶语言。
1.3例L1st。
它有可数无穷多个体常项:
c0,c1,c2,…;
对每个n1,还有可数无穷多n元谓词:
P01,P11,P21,…
P02,P12,P22,…
…
和可数无穷多n元函数符号:
f01,f11,f21,…
f02,f12,f22,…
…
谓词和函数符号的上标表示这个符号是多少元的,下标用法如前,表示这个符号是(某元的)第几个符号。
L1st是最大的一阶语言,它有足够多的非逻辑符号,一般的数学和非数学结构都可以用它来描述。
但是,在描述一些特殊的结构时,如Am,这个“全能”的语言就多余出许多符号,反而显得不那么方便。
1.4例Lord={}。
这里的是个二元谓词,除此之外Lord没有非逻辑符号。
Lord可以描述任何只有一个二元关系(没有特指个体、函数)的结构,如偏序、全序结构等。
1.5习题设计一阶语言的字母表,使它们能够分别描述:
(1)全域是自然数集N的一个结构,它包含特指个体0和1,N中二元关系“…小于或等于…”,以及N中的加法和乘法函数。
(2)第二章习题2.3中关于上帝的结构G。
2.归纳定义
下一步我们要从字母表中构造一阶语言的词项(以下简称项)。
项的作用是指称或表示结构中的个体,所以个体常项是一种项,个体变项是另一种项,而函数,如f(x)=x的母亲,其函数值也代表个体,所以函数表达式也是项。
现在的问题是:
到底哪些东西是项,或者,我们如何确切定义项的集合?
让我们先回到情形S或结构Am中来,考虑一个相似的问题:
我们如何定义其中的个体集?
从中我们可以总结出一种适用于项的定义方法。
结构Am中的个体集Am,初看起来可以定义为:
{x|x是孟子,或x是孟子的母亲,或x是孟子的母亲的母亲,……},如此枚举,把其中的元素一直这样列下去。
可是,这个做法一是繁复不堪,二是不能推广到无穷的情形:
假设某种情形中继续下去的过程没有尽头,我们就需要用一个无穷长的语句做定义的条件,但我们的语句都是有穷长的。
那么,是否可以借助某个总括了“母亲”、“母亲的母亲”等等的二元关系来定义Am?
假设“…是…的女性直系先辈”是这样一个二元关系,那么似乎有Am={x|x是孟子或x是孟子的女性直系先辈}。
但是,在Am的情形中,这个关系不是直接给定的,因此,我们需要首先定义这个关系,而定义这个关系,其实相当于定义Am这个集合。
我们绕了个圈子,最后退回了原地。
适当的方法是把Am定义为满足以下三个条件的个体集:
1)孟子Am。
2)对任意的x,如果xAm,则x的母亲属于Am,即f(x)Am。
3)除了1)和2)所要求的那些元素,没有别的东西属于Am(或者说,Am是包含那些元素的集合里面最小的一个,再或者说,Am只包含有穷步使用条件1)和2)而得到的那些元素)。
容易看出,这样定义的Am包含且仅仅包含孟子、孟母、孟母的母亲等。
根据1),孟子在Am中;
再由2),孟母也在Am中;
还是根据2)孟母的母亲,孟母的母亲的母亲……都在Am中;
最后由3),只有上述人在Am中,Am不包含其他个体。
这种定义集合的方法叫做归纳定义。
一般而言,对一个集合A的归纳定义包含上例那样的三个步骤。
第一步,我们规定某些(不限于一个)特定的元素属于A,这一步叫基始条件。
上例的基始条件便是1)。
第二步称归纳条件,它包含有穷的一组条件,其中每个条件涉及一个n(n1)元函数f,并规定,对任何a1,…,anA,函数值f(a1,…,an)A。
上例的归纳条件只有一个,表达在2)中,其中涉及的是一元函数:
第三步陈述的是封闭条件,它规定A只包含有穷步反复使用满足基始条件和归纳条件而得到的元素,如上例中3)。
直观上看,一个归纳定义是层层“生成”某个集合的过程。
基始条件规定了这个集合的最初元素,这是第一层。
然后,我们把归纳条件应用于这些基始元素,生出新的元素,就是说,把每个条件涉及的函数运算分别施于基始元素,生成函数值作为新元素,这是第二层。
在第三层,归纳条件反过来再应用于第一层的元素加上第二层得到的新元素,生出更多的元素。
如此等等,一层层反复应用归纳条件,最终得到这个集合的全部元素,而且排除了其他的东西。
归纳定义的集合可以是无穷的,但封闭条件保证了,集合的每个元素都是有穷步应用归纳条件之后“加入”这个集合的,不存在其他的“加入”途径。
换句话说,对每个元素都有某个自然数n,标志它生成的步数。
对一个对象的定义,应该唯一地确定这个对象。
那么,对一个集合的归纳定义,是不是合乎这个标准呢?
是的。
实际上,所有满足基始条件与归纳条件的集合的交集,就是唯一地被归纳定义所确定的集合。
比如,在上例里面,令
C={X|X满足Am的归纳定义中的条件1)和2)},就是说,
C={X|孟子X;
而且,对任意的x,如果xX,则f(x)X}。
那么,我们有下面的结果:
2.1引理C是满足Am的归纳定义中的条件1)、2)和3)的唯一集合。
证明:
先验证C满足条件1)、2)和3)。
第一,由C中每个集合都满足1)知,孟子属于C中每个集合,因此也属于C。
这表明,C满足1)。
第二,对任何x,如果xC,则x属于C中每个集合。
因为C中每个集合满足2),所以f(x)属于C中每个集合。
由此知,f(x)C,即C满足2)。
第三,任给集合D,如果D满足1)和2),则由C的定义,DC。
所以,CD(参见第二章习题1.6-iii)。
这说明,C是满足1)和2)的最小集合,即C满足条件3)。
再证明唯一性。
设集合E满足1)、2)和3)。
由E满足1)和2)知,EC,因此CE。
又因E满足3),E是满足1)和2)的最小集合。
已知C满足1)和2),所以,EC。
即有E=C。
由E的任意性,C是唯一的。
特殊的例证不保证一般的结果。
但是,这个证明的思路并不依赖集合Am的特殊性质,因此它可以推广到任意归纳定义的情形中,这个工作留作习题。
2.2习题证明:
每一个归纳定义都唯一地确定一个集合。
归纳定义在数学中有广泛的应用。
我们举一个例子,用个体0、1和函数f(x)=x1归纳定义自然数集合N:
1)0N。
2)如果xN,则x1N。
3)除了上面所要求的,没有别的东西是N的元素。
2.3习题
1)用个体0、1和函数f(x)=x1与g(x)=x1归纳定义整数集合Z。
2)设计基始条件和归纳条件,归纳定义奇数集合。
一个集合,如果对它有一个归纳定义,那么我们就可以设计一个有力的证明方法,来证明这个集合的全部元素都有某性质P,这个方法叫做归纳证明。
对归纳定义的集合A,要证明任意xA都有P(x),我们只要做两步工作:
1)证明A的基始元素(基始条件确定的元素)都有性质P。
这一步称为归纳基始。
2)证明每个归纳条件涉及的函数都“保持”性质P。
就是说,对任意这样的一个n元函数f证明:
如果a1,…,anA,且P(a1),…,P(an),则P(f(a1,…,an))。
这一步称为归纳推步,其中蕴涵的前件a1,…,anA且P(a1),…,P(an),称为归纳假设。
为什么这两步就保证了A中所有元素都有性质P呢?
直观上看,1)和2)保证了所有满足A的归纳定义的基始条件和归纳条件的元素都有性质P,而封闭条件则规定A只有这些元素。
比如,具体到上面关于孟子等人的集合Am,1)保证了孟子有性质P;
2)保证了
孟子有性质P孟母有性质P孟母的母亲有性质P……
从此推出,孟子、孟母、孟母的母亲……都有性质P。
最后根据Am定义中的封闭条件,这些是Am的所有元素,所以Am中所有个体具有性质P。
这是直观思路,严格的证明留作习题。
2.4习题对于任意可归纳定义的集合A和任意性质P,假设你已经完成了归纳基始和归纳推步的证明。
现在令Q{xxB且x有性质P},请证明:
BQ,即B的所有元素都有性质P。
(提示:
参考习题2.2。
至于归纳证明的应用,中学数学里常见的数学归纳法就是一个典型的例子。
要证明任意的自然数都有性质P,只要证
1)归纳基始:
P(0);
并且
2)归纳推步:
对任意的自然数k,P(k)P(k1)。
就完成了这个证明。
这是因为,自然数集合可以像上面那样归纳定义。
在以后的运用中,我们经常采取归纳证明的另一种形式。
就是在归纳假设里,不光假定眼下用来生成新元素的那些“老”元素有某性质,而是进一步假定先前生成的所有“老”元素都有此性质,由此证明当下用函数生成的新元素也有这个性质。
比如,要证明任意的自然数都有性质P,我们只要证明:
对任意的自然数k,如果小于k的数都有性质P,则P(k)。
这有时被称作“第二数学归纳法”。
3.项
现在回到我们的一阶语言中来,讨论项的定义问题。
一个一阶语言一经给定,我们就可以暂时忘记它所要描述的结构,而把这个语言看作一些单纯的符号,以及符号的组合。
这是语形研究的特点,语形性质可以(而且应该)独立于语言的解释或意义而得到研究。
给定一个一阶语言的字母表,我们可以把项定义为其中的字母形成的某种符号串。
一个符号串是符号组成的一个有序n元组(n1),n称为这个符号串的长度。
如<
f>
,<
f,g>
f,g,a>
,等分别为长度为1,2,3的三个符号串。
长度为1的符号串就是一个符号本身。
以下表示符号串时,我们去掉集合论中的尖括号和逗号,直接把符号按顺序排列,如上面三个符号串分别表示为:
f,fg,fga。
我们约定,在元语言中用,,等代表任意一阶语言L的字母表的元素组成的符号串(简称L-串)。
如果L的字母集为A,则L-串的集合={An|n1}。
对任意有穷个符号串1,2,…,n,我们用12…n表示这n个符号串前后连贯起来形成的新符号串。
如1=f,2=fg,则12=ffg。
这使得我们可以对任意n1,在L-串的集合上定义如下的n元连接函数函数Cn:
Cn(1,2,…,n)=12…n
容易验证,对每个n1和任意n个符号串1,2,…,n,Cn(1,2,…,n)总是有穷长的。
当然,要精确地定义连接函数,可以用归纳定义的方法。
递归!
!
3.1习题归纳证明:
对每个n,Cn(1,2,…,n)的长度是1,2,…,n的长度之和。
因此,连接函数的确把有穷个L-串头尾连接起来,形成一个新的L-串。
如果同时有Cn(1,2,…,n)=和,则根据有序组的定义,和长度相同且每个位置上相对应的符号分别相同,就是说,=。
这说明,Cn的确是函数。
以下称函数值Cn(1,2,…,n)为1,2,…,n的连接。
利用L的字母表和L-串上的连接函数,我们就可以归纳定义L的项(或L-项)。
3.2定义设L为一阶语言。
L-项定义为:
1)基始条件:
i)L字母表中的每个个体常项是L-项。
ii)每个个体变项是L-项。
2)归纳条件:
对任意n1,若f是L的n元函数符号,且符号串t1,…,tn是n个L-项,则它们的连接ft1…tn也是L-项。
3)封闭条件:
没有其他东西是L-项。
定义中的基始条件由L的字母表决定。
对每个n1,归纳条件涉及的函数是Cn1,它把f和n个现有的项连接为一个新的项。
封闭条件相当于说L-项的集合是满足1)和2)的最小集合,或者说,每个L-项都是从基始的个体常项和变项出发,有穷次应用归纳条件而生成的。
叙述这个定义时,我们用到了新的元语言变项t。
以后我们就用r,s,t等代表项。
L-项既然是连接函数在L字母表基础上生成的,根据习题3.1,每个L-项都是有穷长的L-串。
L-项的集合与L的字母集一样大,都是可数无穷的。
这是因为,一方面,L-项的集合是L-串的集合的子集,因此,
|L-项集||L-串集|=|{L字母集n|n1}|=00=0;
另一方面,
|L-项集||个体变项集|=0。
3.3例语言L0=(见例1.2),它没有个体常项和函数符号,但有个体变项。
根据定义3.2的1-ii),x0,x1,x2,…是L0-项。
因为没有函数符号,所以不能用归纳条件生成新的项。
根据3),L0只有这些项。
语言Lord={}(见例1.4)也没有个体常项和函数符号。
同理,它的项只是个体变项。
3.4例考虑语言L1st(见例1.3)。
由1),个体常项c0,c1,c2,…,个体变项x0,x1,x2,…都是L1st-项。
由2),n元函数符号与n个常项或变项的连接也是L1st项,如:
f01c1,f31x0,f12c1x0,f25x0x4x9c23c2,…
再由2),归纳条件重复使用可构造更复杂的L1st-项,如:
f21f01c1,f22f01c1f12c1x0,f32f31x0f25x0x4x9c23c2,…
但c1x0不是项,f11f01c1f12c1x0也不是项。
(为什么?
对一个形式语言L来说,一个符号串是不是L-项,或者是否属于L-项的集合,应该是能行可判定的。
这就是说,存在一个有穷长的机械过程或程序,其中每一步到下一步都由确定的规则决定,而对每个符号串,在其上执行这个程序后,都在有穷步后得到一个是或否的答案,回答这个符号串是不是L-项。
一般而言,这样一种程序叫算法。
如对任意自然数是不是偶数,我们就有一个算法来判定这个问题。
对集合A,如果有一个算法来判定任意a是否属于A,则称A为可判定的。
这样描述的算法和可判定性,仍然是直观的概念。
下面我们在这个直观的基础上,说明L-项的集合是可判定的。
3.5定理设L为形式语言。
L-项的集合是可判定的。
首先说明,因为L是形式语言,所以它的个体常项集、个体变项集以及(对每个n1)n元函数符号集都是可判定的。
设符号串的长度为n
(1),我们描述一个判定是否L-项的程序。
第一步:
若n=1,则只有一个符号。
根据以上说明,我们可以判定是不是一个L的个体常项或变项。
如果是,则是L-项;
如果不是,则不是L-项。
第二步:
若n1,则判定的第一个符号是不是L的某个m元函数符号(mn)。
这只要对L的每个元数小于n的函数符号集,逐一判定的第一个符号是否属于这个集合。
如果不是,则不是L-项;
如果是,则继续下一步。
第三步:
判定的每一个符号是否L的个体常项、变项或某个元数小于n的函数符号。
若有一个符号不是三者之一,则不是L-项;
否则继续下一步。
第四步:
在串中,从后往前找到第一个函数符号f,设为k元,检查f后面是否有不少于k个个体常项或变项。
若否,则不是L-项;
若是,则把f和其后的这k个符号抹去,在原位置上写上符号t1,然后继续往前找到下一个函数符号,看它后面是否有足够多个符号,包括个体常项、变项或t1。
若是,则重复上面过程,抹去这个函数符号及其后的相应个符号,代以t2。
按此法继续检查前面的函数符号,直到的第一个符号(根据第二步,它是一个m元函数符号)。
这时,第一个符号后面必须刚好有m个符号,包括个体常项、变项或ti,才能保证是L-项。
这个判定过程表明,L-项的构造可用树形图来分析。
个体常项或变项是只有一个节点的树;
复杂的项从最后一个函数符号开始,逐步列出各简单项和每个ti。
如果项t是项s的一部分,则把t写在s的上面。
比如L1st-项f22f01c1f01f12c1x0的构造过程可以分析为下面的分解树:
c1x0
————
c1f12c1x0(t1)
—————————
f01c1(t3)f01f12c1x0(t2)
————————————
f22f01c1f01f12c1x0
每一层所有的符号串都是项。
最上面没有横线的(叶
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一阶 语言