The State of Multi-Linear PCS

Journal Club

Apr 3 2025

Recall Sumcheck

  • Honest prover starts by computing \(v = \sum_{X \in \{0,1\}^\mu}f(x_1, x_2, \dots, x_\mu)\)

\(g_1(\textcolor{orange}{X_1}) := \sum_{x_2\dots}f(\textcolor{orange}{X_1},x_2, \dots, x_m)\)

\(g_2(\textcolor{orange}{X_2}) := \sum_{x_3\dots}f(\textcolor{green}{r_1}, \textcolor{orange}{X_2}, x_3, \dots, x_m)\)

\(v \stackrel{?}{=} g_1(0) + g_1(1)\)

\(g_1(\textcolor{green}{r_1}) \stackrel{?}{=} g_2(0) + g_2(1)\)

\(g_3(\textcolor{orange}{X_3}) := \sum_{x_4\dots}f(\textcolor{green}{r_1}, \textcolor{green}{r_2}, \textcolor{orange}{X_3}, x_4, \dots, x_m)\)

\(g_\mu(\textcolor{orange}{X_\mu}) := f(\textcolor{green}{r_1}, \textcolor{green}{r_2}, \dots, \textcolor{green}{r_{\mu-1}}, \textcolor{orange}{X_\mu})\)

\(g_2(\textcolor{green}{r_2}) \stackrel{?}{=} g_3(0) + g_3(1)\)

\(g_{\mu-1}(\textcolor{green}{r_{\mu-1}}) \stackrel{?}{=} g_\mu(0) + g_\mu(1)\)

\(g_{\mu}(\textcolor{green}{r_{\mu}}) \stackrel{?}{=} f(\textcolor{green}{r_1}, \textcolor{green}{r_2}, \dots, \textcolor{green}{r_\mu})\)

Prover \(\mathcal{P}\)

Verifier \(\mathcal{V}\)

\(g_1\)

\(r_1\)

\(g_2\)

\(g_3\)

\(g_\mu\)

\(r_{\mu-1}\)

\(r_2\)

\(\vdots\)

\(\vdots\)

\(\vdots\)

Need MLE evaluation proof

Gemini PCS

  • Main idea: \(\textsf{MLE} \iff \textsf{Univariate} \) equivalence  
f_{\textsf{multi}}(X_1, \dots, X_m) = \sum_{\textcolor{grey}{i=0}}^{\textcolor{grey}{N-1}} \textsf{eq}((X_1, \dots, X_m), (\textcolor{grey}{i_1, \dots, i_m})) \cdot a_{\textcolor{grey}{i}}
f_{\textsf{uni}}(x) = \sum_{\textcolor{grey}{i=0}}^{\textcolor{grey}{N-1}} x^{i} \cdot a_{\textcolor{grey}{i}}
a_1
a_2
a_3
a_4
a_5
a_6
a_7
a_8
a_9
a_{10}
a_{11}
a_{12}
a_{13}
a_{14}
a_{15}
a_{16}

Gemini PCS

  • Main idea: \(\textsf{MLE} \iff \textsf{Univariate} \) equivalence  
a_1
a_2
a_3
a_4
a_5
a_6
a_7
a_8
a_9
a_{10}
a_{11}
a_{12}
a_{13}
a_{14}
a_{15}
a_{16}
f_{\textsf{multi}}(X_1, \dots, X_m)
a_1
a_2
a_3
a_4
a_5
a_6
a_7
a_8
a_9
a_{10}
a_{11}
a_{12}
a_{13}
a_{14}
a_{15}
a_{16}
f_{\textsf{uni}}(x)

Gemini PCS

  • Main idea: \(\textsf{MLE} \iff \textsf{Univariate} \) equivalence  
a_1
a_2
a_3
a_4
a_5
a_6
a_7
a_8
a_9
a_{10}
a_{11}
a_{12}
a_{13}
a_{14}
a_{15}
a_{16}
f_{\textsf{multi}}(X_1, \dots, X_m)
f_{\textsf{uni}}(x)
a_1
a_2
a_3
a_4
a_5
a_6
a_7
a_8
a_9
a_{10}
a_{11}
a_{12}
a_{13}
a_{14}
a_{15}
a_{16}
\cdot \ (1 - r_1)
\cdot \ (r_1)
f_{\textsf{multi}}(\textcolor{red}{r_1}, X_2, \dots, X_m)
f^{(1)}_{\textsf{uni}}(x)
\textcolor{red}{(1-r_1)}\cdot
+ \ \ \textcolor{red}{r_1}\cdot
f_{\textcolor{orange}{\textsf{odd}}}(x)
f_{\textcolor{lightgreen}{\textsf{even}}}(x)
\equiv

