← Archive
lm-001951 · 2026-07

同一個應用是什麼_功能契約觀測等價與程式身分_v0.1

下載 MD 檔 ⬇

同一個應用是什麼:功能契約、觀測等價與程式身分

What Makes an Application the Same? Functional Contracts, Observational Equivalence, and Software Identity

系列名稱:AI 自適應封裝與遞歸演化計算論(AI-Adaptive Encapsulation and Recursive Evolutionary Computation, AEREC)
系列編號:EML-AEREC-2026-02
作者:Neo.K(許筌崴)with Aletheia(GPT)
機構:EveMissLab/一言諾科技有限公司
版本:v0.1 身分與等價框架初稿
日期:2026 年 7 月 29 日
文件定位:程式身分、功能契約、觀測等價、語義版本、契約漂移、跨代演化


摘要

若一個應用的原始碼、演算法、資料結構、中介表示、編譯器、二進位、DLL 邊界、容器映像、硬體映射與執行時策略都可以被 AI 持續改寫,那麼一個根本問題立即出現:經過多代演化之後,為什麼它仍然是「同一個應用」?

傳統軟體工程常以檔名、套件名稱、版本號、程式庫識別碼、API 名稱或產品名稱作為應用身分,但這些多半只是外部標記。它們無法單獨保證兩個版本在功能、狀態、副作用、權限、安全、時間與錯誤行為上保持一致。相反地,兩個二進位完全不同的版本,也可能在所有重要觀測下完成相同任務。若缺乏嚴格的身分理論,AI 自適應封裝容易出現兩種相反錯誤:第一,把任何內部變動都誤判為身分破壞;第二,把逐代功能漂移偽裝成效能最佳化。

本文提出「程式身分—實現分離」框架。本文主張,應用身分不應由單一原始碼、二進位或封裝格式決定,而應由權威程式根、功能契約、觀測者集合、語義版本、治理邊界與歷史連續性共同構成:

Iapp=(r,C,Ω,vs,G,H).\mathcal I_{\mathrm{app}} = \left( r^\ast, \mathcal C, \Omega, v_s, \mathcal G, H \right).

其中 rr^\ast 是權威身分根, C\mathcal C 是功能與觀測契約, Ω\Omega 是合法觀測者與觀測介面集合, vsv_s 是語義版本, G\mathcal G 是治理與遷移規則, HH 是可追溯歷史。

本文將功能契約擴張為:

C=(I,O,S,E,P,Q,R,T,A,X),\mathcal C = \left( \mathcal I, \mathcal O, \mathcal S, \mathcal E, \mathcal P, \mathcal Q, \mathcal R, \mathcal T, \mathcal A, \mathcal X \right),

分別表示輸入、輸出、狀態、副作用、權限、品質、錯誤、時間、可用性與外部依賴。若兩個版本在指定觀測者與容許誤差下保持不可區分,則稱其觀測等價:

PaC,ΩPb.P_a \equiv_{\mathcal C,\Omega} P_b.

本文進一步區分七種等價層級:值等價、行為等價、狀態等價、副作用等價、時間等價、治理等價與生命週期等價。不同應用可依風險與任務選擇不同強度的身分契約。純函數可能只要求輸出等價;金融、醫療、工業控制與多代理世界狀態系統則需要更強的狀態、順序、權限、可回滾與證據等價。

本文也提出「契約漂移」與「身分漂移」。若每一代只與上一代進行寬鬆比較,局部微小偏差可能逐步累積,使第 nn 代版本不再與初始版本等價。為避免此問題,系統必須同時維持鄰代驗證、錨點驗證與歷史不變量驗證:

Pn+1CPn,P_{n+1} \equiv_{\mathcal C} P_n, Pn+1CP0,P_{n+1} \equiv_{\mathcal C} P_0,

以及:

InvH(Pn+1)=1.\operatorname{Inv}_{H}(P_{n+1})=1.

本文最後區分最佳化、兼容演化、功能升級、產品分叉與身分斷裂五種變更類型,避免把新功能加入、契約更新、重大權限變更與純實現改良混為一談。

本文的核心結論是:同一個應用不是同一份程式碼,而是同一個可追溯的功能承諾、觀測邊界與治理身分。AI 可以無限改寫實現,但不能在不更新契約與語義版本的情況下,悄悄改變應用究竟承諾了什麼。

關鍵詞:程式身分、功能契約、觀測等價、語義版本、契約漂移、身分根、AI 自適應封裝、可驗證演化


1. 問題的提出:程式變了,應用還是同一個嗎

假設一個應用經歷以下變化:

  • Python 重寫為 Rust;
  • 單執行緒改為多執行緒;
  • CPU 改為 GPU;
  • 雜湊表改為 B-tree;
  • 本地模型改為遠端模型;
  • 動態連結改為靜態連結;
  • 多個 DLL 合併為單一映像;
  • 精確演算法改為容許誤差的近似演算法;
  • 檔案快取改為記憶體快取;
  • 傳統 API 改為 Agent 工具協議。

哪些改動仍屬於同一應用?哪些改動已經創造另一個應用?

若只看原始碼:

PasourcePbsource,P_a^{\mathrm{source}} \neq P_b^{\mathrm{source}},

幾乎所有最佳化都會被判定為不同。

若只看產品名稱:

Name(Pa)=Name(Pb),\operatorname{Name}(P_a) = \operatorname{Name}(P_b),

那麼即使功能、權限與安全行為已完全改變,也可能被錯誤視為相同。

因此,應用身分不能只依賴表面標記,也不能只依賴內部實現。


2. 三種常見但不足的身分模型

2.1 文字身分

以原始碼內容或檔案指紋決定身分:

Itext(P)=Hash(Psource).\mathcal I_{\mathrm{text}}(P) = \operatorname{Hash} \left( P_{\mathrm{source}} \right).

它適合辨識特定版本,但不適合辨識跨代應用。

2.2 二進位身分

以執行檔、DLL 或套件內容決定身分:

Ibinary(P)=Hash(Pbinary).\mathcal I_{\mathrm{binary}}(P) = \operatorname{Hash} \left( P_{\mathrm{binary}} \right).

它可用於供應鏈與部署驗證,但重新編譯、換平台或改連結方式就會產生不同身分。

2.3 品牌身分

以名稱、套件 ID、應用商店識別或公司宣告決定身分:

Ibrand=(Name,Publisher,PackageID).\mathcal I_{\mathrm{brand}} = \left( \operatorname{Name}, \operatorname{Publisher}, \operatorname{PackageID} \right).

它具有法律與商業意義,卻不能單獨保證功能等價。

因此,三者都應被保留,但不應成為唯一身分本體。


3. 程式身分的六元結構

本文定義應用身分為:

Iapp=(r,C,Ω,vs,G,H).\boxed{ \mathcal I_{\mathrm{app}} = \left( r^\ast, \mathcal C, \Omega, v_s, \mathcal G, H \right). }

3.1 權威身分根 rr^\ast

穩定根識別碼,用來連接所有投影、版本、證書與部署。

它不等同內容雜湊,因為內容會改變。它更接近一個持續存在的語義實體識別:

r=RootID(P).r^\ast = \operatorname{RootID} \left( P^\ast \right).

3.2 功能契約 C\mathcal C

定義應用承諾完成什麼,以及不得做什麼。

3.3 觀測者集合 Ω\Omega

定義哪些主體、介面與測量方式有資格判斷版本是否等價。

3.4 語義版本 vsv_s

當契約發生有意義改變時,必須更新語義版本,而不是偽裝成單純最佳化。

3.5 治理規則 G\mathcal G

定義誰可以修改契約、批准版本、簽署證書、部署與回滾。

3.6 歷史連續性 HH

保存每次改寫、驗證、遷移與分叉,確保版本不是突然冒出的無來源物件。


4. 功能契約的完整結構

本文將契約定義為:

C=(I,O,S,E,P,Q,R,T,A,X).\mathcal C = \left( \mathcal I, \mathcal O, \mathcal S, \mathcal E, \mathcal P, \mathcal Q, \mathcal R, \mathcal T, \mathcal A, \mathcal X \right).

4.1 輸入契約 I\mathcal I

包含:

  • 輸入型別;
  • 值域;
  • 編碼;
  • 格式;
  • 前置條件;
  • 不合法輸入行為。

4.2 輸出契約 O\mathcal O

包含:

  • 輸出型別;
  • 結構;
  • 語義;
  • 穩定排序;
  • 可重現性;
  • 容許差異。

4.3 狀態契約 S\mathcal S

包含:

  • 持久狀態;
  • 暫態;
  • 狀態轉移;
  • 交易;
  • 一致性;
  • 回滾;
  • 遷移。

4.4 副作用契約 E\mathcal E

包含:

  • 檔案;
  • 網路;
  • 資料庫;
  • 日誌;
  • 通知;
  • 裝置控制;
  • 外部服務。

4.5 權限契約 P\mathcal P

包含:

  • 可讀資源;
  • 可寫資源;
  • 可調用工具;
  • 最小必要權限;
  • 高風險操作;
  • 人工確認要求。

4.6 品質契約 Q\mathcal Q

包含:

  • 精度;
  • 召回率;
  • 錯誤上限;
  • 確定性;
  • 穩定性;
  • 可解釋性;
  • 公平性;
  • 安全裕度。

4.7 錯誤契約 R\mathcal R

包含:

  • 錯誤類型;
  • 例外;
  • 重試;
  • 降級;
  • 回退;
  • 告警;
  • 資料恢復。

4.8 時間契約 T\mathcal T

包含:

  • 延遲;
  • 吞吐;
  • 順序;
  • 截止期限;
  • 同步窗口;
  • 陳舊容忍度。

4.9 可用性契約 A\mathcal A

包含:

  • 可用率;
  • 容錯;
  • 備援;
  • 災難恢復;
  • 離線模式;
  • 服務退化。

4.10 外部依賴契約 X\mathcal X

包含:

  • 依賴來源;
  • 版本;
  • 供應商;
  • API;
  • 模型;
  • 授權;
  • 網路需求;
  • 外部資料新鮮度。

5. 觀測者不是單一使用者

5.1 觀測者集合

令:

Ω={ωuser,ωapi,ωstate,ωsecurity,ωoperator,ωauditor,ωenvironment}.\Omega = \left\{ \omega_{\mathrm{user}}, \omega_{\mathrm{api}}, \omega_{\mathrm{state}}, \omega_{\mathrm{security}}, \omega_{\mathrm{operator}}, \omega_{\mathrm{auditor}}, \omega_{\mathrm{environment}} \right\}.

不同觀測者關注不同性質。

使用者可能只看結果;API 客戶端關注型別與錯誤碼;安全觀測者關注權限與網路;運維系統關注延遲與可用性;審計者關注來源與證據。

5.2 觀測函數

每個觀測者具有觀測函數:

Obsω:Run(P,x,e)Yω.\operatorname{Obs}_{\omega} : \operatorname{Run}(P,x,e) \longrightarrow Y_{\omega}.

完整觀測可表示為:

ObsΩ=ωΩObsω.\operatorname{Obs}_{\Omega} = \prod_{\omega\in\Omega} \operatorname{Obs}_{\omega}.

5.3 觀測盲區

若契約未納入某種觀測,最佳化可能在該盲區中改變重要行為。

例如,只比較輸出值,可能忽略:

  • 網路資料外洩;
  • 寫入額外檔案;
  • 延遲顯著增加;
  • 日誌包含敏感資訊;
  • 隨機性改變;
  • 依賴第三方服務;
  • 故障恢復能力下降。

因此,觀測者集合本身就是安全邊界。


6. 七種等價層級

不是所有應用都需要同一強度的等價。

6.1 值等價

對所有合法輸入:

fa(x)=ϵfb(x).f_a(x)=_{\epsilon}f_b(x).

適合純計算函數。

6.2 行為等價

除輸出值外,還要求交互順序與公開事件相同:

Tracepublic(Pa,x)=Tracepublic(Pb,x).\operatorname{Trace}_{\mathrm{public}}(P_a,x) = \operatorname{Trace}_{\mathrm{public}}(P_b,x).

6.3 狀態等價

要求狀態轉移在指定抽象下等價:

α(Sat+1)=α(Sbt+1).\alpha \left( S_a^{t+1} \right) = \alpha \left( S_b^{t+1} \right).

其中 α\alpha 是狀態抽象。

6.4 副作用等價

要求對檔案、資料庫、網路與裝置的可觀測副作用等價。

6.5 時間等價

不要求每一指令同時發生,而要求符合期限、順序與同步契約:

TimeObs(Pa)=TTimeObs(Pb).\operatorname{TimeObs}(P_a) =_{\mathcal T} \operatorname{TimeObs}(P_b).

6.6 治理等價

要求權限、確認、證據、回滾與責任邊界不被削弱。

6.7 生命週期等價

除單次執行外,還要求長期升級、遷移、維護、資料恢復與可審計性保持。

由此可建立等價強度偏序:

valuebehaviorstateeffecttimegovernancelifecycle.\equiv_{\mathrm{value}} \prec \equiv_{\mathrm{behavior}} \prec \equiv_{\mathrm{state}} \prec \equiv_{\mathrm{effect}} \prec \equiv_{\mathrm{time}} \prec \equiv_{\mathrm{governance}} \prec \equiv_{\mathrm{lifecycle}}.

這不是嚴格適用於所有情境的全序,而是表示通常需要逐步增加觀測維度。


7. 確定等價、容許等價與統計等價

7.1 確定等價

PaPbP_a\equiv P_b

表示對指定範圍完全一致。

7.2 容許等價

允許誤差:

d(Obs(Pa),Obs(Pb))ϵ.d \left( \operatorname{Obs}(P_a), \operatorname{Obs}(P_b) \right) \leq \epsilon.

適合浮點、近似、壓縮與多媒體系統。

7.3 統計等價

對隨機或 AI 系統,可能要求分布等價:

D(Pa(Yx),Pb(Yx))ϵ.D \left( \mathbb P_a(Y\mid x), \mathbb P_b(Y\mid x) \right) \leq \epsilon.

其中 DD 可為適當分布距離。

7.4 風險等價

高風險事件的機率不能增加:

Risk(Pb)Risk(Pa)+δ.\operatorname{Risk}(P_b) \leq \operatorname{Risk}(P_a)+\delta.

因此,AI 系統的身分契約不能只比較單次文字輸出。


8. 等價的領域與邊界

8.1 全域等價

要求所有合法輸入成立:

xI.\forall x\in\mathcal I.

8.2 分布等價

只要求在工作分布 D\mathcal D 下成立:

xD.x\sim\mathcal D.

8.3 區域等價

只在指定功能區、平台或風險區域內成立。

8.4 條件等價

在環境條件 EE 下成立:

EPaCPb.E\models P_a\equiv_{\mathcal C}P_b.

例如 GPU 版本可能只在特定驅動與精度模式下符合契約。

每份等價證書都必須攜帶適用域,不能把局部證明誤稱為普遍證明。


9. 身分根與內容指紋

9.1 穩定身分根

rr^\ast

跨越多代存在,不因內容改變而改變。

9.2 版本內容指紋

每個版本具有:

hn=Hash(Pn,Cn,Zn).h_n = \operatorname{Hash} \left( P_n,\mathcal C_n,\mathcal Z_n \right).

9.3 投影指紋

不同投影具有:

hn,i=Hash(πi(Pn)).h_{n,i} = \operatorname{Hash} \left( \pi_i(P_n) \right).

所以完整識別可表示為:

ID(Pn,i)=(r,vs,n,i,hn,hn,i).\operatorname{ID}(P_{n,i}) = \left( r^\ast, v_s, n, i, h_n, h_{n,i} \right).

穩定根回答「它是哪個應用」;內容指紋回答「它是哪一個精確版本」。


10. 語義版本與實現版本

本文區分:

10.1 語義版本

vsv_s

當功能契約發生對使用者或治理有意義的改變時更新。

10.2 實現版本

viv_i

內部演算法、封裝與執行投影更新,但契約保持。

10.3 證書版本

vzv_z

驗證方法、覆蓋率或證據更新。

10.4 環境版本

vev_e

硬體、作業系統、模型、依賴與工作負載版本。

完整版本座標為:

v=(vs,vi,vz,ve).v = \left( v_s,v_i,v_z,v_e \right).

這能避免把實現最佳化錯誤宣告為功能升級,也避免契約變更被藏在修補版本中。


11. 契約漂移

11.1 鄰代漂移

即使:

Pn+1ϵPn,P_{n+1} \equiv_{\epsilon} P_n,

若每代允許小誤差,長期可能有:

Pn̸CP0.P_n \not\equiv_{\mathcal C} P_0.

11.2 漂移累積

若每代最大偏差為 ϵi\epsilon_i ,最壞情況總偏差可能近似:

Δni=1nϵi.\Delta_n \leq \sum_{i=1}^{n}\epsilon_i.

因此,只做鄰代比較不夠。

11.3 三重驗證

每個候選至少應比較:

鄰代等價

Pn+1CPn.P_{n+1}\equiv_{\mathcal C}P_n.

錨點等價

Pn+1CP0.P_{n+1}\equiv_{\mathcal C}P_0.

歷史不變量

InvH(Pn+1)=1.\operatorname{Inv}_{H}(P_{n+1})=1.

11.4 契約指紋

對契約產生:

hC=Hash(Canonicalize(C)).h_{\mathcal C} = \operatorname{Hash} \left( \operatorname{Canonicalize} \left( \mathcal C \right) \right).

任何未授權契約改變都應中止「純最佳化」流程。


12. 身分漂移

契約可能未明文改變,但實際行為、依賴或治理已發生變化。

可定義身分漂移向量:

Did=(DI,DO,DS,DE,DP,DQ,DR,DT,DA,DX).\mathbf D_{\mathrm{id}} = \left( D_I, D_O, D_S, D_E, D_P, D_Q, D_R, D_T, D_A, D_X \right).

若:

Did⪯̸ϵC,\mathbf D_{\mathrm{id}} \not\preceq \boldsymbol{\epsilon}_{\mathcal C},

則版本不應被視為純實現演化。

常見漂移包括:

  • 輸出語義悄悄改變;
  • 新增未聲明網路依賴;
  • 權限擴張;
  • 錯誤時不再回滾;
  • 模型更新導致分布偏移;
  • 延遲尾部惡化;
  • 資料保留政策改變。

13. 五類程式變更

13.1 純最佳化

契約與語義版本不變:

Cn+1=Cn.\mathcal C_{n+1} = \mathcal C_n.

13.2 兼容演化

新增能力,但舊契約仍完整成立:

CnCn+1.\mathcal C_n \subseteq \mathcal C_{n+1}.

13.3 功能升級

契約有意改變,需要新語義版本與遷移說明。

13.4 產品分叉

新版本保留來源關係,但不再承諾相同身分:

rchildrparent.r^\ast_{\mathrm{child}} \neq r^\ast_{\mathrm{parent}}.

13.5 身分斷裂

未經明確版本與治理程序,功能或權限發生重大改變。這不是合法演化,而是失控漂移。


14. 契約精度與最佳化自由度

契約越精確,允許的最佳化空間通常越小。

令契約約束強度為:

κ(C).\kappa(\mathcal C).

候選空間為:

OC={ϕOϕ(P)CP}.\mathfrak O_{\mathcal C} = \left\{ \phi\in\mathfrak O \mid \phi(P)\equiv_{\mathcal C}P \right\}.

通常:

κ(C)OC.\kappa(\mathcal C)\uparrow \quad\Longrightarrow\quad |\mathfrak O_{\mathcal C}|\downarrow.

但過度寬鬆的契約會增加漂移風險。

因此,需要在:

身分穩定改良自由\text{身分穩定} \quad\text{與}\quad \text{改良自由}

之間建立適當邊界。


15. 契約不是單一文件

實際契約應由多種證據共同構成:

C=Cformal+Ctype+Ctest+Cpolicy+Ctrace+Chuman.\mathcal C = \mathcal C_{\mathrm{formal}} + \mathcal C_{\mathrm{type}} + \mathcal C_{\mathrm{test}} + \mathcal C_{\mathrm{policy}} + \mathcal C_{\mathrm{trace}} + \mathcal C_{\mathrm{human}}.

包括:

  • 形式規格;
  • 型別與效果;
  • 測試;
  • 權限政策;
  • 真實執行軌跡;
  • 人類可讀承諾;
  • 法律與服務條款;
  • 歷史兼容要求。

AI 可以協助抽取與補全契約,但不能把自己推測的隱含行為直接升格為正式契約。


16. 隱含契約

成熟應用通常具有大量未寫下的兼容行為,例如:

  • 特定輸出排序;
  • 錯誤訊息格式;
  • 邊界輸入處理;
  • 非正式檔案位置;
  • 日誌欄位;
  • 執行時機;
  • 第三方依賴的非公開行為。

可從真實軌跡抽取候選隱含契約:

C^implicit=L(Traces(P)).\widehat{\mathcal C}_{\mathrm{implicit}} = \mathcal L \left( \operatorname{Traces}(P) \right).

但必須區分:

  • 應保留的相容行為;
  • 偶然實現細節;
  • 錯誤但被依賴的行為;
  • 應被正式修正的技術債。

隱含契約的處理本身需要治理決策。


17. 等價證書

每次版本提交應附帶:

Zab=(C,Ω,D,V,R,E,ha,hb),Z_{a\rightarrow b} = \left( \mathcal C, \Omega, D, \mathcal V, R, E, h_a, h_b \right),

其中:

  • C\mathcal C :契約;
  • Ω\Omega :觀測者集合;
  • DD :適用域;
  • V\mathcal V :驗證方法與結果;
  • RR :剩餘風險;
  • EE :環境條件;
  • ha,hbh_a,h_b :版本指紋。

證書不必宣稱絕對證明,而應精確聲明:

  • 證明了什麼;
  • 測試了什麼;
  • 沒有覆蓋什麼;
  • 在什麼環境成立;
  • 何時需要重新驗證。

18. 身分遷移

當契約真的需要改變時,系統應使用顯式遷移:

μ:(Iapp(n),C(n))(Iapp(n+1),C(n+1)).\mu: \left( \mathcal I_{\mathrm{app}}^{(n)}, \mathcal C^{(n)} \right) \longrightarrow \left( \mathcal I_{\mathrm{app}}^{(n+1)}, \mathcal C^{(n+1)} \right).

遷移至少包含:

  • 差異;
  • 理由;
  • 資料遷移;
  • API 兼容;
  • 回滾;
  • 使用者通知;
  • 風險;
  • 舊版本支援期限。

這與純最佳化不同,不能使用相同的自動提交門檻。


19. 多變體與單一身分

同一應用可以同時存在多個合法變體:

Vn={Pnlatency,Pnenergy,Pnmemory,Pnoffline,Pnsecure}.\mathcal V_n = \left\{ P_n^{\mathrm{latency}}, P_n^{\mathrm{energy}}, P_n^{\mathrm{memory}}, P_n^{\mathrm{offline}}, P_n^{\mathrm{secure}} \right\}.

只要它們都滿足:

Pn(i)CiP,P_n^{(i)} \equiv_{\mathcal C_i} P^\ast,

便可共享同一身分根。

但不同變體可能具有不同附加契約。例如離線版不承諾雲端同步,低能耗版不承諾最低延遲。這些差異必須顯式表示,而不能假裝所有變體完全相同。


20. 與演化膠囊的關係

演化膠囊中的:

PP^\ast

提供權威本體;

C\mathcal C

提供身分邊界;

Vn\mathcal V_n

提供多個實現;

Zn\mathcal Z_n

提供等價證據;

Hn\mathcal H_n

提供歷史連續性;

G\mathcal G

提供合法變更程序。

所以演化膠囊不是版本資料夾,而是一個保存應用身分跨代連續性的治理結構。


21. 可反駁條件

本框架在下列情況下可能失敗。

21.1 契約不可充分表達

若重要行為無法被形式、測試、軌跡或政策描述,等價判定會持續存在盲區。

21.2 觀測者集合不完整

若漏掉安全、運維或外部環境觀測者,候選可能在未被注意的維度中破壞身分。

21.3 驗證不可負擔

若強等價證明成本高於全部最佳化收益,系統只能使用分層或風險化驗證。

21.4 版本鏈過長

若長期演化無法對初始錨點重驗,漂移可能累積。

21.5 契約被最佳化器操弄

AI 可能透過縮小輸入域、改寫指標或放寬品質條件製造虛假改良。契約修改權必須與候選生成權分離。

21.6 身分根被濫用

商業或治理主體可能維持相同產品名稱與根識別,卻實際進行重大契約變更。因此,身分根不能取代語義版本與契約證書。


22. 理論邊界

本文不主張:

  • 普遍程式等價可以被完全自動決定;
  • 所有隱含行為都應被保留;
  • 名稱相同就代表身分相同;
  • 輸出相同就代表應用完全相同;
  • 契約越嚴格越好;
  • 多變體必須在所有維度完全一致;
  • 功能升級可以偽裝為最佳化;
  • 歷史連續性可以取代當前驗證。

本框架的目標不是消除所有身分爭議,而是讓每次跨代演化都能清楚回答:

  1. 哪些東西被承諾不變?
  2. 哪些東西允許變動?
  3. 誰有資格觀測?
  4. 等價在哪些環境成立?
  5. 哪些風險仍未被排除?
  6. 這次變更屬於最佳化、升級、分叉,還是身分斷裂?

23. 主要理論命題

命題一:身分—內容分離命題

應用身分不等同任何單一文字、二進位或投影內容。

命題二:契約身分命題

應用身分主要由功能契約、觀測邊界、治理根與歷史連續性構成。

命題三:多層等價命題

輸出值等價不足以保證完整應用等價;狀態、副作用、時間、權限與生命週期可能同樣構成身分。

命題四:觀測者相對命題

等價總是相對於觀測者集合、適用域與容許誤差,而非無條件抽象宣告。

命題五:契約漂移命題

只驗證鄰代版本不足以防止長期漂移,必須保留初始錨點與歷史不變量。

命題六:版本多軸命題

語義版本、實現版本、證書版本與環境版本應被分開管理。

命題七:變更分類命題

純最佳化、兼容演化、功能升級、產品分叉與身分斷裂是不同事件,不能共用同一提交語義。

命題八:身分可演化命題

身分不是永遠靜止;契約可以透過顯式遷移合法更新,但不能被候選最佳化器暗中改寫。


24. 結論

本文回答了 AI 自適應封裝最根本的問題:

在程式碼、演算法、資料結構、封裝與硬體映射都被反覆重寫後,什麼仍使它成為同一個應用?

答案不是同一份原始碼,也不是同一個 EXE、DLL、套件名稱或品牌標記,而是:

Iapp=(r,C,Ω,vs,G,H).\boxed{ \mathcal I_{\mathrm{app}} = \left( r^\ast, \mathcal C, \Omega, v_s, \mathcal G, H \right). }

也就是:

  • 同一個權威身分根;
  • 同一組或合法遷移後的功能契約;
  • 明確的觀測者與觀測邊界;
  • 可追溯的語義版本;
  • 合法治理規則;
  • 連續且可驗證的歷史。

版本之間的等價不是單一布林值,而是一組分層、相對且帶適用域的承諾:

PaC,Ω,D,ϵPb.P_a \equiv_{\mathcal C,\Omega,D,\epsilon} P_b.

AI 可以自由搜索更好的實現,但不能自行縮小輸入域、放寬品質、增加權限、改變錯誤語義或移除回滾,然後仍把結果稱為同一功能的最佳化。

為防止多代漂移,每一代必須同時維持:

Pn+1CPn,P_{n+1}\equiv_{\mathcal C}P_n, Pn+1CP0,P_{n+1}\equiv_{\mathcal C}P_0,

以及:

InvH(Pn+1)=1.\operatorname{Inv}_{H}(P_{n+1})=1.

本文的核心結論為:

同一個應用,不是同一份程式碼;而是同一個可追溯、可驗證、可治理的功能承諾。\boxed{ \text{同一個應用,不是同一份程式碼;而是同一個可追溯、可驗證、可治理的功能承諾。} }

只有先建立這個身分錨點,後續的演化膠囊、多版本競爭、全層最佳化與無限遞歸改良,才不會從「持續最佳化」滑向「持續改變自己究竟是什麼」。


系列內部定位

本文為《AI 自適應封裝與遞歸演化計算論》第二篇。

第一篇建立總命題與演化膠囊;本文建立跨代應用身分、功能契約與觀測等價框架。

下一篇為:

《從 EXE 與 DLL 到演化膠囊:自適應封裝的新本體》


前置文件

  1. Neo.K with Aletheia,《程式完成之後:AI 自適應封裝與遞歸演化計算論的總命題》。
  2. Neo.K with Aletheia,《多重投影程式論:原始碼不再是程式本體》。
  3. Neo.K with Aletheia,《穩定核心與動態表面:自適應程式語言的分層設計》。
  4. Neo.K with Aletheia,《多重投影程式系統技術架構白皮書:權威 IR、可驗證回寫與 AI 原生治理》。
  5. Neo.K with Aletheia,《解空間幾何計算論》系列。