有限機器與無限實數之間:浮點數、精確實數與跨域算子的完成—投影雙向語義
摘要
0.999…=1 常被視為初等實分析的習題;但若目標是建立可用於程式語言、數值計算、精確實數、符號系統與一般算子本體論的跨域框架,它其實是一個最小但完整的壓力測試。此案例迫使我們同時處理:有限字串、有限小數前綴、有向近似鏈、無限數位流、實數的完成、不同表示的商同一、有限機器浮點格式、捨入誤差、區間包絡、特殊值與物理執行。任何框架若不能區分這些載體與箭頭,便無法嚴格說明「一個算子如何跨域轉換」,只能以自然語言把生成、極限、投影、商化與狀態變化混為一談。
本文建立「跨域橋接算子」的型別化語義。其最低資料為:
B=(X,Y,[[−]]X,[[−]]Y,B,B,κ,ε,Exc,Exec),
其中 X,Y 是原始載體, [[−]]X,[[−]]Y 是各自的語義映射, B 是原始跨域算子, B 是語義層對應, κ 指定橋接類型, ε 是誤差或包絡證書, Exc 處理例外值,而 Exec 區分抽象語義與機器執行。本文區分七類橋接:精確重編碼、餘遞歸展開、完成提升、商同一化、捨入投影、區間包絡與例外逃逸。
核心結果是:由有限全 9 前綴到 1 的正確箭頭不是單一狀態更新:
xn⟼1,
而是作用於整條有向鏈的完成:
Comp:Dir↑(Q∩[0,1])⟶R,
Comp((1−10−n)n∈N)=1.
另一方面,全 9 流與 1.000… 的關係是表示求值與商化:
Val(0,9ω)=Val(1,0ω)=1,
[(0,9ω)]=[(1,0ω)].
兩者皆不是「在實數域內多執行一步」。
本文進一步分析 IEEE 754 式浮點系統。有限浮點值可經解碼嵌入有理數再嵌入實數;反向的實數到浮點轉換則是依格式與捨入模式決定的多對一投影。 +0 與 −0 、 NaN 、 ±∞ 說明浮點格式既不等於 R ,也不能只以單一數值等號處理。本文以精確實數的 Cauchy name/近似 oracle 與區間語義補足兩個方向:前者以有限程序表示可任意精化的實數語義,後者以保守包絡保存可驗證誤差。
本文的結論是,算子本體論若要成為通用而非修辭性的框架,必須內建「完成—投影雙向語義」:從有限近似或有限規格到精確/無限語義的提升,與從精確語義到有限機器表示的投影,兩者皆須標註資訊方向、同一性準則、誤差界、例外域與可組合性。它不取代領域論、範疇論、型別論、數值分析或浮點標準;它的任務是把這些理論提供的局部保證編織成可檢驗的跨域接口。
關鍵詞: 算子本體論、跨域算子、浮點數、IEEE 754、精確實數、區間算術、完成、投影、捨入、商型別、數位流、操作語義、指稱語義、誤差證書
一、問題的真正形式:不是一個等式,而是一個轉換協議
1.1 為何上一輪總論仍不夠
《生成、展開、完成與同一化:從十進位邊界到算子本體論》已經分開四個結構:
生成⟶展開⟶完成⟶同一化.
它回答了標準實數中:
0.999…=1
為何沒有證明缺口,也回答了有限前綴、無限流、極限與商類為何不是同型對象。
但若算子本體論要進入計算機語言與一般跨域操作,還有一個更嚴格的問題:
當一個算子從一種載體移到另一種載體時,究竟改變了什麼?它保存什麼?失去什麼?何時是精確等值,何時只是近似,何時根本離開了實數域?
這不是上一輪的附註,而是通用性的關卡。
1.2 不能再寫「 0.999… 變成 1 」
若沒有額外型別,句子:
0.999…⟶1
至少可能指六件不同的事:
- 有限前綴值鏈收斂於 1 ;
- 一條無限流經求值映射指稱 1 ;
- Cauchy 序列的等價類在完成中代表 1 ;
- 兩個十進位表示在商後同一;
- 某個有限十進位字面值被編譯器捨入成浮點數 1 ;
- 一個物理機器的暫存器內容在時間中變為另一個位元模式。
這六者的來源、目標、正確性條件和可逆性都不同。
1.3 本文的中心主張
本文的中心主張是:
0.999…=1 不是單純的實分析邊角案例;它是任何通用算子框架是否能區分「狀態算子、軌跡算子、完成算子、表示算子、捨入算子與執行算子」的最小跨域測試。
若一個框架只允許:
T:X→X,
它只能描述同一載體內的狀態轉移。它無法直接表達:
Comp:Chain(X)→X,
也無法表達:
round:R→Float,
或:
Q:Rep→Rep/∼.
因此,它尚未具有跨域語義。
1.4 本文的邊界
本文不主張:
- 所有跨域轉換都可由同一個函子統一;
- 所有投影都是相變;
- 所有有限程式都能精確表示任意實數;
- 所有浮點運算都可安全替代實數運算;
- 0.999…=1 單獨證明「萬物皆計算」;
- 抽象完成自動對應物理過程的完成。
本文主張的是一個較強但可檢查的接口要求:每個跨域算子都必須攜帶自己的型別、語義相干、誤差或包含關係、例外處理與執行條件。
二、七個載體:同一個符號實際跨過哪些域
2.1 有限十進位字
令:
D={0,1,…,9}.
有限字空間為:
FinStr10=D∗.
一個元素 p∈D∗ 是有限符號物件。它可以被儲存、傳輸、比較字串相等,也可以作為程式輸入。
例如:
9,99,999
都是不同的有限字。
2.2 有限前綴的有理值
對長度為 n 的字:
p=d1d2…dn∈Dn,
定義有限求值:
vn(p)=k=1∑ndk10−k∈Q.
對全 9 前綴:
pn=9n,
有:
vn(pn)=1−10−n.
它是一個有理數,不是尚未完成的實數,也不是浮點數位元模式。
2.3 無限數位流
無限流空間為:
Stream10=DN.
元素:
s=(d1,d2,d3,…)
是一個餘歸納對象。全 9 流記作:
9ω=(9,9,9,…).
它不是任何有限字的最後一項:
9ω∈/D∗.
2.4 完整十進位表示
為了處理整數部分,令:
Rep10=Z×DN.
兩個特別的表示為:
r9=(0,9ω),r0=(1,0ω).
原始表示上:
r9=r0.
2.5 精確實數語義
本文以:
R
表示標準實數語義域。它不是具體程式語言的一個原生固定大小型別。
有限前綴鏈可以在實數域中取得極限:
n→∞lim(1−10−n)=1.
無限流則可以經求值:
Val(k,s)=k+j=1∑∞sj10−j.
得到:
Val(r9)=Val(r0)=1.
2.6 有限浮點格式
令:
Floatb,p,E
表示一個基數 b 、有效位數 p 、有限指數範圍 E 的浮點格式。若使用 IEEE 754 類格式, b 可以是 2 或 10 。
它不應直接被識別為:
R.
應至少分解為:
Float=Floatfinite⊔{+∞,−∞}⊔NaN.
其中:
- 有限二進位浮點數可精確解碼為 dyadic rational;
- +∞ 與 −∞ 屬於擴張語義,不是有限實數;
- NaN 不是實數值;
- +0 與 −0 提醒我們原始位元表示與數值等值不是同一關係。
2.7 區間與保守近似
令:
Int(R)={[a,b]∣a,b∈R,a≤b}.
一個區間不是單一近似數值,而是對未知精確值的保守包絡:
x∈[a,b].
它在跨域語義中非常重要,因為它把「近似」改寫成可驗證的包含關係,而非未標記的數值猜測。
2.8 七域總表
| 載體 |
典型元素 |
可直接表達 |
不能自動表達 |
| FinStr10 |
999 |
有限符號 |
無限流或實數值 |
| Q |
0.999 |
有限精確有理值 |
極限完成 |
| Stream10 |
9ω |
無限行為規格 |
機器已物理展開 |
| Rep10 |
(0,9ω) |
表示與進位歷史 |
原始表示相等 |
| R |
1 |
完整數值語義 |
有限儲存形式 |
| Float |
binary64 位元模式 |
有限機器運算 |
任意實數精確性 |
| Int(R) |
[0.99,1] |
可驗證包絡 |
唯一精確值 |
最後一行不是多餘的第七域;它提醒我們,跨域橋接不只分為「精確」和「錯誤」兩種,還有保守近似這一種第三語義。
三、跨域不是一種箭頭:七類橋接算子
3.1 精確重編碼
精確重編碼是來源與目標保留同一語義的表示變換:
E:X→Y,
若存在語義映射使:
[[E(x)]]Y=[[x]]X,
則稱 E 為精確重編碼。
例如,把一個有限十進位字解析為其精確有理值:
parseQ:Dn→Q.
3.2 餘遞歸展開
餘遞歸展開從有限規格取得整體無限行為:
Unf:Spec→Stream10.
若 nine 是「輸出 9 後回到自身」的有限狀態規格,則:
Unf(nine)=9ω.
這是無限行為的規定,不是將所有位數寫入有限記憶體。
3.3 完成提升
完成提升的輸入不是單點,而是圖表、鏈或近似系統:
Comp:Diag(C)→C.
對本例:
Comp((1−10−n)n)=1.
這不是:
1−10−n↦1
的逐項函數。
3.4 商同一化
給定等價關係 ∼ :
Q:X→X/∼,
把原始不同但語義等價的表示辨識為同一商類。
十進位案例:
Q(0,9ω)=Q(1,0ω).
3.5 捨入投影
捨入是從精確或高精度語義到有限格式的投影:
roundF,ρ:R→FloatF,
其中 ρ 是捨入模式。
通常:
roundF,ρ(x)=roundF,ρ(y)
並不推出:
x=y.
所以這不是精確重編碼。
3.6 區間包絡
區間包絡把精確值映射到含有它的可驗證區間:
encδ:R→Int(R),
x⟼[a,b],x∈[a,b],b−a≤δ.
它不選擇唯一近似點,而保存可證包含。
3.7 例外逃逸
某些機器運算不再落於原預期數值域。例如除以零、溢位或無效操作可能產生:
NaN,±∞.
這應表達為:
T:Float→Float,
而非誤寫成:
T:R→R.
例外值不是誤差條的一個普通端點;它們可能使相等、排序與後續算子規則改變。
四、完成與投影:兩個方向相反的跨域運動
4.1 有限近似到精確語義
第一個方向是:
有限前綴/有限規格⟶無限或精確語義.
在全 9 案例:
(9,99,999,…)⟶(0.9,0.99,0.999,…)Comp1.
此方向通常增加語義完成度;它不能被理解為一個一般可逆的有限計算。
4.2 精確語義到有限機器表示
第二個方向是:
精確實數語義⟶有限機器表示.
例如:
roundbinary64,ρ(x).
這通常減少資訊,並依格式、捨入模式與範圍限制決定結果。
4.3 兩個箭頭不是互逆
最危險的錯誤是把完成與捨入畫成同一條可逆箭頭:
R⇄Float.
事實上,有限浮點解碼可以是精確嵌入:
decodeF:Floatfinite/∼value↪Qb↪R,
但反向的 roundF,ρ 通常多對一。
其中 ∼value 至少可處理:
+0∼value−0
在純數值相等下的辨識,也可依格式處理其他同值原始編碼;若語義任務保留符號方向或原始格式資訊,則不應過早作此商。
4.4 「有限中的無限」與「無限中的有限」
這兩個常被混淆的短語應分開。
有限中的無限:一個有限程式、餘遞歸規格或 Cauchy name 可以有限地描述可任意展開或任意精化的無限語義。
無限中的有限:一個浮點值或有限區間是無限實數域中的有限資訊切片、近似或包絡。
前者是規格或名稱的有限性;後者是表示精度的有限性。它們不是彼此的反面,更不是同一種「無限壓縮」。
五、 0.999… 的四條精確路徑
5.1 有限字到有理值
對:
pn=9n,
有精確解析:
vn(pn)=1−10−n.
這一箭頭是:
Dn→Q.
每個輸出都嚴格小於 1 。
5.2 有理鏈到實數完成
令:
γ9:N→Q∩[0,1],
γ9(n)=1−10−n.
則:
Compsup(γ9)=nsupγ9(n)=1.
這是:
Dir↑(Q∩[0,1])→R
的箭頭。
5.3 有限規格到無限流再到實數
令 nine 為全 9 餘遞歸規格:
Unf(nine)=9ω.
再以:
Val:DN→[0,1]
求值:
Val(9ω)=k=1∑∞9⋅10−k=1.
5.4 表示商到同一實數
在完整表示域中:
(0,9ω)=(1,0ω).
但:
Val(0,9ω)=Val(1,0ω).
因此在求值核商中:
[(0,9ω)]=[(1,0ω)].
5.5 四路相干條件
真正需要的不是把四條路徑混為一條,而是證明它們相干:
Val(9ω)=Compsup(γ9)=nlimvn(pn)=1.
這是跨域橋接的最小可交換圖。若一個算子本體論無法寫出並檢查這張圖,它便無法安全宣稱「有限的東西跨入了無限/完成域」。
六、精確實數不是無限記憶體中的小數
6.1 Cauchy name
一種常見的精確實數表示不是儲存全部小數,而是給出可任意要求精度的近似器:
N:N→Q,
滿足對某個實數 x :
∣N(k)−x∣≤2−k.
N 稱為 x 的 Cauchy name 或 approximation oracle。
6.2 程式有限,語義可任意精化
一段有限程式可以計算:
k⟼N(k),
而不需一次存放 x 的全部數位。這正是「有限規格承載無限語義」的可計算版本。
但必須避免超譯:
有限程式存在⇒所有實數都可由它表示.
可計算實數在 R 中只是特殊子集。
6.3 相等判定的非對稱
若有兩個精確實數名稱 Nx,Ny ,且:
x=y,
那麼一旦精度足夠高,可能找到有限證據分離兩者。
但對任意可計算實數名稱,一般不能期待一個總會終止的程序判定:
x=y.
因此「能任意逼近」不等於「能以固定有限資源判定所有相等」。這與十進位雙重表示的問題相呼應:語義上的等號與有限觀察的可判定性不是同一件事。
6.4 精確實數算子的正確型別
精確實數函數通常不應被理解為:
f:R→R
在機器內直接操縱不可見的完整實數,而應實作為名稱變換:
f:Name(R)→Name(R),
並滿足:
[[f(Nx)]]=f([[Nx]]).
這正是跨域橋接的相干要求。
七、浮點數不是失敗的實數,而是另一種操作域
7.1 有限浮點的精確解碼
對一個有限二進位浮點值 f ,可定義:
decode2(f)∈Q2,
其中:
Q2={2nmm∈Z,n∈N}.
因此,有限浮點值本身通常不是「近似而無法說清的數」,而是一個完全精確的 dyadic rational;近似發生在它相對於目標實數時。
7.2 二進位 0.1 的典型分離
十進位有理數:
101
不是 dyadic rational。因此,在有限二進位浮點格式中通常無法被精確表示。某個 binary64 值可以很接近 1/10 ,卻仍是另一個精確有理數。
這不是硬體壞掉,而是:
Q2⊊Q.
7.3 有限 9 字面值被捨入成 1 的陷阱
在某一格式與捨入模式下,足夠接近 1 的有限十進位字面值可能被解析或捨入為浮點數 1 。這個現象不是:
0.n 位99…9=1
在精確實數中突然成立;它是:
roundF,ρ(1−10−n)=roundF,ρ(1)
在有限格式中成立。
兩種等號不能互換。
7.4 +0 與 −0
IEEE 754 類格式可保留兩個零的原始表示:
+0,−0.
在通常數值比較中它們相等;但符號複製、某些倒數、分支或 total order 任務可能保留差異。
這提供一個很小但直接的教訓:
是否商化 +0 與 −0 ,取決於指定觀察與任務;不能由「它們都代表零」推出所有算子都應忽略符號。
7.5 NaN 與無限大
浮點域含有不應直接塞回 R 的資料:
NaN,±∞.
尤其 NaN 的比較與傳播規則顯示,單一「數值相等」不是所有操作的共同底層。若模型需要處理機器實作,例外域必須成為明示的和型別,而不是註腳。
八、區間語義:把誤差改寫為包含關係
8.1 點近似的不足
若寫:
x≈x,
卻未指定誤差度量、上界或方向, ≈ 幾乎沒有可計算內容。
8.2 區間 concretization
對區間:
I=[a,b],
定義其 concretization:
γ(I)={x∈R∣a≤x≤b}.
若計算結果 I′ 滿足目標語義:
y∈γ(I′),
則它是保守正確的,即使 I′ 不退化成單點。
8.3 有向捨入與可驗證包絡
以向下與向上捨入計算端點,可構造包住精確結果的區間。例如對 x,y :
round↓(x+y)≤x+y≤round↑(x+y).
這把浮點捨入由「不可靠誤差」轉化為「可證包絡」。
8.4 抽象解釋形式
若 A 是抽象域,則可使用:
α:P(R)→A,
γ:A→P(R),
並要求:
α(S)⊑a⟺S⊆γ(a).
這提供有限抽象狀態與無限語義集合之間的嚴格橋梁。
8.5 區間不是實數的低級替代
區間保留的是不同資訊:
[a,b]
表達「值尚未精確定位,但保證位於此範圍」。在不確定性、錯誤控制與物理量測中,它常比一個未附誤差的浮點點值更強。
九、跨域橋接算子的正式規格
9.1 為何普通函數簽名不夠
一個普通函數簽名:
B:X→Y
只能保證輸入輸出型別相符。它沒有告訴我們:
- X 與 Y 中的元素各自代表什麼;
- B 是否保留語義;
- B 是否捨入、遺失資訊或加入不確定性;
- B 是否只對某些輸入定義;
- 例外值是否仍屬原語義域;
- 多個橋接是否可安全複合。
因此,跨域算子必須比裸函數攜帶更多資料。
9.2 橋接規格
定義一個跨域橋接規格:
B=(X,Y,SX,SY,[[−]]X,[[−]]Y,B,B,κ,C,ε,Exc,Exec),
其中:
- X,Y 是原始載體;
- SX,SY 是各自的語義域;
- [[−]]X:X⇀SX 與 [[−]]Y:Y⇀SY 是可能部分定義的語義映射;
- B:X⇀Y 是原始層橋接;
- B:SX⇀SY 是語義層對應;
- κ 是橋接種類;
- C 是正確性證書;
- ε 是誤差、精度或包含資料;
- Exc 是例外值與例外傳播資料;
- Exec 是執行語義及資源條件。
本文允許部分函數,因為解析失敗、除以零、超出格式範圍與不終止計算都不能誠實地偽裝成全函數。
9.3 六種正確性證書
跨域算子至少可能具有下列六種證書。
| 證書 |
形式 |
含義 |
| 精確相干 |
[[Bx]]Y=B([[x]]X) |
語義嚴格保留 |
| 商相干 |
QYB=BQX |
原始差異在商後良定義 |
| 誤差界 |
d([[Bx]]Y,B[[x]]X)≤ε(x) |
近似誤差可控 |
| 包含相干 |
B[[x]]X∈γ(Bx) |
結果保守包絡真值 |
| 精化關係 |
Bk+1(x)⊑Bk(x) |
精度提高、資訊增加 |
| 例外相干 |
Exc(x) 明示 |
離開普通語義域的原因可追溯 |
這六種證書不可混用。例如「數值看起來很接近」不是誤差界;「代表同一商類」也不是原始相等。
9.4 橋接種類 κ
本文採用:
κ∈{Encode,Unfold,Complete,Quotient,Project,Enclose,Escape}.
各類型分別是:
| 類型 |
資訊方向 |
典型例子 |
| Encode |
同語義換表示 |
十進位字到有理數 |
| Unfold |
有限規格到無限行為 |
迭代規則到 9ω |
| Complete |
近似圖表到完成物件 |
鏈到上確界 |
| Quotient |
遺忘指定差異 |
雙重十進位表示 |
| Project |
精確/高階到有限格式 |
實數捨入為 float |
| Enclose |
精確值到保守集合 |
實數到區間 |
| Escape |
普通域到例外域 |
除零到 ∞ 或 NaN |
9.5 圖表輸入與狀態輸入
必須明確區分:
T:X→X
與:
Comp:Diag(X)→X.
T 作用於一個狀態; Comp 作用於一個由多個狀態與過渡構成的圖表。
所以:
Comp((xn)n)=L
不表示:
∃n,T(xn)=L.
這是從 0.999… 推出的第一條跨域型別律。
十、相干圖:跨域轉換何時真正成立
10.1 精確可交換圖
若 B 是精確橋接,應有:
X↓⏐[[−]]XSXBBY↓⏐[[−]]YSY
以公式表示:
[[B(x)]]Y=B([[x]]X).
例如,有限十進位字的精確有理解析可取:
parseQ=idQ.
10.2 完成圖
完成圖的來源不是 X ,而是圖表範疇:
Dir↑(Q∩[0,1])↓⏐pointwiseembedDir↑(R)CompsupsupR↓⏐idR
對全 9 鏈:
Compsup((1−10−n)n)=1.
10.3 近似可交換圖
對浮點捨入,要求通常應改寫為:
d(decodeF(roundF,ρ(x)),x)≤εF,ρ(x).
如果 x 可表示,則:
εF,ρ(x)=0.
若不可表示,誤差界依格式、捨入模式與 x 所在的 binade 而變。
10.4 包含可交換圖
對區間計算,正確性不是點等式,而是:
B([[x]]X)∈γ(B(x)).
對區間加法:
[a,b]⊕[c,d]⊇{u+v∣u∈[a,b],v∈[c,d]}.
若端點使用有向捨入,這個包含可成為機器可驗證保證。
10.5 商相干圖
令:
QX:X→X/∼X,QY:Y→Y/∼Y.
若 B 要下降為商算子 BQ ,需要:
X↓⏐QXX/∼XBBQY↓⏐QYY/∼Y
亦即:
x∼Xx′⇒B(x)∼YB(x′).
10.6 例外圖
若 B 可能離開普通語義,應把目標寫成和型別:
B:X→Y+Exc.
而非假裝:
B:X→Y
永遠成立。
這對浮點 NaN 、溢位、除零、字串解析失敗及未終止計算都重要。
十一、橋接的複合:精確、誤差與包絡如何累積
11.1 精確橋接可複合
令:
B1:X→Y,B2:Y→Z
皆具有精確相干:
[[B1x]]Y=B1[[x]]X,
[[B2y]]Z=B2[[y]]Y.
則:
[[B2(B1x)]]Z=(B2∘B1)[[x]]X.
這是跨域算子可以形成範疇式組合的最低條件。
11.2 誤差橋接的複合
若:
dY([[B1x]]Y,B1[[x]]X)≤ε1(x),
且 B2 在相關區域為 $L_2$-Lipschitz:
dZ(B2(u),B2(v))≤L2dY(u,v),
再假定第二橋接誤差不超過 ε2 ,則由三角不等式:
dZ([[B2B1x]]Z,B2B1[[x]]X)≤L2ε1(x)+ε2(B1x).
這給出跨域誤差如何累積的最低公式。它也是為何「大致相近」不足以做通用算子語言:沒有誤差型別與複合律,長鏈一旦變長便失去可判定性。
11.3 包絡橋接的複合
若:
B1(x)∈γY(B1x),
且:
B2(y)∈γZ(B2y)
對所有允許 y 成立,則必須額外驗證 B2 對 γY(B1x) 的全部可能值均保守。不能只把中間區間的中點送入下一步。
這是區間分析中依賴關係、過度包絡與分割策略出現的結構原因。
11.4 例外的複合
若:
B1(x)=Exc,
則 B2(B1x) 可能未定義、傳播例外或進行恢復。這必須由例外代數指定:
propagate,handle,retry.
不應把所有例外都折疊成某個巨大數值或 0 。
11.5 跨域鏈的信任預算
一條實作鏈:
文字→解析→浮點→區間→決策
只有在每一箭頭都具有明示證書時,終點的可信度才可以回溯。這可稱為跨域鏈的信任預算:
Trust=i⋂Certificate(Bi).
任一未聲明箭頭都可能成為整條鏈的真實 GAP。
十二、程式語言中的 0.999… :解析、求值與執行必須分開
12.1 省略號不是一般程式字面值
在大多數程式語言中:
0.999...
不是一個普通有限浮點字面值。它要麼是語法錯誤,要麼必須被解釋為某種延遲資料結構、生成器、符號表達式或自訂精確實數語法。
因此,直接問「電腦裡的 0.999… 等不等於 1 」先缺少型別。
12.2 有限十進位字面值
一個有限字面值可先解析為精確十進位有理數:
parse10:Lit10fin→Q.
再依目標型別轉換:
QroundF,ρFloatF.
此時:
0.999999
代表某個有限有理數;它在精確語義中小於 1 ,即使在特定浮點格式中可能捨入為同一個機器值。
12.3 無限流字面值
若語言提供 lazy stream:
repeat(9)
可作為有限程式描述:
9ω.
但此物件的型別應是:
StreamD,
而非:
Float.
若要取得其實數語義,需另外給:
evalStream:StreamD→ExactReal.
12.4 近似請求式求值
精確實數不必把全部數位計算完。可提供:
approx:ExactReal×N→Q,
使:
∣approx(x,k)−x∣≤2−k.
這是「無限語義可以被有限請求逐步顯化」的正確工程形式。
12.5 整體語義與物理執行
一個程式中的:
repeat(9)
可以在指稱語義中代表 9ω ;但某次執行只會在有限時間輸出有限前綴:
trace(t)=9N(t).
因此:
evalStream(repeat(9))=1
不表示硬體在有限時間內已經列印無限個 9 。
12.6 編譯器與語義模型不可互相偷換
若編譯器把一個有限小數 literal 直接轉為 binary64,這是一條:
Text→Float
的捨入鏈。
若定理把 0.999… 定義為實數極限,這是一條:
Chain(Q)→R
的完成鏈。
兩者都可合法,但其正確性條件根本不同。把前者拿來證明後者,或把後者當成前者的執行描述,都會產生型別錯置。
十三、同一實數系統中的轉換,到底改變了什麼
13.1 三種「同一」
說「都在同一個實數系統下」時,至少有三種可能。
| 名稱 |
形式 |
十進位例子 |
| 原始相等 |
p=q |
(0,9ω)=(1,0ω) |
| 指稱相等 |
Val(p)=Val(q) |
兩者皆為 1 |
| 商後相等 |
[p]=[q] |
求值核商中相等 |
三者均可被稱為「同一」,但只有後兩者在此例成立。
13.2 在 R 中沒有數值狀態跳躍
若:
xn=1−10−n,
那麼每個 xn 是 R 的元素,且:
xn<1.
完成:
nsupxn=1
不是 xn 在某個有限 n 經由內部算子跳成 1 。它是由整條鏈決定的新對象或新判定。
因此:
完成=同一載體內的有限狀態更新.
13.3 但確實存在結構改變
雖然不是一個物理跳躍,完成與商化仍可改變結構:
- 載體改變:
Dir↑(Q)→R;
- 資訊序改變: 有限近似鏈被其上確界完成;
- 同一性改變:
Rep10→Rep10/∼Val;
- 拓樸結構改變: 十進位流的全不連通表示經端點黏合後可得到連通區間;
- 可用算子改變: 某些表示算子可下降,有些則不能。
這些可稱為表示—語義結構轉換。若要使用「相變」一詞,必須聲明它是結構層的命名,而非熱力學或物理時間中的相變。
13.4 五種狀態變化不能混寫
| 類型 |
形式 |
是否在同一載體內 |
| 動力狀態更新 |
T:X→X |
是 |
| 跨型別轉換 |
B:X→Y |
否 |
| 完成 |
Comp:Diag(X)→X |
否,且輸入是圖表 |
| 商同一化 |
Q:X→X/∼ |
否,改變同一性 |
| 投影/捨入 |
round:R→F |
否,通常失資訊 |
任何「算子導致狀態改變」的理論都必須先判斷自己在說哪一列。
13.5 相變的最低技術條件
若要稱一條轉換為某種相變,至少要給:
(X,Λ,Tλ,I,E),
其中 Λ 是控制參數, I 是不變量或序參量, E 是相的等價準則。
單獨的:
Comp(γ)=L
只證明完成。它不自動給出 λc 、相分類或不變量跳變。
13.6 十進位案例的正確命名
因此,本例可以精確稱為:
一個由有限前綴生成、餘遞歸展開、實數完成與表示商化共同構成的跨域相干系統。
它可以成為相變、語義轉換、程序本體論與跨域算子的測試模型;但自身不是一個已證物理相變。
十四、型別論表達:讓跨域錯接在語法層失敗
14.1 最小型別族
可用抽象型別區分:
FinDecimal,DecimalStream,Rational,ExactReal,Float,Interval.
它們不應被隱式強制轉型為同一個「Number」。
14.2 基本算子簽名
核心算子可寫成:
prefixEval:FinDecimal→Rational,
unfoldNine:Unit→DecimalStream,
streamEval:DecimalStream→ExactReal,
complete:BoundedDirectedChain(Rational)→ExactReal,
roundF,ρ:ExactReal→FloatF,
decodeF:FiniteFloatF→ExactReal,
enclosek:ExactReal→Interval.
僅由簽名即可阻止三種錯誤:
complete(0.999)
沒有型別,因為單一有理數不是 directed chain;
round(9ω)
沒有型別,除非先給流的實數語義;
streamEval(999)
沒有型別,除非先給有限字到流的延拓規則。
14.3 和型別處理浮點例外
不應把:
NaN
塞進:
ExactReal.
可使用:
MachineResult(F)=FiniteFloat(F)+PosInf+NegInf+NaN.
若一個演算法要求其結果為實數,型別系統應迫使它處理:
NaN與±∞
的分支。
14.4 商型別處理表示同一
對十進位表示,設:
DecReal10=Rep10/∼Val.
則:
η:Rep10→DecReal10
把進位等價建成型別內路徑。
浮點中若任務只關心數值,也可定義:
FloatValueF=FiniteFloatF/∼num,
但這一商不應自動套用到需要保留 +0/−0 或原始位元模式的任務。
14.5 依賴型誤差證書
若 B 是近似橋接,輸出不應只是:
y:Y,
而應攜帶:
(y,π),
其中:
π:d([[y]]Y,B(x))≤ε(x).
如此,誤差不再是文件末尾的口頭保證,而是算子輸出型別的一部分。
14.6 計算效應與執行層
解析失敗、例外、非終止、捨入模式讀取、硬體旗標與資源消耗都可被視為效應。抽象地:
run:ProgramA→EffectA.
它不能與純語義函數:
[[−]]:ProgramA→A
不加條件地混同。
十五、完成—投影雙向語義作為算子本體論的必要層
15.1 先前框架的擴充
前一篇總論的框架為:
O=(Σ,M,I,Comp,V,GV,Q,Exec).
為了處理有限機器與精確語義,本文加入:
O↔=(O,Name,Lift,Project,Enclose,Err,Exc).
其中:
- Name :有限程序對精確/無限對象的名稱或規格;
- Lift :從近似圖表或名稱到完成語義的提升;
- Project :從精確語義到有限格式的投影;
- Enclose :保守近似的包絡;
- Err :誤差與精化資料;
- Exc :例外域。
15.2 為何這不是多加幾個模組
若沒有 Lift ,框架不能區分:
有限前綴與完成實數.
若沒有 Project ,框架不能區分:
實數語義與機器格式.
若沒有 Err ,框架不能判斷一條近似鏈可否安全複合。
若沒有 Exc ,框架會把非數值結果錯塞回數值域。
所以這不是擴張名詞,而是使跨域算子真正可操作的最低結構。
15.3 通用性不等於脫離所有數學
「算子本體論不完全依賴其他數學理論」不應理解成它可以不依賴任何證明工具。那樣只會失去可驗證性。
正確的目標是:
算子本體論提供一個通用接口語言;領域論、拓樸、範疇論、型別論、數值分析與標準規格為各種橋接提供局部存在、相干與誤差證明。
其關係可寫成:
算子本體論=跨域協議層,
而非:
算子本體論=取代全部數學的單一理論.
15.4 可移植的核心,不可偷渡的結論
可移植的核心是:
- 型別;
- 算子;
- 語義;
- 相干證書;
- 資訊方向;
- 誤差或包含;
- 商與下降;
- 例外;
- 執行條件。
不可偷渡的結論是:
- 所有完成都存在;
- 所有投影都可逆;
- 所有語義等值都可有限判定;
- 所有浮點結果都安全;
- 所有跨域相似都是同構;
- 所有數學完成都是物理完成。
15.5 最小跨域完備性原則
本文提出以下方法論原則。
最小跨域完備性原則。 一個宣稱通用的算子框架,至少應能把「有限表示/規格、近似圖表、無限或精確語義、有限機器投影、表示商與例外域」放入不同型別,並為各橋接指定精確、誤差、包絡、商或例外證書。
0.999… 正好是能同時觸發全部要求的最小測試例。
十六、IEEE 754 式浮點格式作為跨域測試場
16.1 浮點格式不只是「精度較低的實數」
一個浮點格式同時規定:
- 可表示的有限數值集合;
- 原始位元編碼;
- 捨入模式;
- 算術運算;
- 轉換規則;
- 例外與旗標;
- 比較與排序規則。
所以:
Float=一個僅少幾位小數的 R.
它是一個有額外操作語義的有限機器域。IEEE 754-2019 明確規定二進位與十進位浮點格式、捨入、特殊值與運算方法,正好體現本文所說的「一個表示域需要完整操作協議」。IEEE 754-2019
16.2 有限值、零、無限與 NaN 的分型
可將浮點原始值概念化為:
Float=Normal⊔Subnormal⊔SignedZero⊔Infinity⊔NaN.
不同部分需要不同語義橋接:
| 原始類別 |
典型語義域 |
橋接狀態 |
| normal/subnormal |
Qb↪R |
可精確解碼 |
| +0,−0 |
0∈R 或帶符號零語義 |
是否商化取決於任務 |
| +∞,−∞ |
擴張實數或例外域 |
不屬有限 R |
| NaN |
例外/未定義/payload 域 |
不應嵌入 R |
16.3 解碼不是反向捨入
對可解碼有限值:
decodeF:FiniteFloatF→R
可精確給出它所代表的有理數。
反向:
roundF,ρ:R→FiniteFloatF
則受限於有限格點。一般:
decodeF∘roundF,ρ=idR.
在可表示值的子集上才可能有:
decodeF∘roundF,ρ=id.
16.4 捨入模式是算子參數,不是背景噪音
同一個實數 x 在不同 ρ 下可能投影到不同浮點值:
roundF,↓(x),roundF,↑(x),roundF,nearest(x).
因此捨入不應只寫成:
roundF,
而應至少寫成:
roundF,ρ.
否則算子本體論把一個會改變結果的控制條件錯誤地隱藏了。
16.5 二進位與十進位不是誰更真
二進位與十進位格式對不同有理數有不同的精確子域:
Q2=Q10.
其中:
Q10={2a5bmm∈Z,a,b∈N}.
十進位有限小數如 0.1 在十進位格式中可精確,卻通常不在有限二進位格式中精確;反過來,分母含純 2 冪的數在二進位格式中自然精確。
這是表示域結構差異,不是「一方是真數、另一方是假數」。
16.6 浮點等於與語義等於
必須分開:
f=g作為位元或格式值,
decode(f)=decode(g)作為實數語義,
f≡cmpg作為某個浮點比較結果。
+0 與 −0 是第一、第二層不同而某些比較層相同的典型; NaN 則提醒我們某些比較不形成通常等價關係。
16.7 浮點測試對算子本體論的意義
浮點系統迫使框架同時回答:
- 原始表示是什麼?
- 解碼後的語義是什麼?
- 哪些操作是正確捨入?
- 哪些操作會進例外域?
- 哪些原始差異在何種任務下可商化?
- 誤差怎樣隨多步複合累積?
若框架無法回答這六點,就不能宣稱自己已可處理有限機器上的「算子跨域」。
十七、核心定理與命題
17.1 命題一:完成不是有限狀態遷移
令:
xn=1−10−n.
則:
∀n∈N,xn<1,
但:
nsupxn=1.
故任何把:
Comp((xn)n)=1
解釋為存在有限 N 使:
xN=1
的模型都不正確。
意義。 完成算子的輸入型別必須是鏈、網、序列、濾子或其他圖表,而不是單一有限狀態。
17.2 命題二:十進位流—完成相干
令:
pn=9n,s9=9ω.
則:
prefn(s9)=pn,
並且:
Val(s9)=Compsup((vn(pn))n)=1.
證明。 vn(pn)=1−10−n ,而該單調鏈上確界為 1 ;無限級數求值同樣為 1 。證畢。
意義。 餘遞歸展開與完成提升可在此案例中相干,但它們仍為不同算子。
17.3 命題三:捨入投影一般非單射
令 F 為有限浮點格式, ρ 為固定捨入模式。因:
∣R∣>∣FloatF∣,
所以:
roundF,ρ:R→FloatF
不可能為單射。
故存在:
x=y,
但:
roundF,ρ(x)=roundF,ρ(y).
意義。 浮點投影後的相等不能反推精確實數相等。
17.4 命題四:有限浮點解碼具有局部精確性
若 f 為非例外有限格式值,則存在:
rf∈Qb
使:
decodeF(f)=rf.
若把同一數值的多個原始格式表示依任務適當商化,則解碼可視為嵌入到 R 的一個有限子集。
意義。 浮點的問題通常不是「每個值都含糊」,而是運算與轉換相對於欲表達的精確目標可能產生投影誤差或例外。
17.5 定理五:精確橋接的複合
若:
[[B1x]]Y=B1[[x]]X
與:
[[B2y]]Z=B2[[y]]Y,
則:
[[B2(B1x)]]Z=(B2∘B1)[[x]]X.
證明。 代入第二式中的 y=B1x ,再使用第一式。證畢。
意義。 有了每段相干證書,跨域鏈才可被組合;否則「很多步都差不多對」不構成整體正確性。
17.6 定理六:商下降準則
令:
Q:X→X/∼.
對:
B:X→Y,
若存在:
B:X/∼→Y
使:
B∘Q=B,
則必有:
x∼x′⇒B(x)=B(x′).
反之,若此保持條件成立,則 B([x])=B(x) 良定義。
意義。 任何打算先把表示商化、再讓算子作用的方案,都必須做這個檢查。
17.7 命題七:有限觀察不能一般地決定精確相等
令精確實數以任意精化名稱給出。對每個固定精度 k ,都可存在不同實數 x=y ,其前 k 層近似相同或落在同一誤差包絡中。
因此:
固定有限精度相同⇒精確實數相等.
這也是為何:
有限前綴皆不足以獨立輸出 1
與:
0.999…=1
可以同時成立。
17.8 命題八:例外域不可由普通等號吸收
若:
NaN∈/R,
則不存在保持普通實數算術全部性質的嵌入:
Float→R.
任何把全部浮點資料直接視為實數的模型,必然遺失例外語義、比較語義或運算語義之一。
十八、六個測試案例
案例 A:有限全 9 前綴
輸入:
pn=9n.
正確輸出:
vn(pn)=1−10−n<1.
不可接受輸出:
vn(pn)=1.
除非已明示改用浮點捨入,而非精確有理求值。
案例 B:全 9 無限流
輸入:
s9=9ω.
正確鏈:
s9Val1.
不可接受說法:
機器必須先把所有 9 寫完,才能使流具有語義。
因為流的餘遞歸規格、其指稱語義與物理輸出痕跡是不同層。
案例 C:十進位字面值到 binary64
輸入:
"0.1".
正確鏈:
Textparse10101roundbinary64,ρf.
語義上:
decode(f)=101
通常成立。
不可接受說法:
binary64 中的 f 就是十進位的 0.1 。
案例 D:足夠接近 1 的有限字面值
輸入:
1−10−n.
當 n 夠大時,對某格式與捨入模式可能:
roundF,ρ(1−10−n)=roundF,ρ(1).
這只證明同一浮點格點,不證明原始精確有理數相等。
案例 E: +0 與 −0
輸入:
+0,−0.
若任務是純實數值:
decode(+0)=decode(−0)=0.
若任務需保留符號、位元序、極限方向或特定浮點操作,則不應先商化。
案例 F: NaN
輸入:
NaN.
正確處理是進入例外/非數值分支,而不是任選一個實數 x 使:
NaN=x.
此案例防止「所有符號都必有一個單一實數本體」的過度簡化。
十九、常見失敗模式:跨域 GAP 真正在哪裡
19.1 把完成誤寫成最後一步
錯誤形式:
x0→x1→⋯→xN=1.
對全 9 前綴鏈,這不存在。
正確形式:
Comp((xn)n)=1.
錯誤的來源是把圖表層算子偽裝成狀態層算子。
19.2 把無限流誤寫成已實體化的記憶體內容
錯誤形式:
9ω=某段有限記憶體中的全部 9.
正確形式是:
有限規格Unfold無限行為語義.
機器可以在有限時間內保存規格、按需產生有限前綴、或計算要求精度的近似;它不需要真的儲存無限資料。
19.3 把浮點相等誤寫成實數相等
錯誤形式:
roundF(x)=roundF(y)⇒x=y.
這違反命題三。捨入是多對一投影。
19.4 把實數等值誤寫成原始表示相等
錯誤形式:
Val(p)=Val(q)⇒p=q.
十進位雙重表示直接反駁此式。
19.5 把誤差小誤寫成誤差已被控制
錯誤形式:
x≈x.
若沒有指定:
d(x,x)≤ε
或:
x∈γ(I),
就不能把近似帶入後續定理。
19.6 把例外值當作數值邊界
+∞ 有時能在擴張實數中被處理; NaN 則不是「非常大的數」也不是「未知但必為某個實數」。
錯誤把例外值塞進普通數值域會使:
比較,排序,傳播,錯誤處理
全部失去明確語義。
19.7 把不同跨域箭頭全叫作投影
完成通常把近似圖表映到規範結果;捨入把精確語義映到有限格點;商化辨識表示;區間包絡保留可能集;解析改變編碼。
它們不應全被叫成:
P:X→Y.
名字可以短,類型與證書不能短。
19.8 把範疇論圖畫成證明本身
可交換圖是對需要證明之相干的精確表述,不是自動成立的理由。每一個正方形都必須由定義、定理、誤差界或泛性質支持。
所以:
畫出圖⇒圖可交換.
這一點尤其重要於跨域論證:圖能暴露 GAP,但不能替代填補 GAP。
二十、跨域算子演算:從口頭轉換到可驗證鏈
20.1 一條橋接鏈的標準形式
任何跨域敘述可正規化為:
X0B1X1B2⋯BnXn,
並為每一段登錄:
(Xi,[[−]]i,Bi,κi,Ci,εi,Exci).
這使自然語言中的「變成」「映射」「顯化」「收斂」「投影」可以被拆成可檢查元件。
20.2 十進位的標準橋接鏈
可寫成:
Spec9UnfoldStream10ValR,
以及:
FinStr10Nv∙Dir↑(Q)CompsupR.
再以:
Rep10QValDecReal10≅R
處理表示同一。
20.3 機器數值的標準橋接鏈
一個有限十進位 literal 進入二進位浮點可寫成:
TextLexFinDecimalparseQQroundF,ρFloatF.
為了驗證其相對於目標實數的意義,再加:
FloatFfinitedecodeFR.
整條鏈的真實語義不是「字串等於浮點」,而是:
decodeF(roundF,ρ(parseQ(s)))
與原字面值語義之間的精確或近似關係。
20.4 升階、降階與橫移
本文把跨域箭頭依資訊方向分成三種。
| 方向 |
形式 |
例子 |
| 升階 |
近似/名稱/圖表到完成語義 |
Cauchy name 到實數 |
| 降階 |
精確語義到有限表示 |
實數到 float |
| 橫移 |
同語義域的重編碼 |
二進位字串到 dyadic rational |
商化不完全屬於三者之一;它改變的是可區分性:
X→X/∼.
20.5 可逆性光譜
對橋接 B:X→Y ,不要只問「能不能逆」,而應判斷:
- 是否有嚴格逆:
B−1:Y→X;
- 是否有左逆或右逆;
- 是否只在子域可逆;
- 是否只能選擇一個集合論截面;
- 是否存在連續截面;
- 是否可由區間或候選集合重構;
- 是否只能以機率或後驗分布重構。
浮點捨入通常在整個 R 上沒有逆;十進位求值可有集合論代表選擇,但不存在自然的全域連續正規形;區間包絡通常只能提供候選集合。
20.6 保持量表
每一橋接還需標記保留什麼:
| 性質 |
可能狀態 |
| 數值 |
精確保留/近似保留/不保留 |
| 順序 |
保留/僅單調/不保留 |
| 拓樸 |
連續/不連續/未定義 |
| 代數運算 |
同態/近似同態/不保留 |
| 進位歷史 |
保留/遺忘 |
| 資訊量 |
增加/降低/改編碼 |
| 可執行性 |
可計算/半可計算/不保證 |
| 例外行為 |
無/可傳播/可恢復 |
沒有這張保持量表,「跨域轉換」仍只是一句抽象敘述。
20.7 跨域橋接的最小證明格式
對每個 B:X→Y ,建議提供以下七項:
- 型別:
B:X→Y;
- 語義:
[[−]]X,[[−]]Y;
- 分類:
κ(B);
- 相干方程、誤差界或包含關係;
- 可逆性或不可逆性證明;
- 商下降條件;
- 例外與執行條件。
這就是本文所說的跨域轉換證書。
二十一、面向程式語言的最小中介表示
21.1 為何需要中介表示
若未來的 EML、視覺化程式語言或 AI 程式代理要安全地操作不同數值與符號域,僅靠型別名稱例如:
float,decimal,real
仍不夠。它們需要知道轉換是否精確、是否捨入、是否可逆、是否會產生例外,以及誤差能否累積。
21.2 橋接中介表示
可把一個橋接節點表示為:
BridgeNode=(sourceType,targetType,kind,semanticMap,certificate,loss,exceptions,cost).
其中:
- kind 為七類橋接之一;
- certificate 可為等式、誤差界、區間包含或商下降證明;
- loss 記錄不可逆資訊;
- exceptions 記錄可能例外;
- cost 記錄時間、空間、精度或查詢成本。
21.3 一個抽象程式片段
不把它當作特定語言語法,而把它讀為型別化意圖:
prγxfI:FinDecimal,=prefixEval(p):Rational,:BoundedDirectedChain(Rational),=complete(γ):ExactReal,=roundF,ρ(x):FloatF,=enclosek(x):Interval.
其中:
x,f,I
不是可任意互換的三種「數」。
21.4 靜態檢查可阻止的錯誤
一個具備橋接資料的編譯器或 AI 代理至少可以拒絕:
- 把 NaN 當作 ExactReal ;
- 未提供誤差界就以浮點值證明實數不等式;
- 對單一有限前綴呼叫完成算子;
- 將流直接塞入有限浮點格式;
- 在未驗證下降條件下先商化再套用表示算子;
- 將不同捨入模式視為同一算子;
- 將未終止的精確實數判等視為已完成決策。
21.5 執行期追蹤
跨域節點也可產生可視化追蹤:
Trace(B,x)=(來源載體,目標載體,證書,誤差,例外,成本).
這與 PHOSPHOR 式的複雜度觀測可以自然接合:不只觀察程式跑了幾步,也觀察它每一步跨了什麼語義域、失去多少資訊、是否仍有可追溯的正確性證書。
21.6 AI 代理的實務含義
對 AI 而言,跨域錯誤常不是演算法不會算,而是:
符號域→數值域→近似域→決策域
中有未被標記的轉換。
若 AI 代理以橋接證書作為內部資料,它可以在回答或執行前主動提出:
此處由精確有理數降至 binary64,數值語義只保留至指定誤差;若後續需證明等號,應改用區間或精確實數。
這正是算子本體論從哲學語言進入可操作代理架構的一條路。
二十二、驗證階梯:從紙上相干到機器可檢查
22.1 第一階:純數學核心
可先在不涉及完整 IEEE 細節的模型中形式化:
- 有限全 9 前綴:
vn(9n)=1−10−n;
- 單調有界鏈:
nsup(1−10−n)=1;
- 十進位流求值:
Val(9ω)=1;
- 進位等價:
(0,9ω)∼Val(1,0ω);
- 商下降準則;
- 精確橋接複合定理。
這一階可在 Lean、Coq、Agda 或其他證明助理中處理。
22.2 第二階:玩具浮點模型
在小基數、有限尾數、有限指數的玩具格式中定義:
ToyFloatb,p,E.
並證明:
- 有限值的精確解碼;
- 捨入的範圍與單調性;
- 捨入非單射;
- +0/−0 的原始與數值關係;
- 例外域與普通域分離;
- 有向捨入的區間包絡正確性。
先完成玩具模型,才能知道後續針對完整標準的形式化究竟增加了哪些真實複雜度。
22.3 第三階:標準規格映射
再把:
ToyFloatb,p,E
映射到 IEEE 754 實際格式族,增加:
- normal 與 subnormal;
- 多種捨入模式;
- 例外旗標;
- NaN payload;
- 字串轉換;
- fused operations;
- total order 與比較謂詞。
這一步不應只依賴測試輸出,而要保留規格條款到形式模型的可追溯映射。
22.4 第四階:實作與證明的精化
理想鏈為:
抽象實數定義⇝精確名稱演算法⇝區間/浮點實作⇝機器碼.
每次精化都應有:
Refinei+1⊨Speci.
這正是把「算子跨域」落實成可驗證軟體的方式,而不是只在最終輸出做幾個數值比對。
22.5 第五階:反例驅動測試庫
最低測試庫至少應含:
| 測試 |
要防止的錯誤 |
| 0.999… |
完成被誤寫為最後一步 |
| 0.1 到 binary64 |
十進位 literal 被誤當精確二進位值 |
| +0/−0 |
數值商化過早 |
| NaN |
例外被塞入實數 |
| 溢位/下溢 |
有限格式被誤當無界域 |
| directed rounding |
誤差無方向 |
| 迭代計算 |
誤差複合被忽略 |
| 雙重十進位表示 |
指稱相等被誤當字串相等 |
這個測試庫可以成為未來跨域算子語言或 AI 代理的回歸測試核心。
二十三、研究邊界與可否證性
23.1 若橋接無法附證書
若一個宣稱的跨域算子既沒有:
精確方程,誤差界,包含關係,商下降證明,或例外規格,
則它暫時只是候選映射,而不是已建立橋接。
23.2 若框架只能事後命名
若框架對任何結果都說:
這是某種完成、投影或 Ω 轉換,
但無法預先判定其輸入型別、保留量與失敗條件,則它不是通用演算,只是回顧性命名。
23.3 若不同領域不能共享證書
本文不要求所有領域同構;但至少要求可比較:
Exact,Approx(ε),Enclose(γ),Quotient(∼),Exception.
若連這些證書型別都無法跨域對照,則「通用算子本體論」的範圍必須收縮為某個特定學科內的局部理論。
23.4 若完成被誤用於不存在的界
不是每條鏈都有完成值。若:
xn=n,
在普通實數域中沒有有限實數上確界;若:
xn=(−1)n,
它不是單調鏈,且不收斂。
所以:
Comp
必須帶有適用條件,不能成為「無限過程都會自動給出終點」的萬用詞。
23.5 若投影被誤用為本體遺失
一個投影失去資訊,並不自動表示來源本體不存在或被毀滅。它只表示該表示算子不能由結果唯一重構來源。
因此:
投影不可逆⇒來源不存在.
這與本體—表象接口論的限制一致:來源、表示、觀察與重構必須分開。
23.6 若物理實現沒有可區辨內容
從:
程式可表達精確實數名稱
不能推出:
自然界以該名稱語義運作.
算子本體論若要對物理提出主張,仍需給出可觀察、可測量、可與競爭模型區分的預測。本文只建立數學與計算語義上的跨域協議。
二十四、結論: 0.999… 是跨域語義的最小閘門
本文的出發點不是要再證明一次:
0.999…=1.
而是要指出:若一個框架想讓「算子」「狀態變化」「跨域轉換」「完成」「投影」成為可通用使用的概念,它就必須先通過這個最小案例。
全 9 案例同時要求:
有限字→有理前綴→有向近似圖表→實數完成,
也要求:
有限規格→無限流→實數求值,
並要求:
原始表示→核群胚→商同一.
一旦進入計算機,還必須加入:
精確實數→浮點投影→誤差/區間/例外處理.
其中最重要的修正是:
完成不是最後一步,捨入不是實數等號,流不是已執行痕跡。
因此,本文提出的完成—投影雙向語義不是附加功能,而是算子本體論從單域關係語言走向跨域演算的必要層。
其最簡潔的總圖為:
FiniteSpecUnfoldInfiniteBehaviorEvalExactSemanticCompleteFiniteApproximationDiagramProjectF,ρFiniteMachineFormatDecode/EncloseExactorVerifiedSemantic.
每一箭頭都必須帶有型別、相干、誤差或包絡、商、例外與執行條件。只有這樣,算子本體論才不會把「近似、完成、轉碼、同一化、投影、狀態改變」全壓縮成一個看似深刻、實際卻未定義的「變成」。
附錄 A:十進位案例的完整橋接圖
A.1 有限前綴路徑
pn=9n↓⏐形成鏈(pn)nvnComp1−10−n∈Q↓⏐嵌入1∈R
關鍵不在左上到右下存在某個單點函數,而在底部的完成作用於整條鏈。
A.2 無限流路徑
nine↓⏐finitespecificationUnfolddenotation9ω↓⏐Val1∈R
A.3 表示商路徑
(0,9ω)↓⏐Val1Q=[(0,9ω)]↓⏐≅1
其中:
Q(0,9ω)=Q(1,0ω).
A.4 浮點投影路徑
x∈R↓⏐idxroundF,ρ≈εf∈FloatF↓⏐decodeFdecodeF(f)
這張圖一般不是嚴格可交換圖;它應由誤差界或區間包含取代。
附錄 B:最小跨域橋接偽程式
B.1 類型宣告
FinDecimalDecimalStreamExactRealFloatFIntervalMachineResultF=有限十進位字,=數位流,=實數名稱,=格式 F 的浮點值,=實數區間,=FiniteFloatF+PosInf+NegInf+NaN.
B.2 算子宣告
prefixEvalunfoldstreamEvalcompleteroundF,ρenclosek:FinDecimal→Rational,:Spec→DecimalStream,:DecimalStream→ExactReal,:BoundedDirectedChain(Rational)→ExactReal,:ExactReal→MachineResultF,:ExactReal→Interval.
B.3 正確使用
γxIkm=(prefixEval(9n))n∈N,=complete(γ),=enclosek(x),=roundF,ρ(x).
此處:
x=1,
但:
prefixEval(9n)<1
對每個有限 n 仍成立。
附錄 C:跨域算子審核清單
C.1 載體
- 來源載體 X 是字串、狀態、流、圖表、名稱、實數、區間還是機器格式?
- 目標載體 Y 是什麼?
- X 與 Y 是否都被明確定義?
- 是否把例外值、空值、未終止或外部效應放入和型別?
C.2 輸入形狀
T:X→Y,
還是作用於整條圖表:
Comp:Diag(X)→X?
C.3 語義
- [[−]]X 與 [[−]]Y 是什麼?
- 算子保留的是數值、順序、拓樸、代數、歷史或任務結果中的哪些量?
- 是否有精確相干方程?
- 若不精確,是否給誤差界或包含關係?
C.4 資訊方向
- 這是編碼、展開、完成、商化、投影、包絡還是例外逃逸?
- 它增加、遺忘、重編碼還是保守包住資訊?
- 是否存在逆、部分逆、截面或重構集合?
C.5 商與同一性
- 原始相等、語義相等、商後相等分別是什麼?
- 何種差異會被商掉?
- 算子是否保持等價關係,因而可下降?
- 是否需要保留群胚路徑或僅需集合商?
C.6 數值與執行
- 是否指定目標格式與捨入模式?
- 是否處理 +0/−0 、 NaN 、 ±∞ 、溢位與下溢?
- 誤差如何隨複合累積?
- 是否有區間或其他保守驗證方式?
- 抽象語義是否被錯誤地聲稱為已物理執行?
C.7 反例
- 有沒有一個輸入會使完成不存在?
- 有沒有一個輸入會進入例外域?
- 有沒有兩個不同精確值投影到同一有限表示?
- 有沒有兩個不同表示指稱同一語義值?
- 有沒有一個算子不能下降到所選商?
若上述任一項未回答,跨域敘述應保留為研究問題,而非標記為已完成轉換。
附錄 D:與既有論文的依賴與分工
D.1 《未執行的無限是否已經完成?》
該文分開:
規則,抽象軌跡,物理執行,極限,指稱.
本篇承接其「極限是外部作用於整條序列的算子」結論,並把它擴張到程式語言的精確實數名稱、浮點投影與執行證書。
D.2 《從歸納到餘歸納》
該文建立:
D∗與DN
的型別分離,並以初始代數、終餘代數與前綴樹連接有限字與無限流。
本篇把這個分離落入:
FinDecimal,DecimalStream,ExactReal
等可計算橋接型別。
D.3 《不到達而完成》
該文證明:
nsup(1−10−n)=lfp(T9)=1.
本篇進一步指出,此完成算子必須具有:
Diag(X)→X
的圖表型別,不能被誤用為一般狀態更新。
D.4 《表示不同,指稱同一》
該文建立進位核群胚、商型別與算子下降。
本篇把同一方法推到浮點格式: +0/−0 、有限值與例外值都要求明示何時商化、何時保留原始表示。
D.5 《生成、展開、完成與同一化》
該總論提供:
O=(Σ,M,I,Comp,V,GV,Q,Exec).
本篇的實質貢獻是補上:
Name,Lift,Project,Enclose,Err,Exc,
使其能處理有限機器與精確語義之間的雙向跨域問題。
D.6 《本體—表象接口論》
本體—表象接口論問的是來源結構如何經操作生成不同表象,並特別分析可逆性、選擇性、操作相對性與重構不確定性。
本篇把其中的接口概念收窄到一個更具體、可形式驗證的子問題:
在數值與程式語言中,跨載體的表示/完成/投影算子如何攜帶精確、誤差、包絡、商與例外證書?
它們相互支援,但不互相取代。
附錄 E:符號表
| 符號 |
含義 |
| D |
十進位數位集合 {0,…,9} |
| D∗ |
有限十進位字 |
| DN |
無限十進位數位流 |
| pn=9n |
長度為 n 的全 9 前綴 |
| 9ω |
全 9 無限流 |
| vn |
有限前綴的精確有理求值 |
| γ9 |
全 9 前綴值所成的有向鏈 |
| Comp |
對圖表、鏈或名稱的完成算子 |
| Val |
十進位流或完整表示的實數求值 |
| Q |
商映射 |
| ∼Val |
求值核等價 |
| ExactReal |
以名稱/oracle 實作的精確實數型別 |
| Floatb,p,E |
浮點格式 |
| roundF,ρ |
依格式與模式 ρ 的捨入投影 |
| decodeF |
有限浮點值的精確解碼 |
| Qb |
分母為 b 冪的有理數子域 |
| Int(R) |
實數閉區間域 |
| γ |
區間或抽象元素的 concretization |
| α |
從具體集合到抽象域的 abstraction |
| B |
跨域橋接算子規格 |
| κ |
橋接類型 |
| ε |
誤差界資料 |
| Exc |
例外域與例外規格 |
| Lift |
從近似/名稱到完成語義的提升 |
| Project |
從精確語義到有限格式的投影 |
| Enclose |
產生保守包絡的算子 |
參考文獻
- IEEE. “IEEE Standard for Floating-Point Arithmetic.” IEEE Std 754-2019, 2019. DOI: 10.1109/IEEESTD.2019.8766229.
- IEEE. “IEEE Standard for Interval Arithmetic.” IEEE Std 1788-2015, 2015.
- Boehm, H.-J., Cartwright, R., Riggle, M., & O'Donnell, M. J. “Exact Real Arithmetic: A Case Study in Higher Order Programming.” Proceedings of the 1986 ACM Conference on LISP and Functional Programming, 1986, 162–173.
- Boehm, H.-J. “The Constructive Reals as a Java Library.” Journal of Logic and Algebraic Programming, 64(1), 2005, 3–11.
- Edalat, A. “A Domain-Theoretic Approach to Computability on the Real Line.” Theoretical Computer Science, 210(1), 1999, 73–98.
- Abramsky, S., & Jung, A. “Domain Theory.” In Handbook of Logic in Computer Science, Vol. 3, Oxford University Press, 1994.
- Escardó, M. H. “Introduction to Exact Numerical Computation.” ISSAC 2000 tutorial notes, 2000.
- Goldberg, D. “What Every Computer Scientist Should Know About Floating-Point Arithmetic.” ACM Computing Surveys, 23(1), 1991, 5–48.
- Boldo, S., & Melquiond, G. “Some Formal Tools for Computer Arithmetic: Flocq and Gappa.” 28th IEEE Symposium on Computer Arithmetic, 2021.
- Rutten, J. J. M. M. “Universal Coalgebra: A Theory of Systems.” Theoretical Computer Science, 249, 2000, 3–80.
- Scott, D. S. “Continuous Lattices.” In Toposes, Algebraic Geometry and Logic, Lecture Notes in Mathematics 274, Springer, 1972, 97–136.
- Riehl, E. “Category Theory in Context.” Dover Publications, 2016.
- The Univalent Foundations Program. “Homotopy Type Theory: Univalent Foundations of Mathematics.” Institute for Advanced Study, 2013.
- Neo.K. 《未執行的無限是否已經完成?數字生成、極限算子與程序本體論》, 2026.
- Neo.K. 《從歸納到餘歸納:十進位前綴樹、終餘代數與無限數位流》, 2026.
- Neo.K. 《不到達而完成:有向上確界、Scott 拓樸與十進位收縮算子的最小固定點》, 2026.
- Neo.K. 《表示不同,指稱同一:十進位進位群胚、商型別與多層等號》, 2026.
- Neo.K. 《生成、展開、完成與同一化:從十進位邊界到算子本體論》, 2026.
- Neo.K. 《本體—表象接口論:操作相對表示、投影家族與跨域結構對應》, 2026.
文件資訊
- 文件類型: 程式語言語義/數值計算/精確實數/算子本體論論文
- 版本: v1.0
- 日期: 2026-07-12
- 狀態: 可獨立閱讀之公開研究草稿
- 系列: 「十進位邊界與算子本體論」
- 系列位置: 核心總論的計算語義續篇
- 前置依賴: 有限—無限型別分離、完成理論、表示商化、程序—指稱分離
- 核心貢獻: 建立完成—投影雙向語義、跨域橋接證書、浮點/精確實數/區間語義之統一接口