離散數學及其應用 ch1邏輯與證明

2021-06-17 23:34:22 字數 3423 閱讀 1777

「邏輯與證明」這一章就講了三個故事:命題邏輯、謂詞邏輯和數學證明。邏輯是數學推理的基礎,也是這門學科的基礎,以後我們在演算法和電腦程式中會大量用到證明,這章主要介紹邏輯和證明的各種工具,方法,策略。

一.命題邏輯

1.1節和1.2節介紹了命題邏輯,首先我們要搞清楚「命題」的概念,「命題」是一種宣告性的句子,它要麼為真,要麼為假,但不會既是真的,又是假的。舉個例子,句子「今天是星期天」就是乙個命題,因為如果今天不是星期天,那麼它就為假,否則,如果今天是星期天,這句話就為真。而「我要去吃飯」,或者「x > 3」就不是命題,因為對它們來說,沒有真假可言。一般來說,我們關心的是多個命題之間的各種聯絡,因此,我們用「命題變數」來表示命題,如p:4>3,q:6>9,然後,我們就可以研究多個命題組成的復合命題(compound proposition),這些復合命題是由邏輯連線詞或者條件語句構成的。

1.邏輯連線詞

邏輯連線詞包括否定、合取、析取和異或運算。否定即對乙個命題的取否,如「今天是星期天」取否就是「今天不是星期天」;合取表示的則是「p and q」,當p和q都為真時才為真;析取表示「p or q」,當p或者q有乙個為真就為真;最後乙個是異或,表示要麼p為真,要麼q為真,但不會兩者都同時為真。

2.條件語句

也叫「蘊含」,包括蘊含和雙蘊含。對於蘊含「p -> q」,只有當p為真但q為假時才會為假,其他情況,包括p為假,q為真,或者p和q都為假時,該蘊含式都為真。要理解這一點,乙個關鍵的技巧就是把

「p -> q」看成一種「承諾」,或者「合同」。那麼「如果我當選了**,我就會降低賦稅。」這個蘊含式,只有當我的確當選了**,但是並沒有降低賦稅時,它才為假,因為此時我並未履行這個承諾,它成了一句可恥的謊言。如果我沒當選,但賦稅降低了,或者我既沒有當選,賦稅也沒降低,就不能說這句話是假的。這個技巧很關鍵,有助於理解很多與蘊含式有關的概念,比如

「p -> q」還可以表達成「p only if q」,為什麼可以表達成這句話,同樣也可以用這個技巧來理解——

「p only if q」表示

如果q是假的,p就不可能為真,那麼,當p為真,q為假,這句話就為假,那麼就跟

「p -> q」一樣了。

雙蘊含其實就是「p <--> q」,因為

「p -> q」表示「p only if q」,而

「q -> p」表示「p, if q」,所以

「p <--> q」就可以表示成「p if and only if q」,這就是「當且僅當」的來歷。剩下要注意的問題就是復合命題的真值表以及英語句子和復合命題之間的互相轉換問題。書上還列舉了命題邏輯在電腦科學中的三個應用:系統需求說明、布林檢索以及邏輯和位運算。

3.邏輯等價

要搞懂邏輯等價,首先要介紹永真式的概念。復合命題可以分為三類:永真式、矛盾和可能式。永真式就是真值永遠為true的復合命題,無論復合命題內的命題變數如何取真值。矛盾式則正好相反,它是真值永遠為false的復合命題,而無論復合命題內的命題變數如何取值。可能式就是既不是永真式也不是矛盾式的那些復合命題。

如果兩個復合命題在所有情況下都有相同的真值,那麼這兩個復合命題就稱為「命題等價」的,它怎麼與「永真式」的概念聯絡起來呢?如果

「p <--> q」是永真式,那麼復合命題p和復合命題q就是邏輯等價的。具體的證明寫在書上了。剩下的內容就是對一些常用邏輯等價式的介紹,可以大概了解一下,其中注意一下常用的德摩根公式。一般,證明邏輯等價有兩種方法,對命題變數較少的復合命題可以通過真值表證明;或者我們可以利用這些常用的邏輯等價式來進行「等價替換」證明。

二.謂詞邏輯

隨後的1.3節和1.4節介紹了謂詞邏輯,謂詞邏輯是一種建立在命題邏輯基礎上的更強大的工具。謂詞邏輯分為「謂詞」和「量詞」。假設我們有乙個命題函式p(x) : x is greater than 3。這裡的x就稱為「變數」,「 is greater than 3」就稱為「謂詞」,它其實就是英語句法結構中的「謂語」部分。

