Skip to content

Commit

Permalink
test: Make stark parameters configurable in test of verifier
Browse files Browse the repository at this point in the history
  • Loading branch information
Sword-Smith committed Apr 15, 2024
1 parent 9e5435e commit a3e1bf0
Showing 1 changed file with 19 additions and 9 deletions.
28 changes: 19 additions & 9 deletions tasm-lib/src/recufier/stark_verify.rs
Original file line number Diff line number Diff line change
Expand Up @@ -992,11 +992,13 @@ pub mod tests {
fn verify_tvm_proof_factorial_program() {
const FACTORIAL_ARGUMENT: u32 = 3;
let factorial_program = factorial_program_with_io();
let stark = Stark::default();
let (mut non_determinism, claim_for_proof, inner_padded_height) =
non_determinism_claim_and_padded_height(
&factorial_program,
&[FACTORIAL_ARGUMENT.into()],
NonDeterminism::default(),
&stark,
);

// Insert `claim` into standard memory, since that's how the interface is defined.
Expand All @@ -1010,7 +1012,7 @@ pub mod tests {
insert_default_proof_iter_into_memory(&mut non_determinism.ram, proof_iter_pointer);

let snippet = StarkVerify {
stark_parameters: Stark::default(),
stark_parameters: stark,
log_2_padded_height: None,
};
let mut init_stack = [
Expand Down Expand Up @@ -1112,6 +1114,7 @@ pub mod tests {
inner_program: &Program,
inner_public_input: &[BFieldElement],
inner_nondeterminism: NonDeterminism<BFieldElement>,
stark: &Stark,
) -> (
NonDeterminism<BFieldElement>,
triton_vm::proof::Claim,
Expand All @@ -1137,16 +1140,21 @@ pub mod tests {
}

println!("Generating proof for non-determinism");
let (stark, claim, proof) = triton_vm::prove_program(
inner_program,
&inner_public_input.iter().map(|x| x.value()).collect_vec(),
&nd_bf_to_u64(inner_nondeterminism),
)
.unwrap();

let (aet, inner_output) = inner_program
.trace_execution(inner_public_input.into(), inner_nondeterminism.clone())
.unwrap();
let claim = Claim {
program_digest: inner_program.hash::<Tip5>(),
input: inner_public_input.to_vec(),
output: inner_output,
};

let proof = stark.prove(&claim, &aet, &mut None).unwrap();
println!("Done generating proof for non-determinism");

assert!(
triton_vm::verify(stark, &claim, &proof),
stark.verify(&claim, &proof, &mut None).is_ok(),
"Proof from TVM must verify through TVM"
);

Expand Down Expand Up @@ -1199,11 +1207,13 @@ mod benches {

fn benchmark_verifier(factorial_argument: u32, expected_inner_padded_height: usize) {
let factorial_program = factorial_program_with_io();
let stark = Stark::default();
let (mut non_determinism, claim_for_proof, inner_padded_height) =
non_determinism_claim_and_padded_height(
&factorial_program,
&[bfe!(factorial_argument)],
NonDeterminism::default(),
&stark,
);

let claim_pointer = BFieldElement::new(1 << 30);
Expand All @@ -1215,7 +1225,7 @@ mod benches {
assert_eq!(expected_inner_padded_height, inner_padded_height);

let snippet = StarkVerify {
stark_parameters: Stark::default(),
stark_parameters: stark,
log_2_padded_height: None,
};

Expand Down

0 comments on commit a3e1bf0

Please sign in to comment.