語言背後的代數學(二):初等代數
回顧
上文中我們介紹了一個稱為「pq」的系統,並且給它選擇了一個合理的語義解釋。
我們將---q-p--
解釋為「3等於1加2」。此外,我們還知道了,解釋的方式,是隨著形式系統的公理化條件而改變的。
更改了「pq系統」的公理或者推導規則的時候,系統中公理和定理的含義都會發生改變。為此我們回顧了幾何學中的歐幾里得第五公設問題,
看到了語義問題對數學家們造成的困擾。自然數語言
從讀小學的時候開始,我們就認識了自然數,
我們可以從零開始計數,每個數字比它前面的多一, 這些數字可以用來表示物品的個數。它們是如此的貼近生活,如此自然,
以致我們一直以來,就把兩個不同的概念混淆在了一起。一個概念是自然數的語法構造,屬於編碼問題,
另一個概念則是對這種語法構造的解釋,屬於語義問題。為了看清這一點,
我們使用公理化方式定義一個自然數形式系統,為此我們要問自己這些問題。(1)這個形式系統包含了哪些符號呢?
它只包含0~9
,這個十個字元。(2)哪些符號串是合法的?
一位符號串,或者不是0
開頭的多位符號串,都是合法的。所有這些合法的符號串,構成了一個集合,稱為該形式系統的「語言」。(3)哪些符號串被認為是公理或定理,定理之間的推導規則是什麼?
對於自然數形式系統來說,符號串0
可以看做公理,後繼函數可以看做推導規則。(4)這些符號串的含義是什麼?
簡單起見,我們可以直接指定符號串的含義為它所對應的那個自然數。
例如,3
是一個符號串,我們指定它對應 這個自然數。其中3
是語法符號, 是數學對象。
Peano系統
上一節我們使用公理化的方式建立了一個形式系統,
並且選擇了自然數作為該形式系統中符號串的解釋。可是在數學上,自然數到底是什麼呢?
要回答這個問題,還要回顧《你好,類型》系列文章中介紹的Peano系統,
皮亞諾(Peano)將自然數理論建立在了集合論之上。其中, 構成了一個歸納集。
我們將 定義為自然數,(von Neumann construction)
這樣每一個自然數就和一個集合對應起來了。因此,自然數 是一個集合, ,
其中, 為集合 的後繼運算, 。總而言之,符號串3
的數學解釋,是一個集合 。
自然數代數
在讀小學的時候,數學課只有一門,主要學有理數的四則運算,
而到了初中,數學就變成了兩門,分為代數課與幾何課,代數課主要講方程和函數,幾何課主要講平面幾何。平面幾何是很直觀的,也很容易和其他數學劃清界線,
因此,初中生們對「什麼是幾何」都沒有太多疑惑。但是至於「什麼是代數」,就比較費解了,這個問題也困擾了我很久。到大學,我們又學了線性代數,這種困擾日益加深,
因為居然出現了一種「線性的」「代數」,卻沒有人事先告訴我們到底什麼是「代數」。後來我們學了抽象代數,這個問題才得以解決,我找到了一個令自己滿意的答案。
為了說明「什麼是代數」,最簡單的辦法就是下定義,
設集合 上定義了一組運算, ,運算結果仍是 中的元素,則稱 相對於這 個運算,構成了一個代數。一般來說,代數問題的特點,
是對一類問題,利用統一的運算性質,求出所有可能的解答。
因此,代數學就是研究運算系統性質的學問。
而Peano系統,是最簡單的運算系統之一,又稱為一階算術系統。自然數就是這個系統中的運算對象。因此,小學數學也稱為「算術」。
代數學觀點
隨著代數學的發展,人們發明了許多運算系統,
例如,整數的加減法,有理數的四則運算,實數的根式或指數運算,等等。它們都有現實的對應物,彷彿數學的研究對象就是現實世界一樣。然而,實際上並非如此。
例如,複數 ,它是沒有現實對應的,
但是我們仍然可以對複數進行運算。一個三次方程可能沒有實數解,但必定會存在三個複數解。引入了複數之後,我們也才能體會到歐拉公式之美, 。
另一方面,代數學的研究重點也發生了改變,
一開始人們研究的是單個的,獨立的,具體的運算系統,但是後來人們逐漸發現,很多運算系統有相同的運算性質,可以抽象出來進行討論。例如,計算機系統中的無符號數,連同加法運算,構成了一個阿貝爾群。
而阿貝爾群中的加法,滿足交換律和結合律,因此,編譯器就可以採用任意的順序進行計算,不影響最終結果。
從運算性質的角度來分析問題,越來越流行了,
成為了現代數學不可或缺的一部分,並且,代數學考慮問題的方法,也逐漸影響著其他學科。總結
本文從語義和代數學角度重新認識了自然數,
自然數是Peano系統中的運算對象,自然數集連同其上定義的後繼運算,構成了一個代數(一階算術系統)。更重要的是,從代數學角度來看待問題,
有利於我們抓住系統中所隱含的運算性質。參考
你好,類型(二):Lambda calculus
計算機語言的形式語義
近世代數初步 深入理解計算機系統下一篇:語言背後的代數學(三):語義模型
推薦閱讀: