Introduction

This series of posts aims to be a comprehensive collection of facts, protocols, and theorems related to the information-theoretic foundations of multilinear proof systems. By “multilinear proof system” we refer to a system with multilinear polynomials as the underlying “arithmetization” of the proof system: where satisfiability of the computation, a (RAM) machine or circuit, is expressed as randomized relations between multilinear polynomials and the witness is the evaluation of multilinear polynomials over some tensor product.

This is in contrast to “univariate proof systems”, where the computation is expressed as relations between univariate polynomials and the witness is the set of evaluations of univariate polynomials (or rational functions) over some subgroup of the field.

In this first installment, we look broadly at the fundamental facts, theorems and techniques required to argue about the properties of multilinear polynomials and the soundness of multivariate proof systems. We will see how to interpolate a multilinear polynomial with a particular set of evaluations over a “tensor product”, we will see that such a polynomial is uniquely defined, we will explore how many roots multivariate polynomials can have.

The Factor Theorem

Because this series is aiming to be from first principles, we will start by recalling the factor theorem. It states that if f(X)0f(X) \neq 0 and f(x)=0f(x) = 0, then we can write f(X)=f(X) = (Xx) (X - x) \cdot g(X) g(X) for some polynomial g(X)g(X). These polynomials will be polynomials over “F\mathcal{F}”, e.g.

f(X)=iciXi   Where   i.ciF f(X) = \sum_i c_i X^i \ \ \text{ Where } \ \ \forall i. c_i \in \mathcal{F}

For what follows, F\mathcal{F} is a commutative ring. If the word “commutative ring” is unfamiliar just think of a finite field, however commutative rings include every structure where you can “multiply” and “add” e.g. the integers Z\ZZ or 32-bit integers Z232\mathbb{Z}_{2^{32}}. The “commutative” part simply means that the order of multiplication is irrelevant, i.e.

a,bF,ab=ba \forall a, b \in \mathcal{F}, a \cdot b = b \cdot a

For instance, even though we can multiply and add matrices, matrix multiplication does not commute (ABBAA \cdot B \neq B \cdot A in general) and hence matrices are not a commutative ring. For now, think of F\mathcal{F} as a finite field or the integers Z\ZZ, but the theorems and corollaries here will hold more generally. With this out of the way, here is the factor theorem:

Theorem (“The Factor Theorem”): Let f(X)F[X]f(X) \in \mathcal{F}[X], with f0f \neq 0 and let xFx \in \mathcal{F} be such that f(x)=0f(x) = 0. Then there exists g(X)F[X]g(X) \in \mathcal{F}[X] such that f(X)=(Xx)g(X)f(X) = (X - x) \cdot g(X).

We first consider a special case, then use this to prove the general case:

  • Case x = 0. First we show the theorem when f(0)=0f(0) = 0, then the claim is that f(X)=(Xx)f(X) = (X - x) g(X)\cdot g(X) = = Xg(X) X \cdot g(X). To see this observe that if f(X)=i=0dciXi f(X) = \sum_{i = 0}^{d} c_i \cdot X^i then f(0)=c0f(0) = c_0, and since f(0)=0f(0) = 0 we have c0=0c_0 = 0. Therefore f(X)f(X) is of the form:

    f(X)=c1X++cdXd=X(c1++cdXd1) \begin{align} f(X) &= c_1 \cdot X + \ldots + c_d \cdot X^d \\ &= X \cdot (c_1 + \ldots + c_d \cdot X^{d-1}) \end{align}

    If we define g(X)=c1++cdXd1g(X) = c_1 + \ldots + c_d \cdot X^{d-1}, we see that:

    f(X)=Xg(X)=(X0)g(X) f(X) = X \cdot g(X) = (X - 0) \cdot g(X)

    As desired.

  • Case x \mathbf{\neq} 0. Suppose f(x)=0f(x) = 0. Define the polynomial f(X)=f(X+x)f^* (X) = f(X + x) and observe that f(0)=0f^* (0) = 0. Therefore, by the “x = 0” case, we conclude that f(X)=Xg(X)f^* (X) = X \cdot g^* (X) for some g(X)F[X]g^* (X) \in \mathcal{F}[X]. Next write:

    f(X)=f((Xx)+x)=f(Xx)=(Xx)g(Xx) \begin{align} f(X) &= f((X - x) + x) \\ &= f^* (X - x) = (X - x) \cdot g^* (X - x) \end{align}