Gemini PCS

  • Main idea: \(\textsf{MLE} \iff \textsf{Univariate} \) equivalence  
a_1
a_2
a_3
a_4
a_5
a_6
a_7
a_8
a_9
a_{10}
a_{11}
a_{12}
a_{13}
a_{14}
a_{15}
a_{16}
f_{\textsf{multi}}(X_1, \dots, X_m)
f_{\textsf{uni}}(x)
a_1
a_2
a_3
a_4
a_5
a_6
a_7
a_8
a_9
a_{10}
a_{11}
a_{12}
a_{13}
a_{14}
a_{15}
a_{16}
\cdot \ (1 - r_1)
\cdot \ (r_1)
f_{\textsf{multi}}(\textcolor{red}{r_1}, X_2, \dots, X_m)
f^{(1)}_{\textsf{uni}}(x)
\begin{gather*} f^{(1)}_{\textsf{uni}}(x) = \textcolor{red}{(1-r_1)} \cdot f_{\textcolor{orange}{\textsf{odd}}}(x) + \textcolor{red}{r_1} \cdot f_{\textcolor{lightgreen}{\textsf{even}}}(x) \\[10pt] f_{\textcolor{orange}{\textsf{odd}}}(x^2) = \frac{f(x) + f(-x)}{2} \quad f_{\textcolor{lightgreen}{\textsf{even}}}(x^2) = \frac{f(x) - f(-x)}{2x} \end{gather*}
a_1
a_2
a_3
a_4
a_5
a_6
a_7
a_8
a_9
a_{10}
a_{11}
a_{12}
a_{13}
a_{14}
a_{15}
a_{16}

Gemini PCS

  • Main idea: \(\textsf{MLE} \iff \textsf{Univariate} \) equivalence  
a_1
a_2
a_3
a_4
a_5
a_6
a_7
a_8
a_9
a_{10}
a_{11}
a_{12}
a_{13}
a_{14}
a_{15}
a_{16}
f_{\textsf{multi}}(X_1, \dots, X_m)
f_{\textsf{uni}}(x)
a_1
a_2
a_3
a_4
a_5
a_6
a_7
a_8
a_9
a_{10}
a_{11}
a_{12}
a_{13}
a_{14}
a_{15}
a_{16}
\cdot \ (1 - r_1)
\cdot \ (r_1)
f_{\textsf{multi}}(\textcolor{red}{r_1}, X_2, \dots, X_m)
f^{(1)}_{\textsf{uni}}(x)
f^{(2)}_{\textsf{uni}}(x)
f^{(3)}_{\textsf{uni}}(x)
f_{\textsf{multi}}(\textcolor{red}{r_1, r_2}, X_3, \dots, X_m)
f_{\textsf{multi}}(\textcolor{red}{r_1, r_2, r_3}, X_4, \dots, X_m)

Gemini PCS

  • Main idea: \(\textsf{MLE} \iff \textsf{Univariate} \) equivalence  
f_{\textsf{uni}}(x)
f^{(1)}_{\textsf{uni}}(x)
f^{(2)}_{\textsf{uni}}(x)
f^{(3)}_{\textsf{uni}}(x)
  • Uses KZG for univariate evaluation proofs  
  • For each round \(i \in \{1, 2, \dots, m\}\), need to open:  
    • \(f^{(i)}_{\textsf{uni}}(x)\)  at  \(x = \textcolor{yellow}{\beta}^2\)
    • \(f^{(i-1)}_{\textsf{uni}}(x)\)  at  \(x = \textcolor{yellow}{\beta}\)
    • \(f^{(i-1)}_{\textsf{uni}}(x)\)  at  \(x = -\textcolor{yellow}{\beta}\)
\begin{aligned} f^{(i)}_{\textsf{uni}}(\textcolor{yellow}{\beta}^2) &= \textcolor{red}{(1-r_1)} \cdot f_{\textcolor{orange}{\textsf{odd}}}(\textcolor{yellow}{\beta}^2) + \textcolor{red}{r_1} \cdot f_{\textcolor{lightgreen}{\textsf{even}}}(\textcolor{yellow}{\beta}^2) \\[10pt] &= \textcolor{red}{(1-r_1)} \cdot \frac{f^{(i-1)}_{\textsf{uni}}(\textcolor{yellow}{\beta}) + f^{(i-1)}_{\textsf{uni}}(-\textcolor{yellow}{\beta})}{2} + \textcolor{red}{r_1} \cdot \frac{f^{(i-1)}_{\textsf{uni}}(\textcolor{yellow}{\beta}) - f^{(i-1)}_{\textsf{uni}}(-\textcolor{yellow}{\beta})}{2\textcolor{yellow}{\beta}} \end{aligned}

