原因和證明

2021-09-07 13:09:34 字數 1247 閱讀 4056

作者 王垠

我在 cornell 的時候經常遇到這樣的問題,那就是教授們一上課就在黑板上寫長篇的「定理證明」,全體同學認認真真在下面抄筆記,就連只有十來個人的小課也是那樣。有些寫字速度慢的人就不得不帶上小型錄音機,把教授的課全都錄下來,要不就是之後去借別人的筆記來抄。

有一次某知名教授照著講義,背對著學生,在黑板上寫了大半節課,寫下好幾板的證明,證明的是 simply typed lambda calculus (stlc)的 strong normalization 特性(sn)。剛寫完就到下課時間了,他回過頭來喘了一口氣,說:「any questions?」沒有人啃聲,於是他說:「很好!下課!」

幾天後我問他,你證明了 stlc 有這個特性,然而你卻沒有告訴我它「為什麼」有這個特性。他神氣的看了我一眼:「你不懂嗎?」我說:「你的證明我看懂了大部分,可是乙個東西具有如此的性質,並不是因為你證明了它。這性質是它天生就有的,不管你是否能證明它。我想知道的是什麼讓 stlc 具有這個性質,而不只是證明它。」他說:「你問這樣的問題有什麼意義嗎?你需要非常聰明,並且需要經過大量的努力才能想出這樣的證明。」

兩年之後,我在 indiana 上了另外一堂程式語言理論課。教授是我之前的導師 amr sabry。他上課從來不帶講義,貌似也沒有準備,漫不經心的,卻每次都能講清楚問題的關鍵。於是有一天他也開始講 stlc 的 sn 特性。他說,我不想寫下這個證明讓你們抄,我只告訴你們大概怎麼去想。sn 的意思就是程式肯定會「終止」。所有會終止的程式,都會有乙個「特徵值」會隨著程式的執行而減小。你需要做的就是找到 stlc 的「特徵值」是什麼。接著他就開始在黑板上畫乙個圖……

過了一段時間,我不僅學會了這個「證明」,而且知道了 stlc 具有如此特性的「原因」。

從以上的故事,以及你的親身經歷中,你也許注意到了大部分的教育過分的重視了「證明」,卻忽略了比證明更重要的東西——「原因」。

原因往往比證明來得更加簡單,更加深刻,但卻更難發現。對於乙個事實往往有多種多樣的證明,然而導致這個事實的原因卻往往只有乙個。如果你只知道證明卻不知道原因,那你往往就被囚禁於別人製造的理論裡面,無法自拔。你能證明乙個事物具有某種特性,然而你卻沒有能力改變它。你無法對它加入新的,好的特性,也無法去掉乙個不好的特性。你也無法發明新的理論。有能力發明新的事物和理論的人,他們往往不僅知道「證明」,而且知道「原因」。

打個比方。證明與原因的區別,就像是犯罪的證據與它的原因的區別。證據並不是導致犯罪的原因。有了證據可以幫助你把罪犯繩之以法,可是如果你找不到他犯罪的原因,你就沒法防止同樣的犯罪現象再次發生。

古人說的「知其然」與「知其所以然」的區別,也就是同樣的道理吧。

原因與證明

我在 cornell 的時候經常遇到這樣的問題,那就是教授們一上課就在黑板上寫長篇的 定理證明 全體同學認認真真在下面抄筆記,就連只有十來個人的小課也是那樣。有些寫字速度慢的人就不得不帶上小型錄音機,把教授的課全都錄下來,要不就是之後去借別人的筆記來抄。有一次某知名教授照著講義,背對著學生,在黑板上...

王垠 原因與證明

我在 cornell 的時候經常遇到這樣的問題,那就是教授們一上課就在黑板上寫長篇的 定理證明 全體同學認認真真在下面抄筆記,就連只有十來個人的小課也是那樣。有些寫字速度慢的人就不得不帶上小型錄音機,把教授的課全都錄下來,要不就是之後去借別人的筆記來抄。有一次某知名教授照著講義,背對著學生,在黑板上...

基礎 邏輯和證明

命題 是乙個陳述句 陳述事實的的語句 或真或假,但不能既真又假。復合命題 由已知命題用邏輯運算子組合而來。定義一 令p為命題,則p的否定記做 p,指 不是p所指的情況 定義二 令p q為命題,p q的合取即命題 p並且q 記做 p q 與運算 只有p q同時為真時,p q才真 同真才真,一假則假 定...