域理论

**域理論**（英語：Domain theory）是研究通常叫做「域」的特定種類偏序集合的數學分支。因此域理論可以被看作是序理論的分支。這個領域主要應用於電腦科學中，特別是針對函式語言程式設計語言，用它來指定指稱語意。域理論以非常一般化的方式形式化了逼近和收斂的直覺概念，並與拓撲學有密切聯絡。在電腦科學中指稱語意的一個可作為替代的方式是度量空間。

## 動機和直覺

Dana Scott 在 1960 年代後期發起對域的研究的主要動機是為 lambda 演算找尋指稱語意。在這種形式化中，認為「函數」通過在這個語言中的特定項指定。在純粹語法方式下，可以得到從簡單函數到接受其他函數作為它的輸入參數的函數。再次只使用在這種形式化中的可獲得的語法轉換，可以獲得所謂的不動點組合子 (其中最著名的是 Y 組合子)；通過定義，它們有如下性質，對於所有函數 _f_ 都有 _f_(**Y**(_f_)) = **Y**(_f_)。

要公式化這樣一種指稱語意，首先會嘗試為 lambda 演算構造一個**模型**，在其中為每個 lambda 項關聯上一個真正的 (全) 函數。這樣一種模型將形式化作為純語法系統的 lambda 演算和作為操縱具體的數學函數的符號系統的 lambda 演算之間的連接。不幸的是，這種模型不能存在，如果存在，它必須包含對應於組合子 **Y** 的一個真正的全函數，它是計算任意輸入函數 _f_ 的不動點的函數。不能給予 **Y** 這樣的函數，因為某些函數 (比如「後繼函數」) 沒有不動點。這個對應於 **Y** 的真正函數至少必須是偏函數，對於某些輸入必須是未定義的。

Scott 通過形式化 "部分" 或 "不完全" 訊息的概念來表示仍未返回一個結果的計算來克服這個困難。通過對計算的每個域 (比如自然數) 考慮一個額外的元素，表示「未定義」輸出，就是永不結束的計算的 "結果" 來建模。此外，計算的域被裝備了一個「次序關係」，在其中 "未定義結果" 是最小元素。

為 lambda 演算找到模型的一個重要步驟是只考慮保證有最小不動點的那些函數 (在這種偏序集合上)。這些函數的集合，與適當的排序一起，再次是這個理論意義上的一個 "域"。而限制於所有可獲得的函數的一個子集有另一個巨大的好處：有可能獲得包含它們自己的函數空間的域，就是得到應用於自身的函數。

除了這些需要的性質，域理論還允許吸引人的直覺釋義。同上所述，計算的域總是部分有序的。這種排序表示訊息或知識的層次。元素在這個次序上越高，它就更加明確和包含更多的訊息。更低的元素表示不完全的知識或中間結果。

接著通過在這個域上重複的應用單調函數來精製出結果。到達一個不動點等價於完成一個計算。域為這些想法提供了優越的設施，因為可以保證單調函數的不動點的存在，並且在額外的限制下，可以從下面逼近。

## 形式定義指南

在本章節中，將介紹域理論的中心概念和定義。強調上述的域為「訊息排序」的直覺來引發這個理論的數學形式化。精確的形式定義可以在每個概念的專門文章中找到。包含域理論概念的一般的序理論定義可以在序理論術語表中找到。下面只介紹域理論最重要的概念。

### 有向集合作為收斂規定

按前面所提及的，域理論處理偏序集合來建模計算的域。目標是把這種次序下的元素解釋為「訊息片段」或「計算的 (部分) 結果」，這裡的在次序上更高的元素以一種一致性的方式擴充了下面元素的訊息。從這個簡單直覺例子中，已經明顯的看出域經常沒有最大元素，因為這將意味著有一個元素包含所有其他元素的訊息 - 這是一個非常無趣的情況。

在這個理論中扮演重要角色的概念是一個域的**有向子集**，就是說在其中每兩個元素都有某個上界的次序的非空子集。按我們關於域的直覺看法，這意味著在有向子集內的每兩個訊息片段都可以被在子集內的某個其他元素所一致性的**擴充**(extend)。所以我們可以把有向集合看作**一致性規定**，就是看作在其中沒有兩個元素有矛盾的「部分結果」的集合。這個解釋可以比較於在數學分析中的序列的概念，在這裡每個元素都被前面的更加特殊。實際上，在度量空間理論中，序列扮演了在很多方面類似於有向集合在域理論中的角色。

現在在序列的情況下，我們感興趣於有向集合的**極限**。依據上面所述，這將是擴充這個有向集合的所有元素的訊息的最一般性的訊息片段，就是說包含在這個有向集合中出現的「全部的」訊息的唯一的元素 - 而沒有東西有更多的訊息。在序理論的形式化中，這叫做有向集合的最小上界。在序列的極限的情況下，有向集合的最小上界總是存在的。

