← Archive
lm-002289 · 2026-08

解譯完備數符_公開論文_v0.1

下載 MD 檔 ⬇

解譯完備數符:從裸數字到可判定語義的表示框架

Interpretation-Complete Numeral Expressions: From Bare Numeric Strings to Decidable Semantic Representations

作者:Neo.K
研究單位:EveMissLab
版本:公開論文草案 v0.1
日期:2026-07-29


摘要

日常書寫中的數字,經常被視為可以直接理解的對象。然而,字串 0.91 並不天然只對應一種數值或結構。它可能表示十進位實數、版本欄位、壓縮後的階層路徑、量測結果、序列索引,或某種有限長度的編碼。即使在符號前加上 VRID 等前綴,也通常只能提供語境提示,而不能完整宣告該數符的承載域、解析文法、進位制、位置權重、欄位上限、比較方式、相等規則、解析度、進位規則與後繼關係。

本文提出「解譯完備數符」框架,將表面數字符號與其解譯環境分離,並以宣告域與判定域共同決定一個數符的合法意義。本文主張:一個數字符號只有在可以被唯一解析、唯一映射、穩定比較,且其邊界、精度、正規化與後繼規則均已充分宣告時,才具有可判定的完整語義。本文進一步提出線性宣告、上下語義附加、綱要錨定與自描述欄位等表示方法,作為未來跨文件、跨程式語言、跨人工智慧系統與跨資料協定的數符語義基礎。

關鍵詞: 數字符號、語義宣告、版本號、位置制、混合進位、型別系統、判定域、宣告域、數值表示、機器可讀語義


1. 問題的提出

考慮下列符號:

0.9
0.10
0.89
0.91

若將它們視為十進位實數,則:

0.10=0.1<0.89<0.9<0.91.0.10 = 0.1 < 0.89 < 0.9 < 0.91.

若將它們視為兩欄位版本序列,並採用字典序,則可能得到:

(0,9)<(0,10)<(0,89)<(0,91).(0,9) < (0,10) < (0,89) < (0,91).

若將 0.91 解析為三個單位欄位,則它又可能表示:

(0,9,1).(0,9,1).

因此,問題並不只是「版本號看起來像小數」,也不能單純依靠前綴字母來解決。即使寫成:

V0.91

仍然沒有回答以下問題:

  1. 0.91 的承載域是什麼?
  2. . 是小數點、欄位分隔符,還是壓縮記號?
  3. 91 是一個整數欄位,還是兩個獨立位置?
  4. 採用何種進位制?
  5. 每一位置或欄位的合法範圍為何?
  6. 0.90.90 是否相等?
  7. 下一個符號是 0.910.101.0,還是根本不存在?
  8. 欄位溢位時是否進位?
  9. 有限位數的最大值、上確界與極限值如何區分?
  10. 不同系統之間如何保證解譯一致?

本文將這類問題統稱為「裸數符歧義」。


2. 裸數符與解譯環境

令:

ss

表示一個表面數字符號,例如:

s=0.91.s=\texttt{0.91}.

本文不預設 ss 已經是一個實數、自然數或版本向量。相反地, ss 首先只是一個字串。它的意義必須由解譯環境決定:

Γ=(Δ,Π),\Gamma=(\Delta,\Pi),

其中:

Δ=宣告域,\Delta=\text{宣告域}, Π=判定域.\Pi=\text{判定域}.

數符的意義寫成:

sΓ=sΔ,Π.\llbracket s\rrbracket_{\Gamma} = \llbracket s\rrbracket_{\Delta,\Pi}.

這裡的 Δ\Delta 負責宣告「它是什麼」,而 Π\Pi 負責宣告「它如何被判斷、比較與推進」。


3. 宣告域

本文將宣告域定義為:

Δ=D,G,R,P,M,K.\Delta= \langle D,G,R,P,M,K \rangle.

其中:

  • DD :承載域;
  • GG :解析文法;
  • RR :進位制或混合進位制;
  • PP :位置或欄位映射;
  • MM :每個位置或欄位的上限;
  • KK :欄位數或位數規則。

3.1 承載域

承載域決定解譯結果屬於何種對象。例如:

D=RD=\mathbb R

表示實數;

D=N3D=\mathbb N^3

表示三欄位自然數向量;

