-
Notifications
You must be signed in to change notification settings - Fork 535
Open
Description
I am experimenting with Barretenberg and trying to understand the constraints it generates from ACIR:
Here is an example:
fn main(x: Field, y: pub Field) {
let x3 = x * x * x;
let res = x3 + x + 5;
assert(res == y);
}$ nargo execute --print-acir
$ bb prove -b ./target/hello_world.json -w ./target/hello_world.gz --write_vk -o target
$ noir-profiler gates --artifact-path ./target/hello_world.json --backend-path bb --output ./target -- --include_gates_per_opcode
Opcode count: 2, Total gates by opcodes: 3, Circuit size: 57Is there a way to view or export the constraints that Barretenberg produces from ACIR, similar to how you can inspect constraints in PLONK-based systems? In other words, I am trying to understand where the 57 constraints come from for the above example. This is not really explained by the flamegraph of noir-profiler or the --print-acir flag.
Maybe something similar to this, of course, not the same.

Metadata
Metadata
Assignees
Labels
No labels