語言背後的代數學(二):初等代數

回顧

上文中我們介紹了一個稱為「pq」的系統,並且給它選擇了一個合理的語義解釋。

我們將---q-p--解釋為「3等於1加2」。

此外,我們還知道了,解釋的方式,是隨著形式系統的公理化條件而改變的。

更改了「pq系統」的公理或者推導規則的時候,系統中公理和定理的含義都會發生改變。

為此我們回顧了幾何學中的歐幾里得第五公設問題,

看到了語義問題對數學家們造成的困擾。

自然數語言

從讀小學的時候開始,我們就認識了自然數

我們可以從零開始計數,每個數字比它前面的多一, 0~1~2~3~4~5~6~cdots

這些數字可以用來表示物品的個數。

它們是如此的貼近生活,如此自然,

以致我們一直以來,就把兩個不同的概念混淆在了一起。

一個概念是自然數的語法構造,屬於編碼問題,

另一個概念則是對這種語法構造的解釋,屬於語義問題。

為了看清這一點,

我們使用公理化方式定義一個自然數形式系統,為此我們要問自己這些問題。

(1)這個形式系統包含了哪些符號呢?

它只包含0~9,這個十個字元。

(2)哪些符號串是合法的

一位符號串,或者不是0開頭的多位符號串,都是合法的。

所有這些合法的符號串,構成了一個集合,稱為該形式系統的「語言」。

(3)哪些符號串被認為是公理定理,定理之間的推導規則是什麼?

對於自然數形式系統來說,符號串0可以看做公理,後繼函數可以看做推導規則。

(4)這些符號串的含義是什麼?

簡單起見,我們可以直接指定符號串的含義為它所對應的那個自然數。

例如,3是一個符號串,我們指定它對應 3 這個自然數。

其中3語法符號3數學對象

Peano系統

上一節我們使用公理化的方式建立了一個形式系統,

並且選擇了自然數作為該形式系統中符號串的解釋。

可是在數學上,自然數到底是什麼呢?

要回答這個問題,還要回顧《你好,類型》系列文章中介紹的Peano系統,

皮亞諾(Peano)將自然數理論建立在了集合論之上。

其中, {varnothing,varnothing^+,varnothing^{++},cdots} 構成了一個歸納集。

我們將 varnothing,varnothing^+,varnothing^{++},cdots 定義為自然數,(von Neumann construction)

這樣每一個自然數就和一個集合對應起來了。

因此,自然數 3 是一個集合, varnothing^{+++}={varnothing,{varnothing},{varnothing,{varnothing}}}

其中, A^+ 為集合 A後繼運算A^+=Acup{A}

總而言之,符號串3的數學解釋,是一個集合 varnothing^{+++}

(不必驚訝。

自然數代數

在讀小學的時候,數學課只有一門,主要學有理數的四則運算,

而到了初中,數學就變成了兩門,分為代數課與幾何課,

代數課主要講方程和函數,幾何課主要講平面幾何。

平面幾何是很直觀的,也很容易和其他數學劃清界線,

因此,初中生們對「什麼是幾何」都沒有太多疑惑。

但是至於「什麼是代數」,就比較費解了,這個問題也困擾了我很久。

到大學,我們又學了線性代數,這種困擾日益加深,

因為居然出現了一種「線性的」「代數」,

卻沒有人事先告訴我們到底什麼是「代數」。

後來我們學了抽象代數,這個問題才得以解決,我找到了一個令自己滿意的答案。

為了說明「什麼是代數」,最簡單的辦法就是下定義

設集合 M 上定義了一組運算, a_1,a_2,cdots,a_n

運算結果仍是 M 中的元素,則稱 M 相對於這 n 個運算,構成了一個代數

一般來說,代數問題的特點,

是對一類問題,利用統一的運算性質,求出所有可能的解答。

因此,代數學就是研究運算系統性質的學問。

而Peano系統,是最簡單的運算系統之一,又稱為一階算術系統。

自然數就是這個系統中的運算對象

因此,小學數學也稱為「算術」。

代數學觀點

隨著代數學的發展,人們發明了許多運算系統,

例如,整數的加減法,有理數的四則運算,實數的根式或指數運算,等等。

它們都有現實的對應物,彷彿數學的研究對象就是現實世界一樣。

然而,實際上並非如此。

例如,複數 1+2i ,它是沒有現實對應的,

但是我們仍然可以對複數進行運算。

一個三次方程可能沒有實數解,但必定會存在三個複數解。

引入了複數之後,我們也才能體會到歐拉公式之美, e^{ipi}+1=0

另一方面,代數學的研究重點也發生了改變,

一開始人們研究的是單個的,獨立的,具體的運算系統,

但是後來人們逐漸發現,很多運算系統有相同的運算性質,

可以抽象出來進行討論。

例如,計算機系統中的無符號數,連同加法運算,構成了一個阿貝爾群

而阿貝爾群中的加法,滿足交換律和結合律,

因此,編譯器就可以採用任意的順序進行計算,不影響最終結果。

從運算性質的角度來分析問題,越來越流行了,

成為了現代數學不可或缺的一部分,

並且,代數學考慮問題的方法,也逐漸影響著其他學科。

總結

本文從語義和代數學角度重新認識了自然數,

自然數是Peano系統中的運算對象,

自然數集連同其上定義的後繼運算,構成了一個代數(一階算術系統)。

更重要的是,從代數學角度來看待問題,

有利於我們抓住系統中所隱含的運算性質


參考

你好,類型(二):Lambda calculus

計算機語言的形式語義

近世代數初步

深入理解計算機系統


下一篇:語言背後的代數學(三):語義模型


推薦閱讀:

TAG:代數 | 公理系統 | 算術 |