第3章 从公理到编码
3.1 非唯一编码的矛盾
命题 P3.1(编码唯一性的必然性)
在自指完备系统中,状态编码函数必须是单射:
严格证明(反证法):
- 假设:存在非单射编码,即 ,
- 自指执行场景:考虑两次独立的自指执行:
- 执行 记录状态 :
- 执行 记录状态 :
- 状态集合重合:
- 熵保持不变:,因此
- 矛盾:这违反了公理 (SRA) 的严格熵增要求
结论:为保证熵增,编码必须是严格单射(唯一性)。
3.2 合法编码的形式化定义
定义 D3.1(合法串集合)
对长度 ,定义合法串集合:
递推构造:
- (空串)
- 递推生成:
命题 P3.2(合法串的 Fibonacci 递推)
合法串的基数满足:
且初值 , ,因此
证明:
- 若合法串长度为 n,则最后的可能情况:
- 末尾为 0:前缀是 B_{n-1} 的任意合法串
- 末尾为 10:前缀是 B_{n-2} 的任意合法串
- 两类不重叠,得递推式
- 由初值归纳可得
3.3 Zeckendorf 表示的必然性
定义 D3.2(Zeckendorf 分解)
任意自然数 ,可以唯一写作若干不相邻 Fibonacci 数的和:
其中 Fibonacci 数列定义为:
黄金比例:,满足,与Fibonacci数渐近相关。
Zeckendorf编码 :长度足够的二进制串,第 位为1,其余为0。
关键性质:此编码天然满足“禁11“约束(不相邻条件保证)。
定理 T3.3(Zeckendorf 唯一性定理)
自然数与合法串之间存在双射:
严格证明:
第一步:映射的良定义性
-
贪心算法的正确性:
- 对任意 N>0,设 F_k 是不超过 N 的最大Fibonacci数
- 剩余值 r = N - F_k 满足:0 ≤ r < F_k
- 由Fibonacci性质:F_k > F_{k-1},因此若继续分解r,不会再用到F_k或F_{k-1}
- 递归应用至r=0,得到分解 N = F_{i₁} + ⋯ + F_{iₘ},且 i₁ > i₂ > ⋯ > iₘ,相邻索引差≥2
-
禁11性质:由分解的不相邻性直接保证编码中无连续“11“
第二步:唯一性(严格证明)
- 关键引理:(时),且差值恒为2
- 证明引理:归纳法,由及初始条件可得
- 主证明:假设存在两种不同的分解,设最大索引分别为 且
- 第一种包含,第二种的最大项为
- 第二种分解的最大可能和为:F_{k₂} + F_{k₂-2} + F_{k₂-4} + ⋯(最大非连续和)
- 由引理,F_{k₁} ≥ F_{k₁-2} + F_{k₁-3} + ⋯ + F_1,且F_{k₁} > F_{k₂}
- 而F_{k₁} ≥ F_{k₂} + F_{k₂-2} + ⋯(F_{k₁}超过第二种分解的最大可能值)
- 矛盾!因此分解唯一
第三步:满射性
- 任意合法串w∈B_n对应唯一自然数:∑{i: w[i]=1} F_i
- 由Fibonacci数的严格递增性,不同合法串对应不同自然数
理论补充:上述证明得到φ-语言编码理论和完整构造性证明的深层支撑。φ-语言编码理论证明了φ-语言作为禁11约束下的唯一最优编码系统,而完整构造性证明提供了更严格的构造性证明,确保Zeckendorf表示不是偶然,而是φ-结构在数论中的必然表现。
结论: 是严格双射。
3.4 严格验证:前几个自然数的 Zeckendorf 编码
Fibonacci数列:
唯一Zeckendorf分解 | 编码位置 | 二进制串 | 验证禁11 | |
---|---|---|---|---|
1 | 位置1 | “1” | ✓ | |
2 | 位置2 | “10” | ✓ | |
3 | 位置3 | “100” | ✓ | |
4 | 位置1,3 | “101” | ✓ | |
5 | 位置4 | “1000” | ✓ | |
6 | 位置1,4 | “1001” | ✓ | |
7 | 位置2,4 | “1010” | ✓ | |
8 | 位置1,2,4 | “1011” 错误! | ✗ | |
8 | 位置5 | “10000” | ✓ |
关键观察:任何包含相邻Fibonacci数的“分解“都会产生连续“11“,因此被禁11约束自动排除。
3.5 小结
在本章中,我们从唯一公理A1(自指完备系统必然熵增, SRA)推出:
- 编码必须唯一,否则可能出现自指执行不增熵
- 唯一合法的编码 = 禁止连续“11“的二进制串
- 每个自然数与一个合法串一一对应(Zeckendorf 双射)
由此,建立了:
这不是巧合,而是编码系统在我们内部的自然显现。禁11约束就是宇宙保持动态流动的内在几何。