1、数理逻辑简介
数理逻辑又称符号逻辑、理论逻辑。它既是数学的一个分支,也是逻辑学的一个分支。是用数学方法研究逻辑或形式逻辑的学科。简而言之,数理逻辑就是精确化、数学化的形式逻辑。
命题逻辑等值演算就是命题代数,命题代数是一种特殊的逻辑代数。我们把命题看作运算的对象,如同代数中的数字、字母或代数式,而把逻辑连接词看作运算符号,就像代数中的“加、减、乘、除”那样,那么由简单命题组成复合和命题的过程,就可以当作逻辑运算的过程,也就是命题的演算。这样的逻辑运算也同代数运算一样具有一定的性质,满足一定的运算规律。例如满足交换律、结合律、分配律,同时也满足逻辑上的同一律、吸收律、双否定律、狄摩根定律、三段论定律等等。利用这些定律,我们可以进行逻辑推理,可以简化复合命题,可以推证两个复合命题是不是等价,也就是它们的真值表是不是完全相同等等。设W是某一语言中所有命题构成的集合,且设T与F分别为真、假命题,∨、∧、┐分别为命题的析取、合取、否定联结词,则布尔代数〈W,∨,∧,┐,T,F〉就是命题代数。
逻辑代数与命题代数有所不同。它可以把1和0分别解释为命题的真和假,令变元只取1和0为值,即令其为二值的真值变元,并把┐、∨和∧解释为真值运算,从而得到一种提供命题真值运算定律的真值代数。而且,在二值的真值代数中特别可以有定理“p=1或p=0”,但在一般的命题代数和类代数中却没有与此相应的定理。
类代数就是集合代数。从逻辑代数、命题代数和类代数让我想到了代数结构(代数系统),布尔代数、集合代数、命题代数都是带两个二元运算和一个一元运算的代数结构。这是抽象代数中的内容,以后有时间再进行总结。
2、程序中的命题逻辑
逻辑代数在程序中无处不在,而一阶逻辑在人工智能中也被广泛应用。
程序的结构主要有顺序结构,条件结构和循环结构。数理逻辑在程序中的应用主要是条件结构,体现在语言上就是if...else...和switch控制语句。if后面括号里面的表达式就是命题,当命题为真时,执行紧跟后面的语句;为假时,执行else后面的语句。在写程序时,一定要注意复合命题的真假对应了哪些情况,熟悉命题公式的真值表,从而使自己的程序逻辑精确无误。switch语句只是分支语句,进行多项选择,并没有对命题变量的真假做出判断。有时需要对一些复杂的复合命题进行等值演算之后(也就是化简公式),再将命题变项写入条件中进行判断,这是为了简化判断逻辑以及代码的复杂度。在写if判断语句时,主要是根据情况的真假和条件,构造判断语句。
下面列几个重要的等值式:
德摩根律:┐(A∧B)⇔┐A∨┐B,┐(A∨B)⇔┐A∧┐B
蕴涵等值式A→B⇔┐(A∨B)
等价等值式A↔B⇔(A→B)∧(B→A)
假言异位A→B⇔┐B→┐A
等价否定等值式A↔B⇔┐A↔┐B
归谬论(A→B)∧(A→┐B)⇔┐A
等值演算:由已知的等值式推算出新的等值式的过程
本文介绍了数理逻辑在程序中的应用,特别是命题逻辑如何体现在条件控制语句中。通过逻辑代数和命题代数的概念,阐述了逻辑运算的性质和定律,并讨论了在编写if...else...和switch语句时如何利用命题逻辑确保程序逻辑的准确性。文中还列举了重要的逻辑等值式,如德摩根律和蕴涵等值式,强调了等值演算在简化代码逻辑中的作用。
245

被折叠的 条评论
为什么被折叠?



