@@ -3,6 +3,7 @@ use ff_ext::ExtensionField;
33use gkr_iop:: { evaluation:: PointAndEval , gkr:: GKRCircuitWitness } ;
44use std:: {
55 collections:: { BTreeMap , BTreeSet , HashMap } ,
6+ marker:: PhantomData ,
67 sync:: Arc ,
78} ;
89
@@ -31,6 +32,7 @@ use crate::{
3132 riscv:: { dummy:: LargeEcallDummy , ecall:: EcallDummy } ,
3233 } ,
3334 scheme:: {
35+ GKROpcodeProof ,
3436 constants:: { MAINCONSTRAIN_SUMCHECK_BATCH_SIZE , NUM_FANIN , NUM_FANIN_LOGUP } ,
3537 utils:: {
3638 infer_tower_logup_witness, infer_tower_product_witness, interleaving_mles_to_mles,
@@ -481,9 +483,6 @@ impl<E: ExtensionField, PCS: PolynomialCommitmentScheme<E>> ZKVMProver<E, PCS> {
481483 ) ;
482484 }
483485
484- // dbg!(sel_r);
485- // panic!();
486-
487486 let mut sel_w = build_eq_x_r_vec ( & rt_w[ log2_w_count..] ) ;
488487 if num_instances < sel_w. len ( ) {
489488 sel_w. splice (
@@ -703,23 +702,11 @@ impl<E: ExtensionField, PCS: PolynomialCommitmentScheme<E>> ZKVMProver<E, PCS> {
703702 exit_span ! ( pcs_open_span) ;
704703 let wits_commit = PCS :: get_pure_commitment ( & wits_commit) ;
705704
706- let gkr_out_evals = if let Some ( ( gkr_iop_pk, gkr_wit) ) = gkr_iop_pk {
707- let mut gkr_iop_pk = gkr_iop_pk. clone ( ) ;
705+ let gkr_opcode_proof = if let Some ( ( gkr_iop_pk, gkr_wit) ) = gkr_iop_pk {
706+ let gkr_iop_pk = gkr_iop_pk. clone ( ) ;
708707 let gkr_circuit = gkr_iop_pk. vk . get_state ( ) . chip . gkr_circuit ( ) ;
709708
710709 let point = Arc :: new ( input_open_point) ;
711- dbg ! ( & point) ;
712- // // let mut prover_transcript = transcript::BasicTranscript::<E>::new(b"protocol");
713- // let out_evals = chain!(
714- // r_records_in_evals.clone(),
715- // w_records_in_evals.clone(),
716- // lk_records_in_evals.clone()
717- // )
718- // .map(|record| PointAndEval {
719- // point: point.clone(),
720- // eval: record,
721- // })
722- // .collect_vec();
723710
724711 let out_evals = gkr_wit
725712 . layers
@@ -735,11 +722,20 @@ impl<E: ExtensionField, PCS: PolynomialCommitmentScheme<E>> ZKVMProver<E, PCS> {
735722
736723 // out_evals from point and output polynomials instead of *_records which is combined
737724
738- let gkr_iop :: gkr :: GKRProverOutput { gkr_proof , .. } = gkr_circuit
725+ let prover_output = gkr_circuit
739726 . prove ( gkr_wit, & out_evals, & vec ! [ ] , transcript)
740727 . expect ( "Failed to prove phase" ) ;
741728 // unimplemented!("cannot fully handle GKRIOP component yet")
742- Some ( out_evals. into_iter ( ) . map ( |pae| pae. eval ) . collect_vec ( ) )
729+
730+ dbg ! ( & prover_output. opening_evaluations. len( ) ) ;
731+ let output_evals = out_evals. into_iter ( ) . map ( |pae| pae. eval ) . collect_vec ( ) ;
732+
733+ Some ( GKROpcodeProof {
734+ output_evals,
735+ prover_output,
736+ circuit : gkr_circuit,
737+ _marker : PhantomData :: default ( ) ,
738+ } )
743739 } else {
744740 None
745741 } ;
@@ -761,7 +757,7 @@ impl<E: ExtensionField, PCS: PolynomialCommitmentScheme<E>> ZKVMProver<E, PCS> {
761757 wits_commit,
762758 wits_opening_proof,
763759 wits_in_evals,
764- gkr_out_evals ,
760+ gkr_opcode_proof ,
765761 } )
766762 }
767763
0 commit comments