量詞則表示的是對於乙個給定範圍內的元素來說,謂詞到底真到哪種程度。其中最重要的概念就是「論域」——所有的量詞都是圍繞論域展開討論的,有時候論域一變,量詞的真值就會跟著改變,因此必須指定論域,否則量詞就失去意義了。量詞分兩種——全稱量詞和存在量詞,全稱量詞的含義是「對於域中所有的元素來說p(x)為真」;存在量詞的含義就是「域中存在乙個元素x使得p(x)為真」。在這個基礎上,我們稍微注意一下「受限域量詞」、「量詞對變數的繫結」以及「量詞表示式的否定」三個概念。接下來,就是比較難的概念「巢狀量詞」,難點在於巢狀量詞與數學語句和英語句子之間的互相翻譯問題,拿捏不好會翻譯得詞不達意。特別是僅用全稱和存在量詞對「exact one」和「exact two」的翻譯比較複雜。相關的例子請參考書上的例題和做錯了的習題。理解巢狀量詞的乙個很重要的技巧就是將巢狀量詞想象成「多重迴圈」,其中全稱量詞和存在量詞都對域中的元素進行遍歷,但存在量詞就好像有乙個break語句一樣,滿足條件就退出。當全稱量詞和巢狀量詞混搭使用的時候,要注意量詞的順序會造成很大的不同。

三.數學證明

1.推理規則

數學證明在本質上是一種有效論證,它建立了某個數學語句的真值(為真則該語句成為定理)。「論證」是指一系列以乙個結論結尾的數學語句,除了結論以外的句子都稱為「前提」;「有效」是指如果前提都是真的,那麼結論一定為真。我們通常將論證中的命題替換為命題變數,然後研究它的「論證正規化」(argument form)。我們建立起一些簡單的論證正規化作為基礎,稱為「推理規則」,有12種常用的推理規則,其中前八種(分離規則、拒取式、假言三段論、析取三段論、附加式、化簡式、合取式和消解式)用於命題邏輯,後四種(全稱例項化、全稱泛化、存在例項化和存在泛化)用於謂詞邏輯。

2.證明的戰略

數學證明是一項很有挑戰性的任務,當我們在展開證明時,我們應當採取如下戰略:

(1)用定義替換待證明式子中的術語和概念——即波利亞倡導的「回到定義上去」。

(2)仔細研究假設和結論的含義,洞察假設和結論中一些可能是很微妙的「線索」。

3.證明的戰術

除了戰略外,我們要使用靈活的戰術去開展證明。一般的證明方法有「直接證明」和「間接證明」兩種。

(1)直接證明。從假設證明到結論稱為直接證明,在直接證明中可以用的方法有分情況證明、存在性證明和唯一性證明三種,當然,使用是有條件的。分情況證明常用於一開始沒有什麼明顯的線索可以開展證明,但分情況後得到的額外資訊卻有助於證明的進展這種情況。分情況證明的乙個特殊例子就是「窮舉證明」,對某些證明題我們可以考慮很少一部分情況就得到證明結果,比如一些證明某等式有無整數解的問題。在分情況證明中一種特殊的技巧就是大名鼎鼎的「不失一般性地」,這種證明技巧常常只證明一種情況a,而其他的各種情況都可以「規約」到這種情況下。存在性證明用於證明存在量詞形式的證明題,即存在滿足某性質的元素,這類存在性證明可以以構造式的和非構造式的兩種方法來開展證明。「構造式」證明就是我們找到乙個能夠滿足此性質的元素c;「非構造式」證明就是用其他的方式去證明這個存在量詞。唯一性證明就是一種特殊的存在性證明,它在證明存在的基礎上進一步證明唯一性,因此包含兩個步驟:先證明存在性,然後證明唯一性。

(2)間接證明。間接證明並不是從假設證明到結論。間接證明有兩種方法——逆否證明和歸謬證明(即名震千古的「反證法」),兩者既有區別又有聯絡,兩種方法都假設結論為假,但歸謬證明比逆否證明多了乙個假設前提也為真。

離散數學及其應用 ch7 高階計數

在第五章學習了基本的組合計數知識後,我們終於在第七章迎來了更高階的組合計數知識,把這章介紹的內容與第五章的內容合併起來,就形成了我們的組合數學工具箱,可以解決一大堆計數問題了,在計算機程式設計過程中很多問題其實都可以用計數模型進行建模,那麼乙個好的組合計數基本功當然是必不可少的了。下面我們就來總結一...

離散數學 ch1 Introduction

references stanford cs103,nyu g22.2390 001,cmu cdm ub cs70 cmu cs122 stanford cs103,cmu 15 453 columbia,coms w3261,iitjodhpur,cs222,南京大學離散數學課程 to be d...

離散數學及其應用 學習筆記(1)

離散數學既是電腦科學的理論基礎,又是計算機應用必不可少的工具。離散數學為我們以後的計算機學科的學習提供了一切必要的數學基礎。1.1 邏輯 邏輯規則給出數學語句的準確含義,這些規則用來區分有效和無效的數學論證。命題,乙個命題是乙個或真或假的語句,但不能既是真又是假。命題常用字母來表示,就像用字母表示變...