1. cargo run --release --bin noir-r1cs prepare ./target/basic.json -o ./noir-proof-scheme.nps
2. cargo run --release --bin noir-r1cs prove ./noir-proof-scheme.nps ./Prover.toml -o ./noir-proof.np
3. cargo run --release --bin noir-r1cs verify ./noir-proof-scheme.nps ./noir-proof.np
On high level, there are 3 steps -
Elaborating each step -

Summery : Converts a Noir circuit to a Rank-1 Constraint System (R1CS) representation, which along with the witness values are processes by the WHIR proof system to generate a proof
Creates a NoirProofScheme struct.

Input - compiled noir circuit in .json format

The bytecode generated from noir compiler (multiple acir circuits and field dependent)


Then extract the main function from program and convert it into R1CS

Configure WitnessGenerator

the witness_map passed is complete witness map with index mapped from acir
Configure WhirScheme


InternedFieldElement is the index to the interner - (usize)