File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1913,6 +1913,16 @@ pub fn gkr_verify_batch<E: IsField>(
19131913
19141914 let max_layers = * n_layers_by_instance. iter ( ) . max ( ) . unwrap ( ) ;
19151915
1916+ if proof. layer_proofs . len ( ) != max_layers {
1917+ return Err ( GkrError :: InvalidTree {
1918+ reason : format ! (
1919+ "expected {} layer proofs but got {}" ,
1920+ max_layers,
1921+ proof. layer_proofs. len( ) ,
1922+ ) ,
1923+ } ) ;
1924+ }
1925+
19161926 // Track per-instance state
19171927 let mut n_claims: Vec < Option < FieldElement < E > > > = vec ! [ None ; n_instances] ;
19181928 let mut d_claims: Vec < Option < FieldElement < E > > > = vec ! [ None ; n_instances] ;
@@ -1963,6 +1973,17 @@ pub fn gkr_verify_batch<E: IsField>(
19631973
19641974 let round_polys = & layer_proof. sumcheck_proof . round_polys ;
19651975
1976+ if layer_proof. child_claims_by_instance . len ( ) < active_instances. len ( ) {
1977+ return Err ( GkrError :: InvalidTree {
1978+ reason : format ! (
1979+ "layer {}: child_claims_by_instance has {} entries but {} active instances" ,
1980+ layer_idx,
1981+ layer_proof. child_claims_by_instance. len( ) ,
1982+ active_instances. len( ) ,
1983+ ) ,
1984+ } ) ;
1985+ }
1986+
19661987 if round_polys. is_empty ( ) {
19671988 // Trivial layer: no sumcheck needed
19681989 // Append child claims and sample eta (same as prover)
You can’t perform that action at this time.
0 commit comments