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