算术数据类型 · 除零问题 · 文献综述与论证

零可以做分母吗

十四种自洽的形式化方案,以及每一种各自必须付出的那条公理。

00摘要

在通常算术里,1/0 与 0/0 不可能有值,这一点有严格证明,不是习惯问题。但在改变某一条前提的形式系统中,把 0 放在分母位不仅合法,而且有定理支撑、有完全公理化、有硬件实现、有千余年文献实践。

本文的主张不是"0 可以做分母",而是一个更精确的命题:0 可以做分母,当且仅当你愿意为它放弃一条公理。十四条方案,就是十四次不同的"交换"。任何声称证明了前者的论证,实际证明的都是后者。

01三条判据

一个表达式 a/0 要通过"可以做分母"的检验,需同时过三关:

语法能写

符号串在系统内是合法项,而不是被语法规则直接排除的写法。

语义有指称

它指称某个确定的对象(值),不是"未定义"。

理论自洽且有定理

加入它之后系统一致,能推出该系统的定理,且限制到非零分母时与已知算术重合。

下文所有方案的差别只在第二关和第三关。而且它们不是"终于找到了方法",而是"各自选择放弃一条公理"。

02不可能性定理:谁也绕不过的地基

Bergstra 在其综述中给出了一条把所有人都卡住的命题[1]:

命题 · 非平凡 premeadow 中零不成倒数

在任意满足 0 ≠ 1、加法与乘法构成交换幺半群、0·0 = 0、逆运算在非零元上给出真逆元的算术数据类型中,0⁻¹ 不可能是 0 的真乘法逆元,即恒有 0·0⁻¹ ≠ 1。

设 0·q = 1,则 0 = 0·1 = 0·(0·q) = (0·0)·q = 0·q = 1 与非平凡假设 0 ≠ 1 矛盾。∎

这条命题的力度在于:它不是"数学家没找到办法",而是"找到办法"会与某条被放弃的公理冲突。因此任何一条"0 做分母"的论证,本质上都是在四条公理里挑一条来弃:

① 0·x = 0  ② x + (−x) = 0  ③ 1 ≠ 0  ④ 除法是全函数

下文十四种方案,就是十四种不同的选择。经济学上这叫"没有免费午餐"。

03十四种方案:谁付了什么账

#方案1/00/0放弃的那条公理文献
1平凡环001 ≠ 0(整个结构塌缩)—
2对合 meadow00x·x⁻¹ = 1 无条件成立;UFAR 失效[2][3]
3common meadow⊥⊥x + (−x) = 0[4]
4轮 wheel∞⊥0·x = 0、分配律、x/x = 1[5][1]
5transreal±∞Φ与极限一致(改求值次序)[6][1]
6黎曼球面∞—域结构(∞ 非数)[1][5]
7IEEE 754±∞NaN实数语义、结合律[7][8]
8三值逻辑无值无值二值语义学[1]
9除法关系化∅全集除法是函数[1]
10极限 / 不定式→ ∞待定无(本来就允许)—
11零微积分00与标准分析一致[11][12]
12条件期望有值有值分母必须是数[13][14]
13khahara(印度传统)无穷量—无[9][10]
14Q₁ / Q₇₃₁1 / 7311 / 731无(仅证明任意性)[1]

方案 1|平凡环:逻辑上并非不可能

令 0 = 1,则 0 的逆元就是它自己,0/0 = 0 完全合法。代价是整个数系退化为一个点。这也解释了为何"模 n 的整数环中 0 可逆"只在 n = 1 时成立。它的论证价值是:"0 可做分母"不是逻辑矛盾,只是要付出"整个结构消失"的代价——一个极限情形。

方案 2|对合 meadow:唯一有完全性定理的一条

在域签名上增加一元逆运算 ⁻¹,公理强制它全函数,并取 0⁻¹ = 0,于是 1/0 = 0。这是全部方案中唯一具备"完全公理化"地位的一条(详见下一节)。代价是 x·x⁻¹ = 1 只在 x ≠ 0 时成立,无条件分数加法规则 UFAR 失效,只剩条件版 CFAR。

方案 3|common meadow:工程直觉最强

仍取全函数,但 0⁻¹ = ⊥,且 ⊥ 吸收一切运算(⊥+x = ⊥、⊥·x = ⊥)。Bergstra 与 Ponse 给出 basis theorem[4]。代价:⊥ + (−⊥) = ⊥ ≠ 0,直接撞上 x+(−x)=0——但换来 UFAR 成立,分数运算规则完好。

