Skip to content

Add Circle FRI Section#36

Merged
varunthakore merged 3 commits into
mainfrom
varun/fri
Oct 16, 2025
Merged

Add Circle FRI Section#36
varunthakore merged 3 commits into
mainfrom
varun/fri

Conversation

@varunthakore

Copy link
Copy Markdown
Contributor

No description provided.

Comment thread src/how-it-works/circle-fri/overview.md Outdated

> **Why check proximity to a polynomial?**
>
> The prover sends evaluations of a function to the verifier. However, the verifier does not know if this function is a polynomial, or if it satisfies a pre-specified degree bound. FRI allows the verifier to check that the evaluations sent by the prover are indeed "close" to some polynomial of bounded degree. Here, the verifier only checks for proximity; that is, the verifier accepts even if the evaluations sent by the prover are "close enough" to those of a polynomial of bounded degree, they need not be exactly equal.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit) "they need not be exactly equal" -> "thus, they need not be exactly equal"

Comment thread src/how-it-works/circle-fri/overview.md Outdated
$$
The prover will find the evaluations of functions $h_{0,0}\;,\; h_{0,1}$ over the domain $I_0$ using the evaluations of $h_0$ over domain $H_0$ as follows:
$$
h_{0,0}(x) = \frac{h_0(x,y)+h_0(x,-y)}{2} \quad, \quad h_{0,1} = \frac{h_0(x,y)-h_0(x,-y)}{2y}.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing $(x)$ after $h_{0,1}$

Comment thread src/how-it-works/circle-fri/overview.md Outdated
The prover commits and gives the verifier oracle access to the evaluations $g_0 \in F^{I_0}$.
- **Round 1**: The prover will decompose the function $h_1$ over the domain $H_1$ into two functions $h_{1,0}\;,\; h_{1,1}$ over the domain $I_1$, same as the decomposition of $h_0$ in **Round 0**. The prover will also decompose the function $g_0$ over domain $I_0$ into two functions $g_{0,0}$ and $g_{0,1}$ over the domain $I_1$ as follows:
$$
g_0(x) = g_{0,0}(2x^2 - 1) + y \cdot g_{0,1}(2x^2 - 1)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

$y \cdot g_{0,1}$ should be $x \cdot g_{0,1}$?

Comment thread src/how-it-works/circle-fri/overview.md Outdated
$$
The prover will find the evaluations of functions $g_{0,0}$ and $g_{0,1}$ over the domain $I_1$ using the evaluations of $g_0$ over domain $I_0$ as follows:
$$
g_{0,0}(2x^2 - 1) = \frac{g_0(x)+g_0(-x)}{2} \quad, \quad g_{0,1}(2x^2 - 1) = \frac{g_0(x)-g_0(-x)}{2y}.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

$\frac{g_0(x)-g_0(-x)}{2y}$ should be $\frac{g_0(x)-g_0(-x)}{2x}$?

where $g_{i-1,0}, g_{i-1,1} \in F^{I_i}$ are the decomposition of $g_{i-1} \in F^{I_{i-1}}$ and $h_{i,0}, h_{i,1} \in F^{I_i}$ are the decompositions of $h_i \in F^{H_i}$. The prover gives the verifier oracle access to $g_i$, and in the final round $g_r$ is sent in plain.


2. _Query Phase_: In the query phase, the verifier checks that the prover computed the folding correctly using the oracles sent by the prover. It consists of $s \geq 1$ rounds. In each round, the verifier samples $P_0 = (x_0,y_0) \in H_0$, and queries the oracles for their values to spot-check the folding identities along the projection trace $P_i = (x_i,y_i) = \pi^i(x_0,y_0)$. That is, for all $i = \{0, 1, 2\}$ the verifier checks that:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a different check is done for $i=0$

@varunthakore varunthakore Oct 15, 2025

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is because of the product with ${\lambda^2}_0$, right ??

I have updated the Round 0 of the commit phase to match the folding equation for general $i$ and the check in the query phase.

@varunthakore
varunthakore merged commit b4f5617 into main Oct 16, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants