Question about Arithmetic Intermediate Representation (AIR)?

⚓ Neptune    📅 2024-12-09    👤 wuxiu    👁️ 71      

wuxiu

Hi all,

I’m reading alanszepieniec’blog about START implementation https://neptune.cash/learn/stark-anatomy/stark/

I’m wondering why it should subtract boundary interpolants from trace polynomials?

“Instead, the prover interpolates the boundary points and subtracts the resulting interpolants from the trace polynomials. This procedure produces the dense trace polynomials, for lack of a better name”

Thank you very much.

🏷️ STARK AIR

aszepieniec    2024-12-09 👍 2 👎

Let f(X) be a trace polynomial and let D={ωi|0i<2k} be the domain over which the trace is interpolated. We want to enforce a boundary constraint, namely that f(X) takes the value y in the point z=ω0=1. To enforce this constraint, we compute the quotient q(X)=f(X)-yX-z and require that q(x) has low degree (in addition to f(X)). The reason why this works is because if f(z)y then we get unclean division and no low-degree polynomial q(X) can exist – and so it must be rejected by FRI.

The reason why it is called “interpolant” is because it is the natural generalization of single-point boundary constraints. Suppose we want to enforce two boundary constraints, a) f(z0)=y0 and f(z1)=y1. Then the interpolant is p(X)=y0·(X-z1)·(z0-z1)-1+y1·(X-z0)·(z1-z0)-1, the zerofier is z(X)=(X-z1)·(X-z0), and the quotient is q(X)=f(X)-p(X)z(X). The same intuition about soundness applies.

1