I am reading about GKR protocol from Justin Thaler's book - Proofs, Arguments & Zero Knowledge
On Page 59,
In the first message, $P$ tells $V$ the (claimed) output(s) of the circuit. The protocol then works its way in iterations towards the input layer, with one iteration devoted to each layer.
I am a little confused about what exactly iteration means here. Does one iteration means one sum-check proof or can each iteration (corresponding to a layer) contain multiple sum-check proofs?
Page 61, Lemma 4.7
$W_i(z) = \sum_{b,c \in \lbrace 0,1 \rbrace^{k_{i+1}}} add_i (z,b,c)\cdot (W_{i+1}(b)+W_{i+1}(c)) + mult_i(z,b,c)\cdot (W_{i+1}(b)\cdot W_{i+1}(c))$
Consider this circuit from Page 65
For e.g. for the circuit above, in the first (topmost) layer, won't we have to run the sum-check protocol for both $W_0(0)=4$ & $W_0(1)=2$ separately? And in the next layer, we will need 4 sum-check protocol runs - $W_1(0,0)=1$, $W_1(0,1)=4$, $W_1(1,0)=2$ & $W_1(1,1)=1$. And so on?
I can think of making it just one sum-check per layer but that will work only if all the gates in that layer are addition gates.
If all the gates in a layer are addition gates, then we can change the sum-check equation to
$\sum_{z \in s} W_i(z) = \sum_{z \in \lbrace 0,1 \rbrace^{log(s)}} \sum_{b,c \in \lbrace 0,1 \rbrace^{k_{i+1}}} add_i (z,b,c)\cdot (W_{i+1}(b)+W_{i+1}(c)) + mult_i(z,b,c)\cdot (W_{i+1}(b)\cdot W_{i+1}(c))$
Where number of gates in that layer is $s$
But this will not work unless all gates in that layer are addition gates.