方案 8|三值逻辑:不造新数,只改语义学

不碰数系,只承认 1/0 是合法语法项但无指称,用三值逻辑(真/假/未定义)或短接逻辑来处理 x ≠ 0 → x·(1/x) = 1 在 x := 0 的代入。Bergstra 明确列出四类策略:部分函数逻辑、误差代数、无穷合取、短接求值[1]。这是最保守的一条——把"不能做分母"从语法禁令降级为语义空缺,本身已经是一次实质性让步。

方案 9|除法关系化:不定义商,只定义约束

把 b = a/c 理解为约束 a = b·c。于是当 c = 0:a ≠ 0 时解集为 ∅(商不存在);a = 0 时解集为全体元素(商欠定)。0/0 不是"无意义",而是"全解"。这在关系代数与逻辑编程里是标准做法。Bergstra 论文中 capture inverses 与 produce inverses 的区分,正是这条的形式化入口[1]。代价:(a/b)·b = a 不再可代换。

方案 10|极限:0/0 型是分析学的核心对象

lim sin x / x = 1,导数定义本身就是 0/0 型,L'Hôpital 法则处理的就是 0/0。它从来不"错误",只是需要额外信息(趋近路径、阶数)来定型。这条不放弃任何公理,代价是:答案依赖于你如何逼近。

方案 12|条件期望:分母是测度,不是数

P(A|B) = P(A∩B)/P(B) 在 P(B) = 0 时分母为零。但用条件期望而非 Bayes 公式,可以把条件化推广到零概率事件[13]。代价:结果依赖额外结构(σ-代数、极限方式、度量、最大熵)——这就是 Borel–Kolmogorov 悖论:同一事件按不同参数化给出不同答案,而这不叫矛盾,叫"同一个零概率事件的两种不同条件化"[14]。这是全篇最漂亮的一条:分母为零时商依然存在,前提是分母携带"如何逼近"的信息。

方案 13|khahara:它不是没人认真做过

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 在分母位不是从未被严肃书写的产物,而是被显式定义、显式命名、显式运算过的对象,只是后来被域公理这套更强势的框架淘汰。

04最强论证:把 1/0 = 0 写成定理

设签名 Σ_md = ⟨0, 1, +, ·, −, ⁻¹⟩,公理集 Md 包含:

(x⁻¹)⁻¹ = x + 0·x⁻¹    x·x⁻¹ = 1 + 0·x⁻¹ (x·y)⁻¹ = x⁻¹·y⁻¹     1⁻¹ = 1 0⁻¹ = 0         0·(x·y) = 0·(x+y)

关键设计在于最后两条:它不否认矛盾,而是用"异常项 0·x⁻¹"把矛盾吸收掉。0⁻¹ = 0 与前述公理是相容的。

定理 · Bergstra–Tucker

Md + C₀ 是特征 0 对合消去 meadow 等式理论的有限完全公理化;Q₀ 是其初始代数[2][3]。

于是论证可以写成三步:

① 有值

在 Q₀ 中,1/0 是一个项的值,即 0。

② 唯一

该值由公理决定,不由人挑;不是约定,而是可判定的理论后果。

③ 可退化

限制到 x ≠ 0 时退化为通常域运算,已知算术不被推翻。

所以"0 可以做分母"在这里获得了最强的形式:不是约定,而是定理的对象。代价精确地写在公理表上——x·x⁻¹ = 1 被换成了 x·x⁻¹ = 1 + 0·x⁻¹。

05轮式代数:最彻底的一条

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]。

06反方最强一击

不写这一节,前面的论证不成立。Bergstra 构造了[1]:

P(x, y) = 1 / ( 1/x − 1/y )

在 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 有值"。前者可证(十四条路径),后者可证伪(三行反证)。

07结论与选型

0 可以做分母;代价是那个商不再是数,而是你选定的代数给出的一个标签——而一旦选定这个标签,你就必须交出使商唯一的那条公理。

若真要使用,按场景选型:

场景用哪一条理由
工程 / 硬件IEEE 754标准强制,可复现,无需自建理论
证明助手 / 形式化对合 meadow(1/0 = 0)有限完全公理化,可判定,与域运算在其他点重合
几何 / 复分析球面或 wheel∞ 与 ⊥ 有确定的拓扑含义(单极点)
概率 / 统计条件期望分母是测度而非数,额外结构可消除歧义
教学 / 论证平凡环 + khahara演示"逻辑上并非不可能,只是要付账"

