数理逻辑的推理及形式证明Word文档格式.docx
《数理逻辑的推理及形式证明Word文档格式.docx》由会员分享,可在线阅读,更多相关《数理逻辑的推理及形式证明Word文档格式.docx(137页珍藏版)》请在冰豆网上搜索。
了解有关的背景,加深对计算机学科的全面了解,特别是理论方面的了解,而不限于将计算机看成是一门技术或工程性的学科。
通过重要的历史事件,了解计算机科学中的一些基本思维方式和一些基本问题。
2.数理逻辑的发展前期
前史时期——古典形式逻辑时期:
亚里斯多德的直言三段论理论
初创时期——逻辑代数时期(17世纪末)
资本主义生产力大发展,自然科学取得了长足的进步,数学在认识自然、发展技术方面起到了相当重要的作用。
人们希望使用数学的方法来研究思维,把思维过程转换为数学的计算。
莱布尼兹(Leibniz,1646~1716)完善三段论,提出了建立数理逻辑或者说理性演算的思想:
提出将推理的正确性化归于计算,这种演算能使人们的推理不依赖于对推理过程中的命题的含义内容的思考,将推理的规则变为演算的规则。
使用一种符号语言来代替自然语言对演算进行描述,将符号的形式和其含义分开。
使得演算从很大程度上取决与符号的组合规律,而与其含义无关。
布尔(G.Boole,1815~1864)代数:
将有关数学运算的研究的代数系统推广到逻辑领域,布尔代数既是一种代数系统,也是一种逻辑演算。
3.数理逻辑的奠基时期
弗雷格(G.Frege,1848~1925):
《概念语言——一种按算术的公式语言构成的纯思维公式语言》(1879)
的出版标志着数理逻辑的基础部分——命题演算和谓词演算的正式建立。
皮亚诺(GiuseppePeano,1858~1932):
《用一种新的方法陈述的算术原理》(1889)提出了自然数算术的
一个公理系统。
罗素(BertrandRussell,1872~1970):
《数学原理》(与怀特黑合著,1910,1912,1913)从命题演算和谓词演算开始,然后通过一元和二元命题函项定义了类和关系的概念,建立了抽象的类演算和关系演算。
由
此出发,在类型论的基础上用连续定义和证明的方式引出了数学(主要是算术)中的主要概念和定理。
逻辑演算的发展:
甘岑(G.Gentzen)的自然推理系统(NaturalDeductionSystem),逻辑演算的元理论:
公理的独立性、一致性、完全性等。
'
各种各样的非经典逻辑的发展:
路易斯(Lewis,1883~1964)的模态逻辑,实质蕴涵怪论和严格蕴涵、相干逻辑等,卢卡西维茨的多值逻辑等。
4.集合论的发展
看待无穷集合的两种观点:
实无穷与潜无穷
康托尔(G.Cantor,1845~1918):
以实无穷的思想为指导,建立了朴素集合论
外延原则(集合由它的元素决定)和概括原则(每一性质产生一集合)。
可数集和不可数集,确定无穷集合的本质在于集合本身能与其子集一一对应。
能与正整数集合
对应的集合是可数的,否则是不可数的。
证明了有理数集是可数的,使用对角线法证明了实数集合是不可数的。
超穷基数和超穷序数
朴素集合论的悖论:
罗素悖论
公理集合论的建立:
ZFC系统
6.第三次数学危机与逻辑主义、直觉主义与形式主义
集合论的悖论使得人们觉得数学产生了第三次危机,提出了数学的基础到底是什么这样的问题。
罗素等的逻辑主义:
数学的基础是逻辑,倡导一切数学可从逻辑符号推出,《数学原理》一书是他们这一思想的体现。
为解决悖论产生了逻辑类型论。
布劳维尔(Brouwer,1881~1966)的直觉主义:
数学是心灵的构造,只承认可构造的数学,强调构造的
能行性,与计算机科学有重要的联系。
坚持潜无穷,强调排中律不能用于无穷集合。
海丁(Heyting)的直觉
主义逻辑。
希尔伯特(D.Hilbert)的形式主义:
公理化方法与形式化方法,元数学和证明论,提倡将逻辑演算和数学证明本身形式化,把用普通的语言传达的内容上的数学科学变为用数学符号和逻辑符号按一定法则排列的一堆公式。
为了消除悖论,要数学建立在公理化基础上,将各门数学形式化,构成形式系统,并证明其一致性,这是希尔伯特的数学纲领。
7.数理逻辑的发展初期
哥德尔(Godel,1906~1978)不完全性定理:
一个足够强大的形式系统,如果是一致的则不是完全的,即有的判断在其中是不可证的,既不能断定其为假,也不能证明其为真。
各种计算模型:
哥德尔的递归函数理论,邱吉尔的演算,图灵机模型
这些计算模型是计算机科学的理论基础,是计算机的理论模型。
三、预备知识
1.集合的基本概念
集合(set):
集合是数学中最基本的概念之一,不能以更简单的概念来定义(define),只能给出它的描
述(description)。
一些对象的整体就称为一个集合,这个整体的每个对象称为该集合的一个元素(member或
element)。
用大写字母A,B,C等表示集合,用小写字母a,b,c等表示集合的元素
aA表示:
a是集合A的元素,或说a属于集合A
a不是集合A的元素,或说a不属于集合A
集合中的元素是无序的,不重复的。
通常使用两种方法来给出一个集合:
列元素法:
列出某集合的所有元素,如:
A={0,1,2,3,4,5,6,7,8,9}表示所有小于10的自然数所构成的集合
B={a,b,⋯,z}表示所有小写英文字母所构成的集合
性质概括法:
使用某个性质来概括集合中的元素,如:
A={n|n是小于10的自然数}
C={n|n是质数}表示所有质数所构成的集合
集合由它的元素所决定,换句话说,两个集合A和B相等,记为A=B,如果A和B具有相同的元素,即a属于集合A当且仅当a属于集合B。
子集(subset):
说集合A是集合B的子集,记为AB,如果a属于集合A则a也属于集合B。
因此
A=B当且仅当AB且BA。
说集合A是集合B的真子集(propersubset),如果AB且A不等于B(AB)。
空集(emptyset):
约定存在一个没有任何元素的集合,称为空集,记为,有时也用{}来表示。
按子
集的定义,空集是任何集合的子集(为什么?
)。
幂集(powerset):
集合A的幂集,记为P(A),是A的所有子集所构成的集合,即:
P(A)={B|B
例如,A={0,1}·
显然,对任意集合
A}
,则P(A)={{},{0},{1},{0,1}}
A,有P(A)和AP(A)
补集(complementset):
集合A的补集,记为
A,是那些不属于集合
A的元素所构成的集合,即A=
{x|xA}。
通常来说,是在存在一个全集U的情况下讨论集合的补集。
全集
U是所讨论的问题域中所有
元素所构成的集合。
集合的并(union):
集合A和B的并AB定义为:
AB={x|x
A或者xB},集合的并可推广到
多个集合,设A
1
2
n
A
⋯,A都是集合,它们的并定义为:
A1A2
⋯An={x|
存在某个i,使得x
Ai}
集合的交(intersection):
集合A和B的并A
B定义为:
AB={x|xA而且xB},集合的交也可
推广到多个集合,设
A12
A,
⋯,A都是集合,它们的交定义为:
对所有的i,都有x
集合的差(difference):
集合A和B的差AB定义为:
A而且xB}。
2.关系和函数的基本概念
有序对(orderedpair):
设A和B是两个集合,a
A,b
B是两个元素,a和b的有序对,记为<
a,b>
,
定义为集合{{a},{a,b}}。
设<
a,b>
和<
是两个有序对,可以证明
<
=<
a,b>
当且仅当a
=a
且b
=b。
(如
何证?
)
有序对可推广到
n个元素,设A1,A2,
⋯,An是集合,a1
A1,a2A2,
⋯a,n
An是元素,定义有
序n元组(orderedn-tuple)<
a1
a2,⋯,an>
为<
a1,a2,
⋯a,n-1>
an>
,注意这是一个归纳(inductive)定义,将有
序n元组的定义归结为有序
n-1元组的定义。
显然有<
⋯a,n>
b1,b2,⋯b,n>
当且仅当a1=b1且a2
=b2且⋯且an=bn。
集合的笛卡尔积(cartesianproduct):
两个集合A和B的笛卡尔积AB定义为:
A
B={<
a,b>
|a
A且b
B}
例如,设A={a,b,c},B={1,2}
,则:
a,1>
<
a,2>
b,1>
b,2>
c,1>
c,2>
}
笛卡尔积可推广到多个集合的情况,集合