※ 引述《PikaCracker (成功湖之狼)》之銘言:
: 小弟剛剛在閱讀賽門辛的FLT紀錄
: 看到哥德爾不完備定理
: 好像是一個不僅止於數學或哲學的東西
: 也粉碎了希爾伯特邏輯的野心
: 但小弟還是看不太懂 有咪有大大能解說一下鴨
: 有沒有哥德爾不完備定理的八卦?
各位溫拿安安,小妹是鍵盤數學家、30cm、高富帥、勝利組、溫拿、E cup。
假設所有正確的陳述都可以被證明,那我們來看看會發生什麼事。
考慮任意的一支程式,我們稱它為a.exe好了,假設它不會和使用者互動喔。
首先我們把「a.exe執行後不會停」寫成一個數學的陳述。
然後造一支甲程式,它的功能是列舉所有1個字的話、然後列舉所有2個字的話、然後列舉
所有3個字的話、...,以此類推,每當列舉到一句話時,甲程式就檢查這句話是不是
「a.exe執行後不會停」的證明,如果是,它就印出「a.exe執行後不會停」。
觀察1. 只要「a.exe執行後不會停」一語可以被證明,甲程式就遲早會列舉到這句話的一
個證明,並因而印出「a.exe執行後不會停」。
現在造一支乙程式,它會輪流跑甲程式和a.exe,例如第1、3、5、7、... 秒跑甲程式,
第2、4、6、8、... 秒跑a.exe,過程中,一旦甲程式印出「a.exe執行後不會停」,乙程
式便宣布「我知道了,a.exe執行後不會停」,反之一旦a.exe停了,乙程式便宣布「我知
道了,a.exe執行後會停」。
我們分兩個情形討論:
(i). a.exe執行後不會停。根據我們先前假設的「所有正確的陳述都可以被證明」,可知
「a.exe執行後不會停」可以被證明,因此由觀察1,甲程式遲早會印出「a.exe執行
後不會停」,即乙程式遲早會宣布「我知道了,a.exe執行後不會停」。
(ii). a.exe執行後會停。那麼乙程式遲早會見證a.exe停的那一天,並宣布「我知道了,
a.exe執行後會停」。
我們得到了一個方法,足以判斷任意一支程式a.exe是否會停!!!這和Alan Turing的一
個著名結果矛盾,因此我們只好說一開始假設的「所有正確的陳述都可以被證明」是錯的
。
數學上的確有重要但不能被證明、也不能被反證的陳述。
如果一個無限大的集合的元素可被排列成第一個元素、第二個元素、第三個元素、...,
且任何元素都有被排到,那麼我們就稱這個集合為一個可數集,反之則稱為不可數集。
數線上所有的點構成的集合~也就是實數集~便是一個著名的不可數集。
「連續統假設」聲稱不存在比實數集小的不可數集(在此不贅述大小的比法),這就是一
個不能被證明也不能被反證的陳述,證明此事的大數學家為Kolmogorov和Cohen。