Skip to content

Generalize shift verifier to be symbolic over Channel::Elem#1444

Merged
jimpo merged 3 commits intomainfrom
symbolic-shift-verifier
Apr 8, 2026
Merged

Generalize shift verifier to be symbolic over Channel::Elem#1444
jimpo merged 3 commits intomainfrom
symbolic-shift-verifier

Conversation

@jimpo
Copy link
Copy Markdown
Collaborator

@jimpo jimpo commented Apr 8, 2026

Summary

  • Remove rayon multithreading from shift evaluate_matrices (verifier should be single-threaded)
  • Generalize verify_iop to operate symbolically over Channel::Elem, using _scalars variants of math functions and replacing FieldBuffer with plain Vec/slice

Test plan

cargo test -p binius-verifier -p binius-prover

jimpo added 3 commits April 8, 2026 12:26
The verifier should be single-threaded. Replace par_iter/reduce with
sequential iter/fold in evaluate_matrices, which was the only function
in the verifier using rayon.
Made some progress, shift check and ring-switching still remain.
Make evaluate_h_op, evaluate_matrices, and the shift_ind partial
evaluation functions generic over E: FieldOps instead of F: Field.
This allows check_eval to operate on symbolic channel element types
like CircuitElem for the Spartan wrapper.

Use the _scalars variants of eq_ind_partial_eval, lagrange_evals,
evaluate_inplace, and inner_product throughout, replacing FieldBuffer
with plain Vec/slice in the shift verifier.
@jimpo jimpo merged commit 8d07ce1 into main Apr 8, 2026
15 checks passed
@jimpo jimpo deleted the symbolic-shift-verifier branch April 8, 2026 17:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant