diff --git a/plonky2/examples/bench_recursion.rs b/plonky2/examples/bench_recursion.rs index 27101d1a..059ca963 100644 --- a/plonky2/examples/bench_recursion.rs +++ b/plonky2/examples/bench_recursion.rs @@ -105,17 +105,14 @@ where { let (inner_proof, inner_vd, inner_cd) = inner; let mut builder = CircuitBuilder::::new(config.clone()); - let mut pw = PartialWitness::new(); let pt = builder.add_virtual_proof_with_pis::(inner_cd); - pw.set_proof_with_pis_target(&pt, inner_proof); let inner_data = VerifierCircuitTarget { constants_sigmas_cap: builder.add_virtual_cap(inner_cd.config.fri_config.cap_height), circuit_digest: builder.add_virtual_hash(), }; - pw.set_verifier_data_target(&inner_data, inner_vd); - builder.verify_proof::(pt, &inner_data, inner_cd); + builder.verify_proof::(&pt, &inner_data, inner_cd); builder.print_gate_counts(0); if let Some(min_degree_bits) = min_degree_bits { @@ -131,6 +128,10 @@ where let data = builder.build::(); + let mut pw = PartialWitness::new(); + pw.set_proof_with_pis_target(&pt, inner_proof); + pw.set_verifier_data_target(&inner_data, inner_vd); + let mut timing = TimingTree::new("prove", Level::Debug); let proof = prove(&data.prover_only, &data.common, pw, &mut timing)?; timing.print(); diff --git a/plonky2/src/recursion/conditional_recursive_verifier.rs b/plonky2/src/recursion/conditional_recursive_verifier.rs index 6cbce94a..f5c46f9e 100644 --- a/plonky2/src/recursion/conditional_recursive_verifier.rs +++ b/plonky2/src/recursion/conditional_recursive_verifier.rs @@ -143,7 +143,7 @@ impl, const D: usize> CircuitBuilder { ), }; - self.verify_proof::(selected_proof, &selected_verifier_data, inner_common_data); + self.verify_proof::(&selected_proof, &selected_verifier_data, inner_common_data); } /// Conditionally verify a proof with a new generated dummy proof. diff --git a/plonky2/src/recursion/cyclic_recursion.rs b/plonky2/src/recursion/cyclic_recursion.rs index 2e4f2613..706392b9 100644 --- a/plonky2/src/recursion/cyclic_recursion.rs +++ b/plonky2/src/recursion/cyclic_recursion.rs @@ -298,7 +298,7 @@ mod tests { constants_sigmas_cap: builder.add_virtual_cap(data.common.config.fri_config.cap_height), circuit_digest: builder.add_virtual_hash(), }; - builder.verify_proof::(proof, &verifier_data, &data.common); + builder.verify_proof::(&proof, &verifier_data, &data.common); let data = builder.build::(); let config = CircuitConfig::standard_recursion_config(); @@ -308,7 +308,7 @@ mod tests { constants_sigmas_cap: builder.add_virtual_cap(data.common.config.fri_config.cap_height), circuit_digest: builder.add_virtual_hash(), }; - builder.verify_proof::(proof, &verifier_data, &data.common); + builder.verify_proof::(&proof, &verifier_data, &data.common); while builder.num_gates() < 1 << 12 { builder.add_gate(NoopGate, vec![]); } diff --git a/plonky2/src/recursion/recursive_verifier.rs b/plonky2/src/recursion/recursive_verifier.rs index 0854dad8..d53095a4 100644 --- a/plonky2/src/recursion/recursive_verifier.rs +++ b/plonky2/src/recursion/recursive_verifier.rs @@ -16,7 +16,7 @@ impl, const D: usize> CircuitBuilder { /// Recursively verifies an inner proof. pub fn verify_proof>( &mut self, - proof_with_pis: ProofWithPublicInputsTarget, + proof_with_pis: &ProofWithPublicInputsTarget, inner_verifier_data: &VerifierCircuitTarget, inner_common_data: &CommonCircuitData, ) where @@ -36,7 +36,7 @@ impl, const D: usize> CircuitBuilder { ); self.verify_proof_with_challenges::( - proof_with_pis.proof, + &proof_with_pis.proof, public_inputs_hash, challenges, inner_verifier_data, @@ -47,7 +47,7 @@ impl, const D: usize> CircuitBuilder { /// Recursively verifies an inner proof. fn verify_proof_with_challenges>( &mut self, - proof: ProofTarget, + proof: &ProofTarget, public_inputs_hash: HashOutTarget, challenges: ProofChallengesTarget, inner_verifier_data: &VerifierCircuitTarget, @@ -106,9 +106,9 @@ impl, const D: usize> CircuitBuilder { let merkle_caps = &[ inner_verifier_data.constants_sigmas_cap.clone(), - proof.wires_cap, - proof.plonk_zs_partial_products_cap, - proof.quotient_polys_cap, + proof.wires_cap.clone(), + proof.plonk_zs_partial_products_cap.clone(), + proof.quotient_polys_cap.clone(), ]; let fri_instance = inner_common_data.get_fri_instance_target(self, challenges.plonk_zeta); @@ -376,7 +376,7 @@ mod tests { ); pw.set_hash_target(inner_data.circuit_digest, inner_vd.circuit_digest); - builder.verify_proof::(pt, &inner_data, &inner_cd); + builder.verify_proof::(&pt, &inner_data, &inner_cd); if print_gate_counts { builder.print_gate_counts(0);