算术数据类型 · 除零问题 · 文献综述与论证
十四种自洽的形式化方案,以及每一种各自必须付出的那条公理。
配套可视化(可交互):方向即取值 —— 除零的障碍是原点,不是分母
在通常算术里,1/0 与 0/0 不可能有值,这一点有严格证明,不是习惯问题。但在改变某一条前提的形式系统中,把 0 放在分母位不仅合法,而且有定理支撑、有完全公理化、有硬件实现、有千余年文献实践。
本文的主张不是"0 可以做分母",而是一个更精确的命题:0 可以做分母,当且仅当你愿意为它放弃一条公理。十四条方案,就是十四次不同的"交换"。任何声称证明了前者的论证,实际证明的都是后者。
一个表达式 a/0 要通过"可以做分母"的检验,需同时过三关:
符号串在系统内是合法项,而不是被语法规则直接排除的写法。
它指称某个确定的对象(值),不是"未定义"。
加入它之后系统一致,能推出该系统的定理,且限制到非零分母时与已知算术重合。
下文所有方案的差别只在第二关和第三关。而且它们不是"终于找到了方法",而是"各自选择放弃一条公理"。
Bergstra 在其综述中给出了一条把所有人都卡住的命题[1]:
在任意满足 0 ≠ 1、加法与乘法构成交换幺半群、0·0 = 0、逆运算在非零元上给出真逆元的算术数据类型中,0⁻¹ 不可能是 0 的真乘法逆元,即恒有 0·0⁻¹ ≠ 1。
这条命题的力度在于:它不是"数学家没找到办法",而是"找到办法"会与某条被放弃的公理冲突。因此任何一条"0 做分母"的论证,本质上都是在四条公理里挑一条来弃:
下文十四种方案,就是十四种不同的选择。经济学上这叫"没有免费午餐"。
| # | 方案 | 1/0 | 0/0 | 放弃的那条公理 | 文献 |
|---|---|---|---|---|---|
| 1 | 平凡环 | 0 | 0 | 1 ≠ 0(整个结构塌缩) | — |
| 2 | 对合 meadow | 0 | 0 | x·x⁻¹ = 1 无条件成立;UFAR 失效 | [2][3] |
| 3 | common meadow | ⊥ | ⊥ | x + (−x) = 0 | [4] |
| 4 | 轮 wheel | ∞ | ⊥ | 0·x = 0、分配律、x/x = 1 | [5][1] |
| 5 | transreal | ±∞ | Φ | 与极限一致(改求值次序) | [6][1] |
| 6 | 黎曼球面 | ∞ | — | 域结构(∞ 非数) | [1][5] |
| 7 | IEEE 754 | ±∞ | NaN | 实数语义、结合律 | [7][8] |
| 8 | 三值逻辑 | 无值 | 无值 | 二值语义学 | [1] |
| 9 | 除法关系化 | ∅ | 全集 | 除法是函数 | [1] |
| 10 | 极限 / 不定式 | → ∞ | 待定 | 无(本来就允许) | — |
| 11 | 零微积分 | 0 | 0 | 与标准分析一致 | [11][12] |
| 12 | 条件期望 | 有值 | 有值 | 分母必须是数 | [13][14] |
| 13 | khahara(印度传统) | 无穷量 | — | 无 | [9][10] |
| 14 | Q₁ / Q₇₃₁ | 1 / 731 | 1 / 731 | 无(仅证明任意性) | [1] |
令 0 = 1,则 0 的逆元就是它自己,0/0 = 0 完全合法。代价是整个数系退化为一个点。这也解释了为何"模 n 的整数环中 0 可逆"只在 n = 1 时成立。它的论证价值是:"0 可做分母"不是逻辑矛盾,只是要付出"整个结构消失"的代价——一个极限情形。
在域签名上增加一元逆运算 ⁻¹,公理强制它全函数,并取 0⁻¹ = 0,于是 1/0 = 0。这是全部方案中唯一具备"完全公理化"地位的一条(详见下一节)。代价是 x·x⁻¹ = 1 只在 x ≠ 0 时成立,无条件分数加法规则 UFAR 失效,只剩条件版 CFAR。
仍取全函数,但 0⁻¹ = ⊥,且 ⊥ 吸收一切运算(⊥+x = ⊥、⊥·x = ⊥)。Bergstra 与 Ponse 给出 basis theorem[4]。代价:⊥ + (−⊥) = ⊥ ≠ 0,直接撞上 x+(−x)=0——但换来 UFAR 成立,分数运算规则完好。
不碰数系,只承认 1/0 是合法语法项但无指称,用三值逻辑(真/假/未定义)或短接逻辑来处理 x ≠ 0 → x·(1/x) = 1 在 x := 0 的代入。Bergstra 明确列出四类策略:部分函数逻辑、误差代数、无穷合取、短接求值[1]。这是最保守的一条——把"不能做分母"从语法禁令降级为语义空缺,本身已经是一次实质性让步。
把 b = a/c 理解为约束 a = b·c。于是当 c = 0:a ≠ 0 时解集为 ∅(商不存在);a = 0 时解集为全体元素(商欠定)。0/0 不是"无意义",而是"全解"。这在关系代数与逻辑编程里是标准做法。Bergstra 论文中 capture inverses 与 produce inverses 的区分,正是这条的形式化入口[1]。代价:(a/b)·b = a 不再可代换。
lim sin x / x = 1,导数定义本身就是 0/0 型,L'Hôpital 法则处理的就是 0/0。它从来不"错误",只是需要额外信息(趋近路径、阶数)来定型。这条不放弃任何公理,代价是:答案依赖于你如何逼近。
P(A|B) = P(A∩B)/P(B) 在 P(B) = 0 时分母为零。但用条件期望而非 Bayes 公式,可以把条件化推广到零概率事件[13]。代价:结果依赖额外结构(σ-代数、极限方式、度量、最大熵)——这就是 Borel–Kolmogorov 悖论:同一事件按不同参数化给出不同答案,而这不叫矛盾,叫"同一个零概率事件的两种不同条件化"[14]。这是全篇最漂亮的一条:分母为零时商依然存在,前提是分母携带"如何逼近"的信息。
Brahmagupta(598–668)在《Brāhmasphuṭasiddhānta》中写道:正数或负数除以零,是"以零为分母的分数"[10]。Bhāskara II 进一步说:"一量除以零成为分母为零的分数,此分数称为无穷量(khahara)"[9]。更妙的是他引入"0 上的待定运算"(impending operations on zero),认为 a×0/0 ≠ 0/0 而 = a——这几乎就是"除法是关系、需要上下文"的雏形。
也就是说,0 在分母位不是从未被严肃书写的产物,而是被显式定义、显式命名、显式运算过的对象,只是后来被域公理这套更强势的框架淘汰。
1/0 = 0 写成定理设签名 Σ_md = ⟨0, 1, +, ·, −, ⁻¹⟩,公理集 Md 包含:
关键设计在于最后两条:它不否认矛盾,而是用"异常项 0·x⁻¹"把矛盾吸收掉。0⁻¹ = 0 与前述公理是相容的。
Md + C₀ 是特征 0 对合消去 meadow 等式理论的有限完全公理化;Q₀ 是其初始代数[2][3]。
于是论证可以写成三步:
在 Q₀ 中,1/0 是一个项的值,即 0。
该值由公理决定,不由人挑;不是约定,而是可判定的理论后果。
限制到 x ≠ 0 时退化为通常域运算,已知算术不被推翻。
所以"0 可以做分母"在这里获得了最强的形式:不是约定,而是定理的对象。代价精确地写在公理表上——x·x⁻¹ = 1 被换成了 x·x⁻¹ = 1 + 0·x⁻¹。
Carlström 的〈Wheels — on division by zero〉把除法做成永远有定义:1/0 = ∞,0/0 = ⊥,并证明任意交换环或半环都可嵌入一个 wheel[5]。这是一条真正的嵌入定理,而不是约定。
它的几何来源是"射影直线再加上一个点 ⊥"——术语 wheel 就取自那个拓扑图形 ⊙。代价也最狠:0·x = 0 失效,乘法对加法不再分配,x/x ≠ 1[5]。
方案 5 的 transreal 算术是它的工程变体:Anderson 在 SPIE 论文中给出 1/0 = +∞、−1/0 = −∞、0/0 = Φ(nullity),除法全定义、封闭[6];Bergstra 将其整理为 43 条重写规则并证明合流且终止[1]。代价:结果依赖"由内向外"的求值次序,而不是数学上无歧义的极限。
只加一个 ∞ 的版本(黎曼球面)则是最"正统"的:z ↦ 1/z 在球面上是连续映射,1/0 = ∞,0 是单极点。代价:∞ 不是数,∞·0、∞−∞ 无定义。
工程侧的 IEEE 754 给出 3.0/0.0 = +Inf、−1.0/0.0 = −Inf、0.0/0.0 = NaN[7]。它的论证力度在于:这不是约定,是标准强制、可复现、硬件保证。而且官方解释文件给出了语义理由——非零数除以零"应被理解为分子可表示而分母小到不可表示时的比值极限,故最好用相应符号的无穷表示"[7][8]。
不写这一节,前面的论证不成立。Bergstra 构造了[1]:
在 Q∞ 中 P(0,0) = 0;但沿路径 x = y(1+x) 让 x, y ↓ 0,得到 P → 1,故二重极限根本不存在。同理 Q(x,y) = 1/((1/x)·(1/(1/y))) 得 0,而极限为 ∞。
所以:这些代数赋值不是极限的忠实记录。它们的"语义正当性"只能建立在"由内向外求值"这个语法策略上,而不能建立在分析上。
更能说明问题的是,Bergstra 在同一框架里构造了 0⁻¹ = 1(记作 Q₁)与 0⁻¹ = 731(记作 Q₇₃₁),后者的用意是:只要 731 不进入任何定理,它与 1/0 = 0 在理论上同权[1]。
在 premeadow 框架内,1/0 取什么值,原则上不可被数学约束。
于是任何"我论证了 0 可以做分母"的声明,精确形式只能是:存在一个自洽的算术数据类型,其中 0 处于分母位且有值。而不是"在通常算术里 0/0、1/0 有值"。前者可证(十四条路径),后者可证伪(三行反证)。
0 可以做分母;代价是那个商不再是数,而是你选定的代数给出的一个标签——而一旦选定这个标签,你就必须交出使商唯一的那条公理。
若真要使用,按场景选型:
| 场景 | 用哪一条 | 理由 |
|---|---|---|
| 工程 / 硬件 | IEEE 754 | 标准强制,可复现,无需自建理论 |
| 证明助手 / 形式化 | 对合 meadow(1/0 = 0) | 有限完全公理化,可判定,与域运算在其他点重合 |
| 几何 / 复分析 | 球面或 wheel | ∞ 与 ⊥ 有确定的拓扑含义(单极点) |
| 概率 / 统计 | 条件期望 | 分母是测度而非数,额外结构可消除歧义 |
| 教学 / 论证 | 平凡环 + khahara | 演示"逻辑上并非不可能,只是要付账" |
反过来,如果你要的是唯一且可代换的商,那么 0 必须留在分母之外——这不是禁忌,而是一条明确的定价。
Q₀(零全化逆,0⁻¹ = 0)的设定与完全性结果。
arxiv.org/pdf/0803.3969±∞ 与 Φ。
zenodo.org/record/810883a/0 的原文与 0/0 的处理。
isid.ac.in/~rahul/zero/node3.html1/0 = 0、tan(π/2) = 0。
sangaku-journal.eu/…/SJM_2018_57-73零微积分(方案 11)在主流数学界未被接受;其"发现于 2014 年"的优先权主张被 Bergstra 用 1975 年 Komori 的文献直接反驳[1][15]。transreal 算术同样不是标准算术的替代品。本文把它们列入,是为了完整呈现"自洽"与"被承认"之间的差别,而不是为其背书。