If we define g(X)=g(Xx)g(X) = g^{*}(X - x), then we see that:

f(X)=(Xx)g(Xx)=(Xx)g(X) \begin{align} f(X) &= (X - x) \cdot g^* (X - x) \\ &= (X - x) \cdot g(X) \end{align}

The Fundamental Theorem

After showing this general theorem, we are going to immediately restrict ourselves a bit, but just a bit. Namely, we are going to require that F\mathcal{F} is an integral domain. An integral domain is a commutative ring which has no zero divisors, which is a fancy way of saying:

a,bF.ab=0    a=0 or b=0 \forall a, b \in \mathcal{F}. a \cdot b = 0 \implies a = 0 \text{ or } b = 0

In other words: the only way to get a zero product is to multiply by zero. Fields satisfy this, the integers Z\mathbb{Z} satisfy this, however, e.g. Z232\ZZ_{2^{32}} does not satisfy this:

216216=232=0mod232 2^{16} \cdot 2^{16} = 2^{32} = 0 \bmod 2^{32}

The fact that F\mathcal{F} is an integral domain is important, because it allows us to conclude that if we have a product of polynomials f(X)=f1(X)f2(X)f(X) = f_1(X) \cdot f_2(X) and a point xFx \in \mathcal{F} such that f(x)=0f(x) = 0, then either f1(x)=0f_1(x) = 0 or f2(x)=0f_2(x) = 0. Combined with the factor theorem, this allows us to upper bound the number of roots of any polynomial f(X)f(X) by the degree of f(X)f(X) as follows:

Theorem (“The Fundamental Theorem”): Let F\mathcal{F} be an integral domain and let f(X)F[X]f(X) \in \mathcal{F}[X] be a non-zero polynomial of degree dd, then f(X)f(X) has at most dd roots in F\mathcal{F}.

We prove this using induction over the degree dd of f(X)f(X).

  • Base d = 0. If d=0d = 0, then f(X)=cf(X) = c for some non-zero cFc \in \mathcal{F}. Clearly, f(X)f(X) has 00 roots.

  • Step d > 0. Let f(X)f(X) be a polynomial of degree dd. If f(X)f(X) has 00 roots in F\mathcal{F}, then we are done. Otherwise, let x0Fx_0 \in \mathcal{F} be a root of f(X)f(X). Then, using the factor theorem, we can write f(X)=(Xx0)g(X)f(X) = (X - x_0) \cdot g(X) for some polynomial g(X)g(X) of degree d1d-1. By the inductive hypothesis, g(X)g(X) has at most d1d-1 roots and Xx0X - x_0 has at most 11 root. Finally f(X)f(X) has at most dd roots because F\mathcal{F} is an integral domain: since if xFx \in \mathcal{F} is such that f(x)=(xx0)g(x)=0f(x) = (x - x_0) \cdot g(x) = 0, then either (xx0)=0(x - x_0) = 0 or g(x)=0g(x) = 0, in other words, xx must be a root of either Xx0X - x_0 or g(X)g(X) of which there are at most 1+(d1)=d1 + (d - 1) = d.

The theorem also allows us to conclude that if two polynomials f0(X)f_0(X) and f1(X)f_1(X) of degree dd share more than dd evaluations in F\mathcal{F}, then the polynomials must be equal.

Corollary (Equality of Polynomials): Let f0(X)f_0(X) and f1(X)f_1(X) be polynomials of degree dd over F\mathcal{F}. Let x0,,xdFx_0, \ldots, x_d \in \mathcal{F} be distinct elements. Then:

i{0,,d}.f0(xi)=f1(xi) \forall i \in \{0, \ldots, d\}. f_0(x_i) = f_1(x_i)

    \iff

f0(X)=f1(X)f_0(X) = f_1(X)

Proof: Define f(X)=f0(X)f1(X)f(X) = f_0(X) - f_1(X). Note that f(X)f(X) is a polynomial in F[X]\mathcal{F}[X] of degree at most dd and observe that f(xi)=0f(x_i) = 0 for all i{0,,d}i \in \{0, \ldots, d\}: f(X)f(X) has at least d+1d+1 roots in F\mathcal{F}. Therefore, f(X)f(X) must be the zero polynomial, i.e. f0(X)=f1(X)f_0(X) = f_1(X).

We can turn the corollary above into a probabilistic check of equality between polynomials, this technique is called the Schwartz-Zippel lemma and is widely used; we will use it a lot.

Corollary (Schwartz-Zippel): Let f0(X)f1(X)f_0(X) \neq f_1(X) be distinct polynomials of degree dd and let CF\mathcal{C} \subseteq \mathcal{F} be an arbitrary subset of the integral domain F\mathcal{F}, then:

Px$C[f0(x)=f1(x)]dC \prob_{x \sample \mathcal{C}}[f_0(x) = f_1(x)] \leq \frac{d}{|\mathcal{C}|}

Proof: Note that the statement is vacuous if Cd|\mathcal{C}| \leq d. When C>d|\mathcal{C}| > d then the statement implies that there must exist a subset SCS \subseteq \mathcal{C} with S>d|S| > d such that:

xS,f0(x)=f1(x)\forall x \in S, f_0(x) = f_1(x)

In which case the previous corollary shows that f0(X)=f1(X)f_0(X) = f_1(X).

Tensor Products & Hypercubes

The “Boolean Hypercube” is a tensor product, i.e. “all lists with entries from”, the set {0,1}\bin:

Hk={0,1}kFk={(x1,,xk)x1,,xk{0,1}} \begin{align} \mathbb{H}_k &= \bin^k \subseteq \FF^k \\ &= \big\{ (x_1, \ldots, x_k) \mid x_1, \ldots, x_k \in \bin \big\} \end{align}

For instance:

H2={0,1}2={(0,0),(0,1),(1,0),(1,1)}\mathbb{H}_2 = \bin^2 = \big\{ (0, 0), (0, 1), (1, 0), (1, 1) \big\}

It is clear that the kk-dimensional Boolean hypercube has 2k2^k elements: Hk=2k|\mathbb{H}_k| = 2^k. In many ways, the choice of {0,1}\bin is arbitrary, another popular choice is {1,1}\{ -1, 1 \} which has the slight advantage that it is a group under multiplication, making some things slightly nicer: it naturally encodes “XOR” of bits (can you see how?).

The most important part about Hk\mathbb{H}_k is not the particular sets {0,1}\bin or {1,1}\{ -1, 1 \}, nor that every coordinate is from the same set, but the tensor structure, in the most general case:

Hk=S1S2Sk={(x1,,xk)x1S1,,xkSk} \begin{align} \mathbb{H}_k &= S_1 \tensor S_2 \tensor \ldots \tensor S_k \\ &= \big\{ (x_1, \ldots, x_k) \mid x_1 \in S_1, \ldots, x_k \in S_k \big\} \end{align}

for small sets S1,,SkS_1, \ldots, S_k in which case:

Hk=S1S2Sk |\mathbb{H}_k| = |S_1| \cdot |S_2| \cdot \ldots \cdot |S_k|

However, most naturally i.Si=2\forall i. |S_i| = 2, hence the name “Boolean hypercube”.

Multivariate Polynomials

A multivariate polynomial is, as the name suggests, simply a polynomial in one or more variables.