反过来,如果你要的是唯一且可代换的商,那么 0 必须留在分母之外——这不是禁忌,而是一条明确的定价。

08参考文献


  1. Bergstra, J. A. Division by Zero: A Survey of Options. 2019. 本文的主线:premeadow 框架、十四条方案的分类、路径依赖反例、Q₁ 与 Q₇₃₁ 的任意性论证。 pdfs.semanticscholar.org/15d8/…
  2. Bergstra, J. A.; Bethke, I.; Ponse, A. Cancellation Meadows: a Generic Basis Theorem and Some Applications. arXiv:0803.3969. 给出 Q₀(零全化逆,0⁻¹ = 0)的设定与完全性结果。 arxiv.org/pdf/0803.3969
  3. Bergstra, J. A.; Tucker, J. V. The Rational Numbers as an Abstract Data Type. Journal of the ACM 54(2), 2007. meadow 作为抽象数据类型的原始工作。 (经 [2] 的文献表引用)
  4. Bergstra, J. A.; Ponse, A. Division by Zero in Common Meadows. arXiv:1406.6878. 吸收元 ⊥ 的公理表与 basis theorem。 arxiv.org/pdf/1406.6878v1
  5. Carlström, J. Wheels — on Division by Zero. 2001/2004;“任意交换环可嵌入 wheel”的嵌入定理。 handwiki.org/wiki/Wheel_theory
  6. Anderson, J. A. D. W.; Völker, N.; Adams, A. A. Perspex Machine VIII: Axioms of Transreal Arithmetic. Proc. SPIE 6499, 2007. transreal:±∞ 与 Φ。 zenodo.org/record/810883
  7. IEEE. Standards Interpretation for IEEE Std 754-1985. 官方对"除零 = 取极限"的解释。 standards.ieee.org/…/754-1985_interp.pdf
  8. Kahan, W. Lecture Notes on the Status of IEEE Standard 754 for Binary Floating-Point Arithmetic. 除零异常与符号零的说明。 people.eecs.berkeley.edu/~wkahan/…
  9. O'Connor, J. J.; Robertson, E. F. Bhaskara II (1114–1185). MacTutor History of Mathematics. 引《Bijaganita》"分母为零的分数称为无穷量"。 mathshistory.st-andrews.ac.uk/…/Bhaskara_II/
  10. Divakaran, S. Mathematics in India(Bhāvanā 连载)/印度统计研究所〈Zero〉专题。Brahmagupta 与 Bhāskara 关于 a/0 的原文与 0/0 的处理。 isid.ac.in/~rahul/zero/node3.html
  11. Okumura, H.; Saitoh, S. Wasan Geometry and Division by Zero Calculus. Sangaku J. Math. 2 (2018). 零微积分:1/0 = 0、tan(π/2) = 0。 sangaku-journal.eu/…/SJM_2018_57-73
  12. Pinelas, S.; Saitoh, S. Division by Zero Calculus and Differential Equations. Springer Proc. Math. & Stat. 230. 零微积分在微分方程上的外推。 link.springer.com/chapter/10.1007/978-3-319-75647-9_33
  13. Gyenis, Z.; Rédei, M. Conditioning Using Conditional Expectations: The Borel–Kolmogorov Paradox. Synthese. 论证条件期望才是零概率条件化的正确装置。 hps.elte.hu/~gszabo/Preprints/Borel-Kolmogorov.pdf
  14. HandWiki. Conditioning (probability). 零概率事件条件化的"额外输入"要求与 Borel 悖论的关系。 handwiki.org/wiki/Conditioning_(probability)
  15. 〈History of the Division by Zero and Division by Zero Calculus〉. Roman Science Publications, 2022. 除零史的时间线与各派主张(含优先权争议)。 romanpub.com/resources/1. dbzc 2022.pdf

关于本文的诚实标注

零微积分(方案 11)在主流数学界未被接受;其"发现于 2014 年"的优先权主张被 Bergstra 用 1975 年 Komori 的文献直接反驳[1][15]。transreal 算术同样不是标准算术的替代品。本文把它们列入,是为了完整呈现"自洽"与"被承认"之间的差别,而不是为其背书。