@@ -224,13 +224,14 @@ class ClientIVC {
224224 }
225225 };
226226
227+ // Specifies proof type or equivalently the type of recursive verification to be performed on a given proof
227228 enum class QUEUE_TYPE {
228229 OINK,
229230 PG,
230231 PG_FINAL, // the final PG verification, used in hiding kernel
231232 PG_TAIL, // used in tail to indicate special handling of merge for ZK
232233 MEGA
233- }; // for specifying type of proof in the verification queue
234+ };
234235
235236 // An entry in the native verification queue
236237 struct VerifierInputs {
@@ -268,7 +269,6 @@ class ClientIVC {
268269
269270 ProverFoldOutput fold_output; // prover accumulator and fold proof
270271 HonkProof decider_proof; // decider proof to be verified in the hiding circuit
271- HonkProof mega_proof; // proof of the hiding circuit
272272
273273 std::shared_ptr<DeciderVerificationKey>
274274 recursive_verifier_native_accum; // native verifier accumulator used in recursive folding
@@ -303,7 +303,7 @@ class ClientIVC {
303303 perform_recursive_verification_and_databus_consistency_checks (
304304 ClientCircuit& circuit,
305305 const StdlibVerifierInputs& verifier_inputs,
306- const std::shared_ptr<RecursiveDeciderVerificationKey>& input_stdlib_verifier_accumulator ,
306+ const std::shared_ptr<RecursiveDeciderVerificationKey>& input_verifier_accumulator ,
307307 const TableCommitments& T_prev_commitments,
308308 const std::shared_ptr<RecursiveTranscript>& accumulation_recursive_transcript);
309309
@@ -322,30 +322,54 @@ class ClientIVC {
322322
323323 Proof prove ();
324324
325- std::shared_ptr<ClientIVC::DeciderZKProvingKey> construct_hiding_circuit_key (ClientCircuit& circuit);
326- std::shared_ptr<ClientIVC::DeciderZKProvingKey> compute_hiding_circuit_proving_key (ClientCircuit& circuit);
327325 static void hide_op_queue_accumulation_result (ClientCircuit& circuit);
328- HonkProof prove_hiding_circuit (ClientCircuit& circuit);
326+ HonkProof construct_mega_proof_for_hiding_kernel (ClientCircuit& circuit);
329327
330328 static bool verify (const Proof& proof, const VerificationKey& vk);
331329
332330 bool verify (const Proof& proof) const ;
333331
334332 bool prove_and_verify ();
335333
336- HonkProof decider_prove ();
334+ HonkProof construct_decider_proof ();
337335
338336 VerificationKey get_vk () const ;
339337
340338 private:
341339 /* *
342- * @brief Update the native verifier accumulator based on the provided queue entry and transcript.
340+ * @brief Runs either Oink or PG native verifier to update the native verifier accumulator
343341 *
344342 * @param queue_entry The verifier inputs from the queue.
345343 * @param verifier_transcript Verifier transcript corresponding to the prover transcript.
346344 */
347345 void update_native_verifier_accumulator (const VerifierInputs& queue_entry,
348346 const std::shared_ptr<Transcript>& verifier_transcript);
347+
348+ HonkProof construct_oink_proof (const std::shared_ptr<DeciderProvingKey>& proving_key,
349+ const std::shared_ptr<MegaVerificationKey>& honk_vk,
350+ const std::shared_ptr<Transcript>& transcript);
351+
352+ HonkProof construct_pg_proof (const std::shared_ptr<DeciderProvingKey>& proving_key,
353+ const std::shared_ptr<MegaVerificationKey>& honk_vk,
354+ const std::shared_ptr<Transcript>& transcript,
355+ bool is_kernel);
356+
357+ QUEUE_TYPE get_queue_type () const ;
358+
359+ static std::shared_ptr<RecursiveDeciderVerificationKey> perform_oink_recursive_verification (
360+ ClientCircuit& circuit,
361+ const std::shared_ptr<RecursiveDeciderVerificationKey>& verifier_instance,
362+ const std::shared_ptr<RecursiveTranscript>& transcript,
363+ const StdlibProof& proof);
364+
365+ static std::shared_ptr<RecursiveDeciderVerificationKey> perform_pg_recursive_verification (
366+ ClientCircuit& circuit,
367+ const std::shared_ptr<RecursiveDeciderVerificationKey>& verifier_accumulator,
368+ const std::shared_ptr<RecursiveDeciderVerificationKey>& verifier_instance,
369+ const std::shared_ptr<RecursiveTranscript>& transcript,
370+ const StdlibProof& proof,
371+ std::optional<StdlibFF>& prev_accum_hash,
372+ bool is_kernel);
349373};
350374
351375// Serialization methods for ClientIVC::VerificationKey
0 commit comments