HyperKZG

  • For each round \(i \in \{1, 2, \dots, m\}\), need to open:  
    • \(f^{(i)}_{\textsf{uni}}(x)\)  at  \(x = \textcolor{yellow}{\beta}^2\)
    • \(f^{(i-1)}_{\textsf{uni}}(x)\)  at  \(x = \textcolor{yellow}{\beta}\)
    • \(f^{(i-1)}_{\textsf{uni}}(x)\)  at  \(x = -\textcolor{yellow}{\beta}\)
  • Simplify to open all polynomials at all points and use batched KZG
f^{(0)}_{\textsf{uni}}(x), \ f^{(1)}_{\textsf{uni}}(x), \ \dots , f^{(m-1)}_{\textsf{uni}}(x)
\textcolor{yellow}{\beta^2}
\textcolor{yellow}{\beta}
\textcolor{yellow}{-\beta}
  • Using SHPLONK can reduce 3 quotients to 2 (i.e., \(2N\) scalar mults. instead of \(3N\))
Q_1(X)
Q_2(X)
Q_3(X)

Mercury

\vdots
  • Gemini does \(\text{log}(N)\) steps of univariate evaluation proofs
  • Thus, multi-linear evaluation proofs are sizes \(\text{log}(N)\)
  • KZG gives \(\mathcal{O}(1)\) proofs for univariate polynomials.
  • Can we get constant-sized proofs for MLE polynomials?
  • Starting point: Squash first \(t\) rounds of Gemini as a single proof
f_{\textsf{uni}}(x)
f^{(1)}_{\textsf{uni}}(x)
f^{(2)}_{\textsf{uni}}(x)
f^{(m-1)}_{\textsf{uni}}(x)
\mathcal{O}(1)
\mathcal{O}(m-t) \approx \mathcal{O}(1)
f_{\textsf{multi}}(\textcolor{red}{\underbrace{r_1, r_2, \dots, r_t}_{u_1}}, \underbrace{X_{t+1} \dots, X_m}_{u_2}) = \sum_{0 \le i < 2^t} \textsf{eq}(\textcolor{red}{u_1}, i) \cdot f(\textcolor{red}{u_1} \ \| \ i)

Mercury

\vdots
f_{\textsf{uni}}(x)
f^{(1)}_{\textsf{uni}}(x)
f^{(2)}_{\textsf{uni}}(x)
f^{(m-1)}_{\textsf{uni}}(x)
f_{\textsf{multi}}(\textcolor{red}{\underbrace{r_1, r_2, \dots, r_t}_{u_1}}, \underbrace{X_{t+1} \dots, X_m}_{u_2}) = \sum_{0 \le i < 2^t} \textsf{eq}(\textcolor{red}{u_1}, i) \cdot f(\textcolor{red}{u_1} \ \| \ i)
f \equiv \begin{bmatrix} a_0 & a_1 & \dots & a_{2^t-1} & a_{2^t} & \dots & a_{2^{t + 1}-1} & \dots & a_{2^{m-t}} & \dots & a_{2^m-1} \end{bmatrix}
=: \begin{bmatrix} f_1(x) \\ f_2(x) \\ \vdots \\ f_k(x) \end{bmatrix}
f \equiv \begin{bmatrix} a_0 & a_1 & \dots & a_{2^t-1} \\ a_{2^t} & \dots & \dots & a_{2^{t + 1}-1} \\ \vdots & \vdots & \vdots & \vdots \\ a_{2^{m-t}} & \dots & \dots & a_{2^m-1} \end{bmatrix}

Gemini \(\longrightarrow\) Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round 1

Round 2

Round \(t\)

Round \(n\)

Multi-variate sumcheck

Uni-variate relations

f(\textcolor{grey}{x}) = f_e(\textcolor{grey}{x^2}) + \textcolor{grey}{x} \cdot f_o(\textcolor{grey}{x^2})
\begin{aligned} f^{(\textcolor{red}{1})}(\textcolor{grey}{x}) &= (1 - \textcolor{red}{z_1}) \cdot f_e(\textcolor{grey}{x}) + \textcolor{red}{z_1} \cdot f_o(\textcolor{grey}{x}) \end{aligned}

Commitment

