circom-compat/test-vectors/complex-circuit/complex-circuit.circom.temp...

22 lines
508 B
Plaintext

template ManyConstraints(NUM_VARIABLES, NUM_CONSTRAINTS) {
signal private input a;
signal output c;
assert(NUM_VARIABLES <= NUM_CONSTRAINTS)
signal b[NUM_VARIABLES];
b[0] <== a*a;
var i;
for (i = 1; i < NUM_VARIABLES; i++) {
b[i] <== b[i-1]*b[i-1];
}
i = i-1;
for (var j = NUM_VARIABLES; j < NUM_CONSTRAINTS; j++) {
b[i] === b[i-1]*b[i-1];
}
c <== b[i];
}
component main = ManyConstraints(NUM_VARIABLES_TEMPLATE, NUM_CONSTRAINTS_TEMPLATE);