diff --git a/src/plonk.rs b/src/plonk.rs index dd4f8f3..369c30e 100644 --- a/src/plonk.rs +++ b/src/plonk.rs @@ -314,9 +314,11 @@ fn test_proving() { // Initialize the SRS let srs = SRS::generate(¶ms, &empty_circuit).expect("SRS generation should not fail"); - // Create a proof - let proof = Proof::create::, DummyHash, _>(¶ms, &srs, &circuit) - .expect("proof generation should not fail"); + for _ in 0..100 { + // Create a proof + let proof = Proof::create::, DummyHash, _>(¶ms, &srs, &circuit) + .expect("proof generation should not fail"); - assert!(proof.verify::, DummyHash>(¶ms, &srs)); + assert!(proof.verify::, DummyHash>(¶ms, &srs)); + } } diff --git a/src/plonk/prover.rs b/src/plonk/prover.rs index 9a3294b..861fa8c 100644 --- a/src/plonk/prover.rs +++ b/src/plonk/prover.rs @@ -152,7 +152,10 @@ impl Proof { // For each row i, compute // p_j(\omega^i) + \beta s_j(\omega^i) + \gamma // where p_j(omega^i) = tmp[i] - for (tmp_advice_value, permuted_advice_value) in tmp_advice_values.iter_mut().zip(permuted_wire_values.iter()) { + for (tmp_advice_value, permuted_advice_value) in tmp_advice_values + .iter_mut() + .zip(permuted_wire_values.iter()) + { *tmp_advice_value += &(x_0 * permuted_advice_value); *tmp_advice_value += &x_1; } @@ -326,10 +329,7 @@ impl Proof { let mut right = permutation_product_cosets_inv[permutation_index].clone(); let mut current_delta = x_0 * &C::Scalar::ZETA; let step = domain.get_extended_omega(); - for advice in wires - .iter() - .map(|&wire_index| &advice_cosets[wire_index.0]) - { + for advice in wires.iter().map(|&wire_index| &advice_cosets[wire_index.0]) { // TODO: parallelize let mut beta_term = current_delta; for (right, advice) in right.iter_mut().zip(advice.iter()) { @@ -398,7 +398,7 @@ impl Proof { let permutation_product_inv_evals: Vec = permutation_product_polys .iter() - .map(|poly| eval_polynomial(poly, srs.domain.get_omega_inv() * &x_3)) + .map(|poly| eval_polynomial(poly, domain.rotate_omega(x_3, Rotation(-1)))) .collect(); let permutation_evals: Vec> = srs