自然的，你會特別感興趣於在其中所有一致性規定都**收斂**的計算域，就是說，它有著所有有向集合都有一個最小上界的次序。這個性質定義了**有向完全偏序**，簡寫為 **dcpo**。實際上，域理論的多數考慮都只考慮至少是有向完全的次序。

從部分指定的結果表示不完全的知識的根基性想法，你能得出另一個需要的性質：存在最小元素。這樣的一個元素建模了沒有訊息的狀態 - 這是大多數計算開始的地方。它也可以被當作根本不返回任何結果的計算的輸出。由於它對於這個理論的重要性，帶有最小元素的 dcpos 被叫做**完全偏序**或簡寫為 **cpos**。

### 計算和域

現在我們有了計算的域應當是什麼樣的基本形式描述，我們可以轉到計算自身。明顯的，它們必須是函數，從某個計算域接受輸入並返回在某個 (可能不同的) 域中的輸出。但是，你還希望在輸入的訊息內容增加的時候函數的輸出包含更多的訊息。形式上，這意味著我們希望一個函數是**單調的**。

在處理 dcpos 的時候，你還可能希望計算相容於有向集合的極限的公式化。形式的說，這意味著對於某個函數 _f_，有向集合 _D_ 的像 _f_(_D_)(就是 _D_ 的每個元素的像的集合) 再次是有向的並且有一個最小上界，就是 _D_ 的最小上界的像。你還可以稱 _f_「保持了有向上確界」。還要注意，通過考慮兩個元素的有向集合，這樣的函數也必須是單調的。這些性質引發了 **Scott - 連續**函數的概念。因為經常是沒有歧義的，你也可以稱它為**連續函數**。Henry Baker 和 Carl Hewitt 證明了任何表現得如同函數的演員 (actor) 都是連續的。

域理論的一個重要應用是 Will Clinger 用它來開發並行計算的演員模型的語意 (參見指稱語意)。

### 逼近和有限

域理論是建模訊息狀態的結構的純粹定性的方式。你可以說某個東西包含更多訊息，但是增加訊息的數量沒有指定。在某些情況下你希望在比給定訊息狀態更加簡單 (或更加不完全) 的意義下談論元素。例如，在某個冪集上自然的子集包含次序中，任何無限元素 (也是集合) 比任何它的有限子集更加富有訊息。

如果你希望建模這樣一種關聯，你首先可能希望考慮帶有次序 ≤ 的域的誘匯出的嚴格次序 <。儘管在全序的情況下這是一個有用的概念，在偏序集合情況下它不能告訴我們更多東西。再次考慮集合的包含次序，如果一個集合包含的元素比另一個 (可能無限的) 集合只少一個，從嚴格意義上說這是這個集合比另一個集合小，但這很難說這個集合比另一個集合更簡單。

### 遠低於關係

導致所謂「逼近次序」定義的更精細的方式是所謂的**遠低於關係**。元素 _x_ 遠低於元素 _y_，如果對於所有有上確界

　
: _y_ ≤ sup _D_，

的有向集合 _D_，有某個 _D_ 中的元素 _d_ 使得

　
: _x_ ≤ _d_。

那麼你還可以稱 _x_「逼近」_y_ 並寫為

　
: _x_ << _y_。

這確實蘊涵了

　
: _x_ ≤ _y_，

因為單元素集合 {_y_} 是有向的。例如，在集合的排序中，無限集合總是在任何有限集合的上面。在另一個方面，考慮有限集合的有向集合 (事實上是鏈)

　
: {0}, {0, 1}, {0, 1, 2}, ...

因為這個鏈的上確界是所有自然數的集合 **N**，這證明了沒有無限集合遠低於 **N**。

但是，遠低於某個元素是「相對」概念並且不顯露關於一個元素自身的事情。例如，你可以用序理論的方式來刻畫有限集合，但是即使無限集合都可以遠低於某個其他集合。這些**有限**元素 _x_ 的特殊性質是它們遠低於自身，就是說

　
: _x_ << _x_。

有這種性質的元素也叫做**緊緻元素**。然而，這種元素不必須在這個術語的其他數學用法意義上是「有限」的或「緊緻」的。儘管如此這個概念由平行於集合論和拓撲學的各自概念的動機所推動。一個域的緊緻元素有重要的特殊性質，就是不能獲得為它們未在其中出現的有向集合的極限。

關於遠低於關係的很多其他重要結果支援了這個定義適合擷取域的很多重要方面。

### 域的基

前面的思考引發了另一個問題：是否有可能保證一個域的所有元素可以作為這種更簡單元素的極限而獲得？這在實踐中是非常重要的，因為我們不能計算無限物件但是我們仍然希望任意近的逼近它們。

