遞歸函數(八):偏序結構
回顧
上一篇我們介紹了不動點運算元和Y組合子,以及Y組合子的具體表現形式,
這一篇我們根據不動點運算元的性質來證明fact函數就是g函數的不動點。隨後,我們回歸到了數學中,討論集合上的一種偏序結構,這為下文完全偏序集,以及完全偏序集上連續函數的不動點定理做好準備。
不動點運算元的性質
上文我們介紹了不動點運算元fix,
fix :: (a -> a) -> afix f = let x = f x in x
並且我們說以下函數的不動點為fact = fix g,
g :: (Int -> Int) -> Int -> Intg f n = case n of 1 -> 1 _ -> n * f (n-1)
但是上文中,我們只是對它們的計算結果進行比對,
並沒有對它進行證明。考慮到fix的性質,fix g = g (fix g),
fix g是g的不動點,令h = fix g,上式為h = g h 我們可以使用數學歸納法,證明對於任意的自然數 fact n = fix g n。我們先證初始條件,
fix g 1 = g (fix g) 1 = case 1 of 1 -> 1 _ -> ...= 1= fact 1
然後再證遞推條件,假設fact k = fix g k,
我們要推出fact (k+1) = fix g (k+1),其中, 。
fix g (k+1)= g (fix g) (k+1)= case (k+1) of 1 -> 1 _ -> (k+1) * (fix g) k= (k+1) * (fix g) k= (k+1) * fact k= fact (k+1)
因此,對於任意的自然數 ,
fact n = fix g n。
fact = fix g。
不動點運算元的有限展開
根據上一節fact = fix g的證明,我們看到,
fix的性質fix g = g (fix g),但是對於一個具有有限存儲空間的機器來說,遞推的步驟不可能是無限的。為了界定最多使用多少次遞推,我們定義, ,
,
,而
在
時沒有定義。
因此, 是一個部分函數,且,
fact更近一些。當 fact。即, 的最小上界,就是
g的不動點。
g才能保證這個集合具有最小上界呢?序理論指出,完全偏序集上的序保持自映射具有最小不動點。為此,我們需要先認識什麼是偏序集,什麼是連續函數。
使用完全偏序集上的連續函數解釋程序中函數的方式,稱為域論模型。偏序集與哈斯圖
在第三篇中,我們討論過偏序關係,
一個偏序集設 為實數集的一個非空子集,我們定義
上的偏序關係為
,
偏序集反映了集合上的一種偏序結構,它比我們想像中的更為常見,
例如,一個集合因此,如果某個集合構成了一個偏序集,這完全取決於我們怎樣定義偏序關係。
設 是一個偏序集,
則稱 和
是可比的。
,且
,則記為
。
根據可比性和覆蓋性,我們就可以將偏序關係用無向圖表示出來了,
其中,頂點表示元素,邊表示覆蓋關係,並且省去圖中每個頂點處的環,這樣用來表示有限偏序集的無向圖,稱為哈斯圖。
例如,易證整除關係是整數集上的一種偏序關係,
我們可以畫出偏序集 對應的哈斯圖,如下,
全序集與擬序集

設 是一個偏序集,如果對於任意
,
和
都可比,
可見,實數集以及實數集上的小於等於關係 ,構成了一個全序集。
設 是非空集合
上的,反自反的和傳遞的二元關係,
(其中,反自反關係,指的是不存在 ,使得
。
擬序關係與偏序關係的哈斯圖在畫法上完全相同,
只是擬序關係的哈斯圖的各頂點都沒有環。設 是一個擬序集,如果對於任意的
,
最小元與上確界
對於偏序集 ,以及它的一個子集
,
(相似的我們可以定義最大元
如果存在 ,對於任意的
,
如果 是有窮集,則
的極小元一定存在,並且可能有多個,
上文中,我們畫出了偏序集 對應的哈斯圖,
我們取 ,
,
,
是
的極小元,但
沒有最小元,
是
的最大元,也是極大元。
對於偏序集 ,以及它的一個子集
,
的上界和下界不一定存在,即使存在,上確界和下確界也不一定存在。
設 是一個擬全序集,如果對於
中的任何非空子集
都有最小元,
例如,自然數集以及自然數集上的小於關係,構成了一個良序集 ,
總結
本文從一個證明出發,我們了解了不動點運算元的工作原理,
然後引出了一些數學概念,序關係在不動點運算元理論中佔有很重要的地位,所以,這裡給出了詳細的介紹,下文我們開始討論最小不動點定理。參考
序理論
域論模型 偏序關係 離散數學教程下一篇:遞歸函數(九):最小不動點定理
推薦閱讀:






