From cbc0d52a8a156536aea5f947a795c543030ea236 Mon Sep 17 00:00:00 2001 From: Xander van der Goot Date: Tue, 17 Feb 2026 13:11:03 +0800 Subject: [PATCH 1/2] Update to WHIR PR217 --- Cargo.toml | 2 +- provekit/common/src/utils/zk_utils.rs | 2 +- provekit/prover/src/whir_r1cs.rs | 20 ++++++++++---------- provekit/verifier/src/whir_r1cs.rs | 16 ++++++++-------- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index b68e1f6db..fdc916336 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -165,4 +165,4 @@ spongefish = { git = "https://github.com/arkworks-rs/spongefish", features = [ "ark-ff", "sha2", ], rev = "fcc277f8a857fdeeadd7cca92ab08de63b1ff1a1" } spongefish-pow = { git = "https://github.com/arkworks-rs/spongefish", rev = "fcc277f8a857fdeeadd7cca92ab08de63b1ff1a1" } -whir = { git = "https://github.com/WizardOfMenlo/whir/", rev = "3056565b90931c28f725f6655d954bd8f17eaaf6", features = ["tracing"] } +whir = { git = "https://github.com/WizardOfMenlo/whir/", rev = "ec295ced976c3dc2277a20e1048f928dbfd03bbd", features = ["tracing"] } diff --git a/provekit/common/src/utils/zk_utils.rs b/provekit/common/src/utils/zk_utils.rs index f6b7b6f0b..24e75c8f0 100644 --- a/provekit/common/src/utils/zk_utils.rs +++ b/provekit/common/src/utils/zk_utils.rs @@ -6,7 +6,7 @@ use { dot, ntt::wavelet_transform, polynomials::{CoefficientList, EvaluationsList}, - weights::Covector, + linear_form::Covector, }, }; diff --git a/provekit/prover/src/whir_r1cs.rs b/provekit/prover/src/whir_r1cs.rs index 82c7c2b27..c8317ab7a 100644 --- a/provekit/prover/src/whir_r1cs.rs +++ b/provekit/prover/src/whir_r1cs.rs @@ -23,9 +23,8 @@ use { tracing::{debug, instrument}, whir::{ algebra::{ - embedding::Basefield, + linear_form::{Covector, LinearForm}, polynomials::{CoefficientList, EvaluationsList, MultilinearPoint}, - weights::{Covector, Evaluate}, }, protocols::whir::Witness, transcript::{ProverState, VerifierMessage}, @@ -191,9 +190,9 @@ impl WhirR1CSProver for WhirR1CSScheme { &commitment.random_polynomial_coeff, ); - let weight_refs: Vec<&dyn Evaluate>> = weights + let weight_refs: Vec<&dyn LinearForm> = weights .iter() - .map(|w| w as &dyn Evaluate>) + .map(|w| w as &dyn LinearForm) .collect(); run_zk_whir_pcs_prover( @@ -305,9 +304,9 @@ impl WhirR1CSProver for WhirR1CSScheme { .flat_map(|w| poly_evals.iter().map(|pe| covector_dot(w, pe))) .collect(); - let weight_refs: Vec<&dyn Evaluate>> = all_weights + let weight_refs: Vec<&dyn LinearForm> = all_weights .iter() - .map(|w| w as &dyn Evaluate>) + .map(|w| w as &dyn LinearForm) .collect(); run_zk_whir_pcs_prover( @@ -619,9 +618,9 @@ pub fn run_zk_sumcheck_prover( &blindings_blind_polynomial, ); - let blinding_weight_refs: Vec<&dyn Evaluate>> = blinding_weights + let blinding_weight_refs: Vec<&dyn LinearForm> = blinding_weights .iter() - .map(|w| w as &dyn Evaluate>) + .map(|w| w as &dyn LinearForm) .collect(); let (_sums, _deferred) = run_zk_whir_pcs_prover( @@ -711,14 +710,15 @@ fn compute_evaluations_single( pub fn run_zk_whir_pcs_prover( witnesses: &[&Witness], polynomials: &[&CoefficientList], - weights: &[&dyn Evaluate>], + linear_forms: &[&dyn LinearForm], evaluations: &[FieldElement], params: &WhirConfig, merlin: &mut ProverState, ) -> (MultilinearPoint, Vec) { debug!("WHIR Parameters: {params}"); - let (randomness, deferred) = params.prove(merlin, polynomials, witnesses, weights, evaluations); + let (randomness, deferred) = + params.prove(merlin, polynomials, witnesses, linear_forms, evaluations); (randomness, deferred) } diff --git a/provekit/verifier/src/whir_r1cs.rs b/provekit/verifier/src/whir_r1cs.rs index 83163c943..15ecb03b3 100644 --- a/provekit/verifier/src/whir_r1cs.rs +++ b/provekit/verifier/src/whir_r1cs.rs @@ -12,7 +12,7 @@ use { whir::{ algebra::{ polynomials::MultilinearPoint, - weights::{Covector, Weights}, + linear_form::{Covector, LinearForm}, }, protocols::whir::Commitment, transcript::{codecs::Empty, Proof, VerifierMessage, VerifierState}, @@ -153,9 +153,9 @@ impl WhirR1CSVerifier for WhirR1CSScheme { let mut all_evaluations = evaluations_1; all_evaluations.extend(evaluations_2); - let weight_refs: Vec<&dyn Weights> = all_weights + let weight_refs: Vec<&dyn LinearForm> = all_weights .iter() - .map(|w| w as &dyn Weights) + .map(|w| w as &dyn LinearForm) .collect(); let commitment_refs: Vec<&Commitment> = vec![&commitment_1, &commitment_2]; @@ -202,9 +202,9 @@ impl WhirR1CSVerifier for WhirR1CSScheme { ); } - let weight_refs: Vec<&dyn Weights> = weights + let weight_refs: Vec<&dyn LinearForm> = weights .iter() - .map(|w| w as &dyn Weights) + .map(|w| w as &dyn LinearForm) .collect(); let (whir_folding_randomness, deferred_evals) = run_whir_pcs_verifier( @@ -464,9 +464,9 @@ pub fn run_sumcheck_verifier( ]), ); - let blinding_weight_refs: Vec<&dyn Weights> = blinding_weights + let blinding_weight_refs: Vec<&dyn LinearForm> = blinding_weights .iter() - .map(|w| w as &dyn Weights) + .map(|w| w as &dyn LinearForm) .collect(); run_whir_pcs_verifier( @@ -492,7 +492,7 @@ pub fn run_whir_pcs_verifier( arthur: &mut VerifierState<'_, TranscriptSponge>, params: &WhirConfig, commitments: &[&Commitment], - weights: &[&dyn Weights], + weights: &[&dyn LinearForm], evaluations: &[FieldElement], ) -> Result<(MultilinearPoint, Vec)> { let (folding_randomness, deferred) = From 80fd886f753f3bf8e5f9169ac1b4faf7f2c61583 Mon Sep 17 00:00:00 2001 From: Xander van der Goot Date: Tue, 17 Feb 2026 13:17:17 +0800 Subject: [PATCH 2/2] fixup! Update to WHIR PR217 --- provekit/common/src/utils/zk_utils.rs | 2 +- provekit/verifier/src/whir_r1cs.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/provekit/common/src/utils/zk_utils.rs b/provekit/common/src/utils/zk_utils.rs index 24e75c8f0..7d354eb56 100644 --- a/provekit/common/src/utils/zk_utils.rs +++ b/provekit/common/src/utils/zk_utils.rs @@ -4,9 +4,9 @@ use { rayon::prelude::*, whir::algebra::{ dot, + linear_form::Covector, ntt::wavelet_transform, polynomials::{CoefficientList, EvaluationsList}, - linear_form::Covector, }, }; diff --git a/provekit/verifier/src/whir_r1cs.rs b/provekit/verifier/src/whir_r1cs.rs index 15ecb03b3..cb860bed6 100644 --- a/provekit/verifier/src/whir_r1cs.rs +++ b/provekit/verifier/src/whir_r1cs.rs @@ -11,8 +11,8 @@ use { tracing::instrument, whir::{ algebra::{ - polynomials::MultilinearPoint, linear_form::{Covector, LinearForm}, + polynomials::MultilinearPoint, }, protocols::whir::Commitment, transcript::{codecs::Empty, Proof, VerifierMessage, VerifierState},