Skip to content

Chore: cargo fmt whole codebase #38

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 11 additions & 12 deletions src/arithmetics/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ use ceno_mle::expression::{Expression, Fixed, Instance};
use ceno_zkvm::structs::{ChallengeId, WitnessId};
use ff_ext::ExtensionField;
use ff_ext::{BabyBearExt4, SmallField};
use itertools::Either;
use openvm_native_compiler::prelude::*;
use openvm_native_compiler_derive::iter_zip;
use openvm_native_recursion::challenger::ChallengerVariable;
use openvm_native_recursion::challenger::{
duplex::DuplexChallengerVariable, CanObserveVariable, FeltChallenger,
};
use itertools::Either;
use p3_field::{FieldAlgebra, FieldExtensionAlgebra};
type E = BabyBearExt4;
const HASH_RATE: usize = 8;
Expand Down Expand Up @@ -161,7 +161,8 @@ impl<C: Config> PolyEvaluator<C> {

builder.range(0, idx_bound).for_each(|idx_vec, builder| {
let left_idx: Usize<C::N> = builder.eval(idx_vec[0] * Usize::from(2));
let right_idx: Usize<C::N> = builder.eval(idx_vec[0] * Usize::from(2) + Usize::from(1));
let right_idx: Usize<C::N> =
builder.eval(idx_vec[0] * Usize::from(2) + Usize::from(1));
let left = builder.get(&evals_ext, left_idx);
let right = builder.get(&evals_ext, right_idx);

Expand Down Expand Up @@ -418,7 +419,11 @@ pub fn eq_eval_less_or_equal_than<C: Config>(
builder.assign(&ans, ans - v1 * running_product2 * a_i * b_i);
});

builder.assign(&running_product2, running_product2 * (a_i * b_i * bit_ext + (one_ext - a_i) * (one_ext - b_i) * (one_ext - bit_ext)));
builder.assign(
&running_product2,
running_product2
* (a_i * b_i * bit_ext + (one_ext - a_i) * (one_ext - b_i) * (one_ext - bit_ext)),
);
builder.assign(&idx, idx - C::N::ONE);
});

Expand Down Expand Up @@ -602,15 +607,9 @@ pub fn evaluate_ceno_expr<C: Config, T>(
structural_wit_in(builder, *witness_id, *max_len, *offset, *multi_factor)
}
Expression::Instance(i) => instance(builder, *i),
Expression::Constant(scalar) => {
match scalar {
Either::Left(s) => {
constant(builder, E::from_base(*s))
},
Either::Right(s) => {
constant(builder, *s)
},
}
Expression::Constant(scalar) => match scalar {
Either::Left(s) => constant(builder, E::from_base(*s)),
Either::Right(s) => constant(builder, *s),
},
Expression::Sum(a, b) => {
let a = evaluate_ceno_expr(
Expand Down
24 changes: 15 additions & 9 deletions src/e2e/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ use openvm_stark_sdk::config::setup_tracing_with_log_level;
use openvm_stark_sdk::{
config::baby_bear_poseidon2::BabyBearPoseidon2Config, p3_baby_bear::BabyBear,
};
use std::thread;
use std::collections::HashMap;
use std::fs::File;
use std::thread;

type SC = BabyBearPoseidon2Config;
type EF = <SC as StarkGenericConfig>::Challenge;
Expand Down Expand Up @@ -129,7 +129,8 @@ pub fn parse_zkvm_proof_import(
for v_vec in &opcode_proof.r_out_evals {
let mut arr: Vec<E> = vec![];
for v in v_vec {
let v_e: E = serde_json::from_value(serde_json::to_value(v.clone()).unwrap()).unwrap();
let v_e: E =
serde_json::from_value(serde_json::to_value(v.clone()).unwrap()).unwrap();
arr.push(v_e);
}
record_r_out_evals.push(arr);
Expand All @@ -138,7 +139,8 @@ pub fn parse_zkvm_proof_import(
for v_vec in &opcode_proof.w_out_evals {
let mut arr: Vec<E> = vec![];
for v in v_vec {
let v_e: E = serde_json::from_value(serde_json::to_value(v.clone()).unwrap()).unwrap();
let v_e: E =
serde_json::from_value(serde_json::to_value(v.clone()).unwrap()).unwrap();
arr.push(v_e);
}
record_w_out_evals.push(arr);
Expand All @@ -147,7 +149,8 @@ pub fn parse_zkvm_proof_import(
for v_vec in &opcode_proof.lk_out_evals {
let mut arr: Vec<E> = vec![];
for v in v_vec {
let v_e: E = serde_json::from_value(serde_json::to_value(v.clone()).unwrap()).unwrap();
let v_e: E =
serde_json::from_value(serde_json::to_value(v.clone()).unwrap()).unwrap();
arr.push(v_e);
}
record_lk_out_evals.push(arr);
Expand Down Expand Up @@ -227,7 +230,7 @@ pub fn parse_zkvm_proof_import(
});
}
}

let mut wits_in_evals: Vec<E> = vec![];
for v in &opcode_proof.wits_in_evals {
let v_e: E = serde_json::from_value(serde_json::to_value(v.clone()).unwrap()).unwrap();
Expand Down Expand Up @@ -266,7 +269,8 @@ pub fn parse_zkvm_proof_import(
for v_vec in &table_proof.r_out_evals {
let mut arr: Vec<E> = vec![];
for v in v_vec {
let v_e: E = serde_json::from_value(serde_json::to_value(v.clone()).unwrap()).unwrap();
let v_e: E =
serde_json::from_value(serde_json::to_value(v.clone()).unwrap()).unwrap();
arr.push(v_e);
}
record_r_out_evals.push(arr);
Expand All @@ -275,7 +279,8 @@ pub fn parse_zkvm_proof_import(
for v_vec in &table_proof.w_out_evals {
let mut arr: Vec<E> = vec![];
for v in v_vec {
let v_e: E = serde_json::from_value(serde_json::to_value(v.clone()).unwrap()).unwrap();
let v_e: E =
serde_json::from_value(serde_json::to_value(v.clone()).unwrap()).unwrap();
arr.push(v_e);
}
record_w_out_evals.push(arr);
Expand All @@ -284,7 +289,8 @@ pub fn parse_zkvm_proof_import(
for v_vec in &table_proof.lk_out_evals {
let mut arr: Vec<E> = vec![];
for v in v_vec {
let v_e: E = serde_json::from_value(serde_json::to_value(v.clone()).unwrap()).unwrap();
let v_e: E =
serde_json::from_value(serde_json::to_value(v.clone()).unwrap()).unwrap();
arr.push(v_e);
}
record_lk_out_evals.push(arr);
Expand Down Expand Up @@ -411,7 +417,7 @@ pub fn inner_test_thread() {

let verifier = ZKVMVerifier::new(vk);
let (zkvm_proof_input, proving_sequence) = parse_zkvm_proof_import(zkvm_proof, &verifier);

// OpenVM DSL
let mut builder = AsmBuilder::<F, EF>::default();

Expand Down
12 changes: 4 additions & 8 deletions src/extensions/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,13 @@ use crate::zkvm_verifier::verifier::verify_zkvm_proof;
use crate::{
arithmetics::{
build_eq_x_r_vec_sequential, ceil_log2, concat, dot_product as ext_dot_product,
eq_eval_less_or_equal_than, eval_wellform_address_vec,
gen_alpha_pows, max_usize_arr, max_usize_vec, next_pow2_instance_padding, product,
sum as ext_sum,
},
tower_verifier::{
binding::PointVariable,
program::iop_verifier_state_verify,
eq_eval_less_or_equal_than, eval_wellform_address_vec, gen_alpha_pows, max_usize_arr,
max_usize_vec, next_pow2_instance_padding, product, sum as ext_sum,
},
tower_verifier::{binding::PointVariable, program::iop_verifier_state_verify},
};
use ceno_zkvm::{circuit_builder::SetTableSpec, scheme::verifier::ZKVMVerifier};
use ceno_mle::expression::StructuralWitIn;
use ceno_zkvm::{circuit_builder::SetTableSpec, scheme::verifier::ZKVMVerifier};
use ff_ext::BabyBearExt4;
use itertools::interleave;
use itertools::max;
Expand Down
60 changes: 18 additions & 42 deletions src/tower_verifier/program.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
use super::binding::{
IOPProverMessageVariable, PointAndEvalVariable, PointVariable,
};
use super::binding::{IOPProverMessageVariable, PointAndEvalVariable, PointVariable};
use crate::arithmetics::{
challenger_multi_observe, dot_product, eq_eval, evaluate_at_point_degree_1, extend, exts_to_felts,
fixed_dot_product, gen_alpha_pows, is_smaller_than, reverse, UniPolyExtrapolator, print_ext_arr,
challenger_multi_observe, dot_product, eq_eval, evaluate_at_point_degree_1, extend,
exts_to_felts, fixed_dot_product, gen_alpha_pows, is_smaller_than, print_ext_arr, reverse,
UniPolyExtrapolator,
};
use crate::transcript::transcript_observe_label;
use crate::zkvm_verifier::binding::TowerProofInputVariable;
Expand Down Expand Up @@ -149,19 +148,13 @@ pub fn verify_tower_proof<C: Config>(
let one: Ext<C::F, C::EF> = builder.constant(C::EF::ONE);
let zero: Ext<C::F, C::EF> = builder.constant(C::EF::ZERO);

builder.assert_usize_eq(
proof.prod_specs_eval.len(),
num_prod_spec.clone(),
);
builder.assert_usize_eq(proof.prod_specs_eval.len(), num_prod_spec.clone());
iter_zip!(builder, prod_out_evals).for_each(|ptr_vec, builder| {
let ptr = ptr_vec[0];
let evals = builder.iter_ptr_get(&prod_out_evals, ptr);
builder.assert_usize_eq(evals.len(), num_fanin.clone());
});
builder.assert_usize_eq(
proof.logup_specs_eval.len(),
num_logup_spec.clone(),
);
builder.assert_usize_eq(proof.logup_specs_eval.len(), num_logup_spec.clone());
iter_zip!(builder, logup_out_evals).for_each(|ptr_vec, builder| {
let ptr = ptr_vec[0];
let evals = builder.iter_ptr_get(&logup_out_evals, ptr);
Expand Down Expand Up @@ -206,12 +199,7 @@ pub fn verify_tower_proof<C: Config>(
let prod_spec_point_n_eval: Array<C, PointAndEvalVariable<C>> =
builder.dyn_array(num_prod_spec.clone());

iter_zip!(
builder,
prod_out_evals,
prod_spec_point_n_eval
)
.for_each(|ptr_vec, builder| {
iter_zip!(builder, prod_out_evals, prod_spec_point_n_eval).for_each(|ptr_vec, builder| {
let ptr = ptr_vec[0];
let evals = builder.iter_ptr_get(&prod_out_evals, ptr);
let e = evaluate_at_point_degree_1(builder, &evals, &initial_rt);
Expand Down Expand Up @@ -309,8 +297,7 @@ pub fn verify_tower_proof<C: Config>(

let curr_pt = initial_rt.clone();
let curr_eval = initial_claim.clone();
let op_range: RVar<C::N> =
builder.eval_expr(max_num_variables - Usize::from(1));
let op_range: RVar<C::N> = builder.eval_expr(max_num_variables - Usize::from(1));
let round: Felt<C::F> = builder.constant(C::F::ZERO);

let mut next_rt = PointAndEvalVariable {
Expand Down Expand Up @@ -369,8 +356,7 @@ pub fn verify_tower_proof<C: Config>(
builder.if_eq(skip, var_zero.clone()).then(|builder| {
builder.if_ne(round_var, round_limit).then_or_else(
|builder| {
let prod_slice =
builder.get(&proof.prod_specs_eval, spec_index);
let prod_slice = builder.get(&proof.prod_specs_eval, spec_index);
let prod_round_slice = builder.get(&prod_slice, round_var);
builder.assign(&prod, one * one);
for j in 0..NUM_FANIN {
Expand All @@ -390,11 +376,8 @@ pub fn verify_tower_proof<C: Config>(
});

let num_variables_len = num_variables.len();
let logup_num_variables_slice = num_variables.slice(
builder,
num_prod_spec.clone(),
num_variables_len.clone(),
);
let logup_num_variables_slice =
num_variables.slice(builder, num_prod_spec.clone(), num_variables_len.clone());

builder
.range(0, num_logup_spec.clone())
Expand All @@ -419,8 +402,7 @@ pub fn verify_tower_proof<C: Config>(
builder.if_eq(skip, var_zero).then(|builder| {
builder.if_ne(round_var, round_limit).then_or_else(
|builder| {
let prod_slice =
builder.get(&proof.logup_specs_eval, spec_index);
let prod_slice = builder.get(&proof.logup_specs_eval, spec_index);
let prod_round_slice = builder.get(&prod_slice, round_var);

let p1 = builder.get(&prod_round_slice, 0);
Expand Down Expand Up @@ -479,14 +461,12 @@ pub fn verify_tower_proof<C: Config>(
builder.cycle_tracker_start("derive next layer for prod specs");
let spec_index = i_vec[0];
let skip = builder.get(&should_skip, spec_index.clone());
let max_round =
builder.get(&num_variables, spec_index.clone());
let max_round = builder.get(&num_variables, spec_index.clone());
let round_limit: RVar<C::N> = builder.eval_expr(max_round - RVar::from(1));

// now skip is 0 if and only if current round_var is smaller than round_limit.
builder.if_eq(skip, var_zero.clone()).then(|builder| {
let prod_slice =
builder.get(&proof.prod_specs_eval, spec_index);
let prod_slice = builder.get(&proof.prod_specs_eval, spec_index);
let prod_round_slice = builder.get(&prod_slice, round_var);
let evals = fixed_dot_product(builder, &coeffs, &prod_round_slice, zero);

Expand Down Expand Up @@ -520,11 +500,8 @@ pub fn verify_tower_proof<C: Config>(

let next_logup_spec_evals: Ext<<C as Config>::F, <C as Config>::EF> =
builder.eval(zero + zero);
let logup_num_variables_slice = num_variables.slice(
builder,
num_prod_spec.clone(),
num_variables_len.clone(),
);
let logup_num_variables_slice =
num_variables.slice(builder, num_prod_spec.clone(), num_variables_len.clone());

builder
.range(0, num_logup_spec.clone())
Expand All @@ -544,8 +521,7 @@ pub fn verify_tower_proof<C: Config>(

// now skip is 0 if and only if current round_var is smaller than round_limit.
builder.if_eq(skip, var_zero).then(|builder| {
let prod_slice =
builder.get(&proof.logup_specs_eval, spec_index);
let prod_slice = builder.get(&proof.logup_specs_eval, spec_index);
let prod_round_slice = builder.get(&prod_slice, round_var);
let p1 = builder.get(&prod_round_slice, 0);
let p2 = builder.get(&prod_round_slice, 1);
Expand Down Expand Up @@ -952,4 +928,4 @@ mod tests {
unsafe { Vec::from_raw_parts(new_ptr, length, capacity) }
}
}
*/
*/
24 changes: 18 additions & 6 deletions src/zkvm_verifier/binding.rs
Original file line number Diff line number Diff line change
Expand Up @@ -378,9 +378,15 @@ impl Hintable<InnerConfig> for ZKVMOpcodeProofInput {
let log2_num_instances = ceil_log2(next_pow2_instance);
stream.extend(<usize as Hintable<InnerConfig>>::write(&log2_num_instances));

stream.extend(<usize as Hintable<InnerConfig>>::write(&self.record_r_out_evals_len));
stream.extend(<usize as Hintable<InnerConfig>>::write(&self.record_w_out_evals_len));
stream.extend(<usize as Hintable<InnerConfig>>::write(&self.record_lk_out_evals_len));
stream.extend(<usize as Hintable<InnerConfig>>::write(
&self.record_r_out_evals_len,
));
stream.extend(<usize as Hintable<InnerConfig>>::write(
&self.record_w_out_evals_len,
));
stream.extend(<usize as Hintable<InnerConfig>>::write(
&self.record_lk_out_evals_len,
));

stream.extend(self.record_r_out_evals.write());
stream.extend(self.record_w_out_evals.write());
Expand Down Expand Up @@ -463,9 +469,15 @@ impl Hintable<InnerConfig> for ZKVMTableProofInput {
let log2_num_instances = ceil_log2(self.num_instances);
stream.extend(<usize as Hintable<InnerConfig>>::write(&log2_num_instances));

stream.extend(<usize as Hintable<InnerConfig>>::write(&self.record_r_out_evals_len));
stream.extend(<usize as Hintable<InnerConfig>>::write(&self.record_w_out_evals_len));
stream.extend(<usize as Hintable<InnerConfig>>::write(&self.record_lk_out_evals_len));
stream.extend(<usize as Hintable<InnerConfig>>::write(
&self.record_r_out_evals_len,
));
stream.extend(<usize as Hintable<InnerConfig>>::write(
&self.record_w_out_evals_len,
));
stream.extend(<usize as Hintable<InnerConfig>>::write(
&self.record_lk_out_evals_len,
));

stream.extend(self.record_r_out_evals.write());
stream.extend(self.record_w_out_evals.write());
Expand Down
Loading