For instance:

  • f(X1,X2)=X12+X22+X1X2+1f(X_1, X_2) = X_1^2 + X_2^2 + X_1 X_2 + 1
    Is a multivariate polynomial of individual degrees 22 and 22 in the variables X1X_1 and X2X_2.
  • f(X1,X2)=X12+X22+X1X2+X1X23+1f(X_1, X_2) = X_1^2 + X_2^2 + X_1 X_2 + X_1 X_2^3 + 1
    Is a multivariate polynomial of individual degrees 22 and 33 in the variables X1X_1 and X2X_2.
  • f(X1)=5X16+3X14+2X12+1f(X_1) = 5 \cdot X_1^6 + 3 \cdot X_1^4 + 2 \cdot X_1^2 + 1
    Is a multivariate polynomial of individual degree 66 in the variable X1X_1.

Definition. A multilinear polynomial f(X1,,Xk)F[X1,,Xk]f(X_1, \ldots, X_k) \in \FF[X_1, \ldots, X_k] is a multivariate polynomial where individual degrees in each variable are at most one. For instance:

  • f(X1,X2)=8X1X2+5X1+X2f(X_1, X_2) = 8 \cdot X_1 X_2 + 5 \cdot X_1 + X_2
  • f(X1)=5X1+37f(X_1) = 5 \cdot X_1 + 37

While all the earlier examples of multivariate polynomials were not multilinear polynomials.

Roots over Tensor Products

An important way for us to view multivariate polynomials will be as univariate polynomials over polynomial rings. To this end, it is useful for us to verify that multivariate polynomials form integral domains allowing us to apply the fundamental theorem:

Theorem. Let F\mathcal{F} be an integral domain, then F[X]\mathcal{F}[X] is an integral domain.

Proof. We can multiply and add polynomials, it is also clear that polynomial multiplication is commutative (since F\mathcal{F} is), i.e. for f(X)F[X]f(X) \in \mathcal{F}[X] and g(X)F[X]g(X) \in \mathcal{F}[X], we have:

f(X)g(X)=g(X)f(X) f(X) \cdot g(X) = g(X) \cdot f(X)

Finally, let us verify that there are no zero divisors in F[X]\mathcal{F}[X], i.e. show:

f(X)g(X)=0    f(X)=0 or g(X)=0 f(X) \cdot g(X) = 0 \implies f(X) = 0 \text{ or } g(X) = 0

To see this let jj and ii be the degrees of f(X)f(X) and g(X)g(X) respectively, denote by fjFf_j \in \mathcal{F} and giFg_i \in \mathcal{F} the leading coefficients of f(X)f(X) and g(X)g(X). Note that fj0f_j \neq 0 and gi0g_i \neq 0 otherwise f(X)=0f(X) = 0 or g(X)=0g(X) = 0 respectively. Then the leading coefficient of f(X)g(X)f(X) \cdot g(X) is fjgif_j \cdot g_i which is non-zero since F\mathcal{F} is an integral domain. Therefore, f(X)g(X)=0f(X) \cdot g(X) = 0 if and only if f(X)=0f(X) = 0 or g(X)=0g(X) = 0.

Corollary. By applying the theorem above nn times, we can conclude that F[X1,,Xn]\FF[X_1, \ldots, X_n] is an integral domain: let R0=F\mathcal{R}_0 = \FF and Ri=Ri1[Xi]\mathcal{R}_i = \mathcal{R}_{i-1}[X_i] for i=1,,ni = 1, \ldots, n. Observe that:

Ri=(((F[X1])[X2]))[Xi]=F[X1,,Xi] \mathcal{R}_i = (((\FF[X_1])[X_2])\ldots)[X_i] = \FF[X_1, \ldots, X_i]

This “iterative” construction of F[X1,,Xn]\FF[X_1, \ldots, X_n] allows us to view kk-variate polynomials over F\FF as univariate polynomials over F\mathcal{F}:

f(X1,,Xk)F[X1,,Xk] f(X_1, \ldots, X_k) \in \FF[X_1, \ldots, X_{k}]

Equivalently \text{Equivalently}

f(Xk)F[Xk] where F=F[X1,,Xk1] f(X_k) \in \mathcal{F}[X_k] \text{ where } \mathcal{F} = \FF[X_1, \ldots, X_{k-1}]

With this interpretation f(Xk)f(X_k) is a polynomial over F=F[X1,,Xk1]\mathcal{F} = \FF[X_1, \ldots, X_{k-1}] and therefore XkX_k can take any value in F\mathcal{F} (not just F\FF), i.e. we can evaluate f(Xk)f(X_k) for every (k1)(k-1)-variate polynomial XkFX_k \in \mathcal{F}, which includes the constant polynomials, i.e. FF\FF \subseteq \mathcal{F}.

If we apply the fundamental theorem to this particular setting we get:

Corollary: Let f(X1,,Xk)=f(Xk)F[Xk]f(X_1, \ldots, X_{k}) = f(X_k) \in \mathcal{F}[X_k] with F=F[X1,,Xk1]\mathcal{F} = \FF[X_1, \ldots, X_{k-1}] be a kk-variate polynomial. Let dd be the degree in the XkX_k variable, then there exist at most dd distinct (k1)(k-1)-variate polynomials xkFx_k \in \mathcal{F} such that f(xk)=0Ff(x_k) = 0 \in \mathcal{F}. In particular, there exist at most dd field elements (constant polynomials) xkFx_k \in \FF such that f(xk)=0F[X1,,Xk1]f(x_k) = 0 \in \FF[X_1, \ldots, X_{k-1}].

If we apply this observation recursively, we can conclude that for sufficiently large tensor products, a polynomial vanishes over the tensor product if and only if the polynomial is the zero polynomial:

Theorem: Let f(X1,,Xk)F[X1,,Xk]f(X_1, \ldots, X_k) \in \FF[X_1, \ldots, X_{k}] be a non-zero kk-variate polynomial with degree did_i in each variable XiX_i. Let Hk\mathbb{H}_k be the tensor product of S1,,SkS_1, \ldots, S_k where i.Si>di\forall i. |S_i| > d_i:

Hk=S1S2SkFk \mathbb{H}_k = S_1 \tensor S_2 \tensor \cdots \tensor S_k \subseteq \FF^k

Then:

(x1,,xk)Hk.f(x1,,xk)=0 \forall (x_1, \ldots, x_k) \in \mathbb{H}_k. f(x_1, \ldots, x_k) = 0

    \iff

f(X1,,Xk)=0F[X1,,Xk]f(X_1, \ldots, X_k) = 0 \in \FF[X_1, \ldots, X_k]

We prove this by induction:

  • Base k = 1. When X=(X1)\vec{X} = (X_1) the “multivariate” polynomial is a univariate polynomial f(X1)F[X1]f(X_1) \in \FF[X_1], by applying the fundamental theorem with F=F\mathcal{F} = \FF, we observe that the number of roots of f(X1)f(X_1) is at most d1=deg(f)d_1 = \deg(f), however since S1>d1|S_1| > d_1 the polynomial cannot evaluate to zero on all of S1S_1. So the claim holds.

  • Step k > 1. Define F\mathcal{F} == F[X1,,Xk1]\FF[X_1, \ldots, X_{k-1}] and now rewrite f(X)f(\vec{X}) as a polynomial with coefficients in F\mathcal{F}:

    f(X1,,Xk)=iXkifi(X1,,Xk1)F[Xk] f(X_1, \ldots, X_k) = \sum_i X_k^i \cdot f_i(X_1, \ldots, X_{k-1}) \in \mathcal{F}[X_k]

    Since F\mathcal{F} is an integral domain, we can apply the fundamental theorem, this time to F\mathcal{F} == F[X1,,Xk1]\FF[X_1, \ldots, X_{k-1}], rather than F=F\mathcal{F} = \FF. We conclude that at most dkd_k values xkFx_k \in \mathcal{F} satisfy:

    f(xk)=ixkifi(X1,,Xk1)=0 f(x_k) = \sum_i x_k^i \cdot f_i(X_1, \ldots, X_{k-1}) = 0

    And, in particular, there exist at most dkd_k elements xkSkFFx_k \in S_k \subseteq \FF \subseteq \mathcal{F} (constant polynomials) satisfying this. On the other hand, since Sk>dk|S_k| > d_k there must exist at least one xkSkx_k \in S_k which is not a root, in other words:

    f(xk)=g(X1,,Xk1)0F f(x_k) = g(X_1, \ldots, X_{k-1}) \neq 0 \in \mathcal{F}

    We then apply the induction hypothesis on g(X1,,Xk1)g(X_1, \ldots, X_{k-1}) to conclude that it does not vanish over Hk1\mathbb{H}_{k-1}. In other words, we conclude that there is at least one (x1,(x_1, ,\ldots, xk1) x_{k-1}) \in Hk1\mathbb{H}_{k-1} such that g(x1,,xk1)0g(x_1, \ldots, x_{k-1}) \neq 0, which also allows us to conclude:

    f(x1,,xk)=g(x1,,xk1)0F f(x_1, \ldots, x_k) = g(x_1, \ldots, x_{k-1}) \neq 0 \in \FF

    So f(X1,,Xk)f(X_1, \ldots, X_k) also cannot vanish over Hk\mathbb{H}_k and the claim holds for kk as well.

Corollary: Setting d1=d2==dk=1d_1 = d_2 = \ldots = d_k = 1 and Hk={0,1}{0,1}\mathbb{H}_k = \bin \tensor \ldots \tensor \bin as the kk-dimensional hypercube, we conclude that a non-zero multilinear polynomial cannot vanish on the hypercube, i.e. if f(X1,,Xk)F[X1,,Xk]f(X_1, \ldots, X_k) \in \FF[X_1, \ldots, X_k] then there exists at least one (x1,,xk){0,1}k(x_1, \ldots, x_k) \in \bin^k such that f(x1,,xk)0f(x_1, \ldots, x_k) \neq 0.

An easy, but very important, observation is that two multilinear polynomials can agree on the hypercube if and only if they actually are equal as polynomials.

Corollary: Let f,gF[X1,,Xk]f, g \in \FF[X_1, \ldots, X_k] be two multilinear polynomials such that:

xHk.f(x)=g(x) \forall \vec{x} \in \mathbb{H}_k. f(\vec{x}) = g(\vec{x})

Then we can form:

h(X1,,Xk)=f(X1,,Xk)g(X1,,Xk) h(X_1, \ldots, X_k) = f(X_1, \ldots, X_k) - g(X_1, \ldots, X_k)

By assumption xHk.h(x)=f(x)g(x)=0\forall \vec{x} \in \mathbb{H}_k. h(\vec{x}) = f(\vec{x}) - g(\vec{x}) = 0, therefore we conclude that h(X1,X2,,Xk)=0h(X_1, X_2, \ldots, X_k) = 0 by the theorem. Hence f(X1,,Xk)=g(X1,,Xk)f(X_1, \ldots, X_k) = g(X_1, \ldots, X_k).

Schwartz-Zippel

We can extend the techniques above to reason about the probability that a multivariate polynomial f(X1,,Xk)f(X_1, \ldots, X_k) vanishes at a random point x$Hk\vec{x} \sample \mathbb{H}_k.

Theorem (“Multivariate Schwartz-Zippel”). Let Hk=S1Sk\mathbb{H}_k = S_1 \tensor \ldots \tensor S_k and let f(X1,,Xk)f(X_1, \ldots, X_k) be a multivariate polynomial of individual degrees did_i in XiX_i. Then the probability that the polynomial vanishes at uniformly random x$Hk\vec{x} \sample \mathbb{H}_k can be bounded as follows:

Px$Hk[f(x)=0]i=1kdiSi \prob_{\vec{x} \sample \mathbb{H}_k } \left[ f(\vec{x}) = 0 \right] \leq \sum_{i=1}^{k} \frac{d_i}{|S_i|}

