@@ -3,6 +3,7 @@ use ff_ext::ExtensionField;
3
3
use gkr_iop:: { evaluation:: PointAndEval , gkr:: GKRCircuitWitness } ;
4
4
use std:: {
5
5
collections:: { BTreeMap , BTreeSet , HashMap } ,
6
+ marker:: PhantomData ,
6
7
sync:: Arc ,
7
8
} ;
8
9
@@ -31,6 +32,7 @@ use crate::{
31
32
riscv:: { dummy:: LargeEcallDummy , ecall:: EcallDummy } ,
32
33
} ,
33
34
scheme:: {
35
+ GKROpcodeProof ,
34
36
constants:: { MAINCONSTRAIN_SUMCHECK_BATCH_SIZE , NUM_FANIN , NUM_FANIN_LOGUP } ,
35
37
utils:: {
36
38
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> {
481
483
) ;
482
484
}
483
485
484
- // dbg!(sel_r);
485
- // panic!();
486
-
487
486
let mut sel_w = build_eq_x_r_vec ( & rt_w[ log2_w_count..] ) ;
488
487
if num_instances < sel_w. len ( ) {
489
488
sel_w. splice (
@@ -703,23 +702,11 @@ impl<E: ExtensionField, PCS: PolynomialCommitmentScheme<E>> ZKVMProver<E, PCS> {
703
702
exit_span ! ( pcs_open_span) ;
704
703
let wits_commit = PCS :: get_pure_commitment ( & wits_commit) ;
705
704
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 ( ) ;
708
707
let gkr_circuit = gkr_iop_pk. vk . get_state ( ) . chip . gkr_circuit ( ) ;
709
708
710
709
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();
723
710
724
711
let out_evals = gkr_wit
725
712
. layers
@@ -735,11 +722,20 @@ impl<E: ExtensionField, PCS: PolynomialCommitmentScheme<E>> ZKVMProver<E, PCS> {
735
722
736
723
// out_evals from point and output polynomials instead of *_records which is combined
737
724
738
- let gkr_iop :: gkr :: GKRProverOutput { gkr_proof , .. } = gkr_circuit
725
+ let prover_output = gkr_circuit
739
726
. prove ( gkr_wit, & out_evals, & vec ! [ ] , transcript)
740
727
. expect ( "Failed to prove phase" ) ;
741
728
// 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
+ } )
743
739
} else {
744
740
None
745
741
} ;
@@ -761,7 +757,7 @@ impl<E: ExtensionField, PCS: PolynomialCommitmentScheme<E>> ZKVMProver<E, PCS> {
761
757
wits_commit,
762
758
wits_opening_proof,
763
759
wits_in_evals,
764
- gkr_out_evals ,
760
+ gkr_opcode_proof ,
765
761
} )
766
762
}
767
763
0 commit comments