diff --git a/plonky2/src/recursion/cyclic_recursion.rs b/plonky2/src/recursion/cyclic_recursion.rs index 807445d7..d95df90a 100644 --- a/plonky2/src/recursion/cyclic_recursion.rs +++ b/plonky2/src/recursion/cyclic_recursion.rs @@ -3,6 +3,7 @@ use alloc::vec; use anyhow::{ensure, Result}; +use hashbrown::HashMap; use itertools::Itertools; use crate::field::extension::Extendable; @@ -188,7 +189,7 @@ pub fn set_cyclic_recursion_data_target< cyclic_recursion_data_target: &CyclicRecursionTarget, cyclic_recursion_data: &CyclicRecursionData, // Public inputs to set in the base case to seed some initial data. - public_inputs: &[(usize, F)], + mut public_inputs: HashMap, ) -> Result<()> where C::Hasher: AlgebraicHasher, @@ -221,7 +222,6 @@ where // The circuit checks that the verifier data is the same throughout the cycle, so // we set the verifier data to the "real" verifier data even though it's unused in the base case. - let mut public_inputs = public_inputs.to_vec(); let verifier_data = &cyclic_recursion_data.verifier_data; public_inputs.extend((start_vk_pis..).zip(verifier_data.circuit_digest.elements)); @@ -230,14 +230,14 @@ where public_inputs.extend((start..).zip(verifier_data.constants_sigmas_cap.0[i].elements)); } - let proof = dummy_proof(&cyclic_recursion_data_target.dummy_circuit, &public_inputs)?; + let proof = dummy_proof(&cyclic_recursion_data_target.dummy_circuit, public_inputs)?; pw.set_proof_with_pis_target(&cyclic_recursion_data_target.proof, &proof); pw.set_verifier_data_target( &cyclic_recursion_data_target.verifier_data, cyclic_recursion_data.verifier_data, ); - let dummy_p = dummy_proof(&cyclic_recursion_data_target.dummy_circuit, &[])?; + let dummy_p = dummy_proof(&cyclic_recursion_data_target.dummy_circuit, HashMap::new())?; pw.set_proof_with_pis_target(&cyclic_recursion_data_target.dummy_proof, &dummy_p); pw.set_verifier_data_target( &cyclic_recursion_data_target.dummy_verifier_data, diff --git a/plonky2/src/recursion/dummy_circuit.rs b/plonky2/src/recursion/dummy_circuit.rs index 049f5540..c596ac1a 100644 --- a/plonky2/src/recursion/dummy_circuit.rs +++ b/plonky2/src/recursion/dummy_circuit.rs @@ -1,5 +1,6 @@ use alloc::vec; +use hashbrown::HashMap; use plonky2_field::extension::Extendable; use plonky2_util::ceil_div_usize; @@ -16,7 +17,7 @@ use crate::plonk::proof::ProofWithPublicInputs; /// The rest will default to zero. pub(crate) fn dummy_proof( circuit: &CircuitData, - nonzero_public_inputs: &[(usize, F)], + nonzero_public_inputs: HashMap, ) -> anyhow::Result> where F: RichField + Extendable,