\big[f(\cdot)\big]
\big[f^{(\textcolor{red}{1})}(\cdot)\big]
\begin{aligned} f^{(\textcolor{red}{2})}(\textcolor{grey}{x}) &= (1 - \textcolor{red}{z_2}) \cdot f^{(\textcolor{red}{1})}_e(\textcolor{grey}{x}) + \textcolor{red}{z_2} \cdot f^{(\textcolor{red}{1})}_o(\textcolor{grey}{x}) \end{aligned}
\big[f^{(\textcolor{red}{2})}(\cdot)\big]
\vdots
\vdots
\begin{aligned} f^{(\textcolor{red}{t})}(\textcolor{grey}{x}) &= (1 - \textcolor{red}{z_t}) \cdot f^{(\textcolor{red}{t-1})}_e(\textcolor{grey}{x}) + \textcolor{red}{z_t} \cdot f^{(\textcolor{red}{t-1})}_o(\textcolor{grey}{x}) \end{aligned}
\big[f^{(\textcolor{red}{t})}(\cdot)\big]
\vdots
\vdots
\begin{aligned} f^{(\textcolor{red}{n})}(\textcolor{grey}{x}) &= (1 - \textcolor{red}{z_n}) \cdot f^{(\textcolor{red}{n-1})}_e(\textcolor{grey}{x}) + \textcolor{red}{z_n} \cdot f^{(\textcolor{red}{n-1})}_o(\textcolor{grey}{x}) \end{aligned}
\big[f^{(\textcolor{red}{n})}(\cdot)\big]

Gemini \(\longrightarrow\) Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round 1

Round 2

Round \(t\)

Round \(n\)

Multi-variate sumcheck

Commitment

\big[f(\cdot)\big]
\big[f^{(\textcolor{red}{1})}(\cdot)\big]
\big[f^{(\textcolor{red}{2})}(\cdot)\big]
\vdots
\big[f^{(\textcolor{red}{t})}(\cdot)\big]
\vdots
\big[f^{(\textcolor{red}{n})}(\cdot)\big]

Gemini \(\longrightarrow\) Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

  • We need to prove two things:
    • Jump to state \(t\) was correct
    • MLE eval at \(t\) (over remaining variables)
  • How to use univariate relations to prove? 

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

\begin{bmatrix} a_0 & a_1 & a_2 & a_3 & a_4 & a_5 & a_6 & a_7 & a_8 & a_9 & a_{10} & a_{11} & a_{12} & a_{13} & a_{14} & a_{15} \end{bmatrix}
\begin{bmatrix} a_0 & a_1 & a_2 & a_3 & a_4 & a_5 & a_6 & a_7 & a_8 & a_9 & a_{10} & a_{11} & a_{12} & a_{13} & a_{14} & a_{15} \end{bmatrix}

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

\begin{bmatrix} a_0 & a_1 & a_2 & a_3 & a_4 & a_5 & a_6 & a_7 & a_8 & a_9 & a_{10} & a_{11} & a_{12} & a_{13} & a_{14} & a_{15} \end{bmatrix}
\begin{bmatrix} a_0 & a_1 & a_2 & a_3 & a_4 & a_5 & a_6 & a_7 & a_8 & a_9 & a_{10} & a_{11} & a_{12} & a_{13} & a_{14} & a_{15} \end{bmatrix}

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

\begin{bmatrix} a_0 & a_2 & a_4 & a_6 & a_8 & a_{10} & a_{12} & a_{14} \end{bmatrix}
\begin{bmatrix} a_1 & a_3 & a_5 & a_7 & a_9 & a_{11} & a_{13} & a_{15} \end{bmatrix}

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

\begin{bmatrix} a_0 & a_2 & a_4 & a_6 & a_8 & a_{10} & a_{12} & a_{14} \end{bmatrix}
\begin{bmatrix} a_1 & a_3 & a_5 & a_7 & a_9 & a_{11} & a_{13} & a_{15} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
\begin{bmatrix} a_1 & a_3 & a_5 & a_7 & a_9 & a_{11} & a_{13} & a_{15} \end{bmatrix}

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

\begin{bmatrix} a_0 & a_2 & a_4 & a_6 & a_8 & a_{10} & a_{12} & a_{14} \end{bmatrix}
\begin{bmatrix} a_1 & a_3 & a_5 & a_7 & a_9 & a_{11} & a_{13} & a_{15} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
\begin{bmatrix} a_0 & a_2 & a_4 & a_6 & a_8 & a_{10} & a_{12} & a_{14} \end{bmatrix}
\begin{bmatrix} a_1 & a_3 & a_5 & a_7 & a_9 & a_{11} & a_{13} & a_{15} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

