Skip to content

Commit 164a7a6

Browse files
committed
fix mock prover padding logic
1 parent 1f0dbe9 commit 164a7a6

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

ceno_zkvm/src/scheme/mock_prover.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)