@@ -584,6 +584,14 @@ impl<'a, E: ExtensionField + Hash> MockProver<E> {
584584 let mut shared_lkm = LkMultiplicityRaw :: < E > :: default ( ) ;
585585 let mut errors = vec ! [ ] ;
586586
587+ let num_instance_padded = wits_in
588+ . first ( )
589+ . or_else ( || fixed. first ( ) )
590+ . or_else ( || pi_mles. first ( ) )
591+ . or_else ( || structural_witin. first ( ) )
592+ . map ( |mle| mle. evaluations ( ) . len ( ) )
593+ . unwrap_or_else ( || next_pow2_instance_padding ( num_instances) ) ;
594+
587595 // Assert zero expressions
588596 for ( expr, name) in cs
589597 . assert_zero_expressions
@@ -607,7 +615,6 @@ impl<'a, E: ExtensionField + Hash> MockProver<E> {
607615 if let Some ( zero_selector) = & cs. zero_selector {
608616 structural_witin[ zero_selector. selector_expr ( ) . id ( ) ] . clone ( )
609617 } else {
610- let num_instance_padded = next_pow2_instance_padding ( num_instances) ;
611618 let mut selector = vec ! [ E :: BaseField :: ONE ; num_instances] ;
612619 selector. resize ( num_instance_padded, E :: BaseField :: ZERO ) ;
613620 MultilinearExtension :: from_evaluation_vec_smart (
@@ -702,7 +709,6 @@ impl<'a, E: ExtensionField + Hash> MockProver<E> {
702709 let lk_selector: ArcMultilinearExtension < _ > = if let Some ( lk_selector) = & cs. lk_selector {
703710 structural_witin[ lk_selector. selector_expr ( ) . id ( ) ] . clone ( )
704711 } else {
705- let num_instance_padded = next_pow2_instance_padding ( num_instances) ;
706712 let mut selector = vec ! [ E :: BaseField :: ONE ; num_instances] ;
707713 selector. resize ( num_instance_padded, E :: BaseField :: ZERO ) ;
708714 MultilinearExtension :: from_evaluation_vec_smart (
0 commit comments