我想分別使用最小和最大固定點計算來計算一些枚舉類型的兩個有限集合(假設爲char
)。我希望我的定義能夠被提取到SML,並且在執行時是「半效的」。我有什麼選擇?「高效」最少和最大固定點計算?
從探索HOL庫和代碼生成玩弄,我有以下幾點看法:
- 我可以使用
complete_lattice.lfp
和complete_lattice.gfp
常數有一對額外的單調函數來計算我的集合,這在其實我現在在做。代碼生成可以處理這些常量,但生成的代碼效率非常低,並且如果我理解正確生成的SML代碼正在對字符的powerset中的每個可能集進行徹底搜索。因此,char
類型的這兩個常量的任何使用(無論多麼簡單)都會在執行時導致分歧。 - 我可以嘗試利用Kleene不動點定理所描述的迭代不動點的定向完整偏序。從探索的角度來看,理論
Complete_Partial_Order
中有一個ccpo_class.fixp
常量,但是其中定義的常量不存在相關的代碼方程,因此無法提取代碼。
是否有任何現有的固定點組合器隱藏在某處,適合用於有限集合,生成我已經錯過的代碼生成的半高效代碼?
謝謝,這正是我需要知道的。 –