第一讲 引言
一、课程内容
·数理逻辑:是计算机科学的基础,应熟练掌握将现实生活中的条件化成逻辑公式,并能做适当的推理,这对程序设计等课程是极有用处的。
·集合论:数学的基础,对于学习程序设计、数据结构、编译原理等几乎所有计算机专业课程和数学课程都很有用处。熟练掌握有关集合、函数、关系等基本概念。
·代数结构:对于抽象数据类型、形式语义的研究很有用处。培养数学思维,将以前学过的知识系统化、形式化和抽象化。熟练掌握有关代数系统的基本概念,以及群、环、域等代数结构的基本知识。
·图论:对于解决许多实际问题很有用处,对于学习数据结构、编译原理课程也很有帮助。要求掌握有关图、树的基本概念,以及如何将图论用于实际问题的解决,并培养其使用数学工具建立模型的思维方式。
·讲课时间为两个学期,第一学期讲授数理逻辑与集合论,第二学期讲授代数结构和图论。考试内容限于书中的内容和难度,但讲课内容不限于书中的内容和难度。

二、数理逻辑发展史
1.目的
·了解有关的背景,加深对计算机学科的全面了解,特别是理论方面的了解,而不限于将计算机看成是一门技术或工程性的学科。
·通过重要的历史事件,了解计算机科学中的一些基本思维方式和一些基本问题。

2.数理逻辑的发展前期
·前史时期——古典形式逻辑时期:亚里斯多德的直言三段论理论
·初创时期——逻辑代数时期(17世纪末)
·资本主义生产力大发展,自然科学取得了长足的进步,数学在认识自然、发展技术方面起到了相当重要的作用。
·人们希望使用数学的方法来研究思维,把思维过程转换为数学的计算。
·莱布尼兹(Leibniz, 1646~1716)完善三段论,提出了建立数理逻辑或者说理性演算的思想:
·提出将推理的正确性化归于计算,这种演算能使人们的推理不依赖于对推理过程中的命题的含义内容的思考,将推理的规则变为演算的规则。
·使用一种符号语言来代替自然语言对演算进行描述,将符号的形式和其含义分开。使得演算从很大程度上取决与符号的组合规律,而与其含义无关。
·布尔(G. Boole, 1815~1864)代数:将有关数学运算的研究的代数系统推广到逻辑领域,布尔代数既是一种代数系统,也是一种逻辑演算。

3.数理逻辑的奠基时期
·弗雷格(G. Frege, 1848~1925):《概念语言——一种按算术的公式语言构成的纯思维公式语言》(1879)的出版标志着数理逻辑的基础部分——命题演算和谓词演算的正式建立。
·皮亚诺(Giuseppe Peano, 1858~1932):《用一种新的方法陈述的算术原理》(1889)提出了自然数算术的一个公理系统。
·罗素(Bertrand Russell, 1872~1970):《数学原理》(与怀特黑合著,1910, 1912, 1913)从命题演算和谓词演算开始,然后通过一元和二元命题函项定义了类和关系的概念,建立了抽象的类演算和关系演算。由此出发,在类型论的基础上用连续定义和证明的方式引出了数学(主要是算术)中的主要概念和定理。
·逻辑演算的发展:甘岑(G. Gentzen)的自然推理系统(Natural Deduction System),逻辑演算的元理论:公理的独立性、一致性、完全性等。
·各种各样的非经典逻辑的发展:路易斯(Lewis, 1883~1964)的模态逻辑,实质蕴涵怪论和严格蕴涵、相干逻辑等,卢卡西维茨的多值逻辑等。