1
- use super :: binding:: {
2
- IOPProverMessageVariable , PointAndEvalVariable , PointVariable ,
3
- } ;
1
+ use super :: binding:: { IOPProverMessageVariable , PointAndEvalVariable , PointVariable } ;
4
2
use crate :: arithmetics:: {
5
- challenger_multi_observe, dot_product, eq_eval, evaluate_at_point_degree_1, extend, exts_to_felts,
6
- fixed_dot_product, gen_alpha_pows, is_smaller_than, reverse, UniPolyExtrapolator , print_ext_arr,
3
+ challenger_multi_observe, dot_product, eq_eval, evaluate_at_point_degree_1, extend,
4
+ exts_to_felts, fixed_dot_product, gen_alpha_pows, is_smaller_than, print_ext_arr, reverse,
5
+ UniPolyExtrapolator ,
7
6
} ;
8
7
use crate :: transcript:: transcript_observe_label;
9
8
use crate :: zkvm_verifier:: binding:: TowerProofInputVariable ;
@@ -149,19 +148,13 @@ pub fn verify_tower_proof<C: Config>(
149
148
let one: Ext < C :: F , C :: EF > = builder. constant ( C :: EF :: ONE ) ;
150
149
let zero: Ext < C :: F , C :: EF > = builder. constant ( C :: EF :: ZERO ) ;
151
150
152
- builder. assert_usize_eq (
153
- proof. prod_specs_eval . len ( ) ,
154
- num_prod_spec. clone ( ) ,
155
- ) ;
151
+ builder. assert_usize_eq ( proof. prod_specs_eval . len ( ) , num_prod_spec. clone ( ) ) ;
156
152
iter_zip ! ( builder, prod_out_evals) . for_each ( |ptr_vec, builder| {
157
153
let ptr = ptr_vec[ 0 ] ;
158
154
let evals = builder. iter_ptr_get ( & prod_out_evals, ptr) ;
159
155
builder. assert_usize_eq ( evals. len ( ) , num_fanin. clone ( ) ) ;
160
156
} ) ;
161
- builder. assert_usize_eq (
162
- proof. logup_specs_eval . len ( ) ,
163
- num_logup_spec. clone ( ) ,
164
- ) ;
157
+ builder. assert_usize_eq ( proof. logup_specs_eval . len ( ) , num_logup_spec. clone ( ) ) ;
165
158
iter_zip ! ( builder, logup_out_evals) . for_each ( |ptr_vec, builder| {
166
159
let ptr = ptr_vec[ 0 ] ;
167
160
let evals = builder. iter_ptr_get ( & logup_out_evals, ptr) ;
@@ -206,12 +199,7 @@ pub fn verify_tower_proof<C: Config>(
206
199
let prod_spec_point_n_eval: Array < C , PointAndEvalVariable < C > > =
207
200
builder. dyn_array ( num_prod_spec. clone ( ) ) ;
208
201
209
- iter_zip ! (
210
- builder,
211
- prod_out_evals,
212
- prod_spec_point_n_eval
213
- )
214
- . for_each ( |ptr_vec, builder| {
202
+ iter_zip ! ( builder, prod_out_evals, prod_spec_point_n_eval) . for_each ( |ptr_vec, builder| {
215
203
let ptr = ptr_vec[ 0 ] ;
216
204
let evals = builder. iter_ptr_get ( & prod_out_evals, ptr) ;
217
205
let e = evaluate_at_point_degree_1 ( builder, & evals, & initial_rt) ;
@@ -309,8 +297,7 @@ pub fn verify_tower_proof<C: Config>(
309
297
310
298
let curr_pt = initial_rt. clone ( ) ;
311
299
let curr_eval = initial_claim. clone ( ) ;
312
- let op_range: RVar < C :: N > =
313
- builder. eval_expr ( max_num_variables - Usize :: from ( 1 ) ) ;
300
+ let op_range: RVar < C :: N > = builder. eval_expr ( max_num_variables - Usize :: from ( 1 ) ) ;
314
301
let round: Felt < C :: F > = builder. constant ( C :: F :: ZERO ) ;
315
302
316
303
let mut next_rt = PointAndEvalVariable {
@@ -369,8 +356,7 @@ pub fn verify_tower_proof<C: Config>(
369
356
builder. if_eq ( skip, var_zero. clone ( ) ) . then ( |builder| {
370
357
builder. if_ne ( round_var, round_limit) . then_or_else (
371
358
|builder| {
372
- let prod_slice =
373
- builder. get ( & proof. prod_specs_eval , spec_index) ;
359
+ let prod_slice = builder. get ( & proof. prod_specs_eval , spec_index) ;
374
360
let prod_round_slice = builder. get ( & prod_slice, round_var) ;
375
361
builder. assign ( & prod, one * one) ;
376
362
for j in 0 ..NUM_FANIN {
@@ -390,11 +376,8 @@ pub fn verify_tower_proof<C: Config>(
390
376
} ) ;
391
377
392
378
let num_variables_len = num_variables. len ( ) ;
393
- let logup_num_variables_slice = num_variables. slice (
394
- builder,
395
- num_prod_spec. clone ( ) ,
396
- num_variables_len. clone ( ) ,
397
- ) ;
379
+ let logup_num_variables_slice =
380
+ num_variables. slice ( builder, num_prod_spec. clone ( ) , num_variables_len. clone ( ) ) ;
398
381
399
382
builder
400
383
. range ( 0 , num_logup_spec. clone ( ) )
@@ -419,8 +402,7 @@ pub fn verify_tower_proof<C: Config>(
419
402
builder. if_eq ( skip, var_zero) . then ( |builder| {
420
403
builder. if_ne ( round_var, round_limit) . then_or_else (
421
404
|builder| {
422
- let prod_slice =
423
- builder. get ( & proof. logup_specs_eval , spec_index) ;
405
+ let prod_slice = builder. get ( & proof. logup_specs_eval , spec_index) ;
424
406
let prod_round_slice = builder. get ( & prod_slice, round_var) ;
425
407
426
408
let p1 = builder. get ( & prod_round_slice, 0 ) ;
@@ -479,14 +461,12 @@ pub fn verify_tower_proof<C: Config>(
479
461
builder. cycle_tracker_start ( "derive next layer for prod specs" ) ;
480
462
let spec_index = i_vec[ 0 ] ;
481
463
let skip = builder. get ( & should_skip, spec_index. clone ( ) ) ;
482
- let max_round =
483
- builder. get ( & num_variables, spec_index. clone ( ) ) ;
464
+ let max_round = builder. get ( & num_variables, spec_index. clone ( ) ) ;
484
465
let round_limit: RVar < C :: N > = builder. eval_expr ( max_round - RVar :: from ( 1 ) ) ;
485
466
486
467
// now skip is 0 if and only if current round_var is smaller than round_limit.
487
468
builder. if_eq ( skip, var_zero. clone ( ) ) . then ( |builder| {
488
- let prod_slice =
489
- builder. get ( & proof. prod_specs_eval , spec_index) ;
469
+ let prod_slice = builder. get ( & proof. prod_specs_eval , spec_index) ;
490
470
let prod_round_slice = builder. get ( & prod_slice, round_var) ;
491
471
let evals = fixed_dot_product ( builder, & coeffs, & prod_round_slice, zero) ;
492
472
@@ -520,11 +500,8 @@ pub fn verify_tower_proof<C: Config>(
520
500
521
501
let next_logup_spec_evals: Ext < <C as Config >:: F , <C as Config >:: EF > =
522
502
builder. eval ( zero + zero) ;
523
- let logup_num_variables_slice = num_variables. slice (
524
- builder,
525
- num_prod_spec. clone ( ) ,
526
- num_variables_len. clone ( ) ,
527
- ) ;
503
+ let logup_num_variables_slice =
504
+ num_variables. slice ( builder, num_prod_spec. clone ( ) , num_variables_len. clone ( ) ) ;
528
505
529
506
builder
530
507
. range ( 0 , num_logup_spec. clone ( ) )
@@ -544,8 +521,7 @@ pub fn verify_tower_proof<C: Config>(
544
521
545
522
// now skip is 0 if and only if current round_var is smaller than round_limit.
546
523
builder. if_eq ( skip, var_zero) . then ( |builder| {
547
- let prod_slice =
548
- builder. get ( & proof. logup_specs_eval , spec_index) ;
524
+ let prod_slice = builder. get ( & proof. logup_specs_eval , spec_index) ;
549
525
let prod_round_slice = builder. get ( & prod_slice, round_var) ;
550
526
let p1 = builder. get ( & prod_round_slice, 0 ) ;
551
527
let p2 = builder. get ( & prod_round_slice, 1 ) ;
@@ -952,4 +928,4 @@ mod tests {
952
928
unsafe { Vec::from_raw_parts(new_ptr, length, capacity) }
953
929
}
954
930
}
955
- */
931
+ */
0 commit comments