离散数学_数理逻辑(三):一阶逻辑概念及一阶逻辑命题符号化
前言
每一件事都存在现象和本质.现象是表面,本质是内在.数学可以说是自然科学之母,是一切自然现象的本质.对于编程,表面上是在写代码,实际上是在用离散数学理解问题和解决问题.
学习是为了应用并不是做学术研究,所以笔者感觉没必要太深入了,因此调整学习方法---根据概念在程序中迅速找到对应的应用.注意这样做的后果必然不严谨,为提高效率做出牺牲准确性的选择
参考书:离散数学(第4版)---以下称"本书"
引入
命题逻辑存在局限性---只能通过永真式来建立逻辑,所以才有了一阶逻辑或谓词逻辑
个体词、谓词与量词
命题是一个陈述句.陈述句常分为主谓宾结构.主和宾对应着个体词(名词),谓语对应谓词//理解
个体词
本书P66:将表示具体或者特定的客体的个体词称为个体常项,一般用小写a,b,c表示.将表示抽象或者泛指的个体词称为个体变项,常用x,y,z表示.个体变项的取值范围称为个体域.有一个代表宇宙间万事万物的个体域称为全总个体域.
---解读:将这几个概念和函数联系起来.个体常项理解成传入形参的值和返回值,个体变项理解成形参变量.个体域理解成形参取值范围.全总个体域理解成形参取值范围无限. ---解读完毕
谓词
本书P67:谓词是用来刻画个体词性质及个体词之间相互关系的词.表示具体性质或关系的谓词称为谓词常项,表示抽象的或泛指的性质或关系的谓词称为谓词变项.无论是谓词常项还是变项都用大写英文字母F,G,H,...表示.
谓词关系中命题变项的个数为n,称为n元谓词.他不是命题,要想使他成为命题,必须用谓词常项代替F,用个体常项a1,a2取代x1,x2,或加量词.
不带个体变项的谓词称为0元谓词,当F,G,P为谓词常项时,0元谓词是命题.这样一来,命题逻辑中的命题均可以表示为0元谓词,因而可将命题看成特殊的谓词.
---解读:谓词表示关系.关系是一个很重要的概念,逻辑也可以理解成一种关系.以下是简单理解:
谓词理解成函数.谓词常项理解成普通函数,谓词变项理解成函数指针.n元谓词理解成函数有n个形参.0元谓词理解成给函数传入值---他是有返回值的理解代码如下:
//谓词概念理解int f(int x); //f是谓词 --谓词常项int (*fun)(int x); //fun是谓词 --谓词变项 f(3); //0元谓词,也是个命题
说明:再次强调,笔者的理解放弃了严谨性.目前假定所有的理解都正确.反证出有错误的再说
---解读完毕
量词
本书P68:表示个体常项或变项之间数量关系的词称为量词.量词有两个:全称量词和存在量词.
全称量词符号:∀,表示"所有的".例如∀x,∀y表示个体域内所有个体.同时也适用于谓词,例如∀xF(x),∀yG(y)表示个体域内所有个体具有性质F和G.
存在量词符号:∃,表示"至少一个",∃x,∃xF(x)含义同上类似.表示有一个个体,一个个体满足性质F
---解读:全称量词的符号是A(All)上下反过来. 存在量词符号∃是E(Element)左右反过来
一阶逻辑命题符号化
要点:一定要指明范围:个体域和全总个体域范围不一样,表达不一样.例如
再例如
以上是一个对象的情况.
注意:这里的F是特性谓词,作用是把个体从全总个体域中分离出来.
一个对象表达技巧:使用全总个体域,引入F(特性谓词),说明x是什么,再用谓词G表达关系.
两个以上对象
---解读:这个地方不好理解,按照∀x(F(x))表示所有火车,∀y(G(y))表示所有汽车,那么"所有火车比所有汽车跑得快"写法是:∀x(F(x))∧∀y(G(y))→H(x,y).
把标准解法翻译成文字:所有火车推导出:(所有汽车推导出:所有火车都比汽车跑得快),有些别扭
似乎在编程中找不到对应的应用,所以不纠结这里的细节,暂时跳过.
---解读完毕
一般模式:外面是全称量词∀,里面是蕴涵式→;外面是存在量词∃,里面用∧
小结
一阶逻辑概念及一阶逻辑命题符号化
从本贴开始,笔者采用了简便的学习方法:学习内容尽量和编程联系.不求甚解.
函数是一种抽象,像谓词这些离散数学的概念,在函数基础上加了一层抽象.这也是离散数学的难点.你懂了什么是函数,再学习离散数学,感觉似懂非懂,所以笔者干脆把他具象化,也就是把离散数学的概念,直接看作已理解的概念.