\begin{bmatrix} a_0 & a_2 & a_4 & a_6 & a_8 & a_{10} & a_{12} & a_{14} \end{bmatrix}
\begin{bmatrix} a_1 & a_3 & a_5 & a_7 & a_9 & a_{11} & a_{13} & a_{15} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
\begin{bmatrix} a_0 & a_2 & a_4 & a_6 & a_8 & a_{10} & a_{12} & a_{14} \end{bmatrix}
\begin{bmatrix} a_1 & a_3 & a_5 & a_7 & a_9 & a_{11} & a_{13} & a_{15} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

\begin{bmatrix} a_0 & a_4 & a_8 & a_{12} \end{bmatrix}
\begin{bmatrix} a_1 & a_5 & a_9 & a_{13} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
\begin{bmatrix} a_2 & a_6 & a_{10} & a_{14} \end{bmatrix}
\begin{bmatrix} a_3 & a_7 & a_{11} & a_{15} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

\begin{bmatrix} a_0 & a_4 & a_8 & a_{12} \end{bmatrix}
\begin{bmatrix} a_1 & a_5 & a_9 & a_{13} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
\begin{bmatrix} a_2 & a_6 & a_{10} & a_{14} \end{bmatrix}
\begin{bmatrix} a_3 & a_7 & a_{11} & a_{15} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

\begin{bmatrix} a_0 & a_4 & a_8 & a_{12} \end{bmatrix}
\begin{bmatrix} a_1 & a_5 & a_9 & a_{13} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
\begin{bmatrix} a_2 & a_6 & a_{10} & a_{14} \end{bmatrix}
\begin{bmatrix} a_3 & a_7 & a_{11} & a_{15} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot

New univariates

f_0(\textcolor{grey}{x})
f_2(\textcolor{grey}{x})
f_2(\textcolor{grey}{x})
f_3(\textcolor{grey}{x})
(X_1, \dots, X_t)
(X_{t+1}, \dots, X_n)

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

\begin{bmatrix} a_0 & a_4 & a_8 & a_{12} \end{bmatrix}
\begin{bmatrix} a_1 & a_5 & a_9 & a_{13} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
\begin{bmatrix} a_2 & a_6 & a_{10} & a_{14} \end{bmatrix}
\begin{bmatrix} a_3 & a_7 & a_{11} & a_{15} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot

New univariates

f_0(\textcolor{grey}{x})
f_1(\textcolor{grey}{x})
f_2(\textcolor{grey}{x})
f_3(\textcolor{grey}{x})
(X_1, \dots, X_t)
(X_{t+1}, \dots, X_n)
h(\textcolor{grey}{x})= (1-\textcolor{red}{z_1})(1-\textcolor{red}{z_2})\dots (1-\textcolor{red}{z_t}) \cdot f_0(\textcolor{grey}{x}) \ +
(1-\textcolor{red}{z_1})(1-\textcolor{red}{z_2})\dots (\textcolor{red}{z_t}) \cdot f_1(\textcolor{grey}{x}) \ +
(\textcolor{red}{z_1})(\textcolor{red}{z_2})\dots (\textcolor{red}{z_t}) \cdot f_{b-1}(\textcolor{grey}{x}).
\vdots
\iff

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

\begin{bmatrix} a_0 & a_4 & a_8 & a_{12} \end{bmatrix}
\begin{bmatrix} a_1 & a_5 & a_9 & a_{13} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
\begin{bmatrix} a_2 & a_6 & a_{10} & a_{14} \end{bmatrix}
\begin{bmatrix} a_3 & a_7 & a_{11} & a_{15} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot

New univariates

f_0(\textcolor{grey}{x})
f_1(\textcolor{grey}{x})
f_2(\textcolor{grey}{x})
f_3(\textcolor{grey}{x})
h(\textcolor{grey}{x})=
\iff
\sum_{i=0}^{b-1} \textsf{eq}(\textcolor{red}{(z_1, \dots, z_t)}, i) \cdot f_i(\textcolor{grey}{x})
(X_1, \dots, X_t)
(X_{t+1}, \dots, X_n)

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

\begin{bmatrix} a_0 & a_4 & a_8 & a_{12} \end{bmatrix}
\begin{bmatrix} a_1 & a_5 & a_9 & a_{13} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
\begin{bmatrix} a_2 & a_6 & a_{10} & a_{14} \end{bmatrix}
\begin{bmatrix} a_3 & a_7 & a_{11} & a_{15} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot

New univariates

f_0(\textcolor{grey}{x})
f_1(\textcolor{grey}{x})
f_2(\textcolor{grey}{x})
f_3(\textcolor{grey}{x})
h(\textcolor{grey}{x})=
\iff
\sum_{i=0}^{b-1} \textsf{eq}(\textcolor{red}{(z_1, \dots, z_t)}, i) \cdot f_i(\textcolor{grey}{x})
(X_1, \dots, X_t)
(X_{t+1}, \dots, X_n)
\longleftrightarrow

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