D=ΣD=\Sigma^\ast

表示符號序列;

D=i=1n{0,,Mi}D=\prod_{i=1}^{n}\{0,\ldots,M_i\}

表示具有欄位上限的有限乘積空間。

3.2 解析文法

解析文法:

G:ΣTG:\Sigma^\ast\rightarrow\mathcal T

將表面字串映射為語法樹或欄位結構。

例如:

Gdecimal(0.91)=(0;9,1),G_{\mathrm{decimal}}(\texttt{0.91}) = (0;\,9,1),

其中小數點後的每個字元對應一個位置。

另一方面:

Gfield(0.91)=(0,91),G_{\mathrm{field}}(\texttt{0.91}) = (0,91),

表示點號分隔兩個整數欄位。

若採固定寬度壓縮:

Gfixed(0.91)=(0,9,1).G_{\mathrm{fixed}}(\texttt{0.91}) = (0,9,1).

因此,數符的合法性首先取決於是否存在唯一解析:

!tTG(s)=t.\exists!\,t\in\mathcal T \quad G(s)=t.

3.3 進位制

對位置制數字,可宣告基數:

R=b,R=b,

並要求每一數字位滿足:

di{0,1,,b1}.d_i\in\{0,1,\ldots,b-1\}.

十進位時:

0di9.0\le d_i\le 9.

二進位時:

0di1.0\le d_i\le 1.

但對版本欄位或階層標記而言, RR 可能不存在,因為欄位本身是自然數,而不是位置制中的單一數字位。此時可令:

R=.R=\varnothing.

3.4 位置映射

位置映射 PP 決定每一位置的權重。

十進位小數可寫成:

P(i)=10i.P(i)=10^{-i}.

因此:

0.91=9101+1102.\llbracket 0.91\rrbracket = 9\cdot10^{-1}+1\cdot10^{-2}.

版本欄位則不應使用位置權重,而可採欄位語義:

P(1)=major,P(1)=\text{major}, P(2)=minor,P(2)=\text{minor}, P(3)=patch.P(3)=\text{patch}.

3.5 欄位上限與長度

每一欄位可具有上限:

0xiMi.0\le x_i\le M_i.

位數或欄位數則由 KK 宣告。可能情形包括:

K=n,K=n,

表示固定長度;

KN,K\in\mathbb N,

表示任意有限長度;

K=0,K=\aleph_0,

表示允許可數無限展開。

這三種情況具有不同的最大值、上確界與正規化規則。


4. 判定域

本文將判定域定義為:

Π=O,E,N,Q,C,S.\Pi= \langle O,E,N,Q,C,S \rangle.

其中:

  • OO :排序規則;
  • EE :相等規則;
  • NN :正規化規則;
  • QQ :解析度或量化尺度;
  • CC :進位與溢位規則;
  • SS :後繼規則。

4.1 排序規則

D=RD=\mathbb R ,可採通常實數序:

O=<R.O=<_{\mathbb R}.

D=NnD=\mathbb N^n ,可採字典序:

(x1,,xn)lex(y1,,yn)(x_1,\ldots,x_n) \prec_{\mathrm{lex}} (y_1,\ldots,y_n)

當且僅當,在第一個滿足 xjyjx_j\neq y_j 的位置 jj 上,有:

xj<yj.x_j<y_j.

因此:

(0,91)lex(0,9).(0,91)\succ_{\mathrm{lex}}(0,9).

4.2 相等規則

在實數語義下:

0.9=0.90.0.9=0.90.

但在某些量測語義中,兩者雖具有相同中心值,卻可能具有不同解析度:

Val(0.9)=Val(0.90),\operatorname{Val}(0.9) = \operatorname{Val}(0.90), Res(0.9)Res(0.90).\operatorname{Res}(0.9) \neq \operatorname{Res}(0.90).

在版本欄位語義中,若 990 是不同整數欄位,則:

(0,9)(0,90).(0,9)\neq(0,90).

因此,相等並不是字形本身決定的,而是由 EE 決定。

4.3 正規化規則

正規化函數:

N:SScanonicalN:S\rightarrow S_{\mathrm{canonical}}

將不同表面表示映射至標準形。

例如,實數語義可規定:

N(0.90)=0.9.N(\texttt{0.90})=\texttt{0.9}.

版本語義則可能規定:

N(0.9)=0.9.0,N(\texttt{0.9})=\texttt{0.9.0},

或保留原字串而不補零。

4.4 解析度

若一個數字符號只允許兩位十進位小數,則其解析度可宣告為:

Q=102.Q=10^{-2}.

此時可定義量化後繼:

SQ(x)=x+Q.S_Q(x)=x+Q.

所以:

S102(0.90)=0.91.S_{10^{-2}}(0.90)=0.91.

但若:

Q=101,Q=10^{-1},

則:

S101(0.9)=1.0.S_{10^{-1}}(0.9)=1.0.

因此,所謂「下一個數」必須依賴解析度或離散結構。

4.5 進位與溢位

十進位位置制可具有標準進位:

0.99+0.01=1.00.0.99+0.01=1.00.

版本欄位則通常不具自然進位:

(0,99)(0,100),(0,99)\rightarrow(0,100),

而不是:

(0,99)(1,0).(0,99)\rightarrow(1,0).

只有在明確宣告:

Mminor=99M_{\mathrm{minor}}=99

且存在進位函數:

CminormajorC_{\mathrm{minor}\rightarrow\mathrm{major}}

時,才可以合法得到:

(0,99)(1,0).(0,99)\rightarrow(1,0).

5. 三個基本命題

命題一:前綴不足命題

對任意前綴 pp 與裸數符 ss ,僅由字串拼接:

psps

不能保證 ss 的唯一解譯。

論證

設:

s=0.91.s=\texttt{0.91}.

即使寫成:

p=V,p=\texttt{V},

仍可存在至少三種相容解譯:

V0.911=(0,91),\llbracket \texttt{V0.91}\rrbracket_1=(0,91), V0.912=(0,9,1),\llbracket \texttt{V0.91}\rrbracket_2=(0,9,1), V0.913=0.91.\llbracket \texttt{V0.91}\rrbracket_3=0.91.

除非前綴 pp 指向一個完整、唯一且可取得的解譯綱要,否則前綴只提供語境暗示,不構成完整宣告。


命題二:後繼依賴命題

數符的「下一個」不是表面數值的內在性質,而依賴承載域、解析度與後繼規則。

論證

在實數域中,任意兩個不同實數之間仍存在其他實數,因此:

succR(x).\nexists\,\operatorname{succ}_{\mathbb R}(x).

在量化網格:

DQ={kQkZ}D_Q=\{kQ\mid k\in\mathbb Z\}

中,則可定義:

succQ(x)=x+Q.\operatorname{succ}_{Q}(x)=x+Q.

在版本向量中,後繼又可能定義為指定欄位加一:

succminor(a,b,c)=(a,b+1,c).\operatorname{succ}_{\mathrm{minor}}(a,b,c) = (a,b+1,c).

因此,未宣告 DDQQSS 時,「下一個」沒有唯一答案。


命題三:表示相等不蘊含語義相等命題

兩個具有相同表面數值的表示,不必在所有解譯環境中相等。

論證

在實數語義中:

0.9=0.90.0.9=0.90.

在帶解析度的量測語義中,可以有:

Val(0.9)=Val(0.90),\operatorname{Val}(0.9) = \operatorname{Val}(0.90),

但:

Res(0.9)Res(0.90).\operatorname{Res}(0.9) \neq \operatorname{Res}(0.90).

在欄位向量語義中:

(0,9)(0,90).(0,9)\neq(0,90).

因此,「值相等」「表示相等」「精度相等」與「結構相等」必須分開宣告。


6. 小數位極限的四重區分

「小數位極限」至少包含四種不同概念。

6.1 單一數字位上限

基數為 bb 時:

dib1.d_i\le b-1.

6.2 位數上限

固定 nn 位小數時:

K=n.K=n.

6.3 固定位數的可表示最大值

若整數部分為零,基數為 bb ,最多允許 nn 位小數,則最大值為:

i=1n(b1)bi=1bn.\sum_{i=1}^{n}(b-1)b^{-i} = 1-b^{-n}.

十進位兩位小數時:

0.99=1102.0.99=1-10^{-2}.

6.4 無限延伸下的上確界或極限

若允許任意有限位數,則:

sup{1bnnN}=1.\sup \left\{ 1-b^{-n} \mid n\in\mathbb N \right\} = 1.

