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
等值演算:由已知的等值式推算出新的等值式的過程