\begin{bmatrix} a_0 & a_4 & a_8 & a_{12} \end{bmatrix}
\begin{bmatrix} a_1 & a_5 & a_9 & a_{13} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
\begin{bmatrix} a_2 & a_6 & a_{10} & a_{14} \end{bmatrix}
\begin{bmatrix} a_3 & a_7 & a_{11} & a_{15} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot

New univariates

f_0(\textcolor{grey}{x})
f_1(\textcolor{grey}{x})
f_2(\textcolor{grey}{x})
f_3(\textcolor{grey}{x})
h(\textcolor{grey}{x})=
\iff
\sum_{i=0}^{b-1} \textsf{eq}(\textcolor{red}{(z_1, \dots, z_t)}, i) \cdot f_i(\textcolor{grey}{x})
(X_1, \dots, X_t)
(X_{t+1}, \dots, X_n)
\longleftrightarrow
f_0(\textcolor{red}{\alpha})
f_1(\textcolor{red}{\alpha})
f_2(\textcolor{red}{\alpha})
f_3(\textcolor{red}{\alpha})

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

\begin{bmatrix} a_0 & a_4 & a_8 & a_{12} \end{bmatrix}
\begin{bmatrix} a_1 & a_5 & a_9 & a_{13} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
\begin{bmatrix} a_2 & a_6 & a_{10} & a_{14} \end{bmatrix}
\begin{bmatrix} a_3 & a_7 & a_{11} & a_{15} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot

New univariates

f_0(\textcolor{grey}{x})
f_1(\textcolor{grey}{x})
f_2(\textcolor{grey}{x})
f_3(\textcolor{grey}{x})
h(\textcolor{grey}{x})=
\iff
\sum_{i=0}^{b-1} \textsf{eq}(\textcolor{red}{(z_1, \dots, z_t)}, i) \cdot f_i(\textcolor{grey}{x})
(X_1, \dots, X_t)
(X_{t+1}, \dots, X_n)
\longleftrightarrow
f_0(\textcolor{red}{\alpha})
f_1(\textcolor{red}{\alpha})
f_2(\textcolor{red}{\alpha})
f_3(\textcolor{red}{\alpha})
g(\textcolor{grey}{x}) =
+ \ \textcolor{grey}{x}
+ \ \textcolor{grey}{x^2}
+ \ \textcolor{grey}{x^3}

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

\begin{bmatrix} a_0 & a_4 & a_8 & a_{12} \end{bmatrix}
\begin{bmatrix} a_1 & a_5 & a_9 & a_{13} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
\begin{bmatrix} a_2 & a_6 & a_{10} & a_{14} \end{bmatrix}
\begin{bmatrix} a_3 & a_7 & a_{11} & a_{15} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot

New univariates

f_0(\textcolor{grey}{x})
f_1(\textcolor{grey}{x})
f_2(\textcolor{grey}{x})
f_3(\textcolor{grey}{x})
h(\textcolor{grey}{x})=
\iff
\sum_{i=0}^{b-1} \textsf{eq}(\textcolor{red}{(z_1, \dots, z_t)}, i) \cdot f_i(\textcolor{grey}{x})
(X_{t+1}, \dots, X_n)
\longleftrightarrow
g(\textcolor{grey}{x}) =
\sum_{i=0}^{b-1} \textcolor{grey}{x^i} \cdot f_i(\textcolor{red}{\alpha})
(X_1, \dots, X_t)

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

\begin{bmatrix} a_0 & a_4 & a_8 & a_{12} \end{bmatrix}
\begin{bmatrix} a_1 & a_5 & a_9 & a_{13} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
\begin{bmatrix} a_2 & a_6 & a_{10} & a_{14} \end{bmatrix}
\begin{bmatrix} a_3 & a_7 & a_{11} & a_{15} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot

New univariates

f_0(\textcolor{grey}{x})
f_1(\textcolor{grey}{x})
f_2(\textcolor{grey}{x})
f_3(\textcolor{grey}{x})
h(\textcolor{grey}{x})=
\iff
\sum_{i=0}^{b-1} \textsf{eq}(\textcolor{red}{(z_1, \dots, z_t)}, i) \cdot f_i(\textcolor{grey}{x})
(X_{t+1}, \dots, X_n)
\longleftrightarrow
g(\textcolor{grey}{x}) =
\sum_{i=0}^{b-1} \textcolor{grey}{x^i} \cdot f_i(\textcolor{red}{\alpha})
(X_1, \dots, X_t)
\longleftrightarrow

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