若允許無限展開並採通常實數完備化,則:

0.(b1)=1.0.\overline{(b-1)}=1.

因此,最大值、上確界、極限值與可表示邊界不應使用同一個詞籠統處理。


7. 解譯完備數符

本文提出「解譯完備數符」:

N=s;Δ,Π.\mathfrak N = \langle s;\Delta,\Pi \rangle.

亦可使用上下語義附加形式:

ΠΔ ⁣s.{}^{\Delta}_{\Pi}\!s.

其中,上方宣告域描述數符的型別與結構,下方判定域描述比較、相等、解析度、進位與後繼。

定義完備性函數:

Complete(s,Δ,Π){0,1}.\operatorname{Complete}(s,\Delta,\Pi)\in\{0,1\}.

當且僅當以下條件同時成立時:

Complete(s,Δ,Π)=1.\operatorname{Complete}(s,\Delta,\Pi)=1.
  1. ss 可以被唯一解析;
  2. 每一位置或欄位具有合法域;
  3. 解譯結果唯一;
  4. 相等規則可判定;
  5. 排序規則在所需範圍內可判定;
  6. 精度或解析度已宣告;
  7. 邊界與溢位規則已宣告;
  8. 正規化方式已宣告;
  9. 若使用「下一個」,後繼規則已宣告;
  10. 跨系統轉換不會遺失必要語義,或遺失情況已明確標記。

若任何一項不足,則該符號仍可能可用,但不能宣稱具有解譯完備性。


8. 四種公開表示方法

8.1 線性宣告

最傳統且最容易實作的方法,是在文件或資料區塊前先宣告:

schema:
  domain = real
  grammar = decimal-positional
  radix = 10
  precision = 2
  equality = numeric
  order = real-order
  carry = positional

之後同一作用域內的 0.91 均依此解譯。

8.2 上下語義附加

對局部數符,可表示為:

ΠrealΔdec ⁣0.91.{}^{\Delta_{\mathrm{dec}}}_{\Pi_{\mathrm{real}}}\!0.91.

版本向量則可寫成:

ΠlexΔver ⁣0.91.{}^{\Delta_{\mathrm{ver}}}_{\Pi_{\mathrm{lex}}}\!0.91.

上下附加的優點是能直接保留原始表面符號,同時將其所屬解譯環境顯示在鄰近位置。

8.3 綱要錨定

先建立完整綱要:

V3(ΔV3,ΠV3),\mathsf{V3}\mapsto(\Delta_{\mathsf{V3}},\Pi_{\mathsf{V3}}),

之後只需寫:

V3 ⁣0.91.{}^{\mathsf{V3}}\!0.91.

此時 V3 不再只是「版本」的字母提示,而是可解析、可查驗的正式綱要識別碼。

8.4 自描述欄位

對交換格式,可使用:

number{
  token = "0.91",
  domain = "real",
  grammar = "decimal-positional",
  radix = 10,
  precision = 2,
  order = "real-order"
}

或:

number{
  token = "0.91",
  domain = "tuple[N,N]",
  grammar = "dot-separated-fields",
  order = "lexicographic"
}

此方法較冗長,但適合資料庫、協定、人工智慧代理與跨語言處理。


9. 應用範圍

解譯完備數符不只適用於軟體版本。

9.1 版本與發布系統

可區分:

(0,9),(0,10),(0,9,1),0.91.(0,9), \quad (0,10), \quad (0,9,1), \quad 0.91.

避免更新器、套件管理器與人類文件之間出現不同排序。

9.2 科學量測

可同時表示:

Val(x),Res(x),Unc(x),Unit(x).\operatorname{Val}(x), \quad \operatorname{Res}(x), \quad \operatorname{Unc}(x), \quad \operatorname{Unit}(x).

避免將 0.90.90 的精度資訊抹除。

9.3 金融與會計資料

可以明確宣告小數位數、捨入規則、貨幣單位與合法區間,避免單純依靠顯示格式推定實際金額語義。

9.4 模型、資料集與實驗編號

人工智慧模型常同時使用版本、步數、檢查點、量化級別與資料批次。若全部壓縮成點分數字,極易產生欄位衝突。解譯綱要可以明確指定每一段的角色。

9.5 人工智慧生成內容

