代数命题的逻辑论证
Cayley–Hamilton 定理
首先让我们来回顾这么一个老生常谈的问题.
定理: 设 \(A\) 是环 \(R\) 上的 \(n\) 阶方阵, 令 \(f(\lambda) = \det(\lambda I - A)\) 是 \(A\) 的特征多项式, 则 \(f(A) = 0\).
这个定理有很多种巧妙精甚的证明, 比如通过纯组合的手段分析它的系数. 但今天我们要回顾的是其中堪称最为 "空洞" 的一种. 我们的证明策略是这样的: 我们先对某个非常简单的情况证明这个定理, 然后将它一步步过渡到一般情况.
1. 对角阵. 我们先考虑 \(R = \mathbb{C}\) 的情况. 设 \(A \in \mathbb{C}^{n\times n}\) 是一个 \(n\) 阶方阵, 且 \(f_A(\lambda) = \det(\lambda I - A)\) 的 \(n\) 个根 \(f_A(\lambda) = (\lambda - \lambda_1) \cdots (\lambda - \lambda_n)\) 互不相同,
也即
这个情况下, 我们可以将 \(A\) 对角化为对角元为 \(\lambda_1, \dots, \lambda_n\) 的对角阵. 进而有
2. \(\mathbb C\) 上的所有矩阵. 我们将这个恒等式 \(f_A(\lambda) = \det(\lambda I - A)\) 看做一个多元多项式: 它有 \(n^2+1\) 个变量, 一个是 \(\lambda\), 另外 \(X_{11},\dots,X_{nn}\) 是 \(A\) 的所有元素. 固定 \(A\) 的一个取值的时候, 多项式 \(f_A(\lambda)\) 什么时候没有重根呢? 这可以通过判别式 \(\operatorname{res}(f_A, f_A')\) 来判断.
现在我们注意: \(D(A) := \operatorname{res}(f_A, f_A')\) 是一个关于 \(X_{11},\dots,X_{nn}\) 的多项式, 而 \(C_{ij}(A) := f_A(A)_{ij}\) 是另一个关于 \(X_{11},\dots,X_{nn}\) 的多项式. 显然 \(D(A)\) 不是零多项式, 因为我们很容易找一组对角阵 \(A\) 使得 \(D(A) \neq 0\).
接下来我们假设 \(C_{ij}(A)\) 这个多项式并不是零多项式, 那么这会有一个矛盾: 考虑乘积 \(C_{ij}(A) \cdot D(A)\), 这个多项式是非零多项式, 就一定存在一个取值 \(A_0\) 使得 \(C_{ij}(A_0) \cdot D(A_0) \neq 0\). 但是我们知道, \(D(A)\neq 0\) 的时候总有 \(C_{ij}(A) = 0\), 矛盾.
所以 \(C_{ij}(A)\) 只能是零多项式, 进而 \(f_A(A) = 0\).
注. 上面这个论证有更系统一些的说法, \(D(A)\neq 0\) (以及一般的多项式函数) 这种集合构成了 Zariski 拓扑的基, \(C_{ij}(A)\) (以及一般的多项式函数) 是 Zariski 拓扑的连续函数, 无限域上的 Zariski 拓扑有非空开集的稠密性, 上面证明其实就是对连续函数取极限的结果.
3. 一般情况. 我们首先考虑一个特定的环:
将 \(f_A(A) \in \mathbb Z[X_{11},\dots, X_{nn}]\) 视为这个多项式环的元素, 它是 \(0\), 这是因为
是嵌入, 而前面我们已经证明了 \(f_A(A) = 0\) 在 \(\mathbb C\) 上成立.
接下来, 对于任何一个环 \(R\) 和上面的矩阵 \(\mathbf A\in R^{n\times n}\), 我们有环同态
将 \(X_{ij}\) 打到 \(\mathbf A_{ij}\). 这个环同态给出
注. 如果通过组合的方式比较系数, 本质上也还是先证明了在 \(\mathbb{Z}[X_{11},\dots,X_{nn}]\) 上成立. 从范畴论的角度来说, 这是因为 \(\mathbb{Z}[X_{11},\dots,X_{nn}]\) 连同它的未定元, 在 "环 \(R\) 连同 \(n^2\) 个特别标识的元素" 这个范畴中是一个始对象.
Ax–Grothendieck 定理
定理. 对于一个多项式函数 \(\mathbb C^n \to \mathbb C^n\), 如果它是单射, 那么它是满射.
惊人的是, 这个定理的证明是通过划归到有限情况解决的.
1. 有限域. 对于一个多项式函数 \(\mathbb F_q^n \to \mathbb F_q^n\), 如果它是单射, 那么因为这是两个大小相等的有限集合之间的函数, 它也是满射.
2. 正特征. 对于一个多项式函数 \(\overline{\mathbb F_p}^n \to \overline{\mathbb F_p}^n\), 我们假设它是单射而非满射. 那么假设 \(y\in \overline{\mathbb F_p}^n\) 是一个不在值域中的元素.
现在, 我们考虑 \(y\) 的所有元素以及 \(f\) 这个多项式的系数所生成的子域 \(K \subset \overline{\mathbb F_p}\). 那么 \(f\) 这个多项式可以定义在 \(K^n \to K^n\) 上, 并且是单射而非满射. 但是 \(K\) 是一个有限域, 这就产生了矛盾.
综上, 我们证明了所有 \(\overline{\mathbb F_p}\) 的情况.
3. 一阶逻辑.
为了解释逻辑学如何解决这个问题, 我们需要一点基本概念.
一个 语言 (language) \(\mathcal L\) 由一些基本字符组成, 有常数 \(\mathcal C\), 函数 \(\mathcal F\), 关系 \(\mathcal R\). 比如叙述环论的语言 \(\mathcal L_{\mathsf{ring}}\) 有常数 \(0, 1\), 二元函数 \(+\), 乘法 \(\cdot\), 一元函数 \(-\), 以及等号 \(=\).
这个语言的公式就是由常数, 函数, 关系, 变量和量词, 逻辑运算符组成的表达式命题. 要注意的一点是, 今天我们讨论的是 一阶逻辑, 所以量词 \(\forall\) 和 \(\exists\) 后面只能跟变量, 而不能是函数或者关系. 对于那些没有任何自由变量的公式 (每个变量都被某个量词罩着), 我们称之为 句子.
一个语言的 结构 \(\mathcal M\) 是一个集合 \(M\) 以及:
- 给每个常数 \(c\in \mathcal C\) 规定为一个 \(M\) 中的元素 \(c\in M\).
- 每个函数 \(f\in \mathcal F\) 都是一个 \(M^n\) 到 \(M\) 的映射.
- 每个关系 \(R\in \mathcal R\) 是一个 \(M^n\) 的子集.
一个 理论 (theory) \(T\) 是一个公式的集合. 对于一个模型 \(\mathcal M\), 如果 \(T\) 中的每个公式在 \(\mathcal M\) 这个解释下都为真, 那么我们称 \(\mathcal M\) 是 \(T\) 的一个 模型 (model), 记作 \(\mathcal M \models T\).
比如交换环的理论 \(T_{\mathsf{cring}}\) 就是由下面这些公式组成 (为了避免冗长, 这里将他们简写作为提示):
- \(=\) 是等价关系.
- \(+\) 是交换群, 以 \(0\) 为单位元.
- \(\cdot\) 是交换半群, 以 \(1\) 为单位元.
- 分配律.
比如分配律具体就写作公式
进一步地, 代数闭域的理论 \(T_{\mathsf{acf}}\) 就是 \(T_{\mathsf{cring}}\) 加上下面这些公式:
- 非零元素有逆元.
- 每个多项式都有根.
对于后者我们要加入 \(\mathbb N\) 个公式, 对于每个正整数 \(n\), 有
其中 \(x^n\) 要在语言里写成 \(n\) 个 \(x\) 的乘积.
最后一步, 我们为了区分不同的特征, 需要特征 \(p\) 的理论 \(\mathsf{ACF}_p\) 加入这条公理
其中 \(p\) 要在语言里写成 \(p\) 个 \(1\) 的和.
而对于特征 \(0\) 的情况, 我们有 \(\mathsf{ACF}_0\) 是 \(T_\mathsf{acf}\) 加上 \(\mathbb N\) 条公理: 对于每个正整数 \(n\),
模型论中的一个基本结论是选定特征之后, 代数闭域的理论的 完备性 (completeness). 这是说, 对于 \(p\) 是素数或者 \(p = 0\) 的情况, 对任何句子 \(\phi\), 要么所有 \(\mathsf{ACF}_p\) 的模型都满足 \(\phi\), 要么所有 \(\mathsf{ACF}_p\) 的模型都不满足 \(\phi\). 这个结果的深层原因是代数闭域是唯一的: 两个充分大的大小相等的同特征代数闭域都同构.
而为了证明 Ax–Grothendieck 定理, 我们需要用到另一个模型论的基本定理:
(一阶逻辑的) 紧致性定理 (Compactness Theorem) 一个理论 \(T\) 存在模型, 当且仅当 \(T\) 的每个有限子集都有模型.
现在让我们假设 Ax–Grothendieck 定理不成立, 那么就有一个正整数 \(n\), 存在一个多项式函数 \(f\colon \mathbb C^n \to \mathbb C^n\) 是单射而非满射. 如果它存在, 那么它有一个次数 \(m\), 我们可以将这个命题写成一个一阶语句:
- \(\exists\) 一个 \(m\) 次多项式 \(f\), 使得
- 对于 \(\forall \boldsymbol x, \boldsymbol y\), 有 \(f(\boldsymbol x)=f(\boldsymbol y) \implies \boldsymbol x=\boldsymbol y\).
- \(\exists \boldsymbol y\), 使得 \(\forall \boldsymbol x\), 有 \(f(\boldsymbol x)\neq \boldsymbol y\).
设上面这个句子是 \(\phi\), 因为 \(\phi\) 成立, 所以 \(\mathsf{ACF}_0 \cup \{\neg \phi\}\) 没有模型. 根据紧致性定理, \(\mathsf{ACF}_0\) 的一个有限子集 \(\Delta\) 满足 \(\Delta \cup \{\neg \phi\}\) 也没有模型.
但是 \(\Delta\) 是一个有限集, 所以它只包含有限多个 "\(n\neq 0\)" 这样的公理! 我们取一个充分大的 \(p\) 使得它不是这些 \(n\) 的因子, 那么有 \(\mathsf{ACF}_p\)
而我们知道在特征 \(p\) 里 \(\phi\) 是不可能成立的, 所以
矛盾!
因此, Ax–Grothendieck 定理的反例是不存在的.
代数电路的 \(\mathsf{AC}^0\) 下界
代数意义的 \(\mathsf{AC}^0\) 就是多项式大小的常数层电路, 每个门都是乘法或加法, 同时可以有任意多个输入. 大家有时候也写成 \(\sum \prod \sum \prod \cdots\) 这种形式.
在上个世纪, 人们很早就得到了 \(\mathsf{AC}^0\) 布尔电路的下界, 比如 Hastad 著名的转换引理 (switching lemma). 但代数电路的下界是前几年才得到的.
令 \(\mathrm{IMM}_{n,d}\) 是 迭代矩阵乘法 问题 (iterated matrix multiplication), 是 \(d\) 个 \(n\times n\) 个矩阵相乘 \((\mathbf X_1 \cdots \mathbf X_d)_{1,1}\) 的结果. 这个问题显然有一个 \(O(\log nd)\) 深度的电路.
定理. (Limaye–Srinivasan–Tavenas, 2021; 经 Bhargav–Dutta–Saxena 2022 优化)
如果计算的基域 \(F\) 的特征是 \(0\) 或者大于 \(d\), 对于 \(d = o(\log n)\), 对于有 \(\Delta\) 层乘法的电路, 需要\[n^{\Theta\left(d^{1/(F_{2\Delta+2}-1)} / \Delta\right)} \]的大小. 其中 \(F_k\) 是第 \(k\) 个 Fibonacci 数 (\(F_1=F_2=1\)).
这给出了代数电路的 \(\mathsf{AC}^0\) 下界, 但是, 一个美中不足的结果是, 它对小特征的情况并没有解决. 这个看起来是个不起眼的问题, 但阻碍了很多进一步的研究.
今年, Michael A. Forbes 终于解决了这个问题.
定理. (Forbes, 2024) 对于任何计算的基域 \(F\), 对于 \(d = o(\log n)\), 对于有 \(\Delta\) 层乘法的电路, 需要
\[n^{\Theta\left(d^{1/(F_{2\Delta+2}-1)} / \Delta\right)} \]的大小. 其中 \(F_k\) 是第 \(k\) 个 Fibonacci 数 (\(F_1=F_2=1\)).
Forbes 不仅解决了这个问题, 还提供了两种思路. 一种情况是确实修改了原来证明中的一个步骤, 一种思路是更加逻辑的方法, 也是本文要介绍的.
这个逻辑的方法还是需要拆开原本的证明, 原本证明大概可以拆成以下几个步骤:
第一步是将代数电路整理成比较规整的形式.
一个多项式是 \(d\) 部-多重线性的, 是说它的变量可以剖分成 \(d\) 块 \(X^{(1)}\sqcup \dots \sqcup X^{(d)}\), 然后它的每一项都是形如 \(x_{i_1}^{(1)} \cdots x_{i_d}^{(d)}\), 每个块里的变量出现次数刚好是 \(1\). 显然刚刚的迭代矩阵乘法就是一个 \(d\) 部-多重线性的多项式. 一个分部多重线性的电路是说每个门计算的都是一个分部多重线性的多项式.
Limaye–Srinivasan–Tavenas 证明的第一步就是, 将任何电路都高效转化成一个分部多重线性的电路, 但是, 这个转化对域的特征有要求.
定理 1.
在一个 特征为 \(0\) 或者大于 \(d\) 的基域上, 对于一个 \(d\) 次多项式 \(f\), 一个乘法深度为 \(\Delta\) 的, 大小为 \(s\) 的代数电路, 可以得到一个分部多重线性的电路, 乘法深度为 \(2\Delta\), 大小为 \((d^d s)^{O(1)}\), 计算 \(f\) 的 \(d\)-部多重线性的部分 \(\pi(f)\).
第二个部分是证明小的多项式, 它的系数构成的矩阵在某种意义上是小的, 并且和迭代矩阵乘法的系数矩阵不同. 这部分论证对域没有限制.
将 \(\mathrm{IMM}_{n,d}\) 的 \(d\) 组变量分成两部 \(Y, Z\), 其中 \(Y\) 的次数是 \(d_Y\), \(Z\) 的次数是 \(d_Z\), 对于任何一个 \(d\) 部-多重线性的多项式 \(f\), 我们按照每个单项式落在 \(Y\) 和 \(Z\) 的部分, 将 \(f\) 写成矩阵 \(C_f\) 的形式, 这是一个 \(n^{2d_Y} \times n^{2d_Z}\) 大小的矩阵.
定理 2. 存在一个划分 \(Y, Z\), 对于任何域 \(F\), \(d=o(\log n)\), 如果 \(f\) 是一个 \(d\) 部-多重线性的多项式, 它被一个乘法深度为 \(\Delta\) 的, 大小为 \(s\) 的分部多重线性的代数电路计算, 那么
\[\operatorname{rank} (C_f) \leq n^{d} \cdot s \cdot n^{-\Theta \left( d^{1/F_{\Delta + 2}} / \Delta \right)}, \]另一方面,
\[\operatorname{rank} (C_{\mathrm{IMM}_{n,d}}) = n^{d - \Omega(1)}. \]
显然, 上面两个定理结合起来就可以得到 Limaye–Srinivasan–Tavenas 的结果. 但是, 由于第一个部分对域有限制, 所以得到的结果也对域有限制.
现在让我们来看 Forbes 证明的策略: 我们需要把一个特征 \(0\) 情况的下界转移到任何域上.
现在假设某个域 \(F\) 上, \(\Phi\) 是一个想要计算 \(\mathrm{IMM}\) 的电路, 大小是 \(s\), 乘法深度是 \(\Delta\).
这个电路的每个元件要么是一个运算符, 要么是一个常数, 我们现在把所有常数替换成一个新的字符 \(c_i\). 这个新的电路 \(\Psi\) 计算了一个多项式 \(f(\boldsymbol X, \boldsymbol C) \in\mathbb Z[\boldsymbol X, \boldsymbol C]\). 其中 \(X\) 是原来矩阵乘法的输入, \(C\) 是所有常数替换得到的变量. 注意 \(f\) 甚至不一定是 \(d\) 部-多重线性的.
现在我们把它当做一个 \(\mathbb Q(\boldsymbol C)\) 为基域的多项式, 因为这是特征 \(0\) 的, 用定理 1 将它转化成一个分部多重线性的电路, 乘法深度是 \(2\Delta\), 大小是 \((d^d s)^{O(1)}\). 计算的是 \(\pi(f)\).
接下来根据定理 \(2\), 我们有
现在让我们看看 \(C_{\pi(f)}\) 这个矩阵. 它的元素其实是 \(\mathbb Z[\boldsymbol C]\) 里的, 因为 \(\pi(f)\) 只是保留 \(d\) 部-多重线性的部分. 而 \(r=\operatorname{rank}_{\mathbb Q(\boldsymbol C)} C_{\pi(f)}\) 这个值, 说的是任何 \((r+1)\times (r+1)\) 的子式都是 \(0\), 这个性质本身也是 \(\mathbb Z[\boldsymbol C]\) 上的性质.
现在考虑 \(\pi(f)\) 在 \(\boldsymbol C\) 作为 \(F\) 中原本选定的常数求值作为环同态 \(\overline{g} = g(c_1,\dots,)\), 我们得到了矩阵
进而有
因为任何 \(0\) 通过环同态还是 \(0\), 所以我们得到了
结合两边的上下界,
我们得到了
注. 在模型论的基本定理中, 将所有常数替换成一个新的字符, 这个技巧叫做 Henkinization, 是 Henkin 在简化 Gödel 的完全性定理证明的时候引入的.
回忆我们在证明 Ax–Grothendieck 定理的时候用到了紧致性定理. 事实上, 在 Henkin 的证明中先证明了紧致性定理, Gödel 完全性定理是进一步的推论, 这和历史上证明的顺序相反.