in fri/src/prover/tests.rs [21:60]
fn fri_prove_verify() {
let trace_length = 4096;
let lde_blowup = 8;
let options = FriOptions::new(lde_blowup, 4, 256);
let mut channel = build_prover_channel(trace_length, &options);
let evaluations = build_evaluations(trace_length, lde_blowup);
// instantiate the prover and generate the proof
let mut prover = FriProver::new(options.clone());
prover.build_layers(&mut channel, evaluations.clone());
let positions = channel.draw_query_positions();
let proof = prover.build_proof(&positions);
// make sure the proof can be verified
let commitments = channel.layer_commitments().to_vec();
let max_degree = trace_length - 1;
let result = verify_proof(
proof.clone(),
commitments.clone(),
&evaluations,
max_degree,
trace_length * lde_blowup,
&positions,
&options,
);
assert!(result.is_ok(), "{:}", result.err().unwrap());
// make sure proof fails for invalid degree
let result = verify_proof(
proof,
commitments,
&evaluations,
max_degree - 256,
trace_length * lde_blowup,
&positions,
&options,
);
assert!(result.is_err());
}