人工智慧系統經常根據局部語境猜測數字意義。當文件具有顯式宣告域與判定域時,模型可以先解析綱要,再處理數值,降低因語境猜測產生的錯誤。

9.6 跨程式語言與跨協定交換

不同系統可能將同一字串分別解析為浮點數、字串、語義版本、日期或路徑。將數符與其解譯綱要一同傳輸,可降低隱式轉型風險。


10. 與傳統數值表示的關係

本文並不主張所有數字都必須永久攜帶完整標籤。傳統位置制在穩定、單一且共享的語境中仍然高效。

本文主張的是:

當一個數符跨越不同語境、不同系統、不同型別或不同判定規則時,不應再假設其表面形式足以承載完整語義。

因此,解譯完備數符是一種可分層採用的框架:

  1. 穩定局部環境中,使用線性宣告;
  2. 局部歧義位置,使用上下附加;
  3. 跨文件或跨系統環境,使用綱要錨定;
  4. 機器交換與長期保存,使用自描述欄位。

11. 限制與風險

11.1 表示負擔

完整宣告會增加文字長度與視覺複雜度,因此必須設計可壓縮、可繼承與可局部覆寫的語法。

11.2 綱要漂移

若同一綱要識別碼在不同時間指向不同定義,將造成比裸數符更嚴重的錯誤。因此綱要需要版本化、內容指紋或不可變識別。

11.3 過度形式化

並非所有日常數字都需要完整型別標記。框架應允許依風險與交換範圍決定宣告強度。

11.4 舊系統相容性

既有軟體可能只接受純數字或字串,因此必須提供不破壞原值的旁路標記、註解層或外部綱要映射。

11.5 人類可讀性

機器可讀格式不必然適合人類閱讀。上下附加、欄位分隔與線性宣告需要形成一致的視覺規則。


12. 結論

0.91 並不天然是一個已經完成定義的數值。它首先是一個表面符號,其意義取決於承載域、解析文法、進位制、位置映射、欄位上限、排序、相等、解析度、正規化、進位與後繼規則。

因此,數字符號的根本問題不是「應不應該在前面加上 V」,而是:

是否已經合法宣告該符號如何被解譯與判定\boxed{ \text{是否已經合法宣告該符號如何被解譯與判定} }

本文提出:

N=s;Δ,Π\mathfrak N = \langle s;\Delta,\Pi \rangle

作為解譯完備數符的基本形式,並以:

ΠΔ ⁣s{}^{\Delta}_{\Pi}\!s

作為可見的語義附加表示。

這套框架將數字從「依賴讀者猜測的裸字串」,轉化為「具有可檢查解譯條件的型化符號」。其後續技術工作將包括統一語法、綱要註冊、解析器、比較器、正規化器、轉換層與最小可行原型。這些工作可進一步形成跨人類文件、程式語言、人工智慧代理與資料協定的數符語義基礎。


附錄 A:最小宣告模板

symbol_schema:
  id: DECIMAL_10_P2
  declaration_domain:
    carrier: real
    grammar: decimal-positional
    radix: 10
    position_map: negative-powers
    digit_max: 9
    length: 2
  judgment_domain:
    order: real-order
    equality: numeric-equality
    normalization: trim-insignificant-trailing-zero
    resolution: 0.01
    carry: positional
    successor: add-resolution

版本欄位示例:

symbol_schema:
  id: VERSION_3_LEX
  declaration_domain:
    carrier: tuple[N,N,N]
    grammar: dot-separated-fields
    radix: null
    position_map: [major, minor, patch]
    field_max: [unbounded, unbounded, unbounded]
    length: 3
  judgment_domain:
    order: lexicographic
    equality: structural-equality
    normalization: pad-right-zero
    resolution: field
    carry: none
    successor: increment-selected-field

附錄 B:公開版核心符號表

符號 意義
ss 表面數字符號
Γ\Gamma 完整解譯環境
Δ\Delta 宣告域
Π\Pi 判定域
DD 承載域
GG 解析文法
RR 進位制
PP 位置或欄位映射
MM 位元或欄位上限
KK 位數或欄位數規則
OO 排序規則
EE 相等規則
NN 正規化規則
QQ 解析度
CC 進位或溢位規則
SS 後繼規則
N\mathfrak N 解譯完備數符
Complete\operatorname{Complete} 解譯完備性判定