Open yzhang90 opened 6 months ago
I compiled the following program with circom 2.1.9
pragma circom 2.1.9; template Multiplier2() { signal input a; signal input b; signal d; d <== a * 3; d === 2 * b; } component main = Multiplier2();
Here is the result
$ circom multi.circom --r1cs --wasm template instances: 1 non-linear constraints: 0 linear constraints: 0 public inputs: 0 private inputs: 2 (none belong to witness) public outputs: 0 wires: 1 labels: 4
I expect there should be 2 linear constraints.
You are experiencing this behavior due to circom v2.1.9 having the O2 constraints simplification flag enabled by default. Basically, this flag removes all linear constraints that operate with private signals.
circom v2.1.9
O2
I compiled the following program with circom 2.1.9
Here is the result
I expect there should be 2 linear constraints.