論人類下一代語言的可能—6.3.2等價-替換原理
繼續回到前面關於算術計算與命題邏輯演算的內容。在算術的計算中,加法計算可分解為一系列的步驟,其中每一步的操作是匹配運算律或加法表中的一項,將算式當中與運算律或加法表的表達式中「=」號左邊內容相同的部分替換為「=」號右邊的內容,或反過來替換。一階謂詞邏輯里,推理是應用某一重言式進行替換進而轉換問題表達式的形式。「⇔」符號連接的重言式,左右二邊的表達式在任何情況下真值相同,可以相互替換;「⇒」符號連接的重言式是右邊可以替換左邊,左邊則不能替換右邊。多步的推理構成證明。更基礎的命題聯接運算,也是在匹配真值表基礎上決定能否進行替換。上述替換與被替換的內容可以是與等價類符號左右邊相同的內容,也可以是對等價類符號左右二邊的內容的實例進行替換。
計算操作本質上可歸結為替換操作,以及替換操作基礎上問題表達式的轉換;計算所能進行的替換依據是等價類符號所表示的等價關係;這些等價關係本身是知識的重要組成,它們或已在知識體系中建立,或可由已有的理論推導出(這也是一種計算過程);這是計算合法性的依據。以上是本書一個重要的結論,可稱為等價-替換原理。這進一步細化了6.2節里的計算定義。
算術與邏輯中基礎的計算可歸結為替換-轉換的操作,那麼所有的計算也都可以歸結為替換-轉換的操作,這可以從現代電腦的應用得到佐證。我們今天所知道的計算,大都已在現代電腦應用中實現,就算存在還未能由電腦執行的計算,我們也相信可以編寫出程式讓電腦來計算。現代電腦所執行的計算,最終都是分解為基礎的算術與邏輯計算,由電腦的算術邏輯部件執行(詳見後一章)。這是否也間接地說明了各類計算的規則也會是某些等價關係?
等價-替換原理並不是顯而易見的。以數學為例,初等數學裡的解題過程,很多時候可以感覺到是在做等價替換-轉換操作,這從操作步驟的名稱也可看出,如「移項」「合併同類項」「去分母」等等。有的時候這種感覺並不明顯。手工操作時,通常是直接寫出每一步驟或合併多個步驟的結果,而不一定明確體現操作的過程與依據。稍複雜的計算可以是多分支多步驟複合的過程,分支的過程用於得出可利用的等價關係,主要的過程則是對問題表達式的替換與轉換。在這種過程中,每一步的操作對我們來說都可能有特定而具體的意義,我們專註於有意義的內容性思考,而不一定意識到操作層面的性質。比如賦值實際也是建立問題域里一個等價關係;比如增加輔助條件使問題變化,同樣是為了利用其它更多的等價關係;再比如數值計算,本質是在做符號的轉換,只是數字我們太過熟悉。總之,我們的符號表述沒有自覺將等價與替換呈現清楚,因為這樣的規範會以犧牲簡潔性為代價。
計算的主要過程為一系列的步驟,每一步驟後的問題表達式與前一步驟的表達式保持等價,或者說在過程中始終保持著等價,這種效果只能是每一步的問題表達式轉換都是基於等價關係。對替換操作的覺悟也反映在喬姆斯基的形式文法(參閱3.2.4節)以及卡爾納普的邏輯句法中(參閱5.2節)。按照他們的理論,自然語言或者邏輯語言可由一些初始字元通過遞歸地應用轉換規則與生成規則來生成所有的表述,其中的轉換規則與生成規則與這裡描述的等價-替換類似。
至此,再來考察等價類符號,我們把等價類符號看作可以進行某一類型替換操作的指示符,符合此要求的符號都可視為等價類的符號。前面提到的「<」「>」「<=」「>=」「≠」符號,首先它們的表達式也形成了一個命題,其次它們在特定的上下文中同樣會帶來替換操作,在此意義上它們仍可看作等價類符號。只是此類符號與「=」號相比,缺乏對稱性,傳遞性也較弱,導致可以進行替換的場景較少。
「等價-替換原理」不同於一般說到的原理。一方面我們的知識以等價關係來呈現,等價關係以等價類符號標識,等價類符號可形成一個系列。另一方面「等價-替換」里的「替換」強調的是一種物理操作。「=」及其他等價類符號所建立的表達式,靜態看是一陳述句型;動態來說,實際是指示進行替換操作的祈使句型。傳統上,對「等價」關係,特別是「相等」關係的研究主要是在邏輯學裡進行,邏輯的基本規律:同一律、矛盾律、排中律,都與此相關,只是邏輯的研究帶有很大的思辨性。現在研究可以有更明確的路徑進行。將我們的知識重構為更明顯的等價關係表示,總結我們已有知識中已用到那些等價類符號,它們能形成什麼樣的系列;明確各種等價符號對應的替換操作,它們具體的作用方式與條件。最後將所得到的結論進一步一般化,並形成規範化的用法。顯然這一工作不是本書能夠完成的。