#4 Circom: Intermediate signals
Topics covered: intermediate signals, variables vs signals, gotcha on var as signal
Intermediate Signals
templage Mul3() {
signal input a;
signal input b;
signal input c;
signal input res;
// not allowed
res === a * b * c;
} template Mul3() {
signal input a;
signal input b;
signal input c;
signal input res;
var prod;
// seemingly quadratic expressions
prod = a * b;
prod = prod * c;
res === prod;
}
// this circuit will not compile
component main = Mul3();Cannot use variables to flatten non-quadratic signal expressions
signal and <-- operator
signal and <-- operatorSignal assignment operator: <--
<--Why constraint prod === a * b?
prod === a * b?Exercise
Last updated