We show this by induction:

  • Base k = 1. When k=1k = 1 the “multivariate” polynomial is a univariate polynomial f(X1)F[X1]f(X_1) \in \FF[X_1], by applying the fundamental theorem with F=F\mathcal{F} = \FF we observe that the number of roots of f(X1)f(X_1) is at most d1d_1. Hence for uniform x1$S1x_1 \sample S_1, the probability that f(x1)=0f(x_1) = 0, i.e. that x1x_1 is one of the at most d1d_1 roots, is at most d1/S1d_1 / |S_1|.

  • Step k > 1. Basically, there are two ways that f(x1,,xk)f(x_1, \ldots, x_k) could be zero:

    • When we partially evaluate we get the zero polynomial f(X1,,Xk1,xk)=0f(X_1, \ldots, X_{k-1}, x_k) = 0
    • Or, g(X1,,Xk1)=f(X1,,Xk1,xk)0g(X_1, \ldots, X_{k-1}) = f(X_1, \ldots, X_{k-1}, x_k) \neq 0, but g(x1,,xk1)=0g(x_1, \ldots, x_{k-1}) = 0.

    Define F\mathcal{F} == F[X1,,Xk1]\FF[X_1, \ldots, X_{k-1}] and view f(X)f(\vec{X}) as a polynomial in F\mathcal{F}:

    f(X1,,Xk)=iXkifi(X1,,Xk1)F[Xk] f(X_1, \ldots, X_k) = \sum_i X_k^i \cdot f_i(X_1, \ldots, X_{k-1}) \in \mathcal{F}[X_k]

    Since F\mathcal{F} is an integral domain, we conclude that at most dkd_k values xkFx_k \in \mathcal{F} satisfy:

    f(xk)=ixkifi(X1,,Xk1)=0 f(x_k) = \sum_i x_k^i \cdot f_i(X_1, \ldots, X_{k-1}) = 0

    And, in particular, there exist at most dkd_k elements xkSkFFx_k \in S_k \subseteq \FF \subseteq \mathcal{F} which make f(xk)=0f(x_k) = 0, hence the probability that xk$Skx_k \sample S_k makes f(xk)=0f(x_k) = 0 is at most dk/Skd_k / |S_k|.

    On the other hand, if xk$Skx_k \sample S_k is not a root:

    f(xk)=g(X1,,Xk1)0F f(x_k) = g(X_1, \ldots, X_{k-1}) \neq 0 \in \mathcal{F}

    We can apply the induction hypothesis on g(X1,,Xk1)g(X_1, \ldots, X_{k-1}) to conclude that:

    Px$Hk1[g(x)=0]i=1k1diSi \prob_{\vec{x} \sample \mathbb{H}_{k-1}} \left[ g(\vec{x}) = 0 \right] \leq \sum_{i=1}^{k-1} \frac{d_i}{|S_i|}

    By applying a union bound on both these events we conclude that:

    Px$Hk[f(x)=0]dkSk+(i=1k1diSi)=i=1kdiSi \begin{align} \prob_{\vec{x} \sample \mathbb{H}_k } \left[ f(\vec{x}) = 0 \right] &\leq \frac{d_k}{|S_k|} + \left( \sum_{i=1}^{k-1} \frac{d_i}{|S_i|} \right) \\ &= \sum_{i=1}^{k} \frac{d_i}{|S_i|} \end{align}

Corollary: When S1=S2==Sk=FS_1 = S_2 = \ldots = S_k = \FF, i.e. we sample challenge points from the entire field, and d1=d2==dk=dd_1 = d_2 = \ldots = d_k = d then we get the following special case:

Px$Fk[f(x)=0]kdF \prob_{\vec{x} \sample \FF^k } \left[ f(\vec{x}) = 0 \right] \leq \frac{k \cdot d}{|\FF|}

In particular, when f(X1,,Xk)f(X_1, \ldots, X_{k}) is multilinear (d1=d2==dk=1d_1 = d_2 = \ldots = d_{k} = 1) we have:

Px$Fk[f(x)=0]kF \prob_{\vec{x} \sample \FF^k } \left[ f(\vec{x}) = 0 \right] \leq \frac{k}{|\FF|}