更一般的說，我們希望限制於足夠得到所有其他元素作為最小上界的那些元素的特定子集。因此，你定義偏序集合 _P_ 的**基**為 _P_ 的子集 _B_，是的對於 _P_ 中每個 _x_，_B_ 中遠低於 _x_ 的元素的集合包含帶有上確界 _x_ 的有向集合。偏序集合 _P_ 是連續偏序集合，如果它有某個基。特別是，_P_ 自身在這種情況下是一個基。在很多應用中，你限制於連續 (d) cpos 作為主要研究物件。

最後，通過要求存在緊緻元素的一個基的而給出對偏序集合的一個更強限制。這樣一個偏序集合叫做**代數**的。從指稱語意的觀點看，代數偏序集合是特別行為良好的，因為它們允許所有元素的逼近，即使限制於有限元素的時候。按前面所提及的，不是所有有限元素在經典意義上是「有限」的 ，有充分的理由這些有限元素可以構成一個不可數集合。

但是在某種意義上，偏序集合的基是可數的。在這種情況下，你稱之為 **ω- 連續**偏序集合。 因此，如果如果可數基完全由有限元素組成，我們獲得的次序是 **ω- 代數**的。

### 特殊類型的域

域的簡單的特殊情況叫做**基本域**或**平坦域**。這由不可比較的元素的集合組成，比如整數，同被認為小於所有其他元素的單一的「底」元素在一起。

你可以獲得適合作為「域」的一些其他特殊種類的有序結構。我們已經提及了連續偏序集合和代數偏序集合。二者的更加特殊的版本是連續和代數 cpos。增加進一步的完備性性質，你能得到連續格和代數格，它們只是帶有各自性質的完全格。在代數情況下，你找到了值得研究的更廣泛的偏序集合種類：歷史上，Scott 域是在域理論中最先研究的結構。更廣闊的域種類由 SFP - 域、L - 域和雙有限域組成。

所有這些種類的次序都可以被擲為各種 dcpos 範疇，使用單調、Scott - 連續、甚至更特殊的函數作為態射。最後，術語「域」自身是不精確的，因此只在形式定義被給出之前或細節無關緊要的時候作為簡略語來使用。

## 重要結果

偏序集合 _D_ 是 dcpo，若且唯若在 _D_ 中每個鏈都有上確界。但是，有向集合嚴格的比這些鏈更加強力。

帶有一個最小元素的偏序集合 _D_ 是 dcpo，若且唯若在 _D_ 上所有單調函數 _f_ 都有不動點。如果 _f_ 是連續的，則它恰好有一個最小不動點，給出為 _f_ 在最小元素 _0_ 上的所有有限迭代的最小上界: Vn ∈ **N** _f_ n(_0_)。

_當然，有很多其他重要的結果，依賴於域理論所應用的領域。請參閱下面列出的文獻_。

## 文獻

Probably one of the most recommendable books on domain theory today, giving a very clear and detailed view on many parts of the basic theory:

* G. Gierz, K. H. Hofmann, K. Keimel, J. D. Lawson, M. Mislove, and D. S. Scott, _Continuous Lattices and Domains_, In _Encyclopedia of Mathematics and its Applications_, Vol. 93, Cambridge University Press, 2003. ISBN 0-521-80338-1

可免費線上獲得的關於域理論的標資源:

* S. Abramsky, A. Jung: _Domain theory_. In S. Abramsky, D. M. Gabbay, T. S. E. Maibaum, editors, Handbook of Logic in Computer Science, vol. III. Oxford University Press, 1994. (ISBN 0-19-853762-X) (download PDF （頁面存檔備份，存於網際網路檔案館） PS.GZ （頁面存檔備份，存於網際網路檔案館）)

_One of Scott's classical papers:_

* D. S. Scott. _Data types as lattices_. In G. Muller _et al._, editors, Proceedings of the International Summer Institute and Logic Colloquium, Kiel, volume 499 of _Lecture Notes in Mathematics_, pages 579-651, Springer-Verlag, 1975.

_A general, easy-to-read account of order theory, including an introduction to domain theory as well:_

* B. A. Davey and H. A. Priestley, _Introduction to Lattices and Order_, 2nd edition, Cambridge University Press, 2002. ISBN 0-521-78451-4

_A readable account of the Laws for Actor systems and how they can be used to prove Scott's continuity criterion:_

* Carl Hewitt and Henry Baker _Actors and Continuous Functionals_ Proceeding of IFIP Working Conference on Formal Description of Programming Concepts. August 1-5, 1977.

_A general, easy-to-read account of the Actor model of concurrent computation, using only elementary domain theory:_

* W. Clinger. _Foundations of Actor Semantics_ MIT Mathematics Doctoral Dissertation. June 1981.

## 參見

* 類型論
* 範疇論