Statement Encoding
The GKR protocol specifically works with statements of the form , where is a layered arithmetic circuit. Define a singular value, , to be the output layer, , and the input values to make up the input layer, .
For any layer, the following invariant holds: if a value is in , then it must be the result of a binary operation involving values in layers such that . It is possible that , but not necessary.
These binary operations are usually referred to as "gates." In the following tutorial we will be focusing on two gates: gates, which are represented by the following function:
and gates:
In other words, if we think of a physical representation of , the binary gates represent the "wires" of the circuit. They show how the values from wires belonging in previous layers of the circuit can be used to compute a value in a future layer (from input to output). In fact, for every value with label in layer such that or for as labels for values in layers .
Example
Let's look at the following layered arithmetic circuit with depth = 3:

In this case, and , but . Notice how the circuit naturally falls in "layers" based on the dependencies of values.