邏輯的定義是這樣的:邏輯(Logic)是對有效推理和論證進行研究的學(xué)科。它關(guān)注的是如何從一個或多個前提(Premises)得出必然的結(jié)論(Conclusion),以及如何判斷一個論證是否合理、有效和一致。
邏輯的關(guān)鍵詞是:
- 推理(Inference):從已知信息(前提)中推導(dǎo)出新信息(結(jié)論)的過程。
- 論證(Argumentation):由前提和結(jié)論構(gòu)成的完整推理過程。邏輯學(xué)研究的是如何構(gòu)建一個有說服力且無懈可擊的論證。
- 有效性(Validity):一個論證的結(jié)構(gòu)是否合理。如果一個論證是有效的,那么只要其前提為真,其結(jié)論也必然為真。有效性只關(guān)乎形式,而不關(guān)乎內(nèi)容的真實性。
- 真假(Truth and Falsity):前提和結(jié)論所陳述的事實是否與現(xiàn)實相符。真假關(guān)乎內(nèi)容。
- 一致性(Consistency):一組陳述之間沒有相互矛盾。
我們之前提到了亞里士多德的三段式邏輯是形式邏輯的一種。形式邏輯的關(guān)注點是找出普遍適用的推理規(guī)則。準(zhǔn)確的說是由論點推理出結(jié)果的形式和規(guī)則。
概念和定義很明確是吧?但是,現(xiàn)實情況讓人挫敗。兩個人的討論可能是下面這樣的。
A:你的話不符合邏輯,你說的論點根本就是你意象出來的。哪有不發(fā)光的太陽?
B:宇宙那么大,你怎么就知道沒有呢?
A:太陽,也就是恒星的定義就是一個巨大的、發(fā)光的等離子體呀!
B:那是當(dāng)前的觀測結(jié)果的定義,黑洞就不發(fā)光,就不能成為一個行星系統(tǒng)的太陽嗎?
A:黑洞會吞噬周圍的一切,所以它周圍不會出現(xiàn)行星系統(tǒng)。
B:你這才不符合邏輯吧?照你說的我們也應(yīng)該被觀測到的那些黑洞吞噬了。
A:就算你說的不發(fā)光的太陽是存在的,那么不對外輻射能量,而只吸收能量的主星不可能孕育出生命。
B:任何事情都有兩面性,有發(fā)光的太陽就有不發(fā)光的太陽。有依賴陽光輻射能量的生命體,就有給太陽提供能量的生命體。
頭大吧?這就是哲學(xué)家和思想們一通神操作后的結(jié)果。當(dāng)然其中有意的模糊了定義。這也是早期哲學(xué)家們對于依據(jù)經(jīng)驗而產(chǎn)生的定義進行挑戰(zhàn)的一部分。
圍繞類似問題的爭論一直在繼續(xù)。令我吃驚的是將辯證法發(fā)展成一個體系的黑格爾居然有一本厚厚的邏輯學(xué)著作。
不管這群擁有獨特氣質(zhì)的人們(其中一些人是真的腦子有些那啥),借用自然科學(xué)從自然中發(fā)現(xiàn)規(guī)律的方法來看看自然世界的邏輯。以期更容易理解和使用邏輯。
世界如此之大,時間如此悠長。個體又該如何發(fā)現(xiàn)那些隱藏在客觀事實中的邏輯呢?
偷個懶透過傳承千年的知識似乎是個非常好的方法,面對浩如煙海的史料,顯然這也是無法完成的任務(wù)。
怎么辦呢?有沒有可能承載文化傳承的工具本身就蘊含著自然的邏輯?如果它不具備自然邏輯的內(nèi)涵,又如何有效的描述世界的樣子?如何記錄和傳遞歷史的變化?
一個有趣的現(xiàn)象是,語言的邏輯是從混雜到精煉;而不是如同其他事物那樣從簡單到復(fù)雜。這個過程就如同因為海水太混雜不適合陸地生物,于是自然通過蒸發(fā)凝結(jié)在大陸降下淡水。而孕育生命的淡水又容易引發(fā)病癥,于是蒸餾水,純凈水孕育而生。
既然已經(jīng)開始了簡化以獲取精髓的腳步,那么我們就直接從人類智慧最新發(fā)明的語言—計算機語言開始。
計算機語言中的邏輯就簡單的多了,只有三個邏輯運算符和三種結(jié)構(gòu)化邏輯。
邏輯運算符:
1. && 或 and (與):所有條件都為真時,結(jié)果才為真。True &&True 結(jié)果為 True。
2. || 或 or (或):只要有一個條件為真,結(jié)果就為真。True || False 結(jié)果為 True。
3. ! 或 not (非):反轉(zhuǎn)條件。!True 結(jié)果為 False。
如果要問關(guān)系運算符(==、<、>、!=……)與邏輯運算符的差別?答案是
·邏輯運算符(如&&、||、!)的核心功能是組合或反轉(zhuǎn)一個或多個布爾值,并返回一個最終的布爾值。它們的操作數(shù)必須是布爾值或可以被解釋為布爾值(如在許多語言中,非零數(shù)字被視為True,0 被視為 False)。
·關(guān)系運算符(如<、>、==、!=)的核心功能是比較兩個值,并根據(jù)比較結(jié)果返回一個布爾值。它們的操作數(shù)可以是數(shù)字、字符串或其他可比較的數(shù)據(jù)類型。雖然兩種運算符的結(jié)果都是真或假,
計算機的結(jié)構(gòu)邏輯為什么只有:順序,(if-then-else)和循環(huán)(while)就足夠適用所有的運算呢?這就要提到B?hm-Jacopini 定理,也稱為結(jié)構(gòu)化程序設(shè)計定理。是定理不是公理就說明它是有證明過程的。確實,CorradoB?hm 和Giuseppe Jacopini 在1966 年的論文《Flow Diagrams, Turing Machines and Languages with OnlyTwo Formation Rules》中給出了證明。證明過程使用了模式匹配和結(jié)構(gòu)化歸納,有興趣可以找兩位神人的論文來學(xué)習(xí)。后續(xù)的研究一直持續(xù)到1990年,其中提出了goto有害等多種觀點。
扯遠(yuǎn)了,將關(guān)注點回到編程語言的邏輯是如何與自然邏輯保持一致的。
計算機語言邏輯操作符的自然體現(xiàn)和應(yīng)用:
·!的自然現(xiàn)象:當(dāng)現(xiàn)在是白晝這個事實為真時,現(xiàn)在不是白晝這個事實就為假。
·&&的自然現(xiàn)象:有陽光、有水、有健康的種子、有……;如果滿足這些條件,那么結(jié)果就是“發(fā)芽” (True)。
·||的自然現(xiàn)象:你帶了雨傘或者你帶了帽子;只要你滿足了其中任意一個條件(帶了雨傘或帶了帽子),那么你出門的目的(避免被淋或被曬)就達(dá)到了。
計算機語言的結(jié)構(gòu)邏輯的自然體現(xiàn)和應(yīng)用:
·順序(Sequence):一顆種子,先發(fā)芽,再長出葉子,然后開花,最后結(jié)果。
·判斷(Selection/Condition):一只鹿在喝水時,如果聽到捕食者的聲音,那么它會立即逃跑;否則,它會繼續(xù)喝水。
·循環(huán)(Repetition/Iteration):春夏秋冬的交替。
計算機語言中邏輯語句的局限性是顯而易見的。計算機語言的邏輯是為了運算而發(fā)明的,它因為計算機系統(tǒng)的特性通常是二元的(真或假)。計算機語言是基于明確的、無歧義的規(guī)則,無法理解事實背后的深層含義、情感和語境,導(dǎo)致缺乏上下文的理解。計算機語言依賴人類輸入而無法“發(fā)現(xiàn)”事實。
但正是因為其簡單和“純凈”而更貼合自然,這也是邏輯最初的樣子。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.