From 73e9e6119b232f43df96e756fbdca3ed4fe870cd Mon Sep 17 00:00:00 2001 From: wborgeaud Date: Wed, 26 Oct 2022 11:02:45 +0200 Subject: [PATCH] `CyclicPublicInputs` is just `VerifierOnlyCircuitData` --- plonky2/src/recursion/cyclic_recursion.rs | 29 +++++------------------ 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/plonky2/src/recursion/cyclic_recursion.rs b/plonky2/src/recursion/cyclic_recursion.rs index 2b3693e1..0dd3b730 100644 --- a/plonky2/src/recursion/cyclic_recursion.rs +++ b/plonky2/src/recursion/cyclic_recursion.rs @@ -36,21 +36,10 @@ pub struct CyclicRecursionTarget { pub base_case: BoolTarget, } -pub struct CyclicPublicInputs< - F: RichField + Extendable, - C: GenericConfig, - const D: usize, -> { - pub circuit_digest: HashOut, - pub constants_sigmas_cap: MerkleCap, -} - -impl, C: GenericConfig, const D: usize> - CyclicPublicInputs -{ - fn from_slice(slice: &[F], common_data: &CommonCircuitData) -> Result +impl, const D: usize> VerifierOnlyCircuitData { + fn from_slice(slice: &[C::F], common_data: &CommonCircuitData) -> Result where - C::Hasher: AlgebraicHasher, + C::Hasher: AlgebraicHasher, { // The structure of the public inputs is `[..., circuit_digest, constants_sigmas_cap]`. let cap_len = common_data.config.fri_config.num_cap_elements(); @@ -73,12 +62,7 @@ impl, C: GenericConfig, const D: usize> } } -pub struct CyclicPublicInputsTarget { - pub circuit_digest: HashOutTarget, - pub constants_sigmas_cap: MerkleCapTarget, -} - -impl CyclicPublicInputsTarget { +impl VerifierCircuitTarget { fn from_slice, C: GenericConfig, const D: usize>( slice: &[Target], common_data: &CommonCircuitData, @@ -142,8 +126,7 @@ impl, const D: usize> CircuitBuilder { let proof = self.add_virtual_proof_with_pis::(common_data); let dummy_proof = self.add_virtual_proof_with_pis::(common_data); - let pis = - CyclicPublicInputsTarget::from_slice::(&proof.public_inputs, common_data)?; + let pis = VerifierCircuitTarget::from_slice::(&proof.public_inputs, common_data)?; // Connect previous verifier data to current one. This guarantees that every proof in the cycle uses the same verifier data. self.connect_hashes(pis.circuit_digest, verifier_data.circuit_digest); for (h0, h1) in pis @@ -271,7 +254,7 @@ pub fn check_cyclic_proof_verifier_data< where C::Hasher: AlgebraicHasher, { - let pis = CyclicPublicInputs::::from_slice(&proof.public_inputs, common_data)?; + let pis = VerifierOnlyCircuitData::::from_slice(&proof.public_inputs, common_data)?; ensure!(verifier_data.constants_sigmas_cap == pis.constants_sigmas_cap); ensure!(verifier_data.circuit_digest == pis.circuit_digest);