本页为译文 + 高中讲解合一:黑色正文为忠实翻译;彩色框(目标 / 例 / 分步推演 / 自测)与配图为面向高中生的详解,逐步推演、举例、画图,不用比喻。本节用到的“域、多项式、次数”等概念会在用到处随手解释。
本节目标一个一元多项式的根不会太多——次数是 \(d\),最多 \(d\) 个根。本节要把这条人人熟悉的事实推广到多元多项式:只要每个变量允许取的值的个数都足够多(多到超过该变量在某个“领头单项式”里的指数),就一定能找到一组取值,使整个多项式不为零。这就是 Alon 的组合零点定理(combinatorial Nullstellensatz)。它是后面若干节“多项式方法”的总开关,用来证明各种和集大小的下界,例如 Cauchy–Davenport 不等式。
第 9 章引言(节选)
……(一个多项式)若它的某些系数的某种组合以某种方式能被 \(p\) 整除(或不能被 \(p\) 整除),则它就不可能拥有某些类型的零点;这方面最著名的例子是 Eisenstein 判别法(习题 9.8.2),不过组合零点定理也可以看作这一类型的命题,另一个例子出现在分圆域中(引理 9.49)。作为这些判别法的一个应用,我们将给出 \(\mathbb{Z}_p\) 上的一个测不准原理,由它可得 Cauchy–Davenport 不等式(定理 5.4)的一个傅里叶分析证明。
本章理论大多对任意域 \(F\) 成立。然而,我们有时需要把注意力集中到两类特殊的域上。第一类是有限域,其首要的例子是素数阶的域 \(F_p=\mathbb{Z}_p\);我们将在 9.4 节回顾这类域的理论。第二类是分圆域,由 \(p\) 次单位根生成;我们将在 9.8 节回顾这类域的理论。
容易看出,在一个域 \(F\) 中,所有非零元素都与单位元 \(1\) 具有相同的挠数(torsion)。我们把这个挠数称为 \(F\) 的特征(characteristic),记作 \(\operatorname{char}(F)\);它要么是零(当 \(F\) 无挠时),要么是某个素数 \(p\)(例如当 \(F\) 是有限域时就是这种情形)。我们的一些结论只在 \(F\) 的特征足够大(或等于零)时才成立。
术语小抄(高中向)
- 域 \(F\):一个能做加、减、乘、除(除数非零)四则运算、且运算规律和有理数一样的数集。读者可暂时把 \(F\) 想成全体有理数 \(\mathbb{Q}\)、全体实数 \(\mathbb{R}\),或“模素数 \(p\) 的余数系统” \(\mathbb{Z}_p=\{0,1,\dots,p-1\}\)(加减乘除都取模 \(p\))。
- \(F[t_1,\dots,t_n]\):系数取自 \(F\) 的 \(n\) 元多项式全体。例如 \(F[t]\) 是一元多项式,如 \(t^2-1\);\(F[t_1,t_2]\) 含 \(t_1t_2+3t_1-5\) 之类。
- 单项式:形如 \(t_1^{a_1}t_2^{a_2}\cdots t_n^{a_n}\) 的“纯幂积”。它的次数是 \(a_1+\cdots+a_n\)。多项式的次数是它含有的所有单项式的次数中的最大者。
9.1 组合零点定理
众所周知,域 \(F\) 上的一个一元多项式 \(P\in F[t]\) 至多有 \(\deg(P)\) 个零点,这里 \(\deg(P)\) 表示 \(P\) 的次数。我们把这一事实改写成如下形式。
引理 9.1 设 \(P\in F[t]\) 是域 \(F\) 上的一元多项式,次数为 \(d\)(即 \(P\) 中 \(t^d\) 的系数非零),并设 \(S\) 是 \(F\) 的一个子集,满足 \(|S|>\deg(P)\)。那么存在 \(x\in S\) 使得
\[P(x)\neq 0.\]
换句话说:把所有候选取值放进集合 \(S\) 里,只要 \(S\) 的元素个数超过多项式的次数,那么 \(S\) 里就不可能全是根——必有某个 \(x\) 让 \(P(x)\neq 0\)。
例(引理 9.1 的具体感受) 取 \(P(t)=t^2-1\),次数 \(d=2\),它的全部根是 \(t=1\) 与 \(t=-1\),只有两个。若 \(S=\{-1,0,1\}\),则 \(|S|=3>2=\deg(P)\)。引理保证 \(S\) 中存在非根:
- \(P(-1)=1-1=0\)(是根)。
- \(P(1)=1-1=0\)(是根)。
- \(P(0)=0-1=-1\neq 0\)。找到了!\(x=0\) 即为所求。♦
道理很朴素:根最多 \(2\) 个,而我们手里有 \(3\) 个互不相同的候选,
抽屉原理告诉我们至少有一个不是根。
抛物线只在 \(\pm1\) 处穿过横轴(两个根)。候选集 \(S=\{-1,0,1\}\) 有 \(3\) 个点,比根多,于是必有点(这里是 \(0\))落在轴外,对应 \(P\neq0\)。
下面我们把这一事实强有力地推广到多元多项式,即 Alon [4] 的组合零点定理。
定理 9.2(组合零点定理)[4] 设 \(F\) 为任意域,\(P\in F[t_1,\dots,t_n]\) 是一个 \(d\) 次多项式,它在某个单项式 \(t_1^{d_1}\cdots t_n^{d_n}\) 处含有非零系数,其中 \(d_1+\cdots+d_n=d\);又设 \(S_1,\dots,S_n\) 是 \(F\) 的子集,满足 \(|S_i|>d_i\) 对所有 \(1\le i\le n\) 成立。那么存在 \(x_1\in S_1,\dots,x_n\in S_n\),使得
\[P(x_1,\dots,x_n)\neq 0.\]
怎样读这条定理
- \(t_1^{d_1}\cdots t_n^{d_n}\) 必须是 \(P\) 的一个最高次单项式(其次数 \(d_1+\cdots+d_n\) 恰等于 \(P\) 的总次数 \(d\)),并且它的系数非零。这是定理的“钥匙”单项式。
- 条件 \(|S_i|>d_i\) 是“每个变量的候选值要够多”——第 \(i\) 个变量在钥匙单项式里的指数是 \(d_i\),那么 \(S_i\) 里至少要有 \(d_i+1\) 个候选值。
- 结论:在乘积集合 \(S_1\times\cdots\times S_n\) 里,必有一点让 \(P\) 不为零。即:\(P\) 不可能在这一整块网格上处处为零。
- 当 \(n=1\) 时,钥匙单项式就是 \(t^{d}\),条件变成 \(|S|>d\),结论变成存在非根——正是引理 9.1。
例(\(n=2\) 的完整演示) 取 \(P(t_1,t_2)=t_1t_2\),总次数 \(d=2\)。钥匙单项式取它自己 \(t_1^1t_2^1\),故 \(d_1=d_2=1\),系数为 \(1\neq0\)。按定理需 \(|S_1|>1,\ |S_2|>1\),于是取 \(S_1=S_2=\{0,1\}\)(各 \(2\) 个元素)。定理断言 \(S_1\times S_2\) 这个 \(2\times2\) 网格上必有一点使 \(P\neq0\)。逐点验算:
- \((0,0)\):\(P=0\cdot0=0\)。
- \((0,1)\):\(P=0\cdot1=0\)。
- \((1,0)\):\(P=1\cdot0=0\)。
- \((1,1)\):\(P=1\cdot1=1\neq0\)。找到了!♦
注意:若把 \(S_1\) 缩成只含一个元素 \(\{0\}\)(这违反 \(|S_1|>1\)),则在 \(\{0\}\times\{0,1\}\) 上 \(P\) 恒为 \(0\),定理失效——可见“候选值够多”的条件不可省。
\(2\times2\) 网格上 \(P=t_1t_2\) 的四个取值。三处为 \(0\),唯独 \((1,1)\) 处非零。定理保证:网格够大时,这样的非零点一定存在。
定理 9.2 的证明
证明. 我们对 \(n\) 作归纳。\(n=1\) 的情形正是引理 9.1。现在设 \(n\ge2\),并假设命题对 \(n-1\) 已经成立。
令 \(g_n(t_n)\) 是如下的一元多项式:
\[g_n(t_n)=\prod_{s_n\in S_n}(t_n-s_n)=t_n^{|S_n|}+\text{(较低次项)}.\]
于是 \(g_n\) 的次数为 \(|S_n|\),且首项是首一的(即系数为 \(1\))。对 \(P\)(视为关于 \(t_n\) 的多项式)施行带余长除法(除以 \(g_n\)),可写成
\[P(t_1,\dots,t_n)=q_n(t_1,\dots,t_n)\,g_n(t_n)+r_n(t_1,\dots,t_n),\]
其中商 \(q_n\) 的次数至多为 \(d-|S_n|\),余式 \(r_n\) 的次数至多为 \(d\),并且 \(r_n\) 的任何单项式都不含 \(t_n^{|S_n|}\) 这个因子,从而
\[r_n(t_1,\dots,t_n)=\sum_{j=0}^{|S_n|-1}r_{n,j}(t_1,\dots,t_{n-1})\,t_n^{\,j}.\]
我们可以把 \(q_ng_n\) 展开成 \(q_n t_n^{|S_n|}\) 加上较低次项,后者的次数至多为
\[\deg(q_n)+|S_n|-1\le (d-|S_n|)+|S_n|-1d_n\),可知 \(q_n t_n^{|S_n|}\) 中 \(t_1^{d_1}\cdots t_n^{d_n}\) 的系数也为零(它里面 \(t_n\) 的幂次至少是 \(|S_n|>d_n\),凑不出 \(t_n^{d_n}\))。于是,由关于 \(P\) 的假设(\(P\) 中 \(t_1^{d_1}\cdots t_n^{d_n}\) 的系数非零),余式 \(r_n\) 必含一个非零的 \(t_1^{d_1}\cdots t_n^{d_n}\) 系数。特别地,\(r_{n,d_n}\) 含一个非零的 \(t_1^{d_1}\cdots t_{n-1}^{d_{n-1}}\) 系数。
应用归纳假设(对 \(n-1\) 元多项式 \(r_{n,d_n}\) 及集合 \(S_1,\dots,S_{n-1}\)),可找到 \(x_1\in S_1,\dots,x_{n-1}\in S_{n-1}\),使得 \(r_{n,d_n}(x_1,\dots,x_{n-1})\) 非零。再应用引理 9.1,便能找到 \(x_n\in S_n\) 使得
\[r_n(x_1,\dots,x_n)=\sum_{j=0}^{|S_n|-1}r_{n,j}(x_1,\dots,x_{n-1})\,x_n^{\,j}\neq 0.\]
由于 \(g_n(x_n)=0\)(因为 \(x_n\in S_n\)),于是
\[P(x_1,\dots,x_n)=q_n(x_1,\dots,x_n)\underbrace{g_n(x_n)}_{=0}+r_n(x_1,\dots,x_n)=r_n(x_1,\dots,x_n)\neq 0,\]
正如所要证明的。♦
证明的脉络(动机版)
整个证明的核心想法只有一句话:“在网格 \(S_1\times\cdots\times S_n\) 上,\(g_n(t_n)\) 永远等于 \(0\),所以可以被自由地丢掉。” 围绕这句话,步骤是:
- 造一个会“自爆”的多项式 \(g_n\)。 把 \(S_n\) 里所有数当作根做成 \(g_n(t_n)=\prod_{s\in S_n}(t_n-s)\)。只要 \(t_n\) 取在 \(S_n\) 内,\(g_n\) 必为 \(0\)。它的次数恰是 \(|S_n|\),且首项首一(方便做除法)。
- 用长除法把 \(P\) 拆成 \(q_n g_n+r_n\)。 商 \(q_n\) 那一块乘了 \(g_n\),在网格上自动归零;真正起作用的是余式 \(r_n\)。所以只要证 \(r_n\) 在网格上某点非零,\(P\) 就在该点非零。
- 盯住“钥匙单项式”\(t_1^{d_1}\cdots t_n^{d_n}\)。 通过数次数证明:被丢掉的 \(q_n g_n\) 那部分根本贡献不出这个单项式(要么次数太低,要么 \(t_n\) 的幂次太高)。所以 \(P\) 里那个非零系数必然“原封不动”地留在余式 \(r_n\) 中。
- 降维。 \(r_n\) 中 \(t_n^{d_n}\) 的系数 \(r_{n,d_n}\) 是一个少一个变量的多项式,且仍带非零的钥匙系数 \(t_1^{d_1}\cdots t_{n-1}^{d_{n-1}}\)。归纳假设直接给出前 \(n-1\) 个坐标的取值,让 \(r_{n,d_n}\neq0\)。
- 收尾。 固定住前 \(n-1\) 个坐标后,\(r_n\) 变成关于 \(t_n\) 的、次数恰为 \(d_n\) 的一元多项式(领头系数 \(r_{n,d_n}\neq0\))。因 \(|S_n|>d_n\),引理 9.1 给出 \(S_n\) 中一个非根 \(x_n\)。大功告成。
长除法把 \(P\) 切成两块:左块 \(q_ng_n\) 在网格上恒为零、且贡献不出钥匙单项式;于是 \(P\) 里那个非零系数被“逼”到右块 \(r_n\) 中。这正是证明能降维推进的关键。
关于“组合零点定理”这一术语的解释,参见习题 9.1.3。基于组合零点定理,Alon、Nathanson 与 Ruzsa 发展出了所谓的多项式方法(polynomial method),它是证明和集(sum set)基数的各类界限的极有力工具。接下来的若干节将给出该方法的种种应用。
名字从何而来“Nullstellensatz”是德语,字面意思是“零点定理”(Nullstelle = 零点,Satz = 定理)。经典的希尔伯特零点定理刻画了“一组多项式的公共零点集”与“由它们生成的理想”之间的对应。Alon 这条定理给出了一个反向的、组合味十足的判据:在乘积网格 \(S_1\times\cdots\times S_n\) 上,只要钥匙单项式系数非零且网格够大,\(P\) 就不会在整张网格上全为零——故名“组合零点定理”。
习题
习题 9.1.1(Schwartz–Zippel 引理) 设 \(F\) 为域,\(Q\in F[t_1,\dots,t_n]\) 是一个 \(n\ge1\) 元的非零多项式,\(S\) 是 \(F\) 的非空有限子集。设 \(x_1,\dots,x_n\) 是从 \(S\) 中独立随机选取的元素。那么
\[\Pr\big(Q(x_1,\dots,x_n)=0\big)\le \frac{\deg(Q)}{|S|}.\]
(提示:修改用于证明零点定理的归纳论证。)
习题 9.1.2 设 \(F\) 为域,\(d_1,\dots,d_n\ge0\),且 \(P\in F[t_1,\dots,t_n]\) 是一个非零多项式,使得 \(P\) 中出现的每一个单项式都整除 \(t_1^{d_1}t_2^{d_2}\cdots t_n^{d_n}\)。证明:对每个 \(1\le i\le n\),存在函数 \(f_{i,1},\dots,f_{i,d_i}:F^{i-1}\to F\),使得
\[\{(x_1,\dots,x_n)\in F^n:P(x_1,\dots,x_n)=0\}\subseteq\bigcup_{i=1}^{n}\bigcup_{j=1}^{d_i}\{(x_1,\dots,x_n)\in F^n:x_i=f_{i,j}(x_1,\dots,x_{i-1})\};\]
也就是说,\(P\) 的零点集可以被少数几张“函数图像”覆盖。注意,当 \(i=1\) 时函数 \(f_{1,j}\) 就是一些常数。特别地,由此推出组合零点定理对这种 \(P\) 与 \(d_1,\dots,d_n\) 成立。
习题 9.1.3 [4] 设 \(F\) 为任意域,\(P\in F[t_1,\dots,t_n]\) 为多项式。设 \(S_1,\dots,S_n\) 是 \(F\) 的非空子集,并令 \(g_1,\dots,g_n\in F[t_1,\dots,t_n]\) 为多项式 \(g_i(t_1,\dots,t_n):=\prod_{s\in S_i}(t_i-s)\)(\(1\le i\le n\))。若 \(P\) 在 \(S_1\times\cdots\times S_n\) 上恒为零,证明:存在多项式 \(h_1,\dots,h_n\in F[t_1,\dots,t_n]\),满足 \(\deg h_i\le\deg P-\deg g_i\),使得
\[P=\sum_{i=1}^{n}h_i g_i.\]
此外,\(h_1,\dots,h_n\) 的系数可取在由 \(P\) 与 \(g_1,\dots,g_n\) 的系数所生成的环内。利用本题与上一题,给出定理 9.2 的另一种证明。请将此与希尔伯特零点定理对照:后者断言,给定任意多项式 \(P,g_1,\dots,g_n\in F[t_1,\dots,t_n]\),若 \(P\) 在由 \(g_1,\dots,g_n\) 决定的代数簇上恒为零,则 \(P\) 的某个幂 \(P^K\) 可写成 \(g_1,\dots,g_n\) 的线性组合 \(P^K=\sum_{i=1}^{n}h_i g_i\)。
习题 9.1.4 设 \(d_1,\dots,d_n\ge0\) 为整数,\(F\) 是一个特征为零、或特征大于 \(\max(d_1,\dots,d_n)\) 的域。设 \(P\in F[t_1,\dots,t_n]\) 满足:\(t_1^{d_1}\cdots t_n^{d_n}\) 的系数非零,但 \(P\) 中其他任何非零单项式都不被 \(t_1^{d_1}\cdots t_n^{d_n}\) 整除。设 \(S_1,\dots,S_n\subset F\) 满足 \(|S_i|>d_i\) 对所有 \(1\le i\le n\) 成立。证明:存在 \(x_1\in S_1,\dots,x_n\in S_n\),使得 \(P(x_1,\dots,x_n)\neq0\)。(提示:对每个 \(1\le i\le n\),构造函数 \(g_i:S_i\to F\),使得 \(\sum_{x_i\in S_i}g_i(x_i)\,x_i^{\,j}=I(j=d_i)\) 对所有 \(0\le j\le d_i\) 成立;这里 \(I(\cdot)\) 是示性函数。然后考察量 \(\sum_{x_1\in S_1,\dots,x_n\in S_n}P(x_1,\dots,x_n)\,g_1(x_1)\cdots g_n(x_n)\)。)
习题 9.1.5 设 \(F\) 为域,\(m\) 为正整数。设 \(F^{\{0,1\}^m}\) 是从 \(\{0,1\}^m\) 到 \(F\) 的全体函数构成的环,对每个 \(i\in[1,m]\),令 \(x_i\in F^{\{0,1\}^m}\) 为……(原文 PDF 在此处转入下一页/下一节,余文从略。)
即时自测
- 用引理 9.1 说明:取 \(P(t)=t^3-t\)(次数 \(3\)),\(S=\{0,1,2,3\}\subset\mathbb{Z}_5\),必有 \(x\in S\) 使 \(P(x)\neq0\)。请找出一个这样的 \(x\)。
- 在组合零点定理中,若 \(P(t_1,t_2)=t_1^2t_2\),钥匙单项式取 \(t_1^2t_2^1\),那么 \(d_1,d_2\) 各是多少?\(S_1,S_2\) 至少各需多少个元素?
- 用 \(n=2\) 的特殊情形,把组合零点定理逐字对照引理 9.1,说出证明中“\(g_n\) 在 \(S_n\) 上恒为零”这一步在 \(n=1\) 时退化成了什么。
返回 全书目录