# Lagrange Interpolation Lagrange interpolation is a technique to construct a single polynomial that exactly passes through a given set of points $(x_1, y_1),(x_2,y_2)...(x_n, y_n)$. ## Use cases Lagrange interpolation is widely used in * probabilistically checkable proof * interactive proof systems * error-correcting codes, a In this post, I explain Lagrange intepolation applied on unvariate (e.g $f(x) =4x^2 + 3x +2$) and multilinear (e.g f(x, y) = 4xy +5x +2) polynomials. ## Univariate Lagrange Interpolation Let $P$ be a Lagrange polynomial $(y_0...y_n)$ are evaluations of P in points $(x_0..x_n)$ $P(x) \;=\; \sum_{i=0}^{n} y_i \,\ell_i(x) (1.0), \qquad \ell_i(x) \;=\; \prod_{\substack{0 \le j \le n \\ j \neq i}} \frac{x - x_j}{x_i - x_j}. (1.1)$ Example: points $(x_i, y_i)$ = (0,1),(1,3),(2,2) Goal: Compute P 1. compute $l_0...l_2$ using 1.1 $l_0(x) = (x-1)(x-2) / ((0-1)(0-2)) = (x-1)(x-2)/2$ $l_1(x) = (x-0)(x-2) / (1-0)(1-2) = -x(x-2)$ $l_2(x) = (x-0)(x-1) / ((2-0)(2-1)) = x(x-1)/2$ 2. compute P using 1.0 $P(x) = 1 * (x-1)(x-2)/2 - 3x(x-2) + x(x-1)$ $P(x) = -x^2 + 3x + 1$ ## Multilinear extensions and Multilinear lagrange interpolation Multilinear extensions (MLE) and multilinear lagrange interpolation are keys to prover's performance. * Multilinear extension builds a polynomial of degree at most 1 in each variable to match a function on the $2^n$ Boolean points. Example: n = 3, $p(x_1...x_3) = x_1*x_2 +x_3 +x_1*x_3$ is multilinear if a degree on each term is at most one. Let f be a function : {0,1}ⁿ - > $F^n$ that maps a bit string to a field element of field F. A bit-string of length n is an element of {0,1}ⁿ. Example: n = 3: “000”, “001”, “010”, “011”, “100”, “101”, “110”, “111” Fact: for any function f: {0,1}ⁿ - > $F^n$ there exists a one multilinear polynomial $\tilde{f}$, $\tilde{f}$ is multilinear extension(MLE) of f $\tilde{f}$ called an extension cause it has larger domain $F^n$ $f(x_1, x_2, x_3)$ $\tilde{f(x_1, x_2, x_3)}$ = $f(x_1, x_2, x_3)$ + $x_1(1-x_1)$ $x_1(1-x_1)$ = 0 for all x $\in$ {0,1} ### Examples of MLE $AND(x_1, x_2)$ * (0, 1), (0,0), (1, 0) -> 0 * (1, 1) -> 1 $\tilde{AND(x_1, x_2)}$ = $x_1*x_2$ is MLE Similarly, $\tilde{OR(x_1, x_2)}$ = $x_1$ + $x_2$ - $x_1*x_2$ ### Equality function Let x = $(x_1...x_n)$, y = $(y_1...y_n)$ $EQ(x,y)$ = 1 if $x_i = y_i$ for i = 1..n else 0 $\tilde{EQ(x, y)}$ = $\prod_{i=0}^{n} x_iy_i + (1-x_i)(1-y_i)$ ## Multilinear Lagrange interpolation Let $f$: {0,1}ⁿ -> F, $\widetilde{f}$ is MLE of $f$, $r \in$ {0,1}ⁿ $\widetilde f(r) \;=\; \sum_{y\in\{0,1\}^n} f(y)\tilde{EQ(r, y)}$ is Multilinear lagrange intepolation **Multilinear lagrange intepolation** is a fast algorithm, given an input f(y) quickly computes the sum $\sum_{y\in\{0,1\}^n} f(y)\tilde{EQ(r, y)}$