\begin{bmatrix} a_0 & a_4 & a_8 & a_{12} \end{bmatrix}
\begin{bmatrix} a_1 & a_5 & a_9 & a_{13} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
\begin{bmatrix} a_2 & a_6 & a_{10} & a_{14} \end{bmatrix}
\begin{bmatrix} a_3 & a_7 & a_{11} & a_{15} \end{bmatrix}
(1 - \textcolor{red}{z_1}) \ \cdot
(\textcolor{red}{z_1}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(1 - \textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot
(\textcolor{red}{z_2}) \ \cdot

New univariates

f_0(\textcolor{grey}{x})
f_1(\textcolor{grey}{x})
f_2(\textcolor{grey}{x})
f_3(\textcolor{grey}{x})
h(\textcolor{grey}{x})=
\iff
\sum_{i=0}^{b-1} \textsf{eq}(\textcolor{red}{(z_1, \dots, z_t)}, i) \cdot f_i(\textcolor{grey}{x})
g(\textcolor{grey}{x}) =
\sum_{i=0}^{b-1} \textcolor{grey}{x^i} \cdot f_i(\textcolor{red}{\alpha})
h(\textcolor{red}{\alpha}) = g_{\textsf{multi}}(\textcolor{red}{(z_1, \dots, z_t)})

How does \(g(x)\) relate to original \(f(x)?\)

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

h(\textcolor{grey}{x})=
\sum_{i=0}^{b-1} \textsf{eq}(\textcolor{red}{(z_1, \dots, z_t)}, i) \cdot f_i(\textcolor{grey}{x})
g(\textcolor{grey}{x}) =
\sum_{i=0}^{b-1} \textcolor{grey}{x^i} \cdot f_i(\textcolor{red}{\alpha})
h(\textcolor{red}{\alpha}) = g_{\textsf{multi}}(\textcolor{red}{(z_1, \dots, z_t)})

How does \(g(x)\) relate to original \(f(x)?\)

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

h(\textcolor{grey}{x})=
\sum_{i=0}^{b-1} \textsf{eq}(\textcolor{red}{(z_1, \dots, z_t)}, i) \cdot f_i(\textcolor{grey}{x})
g(\textcolor{grey}{x}) =
\sum_{i=0}^{b-1} \textcolor{grey}{x^i} \cdot f_i(\textcolor{red}{\alpha})
h(\textcolor{red}{\alpha}) = g_{\textsf{multi}}(\textcolor{red}{(z_1, \dots, z_t)})

How does \(g(x)\) relate to original \(f(x)?\)

\therefore \ g(\textcolor{grey}{x}) := f(\textcolor{grey}{x}) \ \ \textsf{mod} \ \ (\textcolor{grey}{x^3} - \textcolor{red}{\alpha})
g(\textcolor{grey}{x}) = f_0(\textcolor{red}{\alpha}) \ +
\textcolor{grey}{x} f_1(\textcolor{red}{\alpha}) \ +
\textcolor{grey}{x^2} f_2(\textcolor{red}{\alpha}) \ +
\textcolor{grey}{x^3} f_3(\textcolor{red}{\alpha}).
= \textcolor{grey}{x^0} \ \cdot
\begin{bmatrix} a_0 + \ \textcolor{red}{\alpha} a_4 + \ \textcolor{red}{\alpha^2} a_8 + \ \textcolor{red}{\alpha^3} a_{12} \end{bmatrix}
\begin{bmatrix} a_1 + \ \textcolor{red}{\alpha} a_5 + \ \textcolor{red}{\alpha^2} a_9 + \ \textcolor{red}{\alpha^3} a_{13} \end{bmatrix}
\textcolor{grey}{x^1} \ \cdot
\begin{bmatrix} a_2 + \ \textcolor{red}{\alpha} a_6 + \ \textcolor{red}{\alpha^2} a_{10} + \ \textcolor{red}{\alpha^3} a_{14} \end{bmatrix}
\textcolor{grey}{x^2} \ \cdot
\begin{bmatrix} a_3 + \ \textcolor{red}{\alpha} a_7 + \ \textcolor{red}{\alpha^2} a_{11} + \ \textcolor{red}{\alpha^3} a_{15} \end{bmatrix}
\textcolor{grey}{x^3} \ \cdot

Mercury

F(X_1, X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ X_2, \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots \ \dots \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, X_n)
F(\textcolor{red}{z_1}, \ \textcolor{red}{z_2}, \ \dots, \textcolor{red}{z_t}, \ \dots, \ \textcolor{red}{z_n})
\vdots
\vdots
\vdots
\vdots

Round \(n\)

Multi-variate sumcheck

Round 1

h(\textcolor{grey}{x})=
\sum_{i=0}^{b-1} \textsf{eq}(\textcolor{red}{(z_1, \dots, z_t)}, i) \cdot f_i(\textcolor{grey}{x})
g(\textcolor{grey}{x}) =
\sum_{i=0}^{b-1} \textcolor{grey}{x^i} \cdot f_i(\textcolor{red}{\alpha})
h(\textcolor{red}{\alpha}) = g_{\textsf{multi}}(\textcolor{red}{(z_1, \dots, z_t)})
\therefore \ g(\textcolor{grey}{x}) := f(\textcolor{grey}{x}) \ \ \textsf{mod} \ \ (\textcolor{grey}{x^3} - \textcolor{red}{\alpha})

Plan is:

  • Eval \(h(\textcolor{red}{\alpha})\) using KZG
  • Eval \(g_{\textsf{multi}}(\textcolor{red}{z_1, \dots, z_t})\) using Gemini (size \(b\))
  • Eval \(h_{\textsf{multi}}(\textcolor{red}{z_{t+1}, \dots, z_n})\) using Gemini (size \(n/b\))
  • Prove \(g(\textcolor{grey}{x}) \longleftrightarrow f(\textcolor{grey}{x})\) using univariate division

Mercury

Plan is:

  • Eval \(h(\textcolor{red}{\alpha})\) using KZG
  • Eval \(g_{\textsf{multi}}(\textcolor{red}{z_1, \dots, z_t})\) using Gemini (size \(b\))
  • Eval \(h_{\textsf{multi}}(\textcolor{red}{z_{t+1}, \dots, z_n})\) using Gemini (size \(n/b\))
  • Prove \(g(\textcolor{grey}{x}) \longleftrightarrow f(\textcolor{grey}{x})\) using univariate division
g_{\textsf{multi}}(\textcolor{red}{z_1, \dots, z_t}) := \sum_{i=0}^{b-1} \textsf{eq}((\textcolor{red}{z_1, \dots, z_t}), i) \cdot g_i
= \big\langle \textsf{eq}_{\textsf{uni}} \ , \ g_{\textsf{uni}} \big\rangle
p(\textcolor{grey}{x}) \cdot q\left(\textcolor{grey}{\frac{1}{x}}\right) = (p_0 + p_1\textcolor{grey}{x} + p_1\textcolor{grey}{x^2} + \dots + p_d\textcolor{grey}{x^d}) \cdot \left(q_0 + q_1\textcolor{grey}{\frac{1}{x}} + p_1\textcolor{grey}{\frac{1}{x^2}} + \dots + p_d\textcolor{grey}{\frac{1}{x^d}}\right)
= \langle p, q \rangle + \textcolor{grey}{\frac{1}{x}} \cdot S_1\left(\textcolor{grey}{\frac{1}{x}}\right) + \textcolor{grey}{x} \cdot S_2(\textcolor{grey}{x})

Mercury

Plan is:

  • Eval \(h(\textcolor{red}{\alpha})\) using KZG
  • Eval \(g_{\textsf{multi}}(\textcolor{red}{z_1, \dots, z_t})\) using Gemini (size \(b\))
  • Eval \(h_{\textsf{multi}}(\textcolor{red}{z_{t+1}, \dots, z_n})\) using Gemini (size \(n/b\))
  • Prove \(g(\textcolor{grey}{x}) \longleftrightarrow f(\textcolor{grey}{x})\) using univariate division
f(\textcolor{grey}{x}) = (\textcolor{grey}{x^b} - \textcolor{red}{\alpha}) \cdot q(\textcolor{grey}{x}) + g(\textcolor{grey}{x})

\(\implies\) Univariate KZG!

Mercury

Plan is:

  • Eval \(h(\textcolor{red}{\alpha})\) using KZG
  • Eval \(g_{\textsf{multi}}(\textcolor{red}{z_1, \dots, z_t})\) using Gemini (size \(b\))
  • Eval \(h_{\textsf{multi}}(\textcolor{red}{z_{t+1}, \dots, z_n})\) using Gemini (size \(n/b\))
  • Prove \(g(\textcolor{grey}{x}) \longleftrightarrow f(\textcolor{grey}{x})\) using univariate division

Mercury \(\equiv\) Constant-sized MLE evaluation proofs.

Multi-Linear PCS

By Suyash Bagad

Multi-Linear PCS

  • 87