为了理解上述多线性扩展/多项式这个概念,我们应该首先理解一下以下几个概念:
1. 多线性多项式
按照维基百科的说法,在代数中,多线性多项式是一种多元多项式,它在每个单变量上分别是线性的,但不一定同时是线性的。该多项式的每个单项式都是一个常数乘以不同单变量的乘积。
非正式地说,一个多元多项式是多线性的,如果该多项式在每个单变量的阶最多为1次。比如
是多线性的,但是
则不是多线性的。
-
所有的多线性多项式都满足如下形式多项式形式:
2. 低阶多项式
令是定义在域F的多元多项式,如果
上的每个单变量的阶与域F的大小相比均为指数小,那么称
为低阶多项式。
单变量的阶是单变量在多元多项式中的最高次幂,多元多项式的阶/次数指的是该多项式中非零单项式的最高次。比如,其中单变量x的阶为2,单变量y和单变量z的阶都为1,多元多项式
的阶为3。
因此,假设是低阶多项式以及域F的大小为
,那么
的任意单变量的阶是
。小o符号表示严格的渐近上界符号。
3. 低阶扩展(Low-Degree Extension, LDE)
令函数将
个元素映射到域F上,那么函数g扩展为一个低阶m元多项式
,使得对所有的
,都有
,则称函数
称为函数
的低阶扩展多项式。
4. 多线性扩展(Multi-linear extension, MLE)
多线性扩展是一个低阶扩展,并要求扩展后的函数是多线性多项式。
定理: 对于任意的函数
,都有唯一的多线性扩展多项式
,且具有如下表达形式
其中
是
的第i位,同理
是
的第i位。
证明:
唯一性:简单来说,考虑一个低阶m元多项式由个点唯一确定。如果存在不同的多线性扩展多项式
,则
的
个点中至少有一个点是跟
不同。但是由低阶扩展的定义可得
必定过这
个点。因此两个多线性扩展多项式是相同的。
表达性:上述公式扩展一下有:称为多线性多项式的拉格朗日基多项式。
显然,符合多线性扩展的定义。
5. 多线性扩展+Schwartz–Zippel引理
多线性扩展+Schwartz–Zippel引理可以高效地测试两个函数(隐射)和
是否相等。 Schwartz–Zippel引理表明当多项式的次数比有限域F足够小时,域F上的两个不同多项式在某个随机向量的取值是相同的概率是可忽略的。
计算模型:
假设Alice手上有一个函数, Bob手上有一个函数
,且两方都只有多项式计算资源。现在Alice想知道Bob手上的函数是否与自己手上的相等,并且受限于通信资源,Bob只能发送m+1个域F上的元素,那么Bob要怎么做才能让Alice知道两个函数是相等的或者不等?
首先Bob利用多线性扩展方法生成函数,然后随机从
中选取m个元素
并计算
。随后,Bob将m+1个元素
,
发送给Alice。Alice收到这m+1个元素之后,也利用多线性扩展方法生成函数
,并计算
在
点上的值,将计算结果与
进行比较。如果计算结果一样,则Schwartz–Zippel引理表明两个函数以压倒性的概率相等,因此它们在
定义域上对应的值都是相同的,因此Alice和Bob手上的函数是相等的。如果计算结果不一样,则表示两个函数是不相同。
多线性扩展将测试两个函数相等的问题高效地转化为测试两个函数在某个随机数上是否以压倒性概率相等的问题。