From 4a80bb93a0da0abf5e1f26d3586d265ff8864ce8 Mon Sep 17 00:00:00 2001 From: jeanmon Date: Wed, 23 Oct 2024 09:55:11 +0000 Subject: [PATCH 1/8] Rebase on master and run codegen --- .../barretenberg/vm/avm/generated/flavor.cpp | 1064 ++++++++--------- .../barretenberg/vm/avm/generated/flavor.hpp | 14 +- .../vm/avm/generated/full_row.hpp | 2 +- .../src/barretenberg/vm/aztec_constants.hpp | 2 +- .../crates/types/src/constants.nr | 7 +- yarn-project/circuits.js/src/constants.gen.ts | 2 +- 6 files changed, 528 insertions(+), 563 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp index d9faa840e83..cc74c6d2323 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp @@ -240,555 +240,521 @@ AvmFlavor::AllConstRefValues::AllConstRefValues( , main_sel_op_sload(il[232]) , main_sel_op_sstore(il[233]) , main_sel_op_static_call(il[234]) - , main_sel_op_sub(il[235]) - , main_sel_op_timestamp(il[236]) - , main_sel_op_transaction_fee(il[237]) - , main_sel_op_version(il[238]) - , main_sel_op_xor(il[239]) - , main_sel_q_kernel_lookup(il[240]) - , main_sel_q_kernel_output_lookup(il[241]) - , main_sel_resolve_ind_addr_a(il[242]) - , main_sel_resolve_ind_addr_b(il[243]) - , main_sel_resolve_ind_addr_c(il[244]) - , main_sel_resolve_ind_addr_d(il[245]) - , main_sel_returndata(il[246]) - , main_sel_rng_16(il[247]) - , main_sel_rng_8(il[248]) - , main_sel_slice_gadget(il[249]) - , main_side_effect_counter(il[250]) - , main_sload_write_offset(il[251]) - , main_space_id(il[252]) - , main_sstore_write_offset(il[253]) - , main_tag_err(il[254]) - , main_w_in_tag(il[255]) - , mem_addr(il[256]) - , mem_clk(il[257]) - , mem_diff(il[258]) - , mem_glob_addr(il[259]) - , mem_last(il[260]) - , mem_lastAccess(il[261]) - , mem_one_min_inv(il[262]) - , mem_r_in_tag(il[263]) - , mem_rw(il[264]) - , mem_sel_mem(il[265]) - , mem_sel_mov_ia_to_ic(il[266]) - , mem_sel_mov_ib_to_ic(il[267]) - , mem_sel_op_a(il[268]) - , mem_sel_op_b(il[269]) - , mem_sel_op_c(il[270]) - , mem_sel_op_d(il[271]) - , mem_sel_op_poseidon_read_a(il[272]) - , mem_sel_op_poseidon_read_b(il[273]) - , mem_sel_op_poseidon_read_c(il[274]) - , mem_sel_op_poseidon_read_d(il[275]) - , mem_sel_op_poseidon_write_a(il[276]) - , mem_sel_op_poseidon_write_b(il[277]) - , mem_sel_op_poseidon_write_c(il[278]) - , mem_sel_op_poseidon_write_d(il[279]) - , mem_sel_op_slice(il[280]) - , mem_sel_resolve_ind_addr_a(il[281]) - , mem_sel_resolve_ind_addr_b(il[282]) - , mem_sel_resolve_ind_addr_c(il[283]) - , mem_sel_resolve_ind_addr_d(il[284]) - , mem_sel_rng_chk(il[285]) - , mem_skip_check_tag(il[286]) - , mem_space_id(il[287]) - , mem_tag(il[288]) - , mem_tag_err(il[289]) - , mem_tsp(il[290]) - , mem_val(il[291]) - , mem_w_in_tag(il[292]) - , poseidon2_B_10_0(il[293]) - , poseidon2_B_10_1(il[294]) - , poseidon2_B_10_2(il[295]) - , poseidon2_B_10_3(il[296]) - , poseidon2_B_11_0(il[297]) - , poseidon2_B_11_1(il[298]) - , poseidon2_B_11_2(il[299]) - , poseidon2_B_11_3(il[300]) - , poseidon2_B_12_0(il[301]) - , poseidon2_B_12_1(il[302]) - , poseidon2_B_12_2(il[303]) - , poseidon2_B_12_3(il[304]) - , poseidon2_B_13_0(il[305]) - , poseidon2_B_13_1(il[306]) - , poseidon2_B_13_2(il[307]) - , poseidon2_B_13_3(il[308]) - , poseidon2_B_14_0(il[309]) - , poseidon2_B_14_1(il[310]) - , poseidon2_B_14_2(il[311]) - , poseidon2_B_14_3(il[312]) - , poseidon2_B_15_0(il[313]) - , poseidon2_B_15_1(il[314]) - , poseidon2_B_15_2(il[315]) - , poseidon2_B_15_3(il[316]) - , poseidon2_B_16_0(il[317]) - , poseidon2_B_16_1(il[318]) - , poseidon2_B_16_2(il[319]) - , poseidon2_B_16_3(il[320]) - , poseidon2_B_17_0(il[321]) - , poseidon2_B_17_1(il[322]) - , poseidon2_B_17_2(il[323]) - , poseidon2_B_17_3(il[324]) - , poseidon2_B_18_0(il[325]) - , poseidon2_B_18_1(il[326]) - , poseidon2_B_18_2(il[327]) - , poseidon2_B_18_3(il[328]) - , poseidon2_B_19_0(il[329]) - , poseidon2_B_19_1(il[330]) - , poseidon2_B_19_2(il[331]) - , poseidon2_B_19_3(il[332]) - , poseidon2_B_20_0(il[333]) - , poseidon2_B_20_1(il[334]) - , poseidon2_B_20_2(il[335]) - , poseidon2_B_20_3(il[336]) - , poseidon2_B_21_0(il[337]) - , poseidon2_B_21_1(il[338]) - , poseidon2_B_21_2(il[339]) - , poseidon2_B_21_3(il[340]) - , poseidon2_B_22_0(il[341]) - , poseidon2_B_22_1(il[342]) - , poseidon2_B_22_2(il[343]) - , poseidon2_B_22_3(il[344]) - , poseidon2_B_23_0(il[345]) - , poseidon2_B_23_1(il[346]) - , poseidon2_B_23_2(il[347]) - , poseidon2_B_23_3(il[348]) - , poseidon2_B_24_0(il[349]) - , poseidon2_B_24_1(il[350]) - , poseidon2_B_24_2(il[351]) - , poseidon2_B_24_3(il[352]) - , poseidon2_B_25_0(il[353]) - , poseidon2_B_25_1(il[354]) - , poseidon2_B_25_2(il[355]) - , poseidon2_B_25_3(il[356]) - , poseidon2_B_26_0(il[357]) - , poseidon2_B_26_1(il[358]) - , poseidon2_B_26_2(il[359]) - , poseidon2_B_26_3(il[360]) - , poseidon2_B_27_0(il[361]) - , poseidon2_B_27_1(il[362]) - , poseidon2_B_27_2(il[363]) - , poseidon2_B_27_3(il[364]) - , poseidon2_B_28_0(il[365]) - , poseidon2_B_28_1(il[366]) - , poseidon2_B_28_2(il[367]) - , poseidon2_B_28_3(il[368]) - , poseidon2_B_29_0(il[369]) - , poseidon2_B_29_1(il[370]) - , poseidon2_B_29_2(il[371]) - , poseidon2_B_29_3(il[372]) - , poseidon2_B_30_0(il[373]) - , poseidon2_B_30_1(il[374]) - , poseidon2_B_30_2(il[375]) - , poseidon2_B_30_3(il[376]) - , poseidon2_B_31_0(il[377]) - , poseidon2_B_31_1(il[378]) - , poseidon2_B_31_2(il[379]) - , poseidon2_B_31_3(il[380]) - , poseidon2_B_32_0(il[381]) - , poseidon2_B_32_1(il[382]) - , poseidon2_B_32_2(il[383]) - , poseidon2_B_32_3(il[384]) - , poseidon2_B_33_0(il[385]) - , poseidon2_B_33_1(il[386]) - , poseidon2_B_33_2(il[387]) - , poseidon2_B_33_3(il[388]) - , poseidon2_B_34_0(il[389]) - , poseidon2_B_34_1(il[390]) - , poseidon2_B_34_2(il[391]) - , poseidon2_B_34_3(il[392]) - , poseidon2_B_35_0(il[393]) - , poseidon2_B_35_1(il[394]) - , poseidon2_B_35_2(il[395]) - , poseidon2_B_35_3(il[396]) - , poseidon2_B_36_0(il[397]) - , poseidon2_B_36_1(il[398]) - , poseidon2_B_36_2(il[399]) - , poseidon2_B_36_3(il[400]) - , poseidon2_B_37_0(il[401]) - , poseidon2_B_37_1(il[402]) - , poseidon2_B_37_2(il[403]) - , poseidon2_B_37_3(il[404]) - , poseidon2_B_38_0(il[405]) - , poseidon2_B_38_1(il[406]) - , poseidon2_B_38_2(il[407]) - , poseidon2_B_38_3(il[408]) - , poseidon2_B_39_0(il[409]) - , poseidon2_B_39_1(il[410]) - , poseidon2_B_39_2(il[411]) - , poseidon2_B_39_3(il[412]) - , poseidon2_B_40_0(il[413]) - , poseidon2_B_40_1(il[414]) - , poseidon2_B_40_2(il[415]) - , poseidon2_B_40_3(il[416]) - , poseidon2_B_41_0(il[417]) - , poseidon2_B_41_1(il[418]) - , poseidon2_B_41_2(il[419]) - , poseidon2_B_41_3(il[420]) - , poseidon2_B_42_0(il[421]) - , poseidon2_B_42_1(il[422]) - , poseidon2_B_42_2(il[423]) - , poseidon2_B_42_3(il[424]) - , poseidon2_B_43_0(il[425]) - , poseidon2_B_43_1(il[426]) - , poseidon2_B_43_2(il[427]) - , poseidon2_B_43_3(il[428]) - , poseidon2_B_44_0(il[429]) - , poseidon2_B_44_1(il[430]) - , poseidon2_B_44_2(il[431]) - , poseidon2_B_44_3(il[432]) - , poseidon2_B_45_0(il[433]) - , poseidon2_B_45_1(il[434]) - , poseidon2_B_45_2(il[435]) - , poseidon2_B_45_3(il[436]) - , poseidon2_B_46_0(il[437]) - , poseidon2_B_46_1(il[438]) - , poseidon2_B_46_2(il[439]) - , poseidon2_B_46_3(il[440]) - , poseidon2_B_47_0(il[441]) - , poseidon2_B_47_1(il[442]) - , poseidon2_B_47_2(il[443]) - , poseidon2_B_47_3(il[444]) - , poseidon2_B_48_0(il[445]) - , poseidon2_B_48_1(il[446]) - , poseidon2_B_48_2(il[447]) - , poseidon2_B_48_3(il[448]) - , poseidon2_B_49_0(il[449]) - , poseidon2_B_49_1(il[450]) - , poseidon2_B_49_2(il[451]) - , poseidon2_B_49_3(il[452]) - , poseidon2_B_4_0(il[453]) - , poseidon2_B_4_1(il[454]) - , poseidon2_B_4_2(il[455]) - , poseidon2_B_4_3(il[456]) - , poseidon2_B_50_0(il[457]) - , poseidon2_B_50_1(il[458]) - , poseidon2_B_50_2(il[459]) - , poseidon2_B_50_3(il[460]) - , poseidon2_B_51_0(il[461]) - , poseidon2_B_51_1(il[462]) - , poseidon2_B_51_2(il[463]) - , poseidon2_B_51_3(il[464]) - , poseidon2_B_52_0(il[465]) - , poseidon2_B_52_1(il[466]) - , poseidon2_B_52_2(il[467]) - , poseidon2_B_52_3(il[468]) - , poseidon2_B_53_0(il[469]) - , poseidon2_B_53_1(il[470]) - , poseidon2_B_53_2(il[471]) - , poseidon2_B_53_3(il[472]) - , poseidon2_B_54_0(il[473]) - , poseidon2_B_54_1(il[474]) - , poseidon2_B_54_2(il[475]) - , poseidon2_B_54_3(il[476]) - , poseidon2_B_55_0(il[477]) - , poseidon2_B_55_1(il[478]) - , poseidon2_B_55_2(il[479]) - , poseidon2_B_55_3(il[480]) - , poseidon2_B_56_0(il[481]) - , poseidon2_B_56_1(il[482]) - , poseidon2_B_56_2(il[483]) - , poseidon2_B_56_3(il[484]) - , poseidon2_B_57_0(il[485]) - , poseidon2_B_57_1(il[486]) - , poseidon2_B_57_2(il[487]) - , poseidon2_B_57_3(il[488]) - , poseidon2_B_58_0(il[489]) - , poseidon2_B_58_1(il[490]) - , poseidon2_B_58_2(il[491]) - , poseidon2_B_58_3(il[492]) - , poseidon2_B_59_0(il[493]) - , poseidon2_B_59_1(il[494]) - , poseidon2_B_59_2(il[495]) - , poseidon2_B_59_3(il[496]) - , poseidon2_B_5_0(il[497]) - , poseidon2_B_5_1(il[498]) - , poseidon2_B_5_2(il[499]) - , poseidon2_B_5_3(il[500]) - , poseidon2_B_6_0(il[501]) - , poseidon2_B_6_1(il[502]) - , poseidon2_B_6_2(il[503]) - , poseidon2_B_6_3(il[504]) - , poseidon2_B_7_0(il[505]) - , poseidon2_B_7_1(il[506]) - , poseidon2_B_7_2(il[507]) - , poseidon2_B_7_3(il[508]) - , poseidon2_B_8_0(il[509]) - , poseidon2_B_8_1(il[510]) - , poseidon2_B_8_2(il[511]) - , poseidon2_B_8_3(il[512]) - , poseidon2_B_9_0(il[513]) - , poseidon2_B_9_1(il[514]) - , poseidon2_B_9_2(il[515]) - , poseidon2_B_9_3(il[516]) - , poseidon2_EXT_LAYER_4(il[517]) - , poseidon2_EXT_LAYER_5(il[518]) - , poseidon2_EXT_LAYER_6(il[519]) - , poseidon2_EXT_LAYER_7(il[520]) - , poseidon2_T_0_4(il[521]) - , poseidon2_T_0_5(il[522]) - , poseidon2_T_0_6(il[523]) - , poseidon2_T_0_7(il[524]) - , poseidon2_T_1_4(il[525]) - , poseidon2_T_1_5(il[526]) - , poseidon2_T_1_6(il[527]) - , poseidon2_T_1_7(il[528]) - , poseidon2_T_2_4(il[529]) - , poseidon2_T_2_5(il[530]) - , poseidon2_T_2_6(il[531]) - , poseidon2_T_2_7(il[532]) - , poseidon2_T_3_4(il[533]) - , poseidon2_T_3_5(il[534]) - , poseidon2_T_3_6(il[535]) - , poseidon2_T_3_7(il[536]) - , poseidon2_T_60_4(il[537]) - , poseidon2_T_60_5(il[538]) - , poseidon2_T_60_6(il[539]) - , poseidon2_T_60_7(il[540]) - , poseidon2_T_61_4(il[541]) - , poseidon2_T_61_5(il[542]) - , poseidon2_T_61_6(il[543]) - , poseidon2_T_61_7(il[544]) - , poseidon2_T_62_4(il[545]) - , poseidon2_T_62_5(il[546]) - , poseidon2_T_62_6(il[547]) - , poseidon2_T_62_7(il[548]) - , poseidon2_T_63_4(il[549]) - , poseidon2_T_63_5(il[550]) - , poseidon2_T_63_6(il[551]) - , poseidon2_T_63_7(il[552]) - , poseidon2_a_0(il[553]) - , poseidon2_a_1(il[554]) - , poseidon2_a_2(il[555]) - , poseidon2_a_3(il[556]) - , poseidon2_b_0(il[557]) - , poseidon2_b_1(il[558]) - , poseidon2_b_2(il[559]) - , poseidon2_b_3(il[560]) - , poseidon2_clk(il[561]) - , poseidon2_full_a_0(il[562]) - , poseidon2_full_a_1(il[563]) - , poseidon2_full_a_2(il[564]) - , poseidon2_full_a_3(il[565]) - , poseidon2_full_b_0(il[566]) - , poseidon2_full_b_1(il[567]) - , poseidon2_full_b_2(il[568]) - , poseidon2_full_b_3(il[569]) - , poseidon2_full_clk(il[570]) - , poseidon2_full_end_poseidon(il[571]) - , poseidon2_full_execute_poseidon_perm(il[572]) - , poseidon2_full_input_0(il[573]) - , poseidon2_full_input_1(il[574]) - , poseidon2_full_input_2(il[575]) - , poseidon2_full_input_len(il[576]) - , poseidon2_full_num_perm_rounds_rem(il[577]) - , poseidon2_full_num_perm_rounds_rem_inv(il[578]) - , poseidon2_full_output(il[579]) - , poseidon2_full_padding(il[580]) - , poseidon2_full_sel_poseidon(il[581]) - , poseidon2_full_start_poseidon(il[582]) - , poseidon2_input_addr(il[583]) - , poseidon2_mem_addr_read_a(il[584]) - , poseidon2_mem_addr_read_b(il[585]) - , poseidon2_mem_addr_read_c(il[586]) - , poseidon2_mem_addr_read_d(il[587]) - , poseidon2_mem_addr_write_a(il[588]) - , poseidon2_mem_addr_write_b(il[589]) - , poseidon2_mem_addr_write_c(il[590]) - , poseidon2_mem_addr_write_d(il[591]) - , poseidon2_output_addr(il[592]) - , poseidon2_sel_poseidon_perm(il[593]) - , poseidon2_sel_poseidon_perm_immediate(il[594]) - , poseidon2_sel_poseidon_perm_mem_op(il[595]) - , poseidon2_space_id(il[596]) - , range_check_alu_rng_chk(il[597]) - , range_check_clk(il[598]) - , range_check_cmp_hi_bits_rng_chk(il[599]) - , range_check_cmp_lo_bits_rng_chk(il[600]) - , range_check_dyn_diff(il[601]) - , range_check_dyn_rng_chk_bits(il[602]) - , range_check_dyn_rng_chk_pow_2(il[603]) - , range_check_gas_da_rng_chk(il[604]) - , range_check_gas_l2_rng_chk(il[605]) - , range_check_is_lte_u112(il[606]) - , range_check_is_lte_u128(il[607]) - , range_check_is_lte_u16(il[608]) - , range_check_is_lte_u32(il[609]) - , range_check_is_lte_u48(il[610]) - , range_check_is_lte_u64(il[611]) - , range_check_is_lte_u80(il[612]) - , range_check_is_lte_u96(il[613]) - , range_check_mem_rng_chk(il[614]) - , range_check_rng_chk_bits(il[615]) - , range_check_sel_lookup_0(il[616]) - , range_check_sel_lookup_1(il[617]) - , range_check_sel_lookup_2(il[618]) - , range_check_sel_lookup_3(il[619]) - , range_check_sel_lookup_4(il[620]) - , range_check_sel_lookup_5(il[621]) - , range_check_sel_lookup_6(il[622]) - , range_check_sel_rng_chk(il[623]) - , range_check_u16_r0(il[624]) - , range_check_u16_r1(il[625]) - , range_check_u16_r2(il[626]) - , range_check_u16_r3(il[627]) - , range_check_u16_r4(il[628]) - , range_check_u16_r5(il[629]) - , range_check_u16_r6(il[630]) - , range_check_u16_r7(il[631]) - , range_check_value(il[632]) - , sha256_clk(il[633]) - , sha256_input(il[634]) - , sha256_output(il[635]) - , sha256_sel_sha256_compression(il[636]) - , sha256_state(il[637]) - , slice_addr(il[638]) - , slice_clk(il[639]) - , slice_cnt(il[640]) - , slice_col_offset(il[641]) - , slice_one_min_inv(il[642]) - , slice_sel_cd_cpy(il[643]) - , slice_sel_mem_active(il[644]) - , slice_sel_return(il[645]) - , slice_sel_start(il[646]) - , slice_space_id(il[647]) - , slice_val(il[648]) - , lookup_rng_chk_pow_2_counts(il[649]) - , lookup_rng_chk_diff_counts(il[650]) - , lookup_rng_chk_0_counts(il[651]) - , lookup_rng_chk_1_counts(il[652]) - , lookup_rng_chk_2_counts(il[653]) - , lookup_rng_chk_3_counts(il[654]) - , lookup_rng_chk_4_counts(il[655]) - , lookup_rng_chk_5_counts(il[656]) - , lookup_rng_chk_6_counts(il[657]) - , lookup_rng_chk_7_counts(il[658]) - , lookup_pow_2_0_counts(il[659]) - , lookup_pow_2_1_counts(il[660]) - , lookup_byte_lengths_counts(il[661]) - , lookup_byte_operations_counts(il[662]) - , lookup_opcode_gas_counts(il[663]) - , kernel_output_lookup_counts(il[664]) - , lookup_into_kernel_counts(il[665]) - , lookup_cd_value_counts(il[666]) - , lookup_ret_value_counts(il[667]) - , incl_main_tag_err_counts(il[668]) - , incl_mem_tag_err_counts(il[669]) - , perm_rng_mem_inv(il[670]) - , perm_rng_cmp_lo_inv(il[671]) - , perm_rng_cmp_hi_inv(il[672]) - , perm_rng_alu_inv(il[673]) - , perm_cmp_alu_inv(il[674]) - , perm_rng_gas_l2_inv(il[675]) - , perm_rng_gas_da_inv(il[676]) - , perm_l2_start_gas_inv(il[677]) - , perm_da_start_gas_inv(il[678]) - , perm_l2_end_gas_inv(il[679]) - , perm_da_end_gas_inv(il[680]) - , perm_pos_mem_read_a_inv(il[681]) - , perm_pos_mem_read_b_inv(il[682]) - , perm_pos_mem_read_c_inv(il[683]) - , perm_pos_mem_read_d_inv(il[684]) - , perm_pos_mem_write_a_inv(il[685]) - , perm_pos_mem_write_b_inv(il[686]) - , perm_pos_mem_write_c_inv(il[687]) - , perm_pos_mem_write_d_inv(il[688]) - , perm_pos2_fixed_pos2_perm_inv(il[689]) - , perm_slice_mem_inv(il[690]) - , perm_main_alu_inv(il[691]) - , perm_main_bin_inv(il[692]) - , perm_main_conv_inv(il[693]) - , perm_main_sha256_inv(il[694]) - , perm_main_pos2_perm_inv(il[695]) - , perm_main_slice_inv(il[696]) - , perm_main_mem_a_inv(il[697]) - , perm_main_mem_b_inv(il[698]) - , perm_main_mem_c_inv(il[699]) - , perm_main_mem_d_inv(il[700]) - , perm_main_mem_ind_addr_a_inv(il[701]) - , perm_main_mem_ind_addr_b_inv(il[702]) - , perm_main_mem_ind_addr_c_inv(il[703]) - , perm_main_mem_ind_addr_d_inv(il[704]) - , lookup_rng_chk_pow_2_inv(il[705]) - , lookup_rng_chk_diff_inv(il[706]) - , lookup_rng_chk_0_inv(il[707]) - , lookup_rng_chk_1_inv(il[708]) - , lookup_rng_chk_2_inv(il[709]) - , lookup_rng_chk_3_inv(il[710]) - , lookup_rng_chk_4_inv(il[711]) - , lookup_rng_chk_5_inv(il[712]) - , lookup_rng_chk_6_inv(il[713]) - , lookup_rng_chk_7_inv(il[714]) - , lookup_pow_2_0_inv(il[715]) - , lookup_pow_2_1_inv(il[716]) - , lookup_byte_lengths_inv(il[717]) - , lookup_byte_operations_inv(il[718]) - , lookup_opcode_gas_inv(il[719]) - , kernel_output_lookup_inv(il[720]) - , lookup_into_kernel_inv(il[721]) - , lookup_cd_value_inv(il[722]) - , lookup_ret_value_inv(il[723]) - , incl_main_tag_err_inv(il[724]) - , incl_mem_tag_err_inv(il[725]) - , binary_acc_ia_shift(il[726]) - , binary_acc_ib_shift(il[727]) - , binary_acc_ic_shift(il[728]) - , binary_mem_tag_ctr_shift(il[729]) - , binary_op_id_shift(il[730]) - , cmp_a_hi_shift(il[731]) - , cmp_a_lo_shift(il[732]) - , cmp_b_hi_shift(il[733]) - , cmp_b_lo_shift(il[734]) - , cmp_cmp_rng_ctr_shift(il[735]) - , cmp_op_gt_shift(il[736]) - , cmp_p_sub_a_hi_shift(il[737]) - , cmp_p_sub_a_lo_shift(il[738]) - , cmp_p_sub_b_hi_shift(il[739]) - , cmp_p_sub_b_lo_shift(il[740]) - , cmp_sel_rng_chk_shift(il[741]) - , main_da_gas_remaining_shift(il[742]) - , main_emit_l2_to_l1_msg_write_offset_shift(il[743]) - , main_emit_note_hash_write_offset_shift(il[744]) - , main_emit_nullifier_write_offset_shift(il[745]) - , main_emit_unencrypted_log_write_offset_shift(il[746]) - , main_internal_return_ptr_shift(il[747]) - , main_l1_to_l2_msg_exists_write_offset_shift(il[748]) - , main_l2_gas_remaining_shift(il[749]) - , main_note_hash_exist_write_offset_shift(il[750]) - , main_nullifier_exists_write_offset_shift(il[751]) - , main_nullifier_non_exists_write_offset_shift(il[752]) - , main_pc_shift(il[753]) - , main_sel_execution_end_shift(il[754]) - , main_sel_execution_row_shift(il[755]) - , main_sload_write_offset_shift(il[756]) - , main_sstore_write_offset_shift(il[757]) - , mem_glob_addr_shift(il[758]) - , mem_rw_shift(il[759]) - , mem_sel_mem_shift(il[760]) - , mem_tag_shift(il[761]) - , mem_tsp_shift(il[762]) - , mem_val_shift(il[763]) - , poseidon2_full_a_0_shift(il[764]) - , poseidon2_full_a_1_shift(il[765]) - , poseidon2_full_a_2_shift(il[766]) - , poseidon2_full_a_3_shift(il[767]) - , poseidon2_full_execute_poseidon_perm_shift(il[768]) - , poseidon2_full_input_0_shift(il[769]) - , poseidon2_full_input_1_shift(il[770]) - , poseidon2_full_input_2_shift(il[771]) - , poseidon2_full_num_perm_rounds_rem_shift(il[772]) - , poseidon2_full_sel_poseidon_shift(il[773]) - , poseidon2_full_start_poseidon_shift(il[774]) - , slice_addr_shift(il[775]) - , slice_clk_shift(il[776]) - , slice_cnt_shift(il[777]) - , slice_col_offset_shift(il[778]) - , slice_sel_cd_cpy_shift(il[779]) - , slice_sel_mem_active_shift(il[780]) - , slice_sel_return_shift(il[781]) - , slice_sel_start_shift(il[782]) - , slice_space_id_shift(il[783]) + , main_sel_op_storage_address(il[235]) + , main_sel_op_sub(il[236]) + , main_sel_op_timestamp(il[237]) + , main_sel_op_transaction_fee(il[238]) + , main_sel_op_version(il[239]) + , main_sel_op_xor(il[240]) + , main_sel_q_kernel_lookup(il[241]) + , main_sel_q_kernel_output_lookup(il[242]) + , main_sel_resolve_ind_addr_a(il[243]) + , main_sel_resolve_ind_addr_b(il[244]) + , main_sel_resolve_ind_addr_c(il[245]) + , main_sel_resolve_ind_addr_d(il[246]) + , main_sel_returndata(il[247]) + , main_sel_rng_16(il[248]) + , main_sel_rng_8(il[249]) + , main_sel_slice_gadget(il[250]) + , main_side_effect_counter(il[251]) + , main_sload_write_offset(il[252]) + , main_space_id(il[253]) + , main_sstore_write_offset(il[254]) + , main_tag_err(il[255]) + , main_w_in_tag(il[256]) + , mem_addr(il[257]) + , mem_clk(il[258]) + , mem_diff(il[259]) + , mem_glob_addr(il[260]) + , mem_last(il[261]) + , mem_lastAccess(il[262]) + , mem_one_min_inv(il[263]) + , mem_r_in_tag(il[264]) + , mem_rw(il[265]) + , mem_sel_mem(il[266]) + , mem_sel_mov_ia_to_ic(il[267]) + , mem_sel_mov_ib_to_ic(il[268]) + , mem_sel_op_a(il[269]) + , mem_sel_op_b(il[270]) + , mem_sel_op_c(il[271]) + , mem_sel_op_d(il[272]) + , mem_sel_op_poseidon_read_a(il[273]) + , mem_sel_op_poseidon_read_b(il[274]) + , mem_sel_op_poseidon_read_c(il[275]) + , mem_sel_op_poseidon_read_d(il[276]) + , mem_sel_op_poseidon_write_a(il[277]) + , mem_sel_op_poseidon_write_b(il[278]) + , mem_sel_op_poseidon_write_c(il[279]) + , mem_sel_op_poseidon_write_d(il[280]) + , mem_sel_op_slice(il[281]) + , mem_sel_resolve_ind_addr_a(il[282]) + , mem_sel_resolve_ind_addr_b(il[283]) + , mem_sel_resolve_ind_addr_c(il[284]) + , mem_sel_resolve_ind_addr_d(il[285]) + , mem_sel_rng_chk(il[286]) + , mem_skip_check_tag(il[287]) + , mem_space_id(il[288]) + , mem_tag(il[289]) + , mem_tag_err(il[290]) + , mem_tsp(il[291]) + , mem_val(il[292]) + , mem_w_in_tag(il[293]) + , poseidon2_B_10_0(il[294]) + , poseidon2_B_10_1(il[295]) + , poseidon2_B_10_2(il[296]) + , poseidon2_B_10_3(il[297]) + , poseidon2_B_11_0(il[298]) + , poseidon2_B_11_1(il[299]) + , poseidon2_B_11_2(il[300]) + , poseidon2_B_11_3(il[301]) + , poseidon2_B_12_0(il[302]) + , poseidon2_B_12_1(il[303]) + , poseidon2_B_12_2(il[304]) + , poseidon2_B_12_3(il[305]) + , poseidon2_B_13_0(il[306]) + , poseidon2_B_13_1(il[307]) + , poseidon2_B_13_2(il[308]) + , poseidon2_B_13_3(il[309]) + , poseidon2_B_14_0(il[310]) + , poseidon2_B_14_1(il[311]) + , poseidon2_B_14_2(il[312]) + , poseidon2_B_14_3(il[313]) + , poseidon2_B_15_0(il[314]) + , poseidon2_B_15_1(il[315]) + , poseidon2_B_15_2(il[316]) + , poseidon2_B_15_3(il[317]) + , poseidon2_B_16_0(il[318]) + , poseidon2_B_16_1(il[319]) + , poseidon2_B_16_2(il[320]) + , poseidon2_B_16_3(il[321]) + , poseidon2_B_17_0(il[322]) + , poseidon2_B_17_1(il[323]) + , poseidon2_B_17_2(il[324]) + , poseidon2_B_17_3(il[325]) + , poseidon2_B_18_0(il[326]) + , poseidon2_B_18_1(il[327]) + , poseidon2_B_18_2(il[328]) + , poseidon2_B_18_3(il[329]) + , poseidon2_B_19_0(il[330]) + , poseidon2_B_19_1(il[331]) + , poseidon2_B_19_2(il[332]) + , poseidon2_B_19_3(il[333]) + , poseidon2_B_20_0(il[334]) + , poseidon2_B_20_1(il[335]) + , poseidon2_B_20_2(il[336]) + , poseidon2_B_20_3(il[337]) + , poseidon2_B_21_0(il[338]) + , poseidon2_B_21_1(il[339]) + , poseidon2_B_21_2(il[340]) + , poseidon2_B_21_3(il[341]) + , poseidon2_B_22_0(il[342]) + , poseidon2_B_22_1(il[343]) + , poseidon2_B_22_2(il[344]) + , poseidon2_B_22_3(il[345]) + , poseidon2_B_23_0(il[346]) + , poseidon2_B_23_1(il[347]) + , poseidon2_B_23_2(il[348]) + , poseidon2_B_23_3(il[349]) + , poseidon2_B_24_0(il[350]) + , poseidon2_B_24_1(il[351]) + , poseidon2_B_24_2(il[352]) + , poseidon2_B_24_3(il[353]) + , poseidon2_B_25_0(il[354]) + , poseidon2_B_25_1(il[355]) + , poseidon2_B_25_2(il[356]) + , poseidon2_B_25_3(il[357]) + , poseidon2_B_26_0(il[358]) + , poseidon2_B_26_1(il[359]) + , poseidon2_B_26_2(il[360]) + , poseidon2_B_26_3(il[361]) + , poseidon2_B_27_0(il[362]) + , poseidon2_B_27_1(il[363]) + , poseidon2_B_27_2(il[364]) + , poseidon2_B_27_3(il[365]) + , poseidon2_B_28_0(il[366]) + , poseidon2_B_28_1(il[367]) + , poseidon2_B_28_2(il[368]) + , poseidon2_B_28_3(il[369]) + , poseidon2_B_29_0(il[370]) + , poseidon2_B_29_1(il[371]) + , poseidon2_B_29_2(il[372]) + , poseidon2_B_29_3(il[373]) + , poseidon2_B_30_0(il[374]) + , poseidon2_B_30_1(il[375]) + , poseidon2_B_30_2(il[376]) + , poseidon2_B_30_3(il[377]) + , poseidon2_B_31_0(il[378]) + , poseidon2_B_31_1(il[379]) + , poseidon2_B_31_2(il[380]) + , poseidon2_B_31_3(il[381]) + , poseidon2_B_32_0(il[382]) + , poseidon2_B_32_1(il[383]) + , poseidon2_B_32_2(il[384]) + , poseidon2_B_32_3(il[385]) + , poseidon2_B_33_0(il[386]) + , poseidon2_B_33_1(il[387]) + , poseidon2_B_33_2(il[388]) + , poseidon2_B_33_3(il[389]) + , poseidon2_B_34_0(il[390]) + , poseidon2_B_34_1(il[391]) + , poseidon2_B_34_2(il[392]) + , poseidon2_B_34_3(il[393]) + , poseidon2_B_35_0(il[394]) + , poseidon2_B_35_1(il[395]) + , poseidon2_B_35_2(il[396]) + , poseidon2_B_35_3(il[397]) + , poseidon2_B_36_0(il[398]) + , poseidon2_B_36_1(il[399]) + , poseidon2_B_36_2(il[400]) + , poseidon2_B_36_3(il[401]) + , poseidon2_B_37_0(il[402]) + , poseidon2_B_37_1(il[403]) + , poseidon2_B_37_2(il[404]) + , poseidon2_B_37_3(il[405]) + , poseidon2_B_38_0(il[406]) + , poseidon2_B_38_1(il[407]) + , poseidon2_B_38_2(il[408]) + , poseidon2_B_38_3(il[409]) + , poseidon2_B_39_0(il[410]) + , poseidon2_B_39_1(il[411]) + , poseidon2_B_39_2(il[412]) + , poseidon2_B_39_3(il[413]) + , poseidon2_B_40_0(il[414]) + , poseidon2_B_40_1(il[415]) + , poseidon2_B_40_2(il[416]) + , poseidon2_B_40_3(il[417]) + , poseidon2_B_41_0(il[418]) + , poseidon2_B_41_1(il[419]) + , poseidon2_B_41_2(il[420]) + , poseidon2_B_41_3(il[421]) + , poseidon2_B_42_0(il[422]) + , poseidon2_B_42_1(il[423]) + , poseidon2_B_42_2(il[424]) + , poseidon2_B_42_3(il[425]) + , poseidon2_B_43_0(il[426]) + , poseidon2_B_43_1(il[427]) + , poseidon2_B_43_2(il[428]) + , poseidon2_B_43_3(il[429]) + , poseidon2_B_44_0(il[430]) + , poseidon2_B_44_1(il[431]) + , poseidon2_B_44_2(il[432]) + , poseidon2_B_44_3(il[433]) + , poseidon2_B_45_0(il[434]) + , poseidon2_B_45_1(il[435]) + , poseidon2_B_45_2(il[436]) + , poseidon2_B_45_3(il[437]) + , poseidon2_B_46_0(il[438]) + , poseidon2_B_46_1(il[439]) + , poseidon2_B_46_2(il[440]) + , poseidon2_B_46_3(il[441]) + , poseidon2_B_47_0(il[442]) + , poseidon2_B_47_1(il[443]) + , poseidon2_B_47_2(il[444]) + , poseidon2_B_47_3(il[445]) + , poseidon2_B_48_0(il[446]) + , poseidon2_B_48_1(il[447]) + , poseidon2_B_48_2(il[448]) + , poseidon2_B_48_3(il[449]) + , poseidon2_B_49_0(il[450]) + , poseidon2_B_49_1(il[451]) + , poseidon2_B_49_2(il[452]) + , poseidon2_B_49_3(il[453]) + , poseidon2_B_4_0(il[454]) + , poseidon2_B_4_1(il[455]) + , poseidon2_B_4_2(il[456]) + , poseidon2_B_4_3(il[457]) + , poseidon2_B_50_0(il[458]) + , poseidon2_B_50_1(il[459]) + , poseidon2_B_50_2(il[460]) + , poseidon2_B_50_3(il[461]) + , poseidon2_B_51_0(il[462]) + , poseidon2_B_51_1(il[463]) + , poseidon2_B_51_2(il[464]) + , poseidon2_B_51_3(il[465]) + , poseidon2_B_52_0(il[466]) + , poseidon2_B_52_1(il[467]) + , poseidon2_B_52_2(il[468]) + , poseidon2_B_52_3(il[469]) + , poseidon2_B_53_0(il[470]) + , poseidon2_B_53_1(il[471]) + , poseidon2_B_53_2(il[472]) + , poseidon2_B_53_3(il[473]) + , poseidon2_B_54_0(il[474]) + , poseidon2_B_54_1(il[475]) + , poseidon2_B_54_2(il[476]) + , poseidon2_B_54_3(il[477]) + , poseidon2_B_55_0(il[478]) + , poseidon2_B_55_1(il[479]) + , poseidon2_B_55_2(il[480]) + , poseidon2_B_55_3(il[481]) + , poseidon2_B_56_0(il[482]) + , poseidon2_B_56_1(il[483]) + , poseidon2_B_56_2(il[484]) + , poseidon2_B_56_3(il[485]) + , poseidon2_B_57_0(il[486]) + , poseidon2_B_57_1(il[487]) + , poseidon2_B_57_2(il[488]) + , poseidon2_B_57_3(il[489]) + , poseidon2_B_58_0(il[490]) + , poseidon2_B_58_1(il[491]) + , poseidon2_B_58_2(il[492]) + , poseidon2_B_58_3(il[493]) + , poseidon2_B_59_0(il[494]) + , poseidon2_B_59_1(il[495]) + , poseidon2_B_59_2(il[496]) + , poseidon2_B_59_3(il[497]) + , poseidon2_B_5_0(il[498]) + , poseidon2_B_5_1(il[499]) + , poseidon2_B_5_2(il[500]) + , poseidon2_B_5_3(il[501]) + , poseidon2_B_6_0(il[502]) + , poseidon2_B_6_1(il[503]) + , poseidon2_B_6_2(il[504]) + , poseidon2_B_6_3(il[505]) + , poseidon2_B_7_0(il[506]) + , poseidon2_B_7_1(il[507]) + , poseidon2_B_7_2(il[508]) + , poseidon2_B_7_3(il[509]) + , poseidon2_B_8_0(il[510]) + , poseidon2_B_8_1(il[511]) + , poseidon2_B_8_2(il[512]) + , poseidon2_B_8_3(il[513]) + , poseidon2_B_9_0(il[514]) + , poseidon2_B_9_1(il[515]) + , poseidon2_B_9_2(il[516]) + , poseidon2_B_9_3(il[517]) + , poseidon2_EXT_LAYER_4(il[518]) + , poseidon2_EXT_LAYER_5(il[519]) + , poseidon2_EXT_LAYER_6(il[520]) + , poseidon2_EXT_LAYER_7(il[521]) + , poseidon2_T_0_4(il[522]) + , poseidon2_T_0_5(il[523]) + , poseidon2_T_0_6(il[524]) + , poseidon2_T_0_7(il[525]) + , poseidon2_T_1_4(il[526]) + , poseidon2_T_1_5(il[527]) + , poseidon2_T_1_6(il[528]) + , poseidon2_T_1_7(il[529]) + , poseidon2_T_2_4(il[530]) + , poseidon2_T_2_5(il[531]) + , poseidon2_T_2_6(il[532]) + , poseidon2_T_2_7(il[533]) + , poseidon2_T_3_4(il[534]) + , poseidon2_T_3_5(il[535]) + , poseidon2_T_3_6(il[536]) + , poseidon2_T_3_7(il[537]) + , poseidon2_T_60_4(il[538]) + , poseidon2_T_60_5(il[539]) + , poseidon2_T_60_6(il[540]) + , poseidon2_T_60_7(il[541]) + , poseidon2_T_61_4(il[542]) + , poseidon2_T_61_5(il[543]) + , poseidon2_T_61_6(il[544]) + , poseidon2_T_61_7(il[545]) + , poseidon2_T_62_4(il[546]) + , poseidon2_T_62_5(il[547]) + , poseidon2_T_62_6(il[548]) + , poseidon2_T_62_7(il[549]) + , poseidon2_T_63_4(il[550]) + , poseidon2_T_63_5(il[551]) + , poseidon2_T_63_6(il[552]) + , poseidon2_T_63_7(il[553]) + , poseidon2_a_0(il[554]) + , poseidon2_a_1(il[555]) + , poseidon2_a_2(il[556]) + , poseidon2_a_3(il[557]) + , poseidon2_b_0(il[558]) + , poseidon2_b_1(il[559]) + , poseidon2_b_2(il[560]) + , poseidon2_b_3(il[561]) + , poseidon2_clk(il[562]) + , poseidon2_input_addr(il[563]) + , poseidon2_mem_addr_read_a(il[564]) + , poseidon2_mem_addr_read_b(il[565]) + , poseidon2_mem_addr_read_c(il[566]) + , poseidon2_mem_addr_read_d(il[567]) + , poseidon2_mem_addr_write_a(il[568]) + , poseidon2_mem_addr_write_b(il[569]) + , poseidon2_mem_addr_write_c(il[570]) + , poseidon2_mem_addr_write_d(il[571]) + , poseidon2_output_addr(il[572]) + , poseidon2_sel_poseidon_perm(il[573]) + , poseidon2_space_id(il[574]) + , range_check_alu_rng_chk(il[575]) + , range_check_clk(il[576]) + , range_check_cmp_hi_bits_rng_chk(il[577]) + , range_check_cmp_lo_bits_rng_chk(il[578]) + , range_check_dyn_diff(il[579]) + , range_check_dyn_rng_chk_bits(il[580]) + , range_check_dyn_rng_chk_pow_2(il[581]) + , range_check_gas_da_rng_chk(il[582]) + , range_check_gas_l2_rng_chk(il[583]) + , range_check_is_lte_u112(il[584]) + , range_check_is_lte_u128(il[585]) + , range_check_is_lte_u16(il[586]) + , range_check_is_lte_u32(il[587]) + , range_check_is_lte_u48(il[588]) + , range_check_is_lte_u64(il[589]) + , range_check_is_lte_u80(il[590]) + , range_check_is_lte_u96(il[591]) + , range_check_mem_rng_chk(il[592]) + , range_check_rng_chk_bits(il[593]) + , range_check_sel_lookup_0(il[594]) + , range_check_sel_lookup_1(il[595]) + , range_check_sel_lookup_2(il[596]) + , range_check_sel_lookup_3(il[597]) + , range_check_sel_lookup_4(il[598]) + , range_check_sel_lookup_5(il[599]) + , range_check_sel_lookup_6(il[600]) + , range_check_sel_rng_chk(il[601]) + , range_check_u16_r0(il[602]) + , range_check_u16_r1(il[603]) + , range_check_u16_r2(il[604]) + , range_check_u16_r3(il[605]) + , range_check_u16_r4(il[606]) + , range_check_u16_r5(il[607]) + , range_check_u16_r6(il[608]) + , range_check_u16_r7(il[609]) + , range_check_value(il[610]) + , sha256_clk(il[611]) + , sha256_input(il[612]) + , sha256_output(il[613]) + , sha256_sel_sha256_compression(il[614]) + , sha256_state(il[615]) + , slice_addr(il[616]) + , slice_clk(il[617]) + , slice_cnt(il[618]) + , slice_col_offset(il[619]) + , slice_one_min_inv(il[620]) + , slice_sel_cd_cpy(il[621]) + , slice_sel_mem_active(il[622]) + , slice_sel_return(il[623]) + , slice_sel_start(il[624]) + , slice_space_id(il[625]) + , slice_val(il[626]) + , lookup_rng_chk_pow_2_counts(il[627]) + , lookup_rng_chk_diff_counts(il[628]) + , lookup_rng_chk_0_counts(il[629]) + , lookup_rng_chk_1_counts(il[630]) + , lookup_rng_chk_2_counts(il[631]) + , lookup_rng_chk_3_counts(il[632]) + , lookup_rng_chk_4_counts(il[633]) + , lookup_rng_chk_5_counts(il[634]) + , lookup_rng_chk_6_counts(il[635]) + , lookup_rng_chk_7_counts(il[636]) + , lookup_pow_2_0_counts(il[637]) + , lookup_pow_2_1_counts(il[638]) + , lookup_byte_lengths_counts(il[639]) + , lookup_byte_operations_counts(il[640]) + , lookup_opcode_gas_counts(il[641]) + , kernel_output_lookup_counts(il[642]) + , lookup_into_kernel_counts(il[643]) + , lookup_cd_value_counts(il[644]) + , lookup_ret_value_counts(il[645]) + , incl_main_tag_err_counts(il[646]) + , incl_mem_tag_err_counts(il[647]) + , perm_rng_mem_inv(il[648]) + , perm_rng_cmp_lo_inv(il[649]) + , perm_rng_cmp_hi_inv(il[650]) + , perm_rng_alu_inv(il[651]) + , perm_cmp_alu_inv(il[652]) + , perm_rng_gas_l2_inv(il[653]) + , perm_rng_gas_da_inv(il[654]) + , perm_l2_start_gas_inv(il[655]) + , perm_da_start_gas_inv(il[656]) + , perm_l2_end_gas_inv(il[657]) + , perm_da_end_gas_inv(il[658]) + , perm_pos_mem_read_a_inv(il[659]) + , perm_pos_mem_read_b_inv(il[660]) + , perm_pos_mem_read_c_inv(il[661]) + , perm_pos_mem_read_d_inv(il[662]) + , perm_pos_mem_write_a_inv(il[663]) + , perm_pos_mem_write_b_inv(il[664]) + , perm_pos_mem_write_c_inv(il[665]) + , perm_pos_mem_write_d_inv(il[666]) + , perm_slice_mem_inv(il[667]) + , perm_main_alu_inv(il[668]) + , perm_main_bin_inv(il[669]) + , perm_main_conv_inv(il[670]) + , perm_main_sha256_inv(il[671]) + , perm_main_pos2_perm_inv(il[672]) + , perm_main_slice_inv(il[673]) + , perm_main_mem_a_inv(il[674]) + , perm_main_mem_b_inv(il[675]) + , perm_main_mem_c_inv(il[676]) + , perm_main_mem_d_inv(il[677]) + , perm_main_mem_ind_addr_a_inv(il[678]) + , perm_main_mem_ind_addr_b_inv(il[679]) + , perm_main_mem_ind_addr_c_inv(il[680]) + , perm_main_mem_ind_addr_d_inv(il[681]) + , lookup_rng_chk_pow_2_inv(il[682]) + , lookup_rng_chk_diff_inv(il[683]) + , lookup_rng_chk_0_inv(il[684]) + , lookup_rng_chk_1_inv(il[685]) + , lookup_rng_chk_2_inv(il[686]) + , lookup_rng_chk_3_inv(il[687]) + , lookup_rng_chk_4_inv(il[688]) + , lookup_rng_chk_5_inv(il[689]) + , lookup_rng_chk_6_inv(il[690]) + , lookup_rng_chk_7_inv(il[691]) + , lookup_pow_2_0_inv(il[692]) + , lookup_pow_2_1_inv(il[693]) + , lookup_byte_lengths_inv(il[694]) + , lookup_byte_operations_inv(il[695]) + , lookup_opcode_gas_inv(il[696]) + , kernel_output_lookup_inv(il[697]) + , lookup_into_kernel_inv(il[698]) + , lookup_cd_value_inv(il[699]) + , lookup_ret_value_inv(il[700]) + , incl_main_tag_err_inv(il[701]) + , incl_mem_tag_err_inv(il[702]) + , binary_acc_ia_shift(il[703]) + , binary_acc_ib_shift(il[704]) + , binary_acc_ic_shift(il[705]) + , binary_mem_tag_ctr_shift(il[706]) + , binary_op_id_shift(il[707]) + , cmp_a_hi_shift(il[708]) + , cmp_a_lo_shift(il[709]) + , cmp_b_hi_shift(il[710]) + , cmp_b_lo_shift(il[711]) + , cmp_cmp_rng_ctr_shift(il[712]) + , cmp_op_gt_shift(il[713]) + , cmp_p_sub_a_hi_shift(il[714]) + , cmp_p_sub_a_lo_shift(il[715]) + , cmp_p_sub_b_hi_shift(il[716]) + , cmp_p_sub_b_lo_shift(il[717]) + , cmp_sel_rng_chk_shift(il[718]) + , main_da_gas_remaining_shift(il[719]) + , main_emit_l2_to_l1_msg_write_offset_shift(il[720]) + , main_emit_note_hash_write_offset_shift(il[721]) + , main_emit_nullifier_write_offset_shift(il[722]) + , main_emit_unencrypted_log_write_offset_shift(il[723]) + , main_internal_return_ptr_shift(il[724]) + , main_l1_to_l2_msg_exists_write_offset_shift(il[725]) + , main_l2_gas_remaining_shift(il[726]) + , main_note_hash_exist_write_offset_shift(il[727]) + , main_nullifier_exists_write_offset_shift(il[728]) + , main_nullifier_non_exists_write_offset_shift(il[729]) + , main_pc_shift(il[730]) + , main_sel_execution_end_shift(il[731]) + , main_sel_execution_row_shift(il[732]) + , main_sload_write_offset_shift(il[733]) + , main_sstore_write_offset_shift(il[734]) + , mem_glob_addr_shift(il[735]) + , mem_rw_shift(il[736]) + , mem_sel_mem_shift(il[737]) + , mem_tag_shift(il[738]) + , mem_tsp_shift(il[739]) + , mem_val_shift(il[740]) + , slice_addr_shift(il[741]) + , slice_clk_shift(il[742]) + , slice_cnt_shift(il[743]) + , slice_col_offset_shift(il[744]) + , slice_sel_cd_cpy_shift(il[745]) + , slice_sel_mem_active_shift(il[746]) + , slice_sel_return_shift(il[747]) + , slice_sel_start_shift(il[748]) + , slice_space_id_shift(il[749]) {} AvmFlavor::ProverPolynomials::ProverPolynomials(ProvingKey& proving_key) diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp index a6fd7a9331e..a0d83f7122b 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp @@ -95,10 +95,10 @@ template using tuple_cat_t = decltype(std::tuple_cat(std:: // The entities that will be used in the flavor. // clang-format off #define PRECOMPUTED_ENTITIES byte_lookup_sel_bin, byte_lookup_table_byte_lengths, byte_lookup_table_in_tags, byte_lookup_table_input_a, byte_lookup_table_input_b, byte_lookup_table_op_id, byte_lookup_table_output, gas_base_da_gas_fixed_table, gas_base_l2_gas_fixed_table, gas_dyn_da_gas_fixed_table, gas_dyn_l2_gas_fixed_table, gas_sel_gas_cost, main_clk, main_sel_da_end_gas_kernel_input, main_sel_da_start_gas_kernel_input, main_sel_first, main_sel_l2_end_gas_kernel_input, main_sel_l2_start_gas_kernel_input, main_sel_start_exec, main_zeroes, powers_power_of_2 -#define WIRE_ENTITIES main_kernel_inputs, main_kernel_value_out, main_kernel_side_effect_out, main_kernel_metadata_out, main_calldata, main_returndata, alu_a_hi, alu_a_lo, alu_b_hi, alu_b_lo, alu_b_pow, alu_c_hi, alu_c_lo, alu_cf, alu_clk, alu_cmp_gadget_gt, alu_cmp_gadget_input_a, alu_cmp_gadget_input_b, alu_cmp_gadget_result, alu_cmp_gadget_sel, alu_ff_tag, alu_ia, alu_ib, alu_ic, alu_in_tag, alu_max_bits_sub_b_bits, alu_max_bits_sub_b_pow, alu_op_add, alu_op_cast, alu_op_div, alu_op_eq, alu_op_lt, alu_op_lte, alu_op_mul, alu_op_not, alu_op_shl, alu_op_shr, alu_op_sub, alu_partial_prod_hi, alu_partial_prod_lo, alu_range_check_input_value, alu_range_check_num_bits, alu_range_check_sel, alu_remainder, alu_sel_alu, alu_sel_cmp, alu_sel_shift_which, alu_u128_tag, alu_u16_tag, alu_u1_tag, alu_u32_tag, alu_u64_tag, alu_u8_tag, alu_zero_shift, binary_acc_ia, binary_acc_ib, binary_acc_ic, binary_clk, binary_ia_bytes, binary_ib_bytes, binary_ic_bytes, binary_in_tag, binary_mem_tag_ctr, binary_mem_tag_ctr_inv, binary_op_id, binary_sel_bin, binary_start, cmp_a_hi, cmp_a_lo, cmp_b_hi, cmp_b_lo, cmp_borrow, cmp_clk, cmp_cmp_rng_ctr, cmp_input_a, cmp_input_b, cmp_op_eq, cmp_op_eq_diff_inv, cmp_op_gt, cmp_p_a_borrow, cmp_p_b_borrow, cmp_p_sub_a_hi, cmp_p_sub_a_lo, cmp_p_sub_b_hi, cmp_p_sub_b_lo, cmp_range_chk_clk, cmp_res_hi, cmp_res_lo, cmp_result, cmp_sel_cmp, cmp_sel_rng_chk, cmp_shift_sel, conversion_clk, conversion_input, conversion_num_limbs, conversion_output_bits, conversion_radix, conversion_sel_to_radix_le, keccakf1600_clk, keccakf1600_input, keccakf1600_output, keccakf1600_sel_keccakf1600, main_abs_da_rem_gas, main_abs_l2_rem_gas, main_alu_in_tag, main_base_da_gas_op_cost, main_base_l2_gas_op_cost, main_bin_op_id, main_call_ptr, main_da_gas_remaining, main_da_out_of_gas, main_dyn_da_gas_op_cost, main_dyn_gas_multiplier, main_dyn_l2_gas_op_cost, main_emit_l2_to_l1_msg_write_offset, main_emit_note_hash_write_offset, main_emit_nullifier_write_offset, main_emit_unencrypted_log_write_offset, main_ia, main_ib, main_ic, main_id, main_id_zero, main_ind_addr_a, main_ind_addr_b, main_ind_addr_c, main_ind_addr_d, main_internal_return_ptr, main_inv, main_is_fake_row, main_is_gas_accounted, main_kernel_in_offset, main_kernel_out_offset, main_l1_to_l2_msg_exists_write_offset, main_l2_gas_remaining, main_l2_out_of_gas, main_mem_addr_a, main_mem_addr_b, main_mem_addr_c, main_mem_addr_d, main_note_hash_exist_write_offset, main_nullifier_exists_write_offset, main_nullifier_non_exists_write_offset, main_op_err, main_opcode_val, main_pc, main_r_in_tag, main_rwa, main_rwb, main_rwc, main_rwd, main_sel_alu, main_sel_bin, main_sel_calldata, main_sel_execution_end, main_sel_execution_row, main_sel_kernel_inputs, main_sel_kernel_out, main_sel_mem_op_a, main_sel_mem_op_b, main_sel_mem_op_c, main_sel_mem_op_d, main_sel_mov_ia_to_ic, main_sel_mov_ib_to_ic, main_sel_op_add, main_sel_op_address, main_sel_op_and, main_sel_op_block_number, main_sel_op_calldata_copy, main_sel_op_cast, main_sel_op_chain_id, main_sel_op_dagasleft, main_sel_op_div, main_sel_op_ecadd, main_sel_op_emit_l2_to_l1_msg, main_sel_op_emit_note_hash, main_sel_op_emit_nullifier, main_sel_op_emit_unencrypted_log, main_sel_op_eq, main_sel_op_external_call, main_sel_op_external_return, main_sel_op_external_revert, main_sel_op_fdiv, main_sel_op_fee_per_da_gas, main_sel_op_fee_per_l2_gas, main_sel_op_function_selector, main_sel_op_get_contract_instance, main_sel_op_internal_call, main_sel_op_internal_return, main_sel_op_is_static_call, main_sel_op_jump, main_sel_op_jumpi, main_sel_op_keccak, main_sel_op_l1_to_l2_msg_exists, main_sel_op_l2gasleft, main_sel_op_lt, main_sel_op_lte, main_sel_op_mov, main_sel_op_msm, main_sel_op_mul, main_sel_op_not, main_sel_op_note_hash_exists, main_sel_op_nullifier_exists, main_sel_op_or, main_sel_op_poseidon2, main_sel_op_radix_le, main_sel_op_sender, main_sel_op_set, main_sel_op_sha256, main_sel_op_shl, main_sel_op_shr, main_sel_op_sload, main_sel_op_sstore, main_sel_op_static_call, main_sel_op_sub, main_sel_op_timestamp, main_sel_op_transaction_fee, main_sel_op_version, main_sel_op_xor, main_sel_q_kernel_lookup, main_sel_q_kernel_output_lookup, main_sel_resolve_ind_addr_a, main_sel_resolve_ind_addr_b, main_sel_resolve_ind_addr_c, main_sel_resolve_ind_addr_d, main_sel_returndata, main_sel_rng_16, main_sel_rng_8, main_sel_slice_gadget, main_side_effect_counter, main_sload_write_offset, main_space_id, main_sstore_write_offset, main_tag_err, main_w_in_tag, mem_addr, mem_clk, mem_diff, mem_glob_addr, mem_last, mem_lastAccess, mem_one_min_inv, mem_r_in_tag, mem_rw, mem_sel_mem, mem_sel_mov_ia_to_ic, mem_sel_mov_ib_to_ic, mem_sel_op_a, mem_sel_op_b, mem_sel_op_c, mem_sel_op_d, mem_sel_op_poseidon_read_a, mem_sel_op_poseidon_read_b, mem_sel_op_poseidon_read_c, mem_sel_op_poseidon_read_d, mem_sel_op_poseidon_write_a, mem_sel_op_poseidon_write_b, mem_sel_op_poseidon_write_c, mem_sel_op_poseidon_write_d, mem_sel_op_slice, mem_sel_resolve_ind_addr_a, mem_sel_resolve_ind_addr_b, mem_sel_resolve_ind_addr_c, mem_sel_resolve_ind_addr_d, mem_sel_rng_chk, mem_skip_check_tag, mem_space_id, mem_tag, mem_tag_err, mem_tsp, mem_val, mem_w_in_tag, poseidon2_B_10_0, poseidon2_B_10_1, poseidon2_B_10_2, poseidon2_B_10_3, poseidon2_B_11_0, poseidon2_B_11_1, poseidon2_B_11_2, poseidon2_B_11_3, poseidon2_B_12_0, poseidon2_B_12_1, poseidon2_B_12_2, poseidon2_B_12_3, poseidon2_B_13_0, poseidon2_B_13_1, poseidon2_B_13_2, poseidon2_B_13_3, poseidon2_B_14_0, poseidon2_B_14_1, poseidon2_B_14_2, poseidon2_B_14_3, poseidon2_B_15_0, poseidon2_B_15_1, poseidon2_B_15_2, poseidon2_B_15_3, poseidon2_B_16_0, poseidon2_B_16_1, poseidon2_B_16_2, poseidon2_B_16_3, poseidon2_B_17_0, poseidon2_B_17_1, poseidon2_B_17_2, poseidon2_B_17_3, poseidon2_B_18_0, poseidon2_B_18_1, poseidon2_B_18_2, poseidon2_B_18_3, poseidon2_B_19_0, poseidon2_B_19_1, poseidon2_B_19_2, poseidon2_B_19_3, poseidon2_B_20_0, poseidon2_B_20_1, poseidon2_B_20_2, poseidon2_B_20_3, poseidon2_B_21_0, poseidon2_B_21_1, poseidon2_B_21_2, poseidon2_B_21_3, poseidon2_B_22_0, poseidon2_B_22_1, poseidon2_B_22_2, poseidon2_B_22_3, poseidon2_B_23_0, poseidon2_B_23_1, poseidon2_B_23_2, poseidon2_B_23_3, poseidon2_B_24_0, poseidon2_B_24_1, poseidon2_B_24_2, poseidon2_B_24_3, poseidon2_B_25_0, poseidon2_B_25_1, poseidon2_B_25_2, poseidon2_B_25_3, poseidon2_B_26_0, poseidon2_B_26_1, poseidon2_B_26_2, poseidon2_B_26_3, poseidon2_B_27_0, poseidon2_B_27_1, poseidon2_B_27_2, poseidon2_B_27_3, poseidon2_B_28_0, poseidon2_B_28_1, poseidon2_B_28_2, poseidon2_B_28_3, poseidon2_B_29_0, poseidon2_B_29_1, poseidon2_B_29_2, poseidon2_B_29_3, poseidon2_B_30_0, poseidon2_B_30_1, poseidon2_B_30_2, poseidon2_B_30_3, poseidon2_B_31_0, poseidon2_B_31_1, poseidon2_B_31_2, poseidon2_B_31_3, poseidon2_B_32_0, poseidon2_B_32_1, poseidon2_B_32_2, poseidon2_B_32_3, poseidon2_B_33_0, poseidon2_B_33_1, poseidon2_B_33_2, poseidon2_B_33_3, poseidon2_B_34_0, poseidon2_B_34_1, poseidon2_B_34_2, poseidon2_B_34_3, poseidon2_B_35_0, poseidon2_B_35_1, poseidon2_B_35_2, poseidon2_B_35_3, poseidon2_B_36_0, poseidon2_B_36_1, poseidon2_B_36_2, poseidon2_B_36_3, poseidon2_B_37_0, poseidon2_B_37_1, poseidon2_B_37_2, poseidon2_B_37_3, poseidon2_B_38_0, poseidon2_B_38_1, poseidon2_B_38_2, poseidon2_B_38_3, poseidon2_B_39_0, poseidon2_B_39_1, poseidon2_B_39_2, poseidon2_B_39_3, poseidon2_B_40_0, poseidon2_B_40_1, poseidon2_B_40_2, poseidon2_B_40_3, poseidon2_B_41_0, poseidon2_B_41_1, poseidon2_B_41_2, poseidon2_B_41_3, poseidon2_B_42_0, poseidon2_B_42_1, poseidon2_B_42_2, poseidon2_B_42_3, poseidon2_B_43_0, poseidon2_B_43_1, poseidon2_B_43_2, poseidon2_B_43_3, poseidon2_B_44_0, poseidon2_B_44_1, poseidon2_B_44_2, poseidon2_B_44_3, poseidon2_B_45_0, poseidon2_B_45_1, poseidon2_B_45_2, poseidon2_B_45_3, poseidon2_B_46_0, poseidon2_B_46_1, poseidon2_B_46_2, poseidon2_B_46_3, poseidon2_B_47_0, poseidon2_B_47_1, poseidon2_B_47_2, poseidon2_B_47_3, poseidon2_B_48_0, poseidon2_B_48_1, poseidon2_B_48_2, poseidon2_B_48_3, poseidon2_B_49_0, poseidon2_B_49_1, poseidon2_B_49_2, poseidon2_B_49_3, poseidon2_B_4_0, poseidon2_B_4_1, poseidon2_B_4_2, poseidon2_B_4_3, poseidon2_B_50_0, poseidon2_B_50_1, poseidon2_B_50_2, poseidon2_B_50_3, poseidon2_B_51_0, poseidon2_B_51_1, poseidon2_B_51_2, poseidon2_B_51_3, poseidon2_B_52_0, poseidon2_B_52_1, poseidon2_B_52_2, poseidon2_B_52_3, poseidon2_B_53_0, poseidon2_B_53_1, poseidon2_B_53_2, poseidon2_B_53_3, poseidon2_B_54_0, poseidon2_B_54_1, poseidon2_B_54_2, poseidon2_B_54_3, poseidon2_B_55_0, poseidon2_B_55_1, poseidon2_B_55_2, poseidon2_B_55_3, poseidon2_B_56_0, poseidon2_B_56_1, poseidon2_B_56_2, poseidon2_B_56_3, poseidon2_B_57_0, poseidon2_B_57_1, poseidon2_B_57_2, poseidon2_B_57_3, poseidon2_B_58_0, poseidon2_B_58_1, poseidon2_B_58_2, poseidon2_B_58_3, poseidon2_B_59_0, poseidon2_B_59_1, poseidon2_B_59_2, poseidon2_B_59_3, poseidon2_B_5_0, poseidon2_B_5_1, poseidon2_B_5_2, poseidon2_B_5_3, poseidon2_B_6_0, poseidon2_B_6_1, poseidon2_B_6_2, poseidon2_B_6_3, poseidon2_B_7_0, poseidon2_B_7_1, poseidon2_B_7_2, poseidon2_B_7_3, poseidon2_B_8_0, poseidon2_B_8_1, poseidon2_B_8_2, poseidon2_B_8_3, poseidon2_B_9_0, poseidon2_B_9_1, poseidon2_B_9_2, poseidon2_B_9_3, poseidon2_EXT_LAYER_4, poseidon2_EXT_LAYER_5, poseidon2_EXT_LAYER_6, poseidon2_EXT_LAYER_7, poseidon2_T_0_4, poseidon2_T_0_5, poseidon2_T_0_6, poseidon2_T_0_7, poseidon2_T_1_4, poseidon2_T_1_5, poseidon2_T_1_6, poseidon2_T_1_7, poseidon2_T_2_4, poseidon2_T_2_5, poseidon2_T_2_6, poseidon2_T_2_7, poseidon2_T_3_4, poseidon2_T_3_5, poseidon2_T_3_6, poseidon2_T_3_7, poseidon2_T_60_4, poseidon2_T_60_5, poseidon2_T_60_6, poseidon2_T_60_7, poseidon2_T_61_4, poseidon2_T_61_5, poseidon2_T_61_6, poseidon2_T_61_7, poseidon2_T_62_4, poseidon2_T_62_5, poseidon2_T_62_6, poseidon2_T_62_7, poseidon2_T_63_4, poseidon2_T_63_5, poseidon2_T_63_6, poseidon2_T_63_7, poseidon2_a_0, poseidon2_a_1, poseidon2_a_2, poseidon2_a_3, poseidon2_b_0, poseidon2_b_1, poseidon2_b_2, poseidon2_b_3, poseidon2_clk, poseidon2_full_a_0, poseidon2_full_a_1, poseidon2_full_a_2, poseidon2_full_a_3, poseidon2_full_b_0, poseidon2_full_b_1, poseidon2_full_b_2, poseidon2_full_b_3, poseidon2_full_clk, poseidon2_full_end_poseidon, poseidon2_full_execute_poseidon_perm, poseidon2_full_input_0, poseidon2_full_input_1, poseidon2_full_input_2, poseidon2_full_input_len, poseidon2_full_num_perm_rounds_rem, poseidon2_full_num_perm_rounds_rem_inv, poseidon2_full_output, poseidon2_full_padding, poseidon2_full_sel_poseidon, poseidon2_full_start_poseidon, poseidon2_input_addr, poseidon2_mem_addr_read_a, poseidon2_mem_addr_read_b, poseidon2_mem_addr_read_c, poseidon2_mem_addr_read_d, poseidon2_mem_addr_write_a, poseidon2_mem_addr_write_b, poseidon2_mem_addr_write_c, poseidon2_mem_addr_write_d, poseidon2_output_addr, poseidon2_sel_poseidon_perm, poseidon2_sel_poseidon_perm_immediate, poseidon2_sel_poseidon_perm_mem_op, poseidon2_space_id, range_check_alu_rng_chk, range_check_clk, range_check_cmp_hi_bits_rng_chk, range_check_cmp_lo_bits_rng_chk, range_check_dyn_diff, range_check_dyn_rng_chk_bits, range_check_dyn_rng_chk_pow_2, range_check_gas_da_rng_chk, range_check_gas_l2_rng_chk, range_check_is_lte_u112, range_check_is_lte_u128, range_check_is_lte_u16, range_check_is_lte_u32, range_check_is_lte_u48, range_check_is_lte_u64, range_check_is_lte_u80, range_check_is_lte_u96, range_check_mem_rng_chk, range_check_rng_chk_bits, range_check_sel_lookup_0, range_check_sel_lookup_1, range_check_sel_lookup_2, range_check_sel_lookup_3, range_check_sel_lookup_4, range_check_sel_lookup_5, range_check_sel_lookup_6, range_check_sel_rng_chk, range_check_u16_r0, range_check_u16_r1, range_check_u16_r2, range_check_u16_r3, range_check_u16_r4, range_check_u16_r5, range_check_u16_r6, range_check_u16_r7, range_check_value, sha256_clk, sha256_input, sha256_output, sha256_sel_sha256_compression, sha256_state, slice_addr, slice_clk, slice_cnt, slice_col_offset, slice_one_min_inv, slice_sel_cd_cpy, slice_sel_mem_active, slice_sel_return, slice_sel_start, slice_space_id, slice_val, lookup_rng_chk_pow_2_counts, lookup_rng_chk_diff_counts, lookup_rng_chk_0_counts, lookup_rng_chk_1_counts, lookup_rng_chk_2_counts, lookup_rng_chk_3_counts, lookup_rng_chk_4_counts, lookup_rng_chk_5_counts, lookup_rng_chk_6_counts, lookup_rng_chk_7_counts, lookup_pow_2_0_counts, lookup_pow_2_1_counts, lookup_byte_lengths_counts, lookup_byte_operations_counts, lookup_opcode_gas_counts, kernel_output_lookup_counts, lookup_into_kernel_counts, lookup_cd_value_counts, lookup_ret_value_counts, incl_main_tag_err_counts, incl_mem_tag_err_counts -#define DERIVED_WITNESS_ENTITIES perm_rng_mem_inv, perm_rng_cmp_lo_inv, perm_rng_cmp_hi_inv, perm_rng_alu_inv, perm_cmp_alu_inv, perm_rng_gas_l2_inv, perm_rng_gas_da_inv, perm_l2_start_gas_inv, perm_da_start_gas_inv, perm_l2_end_gas_inv, perm_da_end_gas_inv, perm_pos_mem_read_a_inv, perm_pos_mem_read_b_inv, perm_pos_mem_read_c_inv, perm_pos_mem_read_d_inv, perm_pos_mem_write_a_inv, perm_pos_mem_write_b_inv, perm_pos_mem_write_c_inv, perm_pos_mem_write_d_inv, perm_pos2_fixed_pos2_perm_inv, perm_slice_mem_inv, perm_main_alu_inv, perm_main_bin_inv, perm_main_conv_inv, perm_main_sha256_inv, perm_main_pos2_perm_inv, perm_main_slice_inv, perm_main_mem_a_inv, perm_main_mem_b_inv, perm_main_mem_c_inv, perm_main_mem_d_inv, perm_main_mem_ind_addr_a_inv, perm_main_mem_ind_addr_b_inv, perm_main_mem_ind_addr_c_inv, perm_main_mem_ind_addr_d_inv, lookup_rng_chk_pow_2_inv, lookup_rng_chk_diff_inv, lookup_rng_chk_0_inv, lookup_rng_chk_1_inv, lookup_rng_chk_2_inv, lookup_rng_chk_3_inv, lookup_rng_chk_4_inv, lookup_rng_chk_5_inv, lookup_rng_chk_6_inv, lookup_rng_chk_7_inv, lookup_pow_2_0_inv, lookup_pow_2_1_inv, lookup_byte_lengths_inv, lookup_byte_operations_inv, lookup_opcode_gas_inv, kernel_output_lookup_inv, lookup_into_kernel_inv, lookup_cd_value_inv, lookup_ret_value_inv, incl_main_tag_err_inv, incl_mem_tag_err_inv -#define SHIFTED_ENTITIES binary_acc_ia_shift, binary_acc_ib_shift, binary_acc_ic_shift, binary_mem_tag_ctr_shift, binary_op_id_shift, cmp_a_hi_shift, cmp_a_lo_shift, cmp_b_hi_shift, cmp_b_lo_shift, cmp_cmp_rng_ctr_shift, cmp_op_gt_shift, cmp_p_sub_a_hi_shift, cmp_p_sub_a_lo_shift, cmp_p_sub_b_hi_shift, cmp_p_sub_b_lo_shift, cmp_sel_rng_chk_shift, main_da_gas_remaining_shift, main_emit_l2_to_l1_msg_write_offset_shift, main_emit_note_hash_write_offset_shift, main_emit_nullifier_write_offset_shift, main_emit_unencrypted_log_write_offset_shift, main_internal_return_ptr_shift, main_l1_to_l2_msg_exists_write_offset_shift, main_l2_gas_remaining_shift, main_note_hash_exist_write_offset_shift, main_nullifier_exists_write_offset_shift, main_nullifier_non_exists_write_offset_shift, main_pc_shift, main_sel_execution_end_shift, main_sel_execution_row_shift, main_sload_write_offset_shift, main_sstore_write_offset_shift, mem_glob_addr_shift, mem_rw_shift, mem_sel_mem_shift, mem_tag_shift, mem_tsp_shift, mem_val_shift, poseidon2_full_a_0_shift, poseidon2_full_a_1_shift, poseidon2_full_a_2_shift, poseidon2_full_a_3_shift, poseidon2_full_execute_poseidon_perm_shift, poseidon2_full_input_0_shift, poseidon2_full_input_1_shift, poseidon2_full_input_2_shift, poseidon2_full_num_perm_rounds_rem_shift, poseidon2_full_sel_poseidon_shift, poseidon2_full_start_poseidon_shift, slice_addr_shift, slice_clk_shift, slice_cnt_shift, slice_col_offset_shift, slice_sel_cd_cpy_shift, slice_sel_mem_active_shift, slice_sel_return_shift, slice_sel_start_shift, slice_space_id_shift -#define TO_BE_SHIFTED(e) e.binary_acc_ia, e.binary_acc_ib, e.binary_acc_ic, e.binary_mem_tag_ctr, e.binary_op_id, e.cmp_a_hi, e.cmp_a_lo, e.cmp_b_hi, e.cmp_b_lo, e.cmp_cmp_rng_ctr, e.cmp_op_gt, e.cmp_p_sub_a_hi, e.cmp_p_sub_a_lo, e.cmp_p_sub_b_hi, e.cmp_p_sub_b_lo, e.cmp_sel_rng_chk, e.main_da_gas_remaining, e.main_emit_l2_to_l1_msg_write_offset, e.main_emit_note_hash_write_offset, e.main_emit_nullifier_write_offset, e.main_emit_unencrypted_log_write_offset, e.main_internal_return_ptr, e.main_l1_to_l2_msg_exists_write_offset, e.main_l2_gas_remaining, e.main_note_hash_exist_write_offset, e.main_nullifier_exists_write_offset, e.main_nullifier_non_exists_write_offset, e.main_pc, e.main_sel_execution_end, e.main_sel_execution_row, e.main_sload_write_offset, e.main_sstore_write_offset, e.mem_glob_addr, e.mem_rw, e.mem_sel_mem, e.mem_tag, e.mem_tsp, e.mem_val, e.poseidon2_full_a_0, e.poseidon2_full_a_1, e.poseidon2_full_a_2, e.poseidon2_full_a_3, e.poseidon2_full_execute_poseidon_perm, e.poseidon2_full_input_0, e.poseidon2_full_input_1, e.poseidon2_full_input_2, e.poseidon2_full_num_perm_rounds_rem, e.poseidon2_full_sel_poseidon, e.poseidon2_full_start_poseidon, e.slice_addr, e.slice_clk, e.slice_cnt, e.slice_col_offset, e.slice_sel_cd_cpy, e.slice_sel_mem_active, e.slice_sel_return, e.slice_sel_start, e.slice_space_id +#define WIRE_ENTITIES main_kernel_inputs, main_kernel_value_out, main_kernel_side_effect_out, main_kernel_metadata_out, main_calldata, main_returndata, alu_a_hi, alu_a_lo, alu_b_hi, alu_b_lo, alu_b_pow, alu_c_hi, alu_c_lo, alu_cf, alu_clk, alu_cmp_gadget_gt, alu_cmp_gadget_input_a, alu_cmp_gadget_input_b, alu_cmp_gadget_result, alu_cmp_gadget_sel, alu_ff_tag, alu_ia, alu_ib, alu_ic, alu_in_tag, alu_max_bits_sub_b_bits, alu_max_bits_sub_b_pow, alu_op_add, alu_op_cast, alu_op_div, alu_op_eq, alu_op_lt, alu_op_lte, alu_op_mul, alu_op_not, alu_op_shl, alu_op_shr, alu_op_sub, alu_partial_prod_hi, alu_partial_prod_lo, alu_range_check_input_value, alu_range_check_num_bits, alu_range_check_sel, alu_remainder, alu_sel_alu, alu_sel_cmp, alu_sel_shift_which, alu_u128_tag, alu_u16_tag, alu_u1_tag, alu_u32_tag, alu_u64_tag, alu_u8_tag, alu_zero_shift, binary_acc_ia, binary_acc_ib, binary_acc_ic, binary_clk, binary_ia_bytes, binary_ib_bytes, binary_ic_bytes, binary_in_tag, binary_mem_tag_ctr, binary_mem_tag_ctr_inv, binary_op_id, binary_sel_bin, binary_start, cmp_a_hi, cmp_a_lo, cmp_b_hi, cmp_b_lo, cmp_borrow, cmp_clk, cmp_cmp_rng_ctr, cmp_input_a, cmp_input_b, cmp_op_eq, cmp_op_eq_diff_inv, cmp_op_gt, cmp_p_a_borrow, cmp_p_b_borrow, cmp_p_sub_a_hi, cmp_p_sub_a_lo, cmp_p_sub_b_hi, cmp_p_sub_b_lo, cmp_range_chk_clk, cmp_res_hi, cmp_res_lo, cmp_result, cmp_sel_cmp, cmp_sel_rng_chk, cmp_shift_sel, conversion_clk, conversion_input, conversion_num_limbs, conversion_output_bits, conversion_radix, conversion_sel_to_radix_le, keccakf1600_clk, keccakf1600_input, keccakf1600_output, keccakf1600_sel_keccakf1600, main_abs_da_rem_gas, main_abs_l2_rem_gas, main_alu_in_tag, main_base_da_gas_op_cost, main_base_l2_gas_op_cost, main_bin_op_id, main_call_ptr, main_da_gas_remaining, main_da_out_of_gas, main_dyn_da_gas_op_cost, main_dyn_gas_multiplier, main_dyn_l2_gas_op_cost, main_emit_l2_to_l1_msg_write_offset, main_emit_note_hash_write_offset, main_emit_nullifier_write_offset, main_emit_unencrypted_log_write_offset, main_ia, main_ib, main_ic, main_id, main_id_zero, main_ind_addr_a, main_ind_addr_b, main_ind_addr_c, main_ind_addr_d, main_internal_return_ptr, main_inv, main_is_fake_row, main_is_gas_accounted, main_kernel_in_offset, main_kernel_out_offset, main_l1_to_l2_msg_exists_write_offset, main_l2_gas_remaining, main_l2_out_of_gas, main_mem_addr_a, main_mem_addr_b, main_mem_addr_c, main_mem_addr_d, main_note_hash_exist_write_offset, main_nullifier_exists_write_offset, main_nullifier_non_exists_write_offset, main_op_err, main_opcode_val, main_pc, main_r_in_tag, main_rwa, main_rwb, main_rwc, main_rwd, main_sel_alu, main_sel_bin, main_sel_calldata, main_sel_execution_end, main_sel_execution_row, main_sel_kernel_inputs, main_sel_kernel_out, main_sel_mem_op_a, main_sel_mem_op_b, main_sel_mem_op_c, main_sel_mem_op_d, main_sel_mov_ia_to_ic, main_sel_mov_ib_to_ic, main_sel_op_add, main_sel_op_address, main_sel_op_and, main_sel_op_block_number, main_sel_op_calldata_copy, main_sel_op_cast, main_sel_op_chain_id, main_sel_op_dagasleft, main_sel_op_div, main_sel_op_ecadd, main_sel_op_emit_l2_to_l1_msg, main_sel_op_emit_note_hash, main_sel_op_emit_nullifier, main_sel_op_emit_unencrypted_log, main_sel_op_eq, main_sel_op_external_call, main_sel_op_external_return, main_sel_op_external_revert, main_sel_op_fdiv, main_sel_op_fee_per_da_gas, main_sel_op_fee_per_l2_gas, main_sel_op_function_selector, main_sel_op_get_contract_instance, main_sel_op_internal_call, main_sel_op_internal_return, main_sel_op_is_static_call, main_sel_op_jump, main_sel_op_jumpi, main_sel_op_keccak, main_sel_op_l1_to_l2_msg_exists, main_sel_op_l2gasleft, main_sel_op_lt, main_sel_op_lte, main_sel_op_mov, main_sel_op_msm, main_sel_op_mul, main_sel_op_not, main_sel_op_note_hash_exists, main_sel_op_nullifier_exists, main_sel_op_or, main_sel_op_poseidon2, main_sel_op_radix_le, main_sel_op_sender, main_sel_op_set, main_sel_op_sha256, main_sel_op_shl, main_sel_op_shr, main_sel_op_sload, main_sel_op_sstore, main_sel_op_static_call, main_sel_op_storage_address, main_sel_op_sub, main_sel_op_timestamp, main_sel_op_transaction_fee, main_sel_op_version, main_sel_op_xor, main_sel_q_kernel_lookup, main_sel_q_kernel_output_lookup, main_sel_resolve_ind_addr_a, main_sel_resolve_ind_addr_b, main_sel_resolve_ind_addr_c, main_sel_resolve_ind_addr_d, main_sel_returndata, main_sel_rng_16, main_sel_rng_8, main_sel_slice_gadget, main_side_effect_counter, main_sload_write_offset, main_space_id, main_sstore_write_offset, main_tag_err, main_w_in_tag, mem_addr, mem_clk, mem_diff, mem_glob_addr, mem_last, mem_lastAccess, mem_one_min_inv, mem_r_in_tag, mem_rw, mem_sel_mem, mem_sel_mov_ia_to_ic, mem_sel_mov_ib_to_ic, mem_sel_op_a, mem_sel_op_b, mem_sel_op_c, mem_sel_op_d, mem_sel_op_poseidon_read_a, mem_sel_op_poseidon_read_b, mem_sel_op_poseidon_read_c, mem_sel_op_poseidon_read_d, mem_sel_op_poseidon_write_a, mem_sel_op_poseidon_write_b, mem_sel_op_poseidon_write_c, mem_sel_op_poseidon_write_d, mem_sel_op_slice, mem_sel_resolve_ind_addr_a, mem_sel_resolve_ind_addr_b, mem_sel_resolve_ind_addr_c, mem_sel_resolve_ind_addr_d, mem_sel_rng_chk, mem_skip_check_tag, mem_space_id, mem_tag, mem_tag_err, mem_tsp, mem_val, mem_w_in_tag, poseidon2_B_10_0, poseidon2_B_10_1, poseidon2_B_10_2, poseidon2_B_10_3, poseidon2_B_11_0, poseidon2_B_11_1, poseidon2_B_11_2, poseidon2_B_11_3, poseidon2_B_12_0, poseidon2_B_12_1, poseidon2_B_12_2, poseidon2_B_12_3, poseidon2_B_13_0, poseidon2_B_13_1, poseidon2_B_13_2, poseidon2_B_13_3, poseidon2_B_14_0, poseidon2_B_14_1, poseidon2_B_14_2, poseidon2_B_14_3, poseidon2_B_15_0, poseidon2_B_15_1, poseidon2_B_15_2, poseidon2_B_15_3, poseidon2_B_16_0, poseidon2_B_16_1, poseidon2_B_16_2, poseidon2_B_16_3, poseidon2_B_17_0, poseidon2_B_17_1, poseidon2_B_17_2, poseidon2_B_17_3, poseidon2_B_18_0, poseidon2_B_18_1, poseidon2_B_18_2, poseidon2_B_18_3, poseidon2_B_19_0, poseidon2_B_19_1, poseidon2_B_19_2, poseidon2_B_19_3, poseidon2_B_20_0, poseidon2_B_20_1, poseidon2_B_20_2, poseidon2_B_20_3, poseidon2_B_21_0, poseidon2_B_21_1, poseidon2_B_21_2, poseidon2_B_21_3, poseidon2_B_22_0, poseidon2_B_22_1, poseidon2_B_22_2, poseidon2_B_22_3, poseidon2_B_23_0, poseidon2_B_23_1, poseidon2_B_23_2, poseidon2_B_23_3, poseidon2_B_24_0, poseidon2_B_24_1, poseidon2_B_24_2, poseidon2_B_24_3, poseidon2_B_25_0, poseidon2_B_25_1, poseidon2_B_25_2, poseidon2_B_25_3, poseidon2_B_26_0, poseidon2_B_26_1, poseidon2_B_26_2, poseidon2_B_26_3, poseidon2_B_27_0, poseidon2_B_27_1, poseidon2_B_27_2, poseidon2_B_27_3, poseidon2_B_28_0, poseidon2_B_28_1, poseidon2_B_28_2, poseidon2_B_28_3, poseidon2_B_29_0, poseidon2_B_29_1, poseidon2_B_29_2, poseidon2_B_29_3, poseidon2_B_30_0, poseidon2_B_30_1, poseidon2_B_30_2, poseidon2_B_30_3, poseidon2_B_31_0, poseidon2_B_31_1, poseidon2_B_31_2, poseidon2_B_31_3, poseidon2_B_32_0, poseidon2_B_32_1, poseidon2_B_32_2, poseidon2_B_32_3, poseidon2_B_33_0, poseidon2_B_33_1, poseidon2_B_33_2, poseidon2_B_33_3, poseidon2_B_34_0, poseidon2_B_34_1, poseidon2_B_34_2, poseidon2_B_34_3, poseidon2_B_35_0, poseidon2_B_35_1, poseidon2_B_35_2, poseidon2_B_35_3, poseidon2_B_36_0, poseidon2_B_36_1, poseidon2_B_36_2, poseidon2_B_36_3, poseidon2_B_37_0, poseidon2_B_37_1, poseidon2_B_37_2, poseidon2_B_37_3, poseidon2_B_38_0, poseidon2_B_38_1, poseidon2_B_38_2, poseidon2_B_38_3, poseidon2_B_39_0, poseidon2_B_39_1, poseidon2_B_39_2, poseidon2_B_39_3, poseidon2_B_40_0, poseidon2_B_40_1, poseidon2_B_40_2, poseidon2_B_40_3, poseidon2_B_41_0, poseidon2_B_41_1, poseidon2_B_41_2, poseidon2_B_41_3, poseidon2_B_42_0, poseidon2_B_42_1, poseidon2_B_42_2, poseidon2_B_42_3, poseidon2_B_43_0, poseidon2_B_43_1, poseidon2_B_43_2, poseidon2_B_43_3, poseidon2_B_44_0, poseidon2_B_44_1, poseidon2_B_44_2, poseidon2_B_44_3, poseidon2_B_45_0, poseidon2_B_45_1, poseidon2_B_45_2, poseidon2_B_45_3, poseidon2_B_46_0, poseidon2_B_46_1, poseidon2_B_46_2, poseidon2_B_46_3, poseidon2_B_47_0, poseidon2_B_47_1, poseidon2_B_47_2, poseidon2_B_47_3, poseidon2_B_48_0, poseidon2_B_48_1, poseidon2_B_48_2, poseidon2_B_48_3, poseidon2_B_49_0, poseidon2_B_49_1, poseidon2_B_49_2, poseidon2_B_49_3, poseidon2_B_4_0, poseidon2_B_4_1, poseidon2_B_4_2, poseidon2_B_4_3, poseidon2_B_50_0, poseidon2_B_50_1, poseidon2_B_50_2, poseidon2_B_50_3, poseidon2_B_51_0, poseidon2_B_51_1, poseidon2_B_51_2, poseidon2_B_51_3, poseidon2_B_52_0, poseidon2_B_52_1, poseidon2_B_52_2, poseidon2_B_52_3, poseidon2_B_53_0, poseidon2_B_53_1, poseidon2_B_53_2, poseidon2_B_53_3, poseidon2_B_54_0, poseidon2_B_54_1, poseidon2_B_54_2, poseidon2_B_54_3, poseidon2_B_55_0, poseidon2_B_55_1, poseidon2_B_55_2, poseidon2_B_55_3, poseidon2_B_56_0, poseidon2_B_56_1, poseidon2_B_56_2, poseidon2_B_56_3, poseidon2_B_57_0, poseidon2_B_57_1, poseidon2_B_57_2, poseidon2_B_57_3, poseidon2_B_58_0, poseidon2_B_58_1, poseidon2_B_58_2, poseidon2_B_58_3, poseidon2_B_59_0, poseidon2_B_59_1, poseidon2_B_59_2, poseidon2_B_59_3, poseidon2_B_5_0, poseidon2_B_5_1, poseidon2_B_5_2, poseidon2_B_5_3, poseidon2_B_6_0, poseidon2_B_6_1, poseidon2_B_6_2, poseidon2_B_6_3, poseidon2_B_7_0, poseidon2_B_7_1, poseidon2_B_7_2, poseidon2_B_7_3, poseidon2_B_8_0, poseidon2_B_8_1, poseidon2_B_8_2, poseidon2_B_8_3, poseidon2_B_9_0, poseidon2_B_9_1, poseidon2_B_9_2, poseidon2_B_9_3, poseidon2_EXT_LAYER_4, poseidon2_EXT_LAYER_5, poseidon2_EXT_LAYER_6, poseidon2_EXT_LAYER_7, poseidon2_T_0_4, poseidon2_T_0_5, poseidon2_T_0_6, poseidon2_T_0_7, poseidon2_T_1_4, poseidon2_T_1_5, poseidon2_T_1_6, poseidon2_T_1_7, poseidon2_T_2_4, poseidon2_T_2_5, poseidon2_T_2_6, poseidon2_T_2_7, poseidon2_T_3_4, poseidon2_T_3_5, poseidon2_T_3_6, poseidon2_T_3_7, poseidon2_T_60_4, poseidon2_T_60_5, poseidon2_T_60_6, poseidon2_T_60_7, poseidon2_T_61_4, poseidon2_T_61_5, poseidon2_T_61_6, poseidon2_T_61_7, poseidon2_T_62_4, poseidon2_T_62_5, poseidon2_T_62_6, poseidon2_T_62_7, poseidon2_T_63_4, poseidon2_T_63_5, poseidon2_T_63_6, poseidon2_T_63_7, poseidon2_a_0, poseidon2_a_1, poseidon2_a_2, poseidon2_a_3, poseidon2_b_0, poseidon2_b_1, poseidon2_b_2, poseidon2_b_3, poseidon2_clk, poseidon2_input_addr, poseidon2_mem_addr_read_a, poseidon2_mem_addr_read_b, poseidon2_mem_addr_read_c, poseidon2_mem_addr_read_d, poseidon2_mem_addr_write_a, poseidon2_mem_addr_write_b, poseidon2_mem_addr_write_c, poseidon2_mem_addr_write_d, poseidon2_output_addr, poseidon2_sel_poseidon_perm, poseidon2_space_id, range_check_alu_rng_chk, range_check_clk, range_check_cmp_hi_bits_rng_chk, range_check_cmp_lo_bits_rng_chk, range_check_dyn_diff, range_check_dyn_rng_chk_bits, range_check_dyn_rng_chk_pow_2, range_check_gas_da_rng_chk, range_check_gas_l2_rng_chk, range_check_is_lte_u112, range_check_is_lte_u128, range_check_is_lte_u16, range_check_is_lte_u32, range_check_is_lte_u48, range_check_is_lte_u64, range_check_is_lte_u80, range_check_is_lte_u96, range_check_mem_rng_chk, range_check_rng_chk_bits, range_check_sel_lookup_0, range_check_sel_lookup_1, range_check_sel_lookup_2, range_check_sel_lookup_3, range_check_sel_lookup_4, range_check_sel_lookup_5, range_check_sel_lookup_6, range_check_sel_rng_chk, range_check_u16_r0, range_check_u16_r1, range_check_u16_r2, range_check_u16_r3, range_check_u16_r4, range_check_u16_r5, range_check_u16_r6, range_check_u16_r7, range_check_value, sha256_clk, sha256_input, sha256_output, sha256_sel_sha256_compression, sha256_state, slice_addr, slice_clk, slice_cnt, slice_col_offset, slice_one_min_inv, slice_sel_cd_cpy, slice_sel_mem_active, slice_sel_return, slice_sel_start, slice_space_id, slice_val, lookup_rng_chk_pow_2_counts, lookup_rng_chk_diff_counts, lookup_rng_chk_0_counts, lookup_rng_chk_1_counts, lookup_rng_chk_2_counts, lookup_rng_chk_3_counts, lookup_rng_chk_4_counts, lookup_rng_chk_5_counts, lookup_rng_chk_6_counts, lookup_rng_chk_7_counts, lookup_pow_2_0_counts, lookup_pow_2_1_counts, lookup_byte_lengths_counts, lookup_byte_operations_counts, lookup_opcode_gas_counts, kernel_output_lookup_counts, lookup_into_kernel_counts, lookup_cd_value_counts, lookup_ret_value_counts, incl_main_tag_err_counts, incl_mem_tag_err_counts +#define DERIVED_WITNESS_ENTITIES perm_rng_mem_inv, perm_rng_cmp_lo_inv, perm_rng_cmp_hi_inv, perm_rng_alu_inv, perm_cmp_alu_inv, perm_rng_gas_l2_inv, perm_rng_gas_da_inv, perm_l2_start_gas_inv, perm_da_start_gas_inv, perm_l2_end_gas_inv, perm_da_end_gas_inv, perm_pos_mem_read_a_inv, perm_pos_mem_read_b_inv, perm_pos_mem_read_c_inv, perm_pos_mem_read_d_inv, perm_pos_mem_write_a_inv, perm_pos_mem_write_b_inv, perm_pos_mem_write_c_inv, perm_pos_mem_write_d_inv, perm_slice_mem_inv, perm_main_alu_inv, perm_main_bin_inv, perm_main_conv_inv, perm_main_sha256_inv, perm_main_pos2_perm_inv, perm_main_slice_inv, perm_main_mem_a_inv, perm_main_mem_b_inv, perm_main_mem_c_inv, perm_main_mem_d_inv, perm_main_mem_ind_addr_a_inv, perm_main_mem_ind_addr_b_inv, perm_main_mem_ind_addr_c_inv, perm_main_mem_ind_addr_d_inv, lookup_rng_chk_pow_2_inv, lookup_rng_chk_diff_inv, lookup_rng_chk_0_inv, lookup_rng_chk_1_inv, lookup_rng_chk_2_inv, lookup_rng_chk_3_inv, lookup_rng_chk_4_inv, lookup_rng_chk_5_inv, lookup_rng_chk_6_inv, lookup_rng_chk_7_inv, lookup_pow_2_0_inv, lookup_pow_2_1_inv, lookup_byte_lengths_inv, lookup_byte_operations_inv, lookup_opcode_gas_inv, kernel_output_lookup_inv, lookup_into_kernel_inv, lookup_cd_value_inv, lookup_ret_value_inv, incl_main_tag_err_inv, incl_mem_tag_err_inv +#define SHIFTED_ENTITIES binary_acc_ia_shift, binary_acc_ib_shift, binary_acc_ic_shift, binary_mem_tag_ctr_shift, binary_op_id_shift, cmp_a_hi_shift, cmp_a_lo_shift, cmp_b_hi_shift, cmp_b_lo_shift, cmp_cmp_rng_ctr_shift, cmp_op_gt_shift, cmp_p_sub_a_hi_shift, cmp_p_sub_a_lo_shift, cmp_p_sub_b_hi_shift, cmp_p_sub_b_lo_shift, cmp_sel_rng_chk_shift, main_da_gas_remaining_shift, main_emit_l2_to_l1_msg_write_offset_shift, main_emit_note_hash_write_offset_shift, main_emit_nullifier_write_offset_shift, main_emit_unencrypted_log_write_offset_shift, main_internal_return_ptr_shift, main_l1_to_l2_msg_exists_write_offset_shift, main_l2_gas_remaining_shift, main_note_hash_exist_write_offset_shift, main_nullifier_exists_write_offset_shift, main_nullifier_non_exists_write_offset_shift, main_pc_shift, main_sel_execution_end_shift, main_sel_execution_row_shift, main_sload_write_offset_shift, main_sstore_write_offset_shift, mem_glob_addr_shift, mem_rw_shift, mem_sel_mem_shift, mem_tag_shift, mem_tsp_shift, mem_val_shift, slice_addr_shift, slice_clk_shift, slice_cnt_shift, slice_col_offset_shift, slice_sel_cd_cpy_shift, slice_sel_mem_active_shift, slice_sel_return_shift, slice_sel_start_shift, slice_space_id_shift +#define TO_BE_SHIFTED(e) e.binary_acc_ia, e.binary_acc_ib, e.binary_acc_ic, e.binary_mem_tag_ctr, e.binary_op_id, e.cmp_a_hi, e.cmp_a_lo, e.cmp_b_hi, e.cmp_b_lo, e.cmp_cmp_rng_ctr, e.cmp_op_gt, e.cmp_p_sub_a_hi, e.cmp_p_sub_a_lo, e.cmp_p_sub_b_hi, e.cmp_p_sub_b_lo, e.cmp_sel_rng_chk, e.main_da_gas_remaining, e.main_emit_l2_to_l1_msg_write_offset, e.main_emit_note_hash_write_offset, e.main_emit_nullifier_write_offset, e.main_emit_unencrypted_log_write_offset, e.main_internal_return_ptr, e.main_l1_to_l2_msg_exists_write_offset, e.main_l2_gas_remaining, e.main_note_hash_exist_write_offset, e.main_nullifier_exists_write_offset, e.main_nullifier_non_exists_write_offset, e.main_pc, e.main_sel_execution_end, e.main_sel_execution_row, e.main_sload_write_offset, e.main_sstore_write_offset, e.mem_glob_addr, e.mem_rw, e.mem_sel_mem, e.mem_tag, e.mem_tsp, e.mem_val, e.slice_addr, e.slice_clk, e.slice_cnt, e.slice_col_offset, e.slice_sel_cd_cpy, e.slice_sel_mem_active, e.slice_sel_return, e.slice_sel_start, e.slice_space_id #define ALL_ENTITIES PRECOMPUTED_ENTITIES, WIRE_ENTITIES, DERIVED_WITNESS_ENTITIES, SHIFTED_ENTITIES // clang-format on @@ -124,12 +124,12 @@ class AvmFlavor { static constexpr bool HasZK = false; static constexpr size_t NUM_PRECOMPUTED_ENTITIES = 21; - static constexpr size_t NUM_WITNESS_ENTITIES = 705; - static constexpr size_t NUM_SHIFTED_ENTITIES = 58; + static constexpr size_t NUM_WITNESS_ENTITIES = 682; + static constexpr size_t NUM_SHIFTED_ENTITIES = 47; static constexpr size_t NUM_WIRES = NUM_WITNESS_ENTITIES + NUM_PRECOMPUTED_ENTITIES; // We have two copies of the witness entities, so we subtract the number of fixed ones (they have no shift), one for // the unshifted and one for the shifted - static constexpr size_t NUM_ALL_ENTITIES = 784; + static constexpr size_t NUM_ALL_ENTITIES = 750; // The total number of witnesses including shifts and derived entities. static constexpr size_t NUM_ALL_WITNESS_ENTITIES = NUM_WITNESS_ENTITIES + NUM_SHIFTED_ENTITIES; diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/full_row.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/full_row.hpp index b2775561aac..de41e9243de 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/full_row.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/full_row.hpp @@ -740,7 +740,7 @@ template struct AvmFullRow { RefVector as_vector() const; static std::vector names(); - static constexpr size_t SIZE = 726; + static constexpr size_t SIZE = 703; }; template std::ostream& operator<<(std::ostream& os, AvmFullRow const& row); diff --git a/barretenberg/cpp/src/barretenberg/vm/aztec_constants.hpp b/barretenberg/cpp/src/barretenberg/vm/aztec_constants.hpp index aa35d864f5e..8e46fac6d49 100644 --- a/barretenberg/cpp/src/barretenberg/vm/aztec_constants.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/aztec_constants.hpp @@ -35,7 +35,7 @@ #define PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH 674 #define PUBLIC_CONTEXT_INPUTS_LENGTH 41 #define AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS 86 -#define AVM_PROOF_LENGTH_IN_FIELDS 3949 +#define AVM_PROOF_LENGTH_IN_FIELDS 3818 #define AVM_PUBLIC_COLUMN_MAX_SIZE 1024 #define AVM_PUBLIC_INPUTS_FLATTENED_SIZE 2722 #define MEM_TAG_FF 0 diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr index 7a680ae9601..54f470a7b20 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr @@ -475,10 +475,9 @@ global AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS: u32 = 2 + 21 * 4; // `AVM_PROOF_LENGTH_IN_FIELDS` must be updated when AVM circuit changes. // To determine latest value, hover `COMPUTED_AVM_PROOF_LENGTH_IN_FIELDS` // in barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp -global AVM_PROOF_LENGTH_IN_FIELDS: u32 = 3949; -global AVM_PUBLIC_COLUMN_MAX_SIZE: u32 = 1024; -global AVM_PUBLIC_INPUTS_FLATTENED_SIZE: u32 = - 2 * AVM_PUBLIC_COLUMN_MAX_SIZE + PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH; +global AVM_PROOF_LENGTH_IN_FIELDS: u32 = 3818; +global AVM_PUBLIC_COLUMN_MAX_SIZE : u32 = 1024; +global AVM_PUBLIC_INPUTS_FLATTENED_SIZE : u32 = 2 * AVM_PUBLIC_COLUMN_MAX_SIZE + PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH; /** * Enumerate the hash_indices which are used for pedersen hashing. * We start from 1 to avoid the default generators. The generator indices are listed diff --git a/yarn-project/circuits.js/src/constants.gen.ts b/yarn-project/circuits.js/src/constants.gen.ts index 73680d79e42..663970f2744 100644 --- a/yarn-project/circuits.js/src/constants.gen.ts +++ b/yarn-project/circuits.js/src/constants.gen.ts @@ -216,7 +216,7 @@ export const TUBE_PROOF_LENGTH = 463; export const HONK_VERIFICATION_KEY_LENGTH_IN_FIELDS = 128; export const CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS = 145; export const AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS = 86; -export const AVM_PROOF_LENGTH_IN_FIELDS = 3949; +export const AVM_PROOF_LENGTH_IN_FIELDS = 3818; export const AVM_PUBLIC_COLUMN_MAX_SIZE = 1024; export const AVM_PUBLIC_INPUTS_FLATTENED_SIZE = 2722; export const MEM_TAG_FF = 0; From e122924b0c3ec47dd8ebd35ee8a40c2d4a9a2e40 Mon Sep 17 00:00:00 2001 From: jeanmon Date: Wed, 23 Oct 2024 12:10:45 +0000 Subject: [PATCH 2/8] 9349: migrate zeromorph to shplemini in AVM --- .../barretenberg/vm/avm/generated/prover.cpp | 24 +++++------- .../barretenberg/vm/avm/generated/prover.hpp | 3 -- .../vm/avm/generated/recursive_verifier.cpp | 24 ++++++------ .../vm/avm/generated/verifier.cpp | 39 +++++++++---------- .../bb-pil-backend/templates/prover.cpp.hbs | 24 +++++------- .../bb-pil-backend/templates/prover.hpp.hbs | 3 -- .../templates/recursive_verifier.cpp.hbs | 24 ++++++------ .../bb-pil-backend/templates/verifier.cpp.hbs | 39 +++++++++---------- 8 files changed, 80 insertions(+), 100 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/prover.cpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/prover.cpp index e5541e0238c..5837f7f7f84 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/prover.cpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/prover.cpp @@ -1,8 +1,8 @@ // AUTOGENERATED FILE #include "barretenberg/vm/avm/generated/prover.hpp" - #include "barretenberg/commitment_schemes/claim.hpp" #include "barretenberg/commitment_schemes/commitment_key.hpp" +#include "barretenberg/commitment_schemes/shplonk/shplemini.hpp" #include "barretenberg/common/constexpr_utils.hpp" #include "barretenberg/common/thread.hpp" #include "barretenberg/honk/proof_system/logderivative_library.hpp" @@ -10,7 +10,6 @@ #include "barretenberg/plonk_honk_shared/library/grand_product_library.hpp" #include "barretenberg/relations/permutation_relation.hpp" #include "barretenberg/sumcheck/sumcheck.hpp" - #include "barretenberg/vm/stats.hpp" namespace bb { @@ -109,20 +108,17 @@ void AvmProver::execute_relation_check_rounds() sumcheck_output = sumcheck.prove(prover_polynomials, relation_parameters, alpha, gate_challenges); } -/** - * @brief Execute the ZeroMorph protocol to prove the multilinear evaluations produced by Sumcheck - * @details See https://hackmd.io/dlf9xEwhTQyE3hiGbq4FsA?view for a complete description of the unrolled protocol. - */ void AvmProver::execute_pcs_rounds() { - auto prover_opening_claim = ZeroMorph::prove(key->circuit_size, - prover_polynomials.get_unshifted(), - prover_polynomials.get_to_be_shifted(), - sumcheck_output.claimed_evaluations.get_unshifted(), - sumcheck_output.claimed_evaluations.get_shifted(), - sumcheck_output.challenge, - commitment_key, - transcript); + using OpeningClaim = ProverOpeningClaim; + + const OpeningClaim prover_opening_claim = ShpleminiProver_::prove(key->circuit_size, + prover_polynomials.get_unshifted(), + prover_polynomials.get_to_be_shifted(), + sumcheck_output.challenge, + commitment_key, + transcript); + PCS::compute_opening_proof(commitment_key, prover_opening_claim, transcript); } diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/prover.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/prover.hpp index 264de54972e..57b7991a417 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/prover.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/prover.hpp @@ -1,12 +1,10 @@ // AUTOGENERATED FILE #pragma once -#include "barretenberg/commitment_schemes/zeromorph/zeromorph.hpp" #include "barretenberg/plonk/proof_system/types/proof.hpp" #include "barretenberg/relations/relation_parameters.hpp" #include "barretenberg/sumcheck/sumcheck_output.hpp" #include "barretenberg/transcript/transcript.hpp" - #include "barretenberg/vm/avm/generated/flavor.hpp" namespace bb { @@ -16,7 +14,6 @@ class AvmProver { using FF = Flavor::FF; using PCS = Flavor::PCS; using Curve = Flavor::Curve; - using ZeroMorph = ZeroMorphProver_; using PCSCommitmentKey = Flavor::CommitmentKey; using ProvingKey = Flavor::ProvingKey; using Polynomial = Flavor::Polynomial; diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/recursive_verifier.cpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/recursive_verifier.cpp index 3099fd8c928..d61e6d7f0be 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/recursive_verifier.cpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/recursive_verifier.cpp @@ -1,6 +1,6 @@ // AUTOGENERATED FILE #include "barretenberg/vm/avm/recursion/recursive_verifier.hpp" -#include "barretenberg/commitment_schemes/zeromorph/zeromorph.hpp" +#include "barretenberg/commitment_schemes/shplonk/shplemini.hpp" #include "barretenberg/plonk_honk_shared/types/aggregation_object_type.hpp" #include "barretenberg/polynomials/polynomial.hpp" #include "barretenberg/polynomials/shared_shifted_virtual_zeroes_array.hpp" @@ -73,12 +73,12 @@ AvmRecursiveVerifier_::AggregationObject AvmRecursiveVerifier_:: AggregationObject agg_obj) { using Curve = typename Flavor::Curve; - using Zeromorph = ZeroMorphVerifier_; using PCS = typename Flavor::PCS; using VerifierCommitments = typename Flavor::VerifierCommitments; using CommitmentLabels = typename Flavor::CommitmentLabels; using RelationParams = ::bb::RelationParameters; using Transcript = typename Flavor::Transcript; + using Shplemini = ::bb::ShpleminiVerifier_; transcript = std::make_shared(stdlib_proof); @@ -149,16 +149,16 @@ AvmRecursiveVerifier_::AggregationObject AvmRecursiveVerifier_:: FF main_returndata_evaluation = evaluate_public_input_column(public_inputs[5], mle_challenge); main_returndata_evaluation.assert_equal(claimed_evaluations.main_returndata, "main_returndata_evaluation failed"); - auto opening_claim = Zeromorph::verify(circuit_size, - commitments.get_unshifted(), - commitments.get_to_be_shifted(), - claimed_evaluations.get_unshifted(), - claimed_evaluations.get_shifted(), - multivariate_challenge, - Commitment::one(builder), - transcript); - - auto pairing_points = PCS::reduce_verify(opening_claim, transcript); + // Execute Shplemini rounds. + auto opening_claim = Shplemini::compute_batch_opening_claim(circuit_size, + commitments.get_unshifted(), + commitments.get_to_be_shifted(), + claimed_evaluations.get_unshifted(), + claimed_evaluations.get_shifted(), + multivariate_challenge, + Commitment::one(builder), + transcript); + auto pairing_points = PCS::reduce_verify_batch_opening_claim(opening_claim, transcript); pairing_points[0] = pairing_points[0].normalize(); pairing_points[1] = pairing_points[1].normalize(); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/verifier.cpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/verifier.cpp index 49bc491c708..1e55f43e7b6 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/verifier.cpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/verifier.cpp @@ -1,12 +1,10 @@ // AUTOGENERATED FILE #include "barretenberg/vm/avm/generated/verifier.hpp" - +#include "barretenberg/commitment_schemes/shplonk/shplemini.hpp" #include "barretenberg/common/log.hpp" -#include "barretenberg/vm/constants.hpp" - -#include "barretenberg/commitment_schemes/zeromorph/zeromorph.hpp" #include "barretenberg/numeric/bitop/get_msb.hpp" #include "barretenberg/transcript/transcript.hpp" +#include "barretenberg/vm/constants.hpp" namespace bb { @@ -45,9 +43,9 @@ bool AvmVerifier::verify_proof(const HonkProof& proof, const std::vector; using VerifierCommitments = Flavor::VerifierCommitments; using CommitmentLabels = Flavor::CommitmentLabels; + using Shplemini = ShpleminiVerifier_; RelationParameters relation_parameters; @@ -131,22 +129,21 @@ bool AvmVerifier::verify_proof(const HonkProof& proof, const std::vectorpcs_verification_key->get_g1_identity(), - transcript); - - auto pairing_points = PCS::reduce_verify(opening_claim, transcript); - auto zeromorph_verified = key->pcs_verification_key->pairing_check(pairing_points[0], pairing_points[1]); - - if (!zeromorph_verified) { - vinfo("ZeroMorph verification failed"); + const BatchOpeningClaim opening_claim = + Shplemini::compute_batch_opening_claim(circuit_size, + commitments.get_unshifted(), + commitments.get_to_be_shifted(), + claimed_evaluations.get_unshifted(), + claimed_evaluations.get_shifted(), + multivariate_challenge, + Commitment::one(), + transcript); + + const auto pairing_points = PCS::reduce_verify_batch_opening_claim(opening_claim, transcript); + const auto shplemini_verified = key->pcs_verification_key->pairing_check(pairing_points[0], pairing_points[1]); + + if (!shplemini_verified) { + vinfo("Shplemini verification failed"); return false; } diff --git a/bb-pilcom/bb-pil-backend/templates/prover.cpp.hbs b/bb-pilcom/bb-pil-backend/templates/prover.cpp.hbs index 28a5276c648..4a0925de4c8 100644 --- a/bb-pilcom/bb-pil-backend/templates/prover.cpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/prover.cpp.hbs @@ -1,8 +1,8 @@ // AUTOGENERATED FILE #include "barretenberg/vm/{{snakeCase name}}/generated/prover.hpp" - #include "barretenberg/commitment_schemes/claim.hpp" #include "barretenberg/commitment_schemes/commitment_key.hpp" +#include "barretenberg/commitment_schemes/shplonk/shplemini.hpp" #include "barretenberg/common/constexpr_utils.hpp" #include "barretenberg/common/thread.hpp" #include "barretenberg/honk/proof_system/logderivative_library.hpp" @@ -10,7 +10,6 @@ #include "barretenberg/plonk_honk_shared/library/grand_product_library.hpp" #include "barretenberg/relations/permutation_relation.hpp" #include "barretenberg/sumcheck/sumcheck.hpp" - #include "barretenberg/vm/stats.hpp" namespace bb { @@ -109,20 +108,17 @@ void {{name}}Prover::execute_relation_check_rounds() sumcheck_output = sumcheck.prove(prover_polynomials, relation_parameters, alpha, gate_challenges); } -/** - * @brief Execute the ZeroMorph protocol to prove the multilinear evaluations produced by Sumcheck - * @details See https://hackmd.io/dlf9xEwhTQyE3hiGbq4FsA?view for a complete description of the unrolled protocol. - */ void {{name}}Prover::execute_pcs_rounds() { - auto prover_opening_claim = ZeroMorph::prove(key->circuit_size, - prover_polynomials.get_unshifted(), - prover_polynomials.get_to_be_shifted(), - sumcheck_output.claimed_evaluations.get_unshifted(), - sumcheck_output.claimed_evaluations.get_shifted(), - sumcheck_output.challenge, - commitment_key, - transcript); + using OpeningClaim = ProverOpeningClaim; + + const OpeningClaim prover_opening_claim = ShpleminiProver_::prove(key->circuit_size, + prover_polynomials.get_unshifted(), + prover_polynomials.get_to_be_shifted(), + sumcheck_output.challenge, + commitment_key, + transcript); + PCS::compute_opening_proof(commitment_key, prover_opening_claim, transcript); } diff --git a/bb-pilcom/bb-pil-backend/templates/prover.hpp.hbs b/bb-pilcom/bb-pil-backend/templates/prover.hpp.hbs index 9208ef9dc32..3b185c59635 100644 --- a/bb-pilcom/bb-pil-backend/templates/prover.hpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/prover.hpp.hbs @@ -1,12 +1,10 @@ // AUTOGENERATED FILE #pragma once -#include "barretenberg/commitment_schemes/zeromorph/zeromorph.hpp" #include "barretenberg/plonk/proof_system/types/proof.hpp" #include "barretenberg/relations/relation_parameters.hpp" #include "barretenberg/sumcheck/sumcheck_output.hpp" #include "barretenberg/transcript/transcript.hpp" - #include "barretenberg/vm/{{snakeCase name}}/generated/flavor.hpp" namespace bb { @@ -16,7 +14,6 @@ class {{name}}Prover { using FF = Flavor::FF; using PCS = Flavor::PCS; using Curve = Flavor::Curve; - using ZeroMorph = ZeroMorphProver_; using PCSCommitmentKey = Flavor::CommitmentKey; using ProvingKey = Flavor::ProvingKey; using Polynomial = Flavor::Polynomial; diff --git a/bb-pilcom/bb-pil-backend/templates/recursive_verifier.cpp.hbs b/bb-pilcom/bb-pil-backend/templates/recursive_verifier.cpp.hbs index f84addd3d84..3e7d779b523 100644 --- a/bb-pilcom/bb-pil-backend/templates/recursive_verifier.cpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/recursive_verifier.cpp.hbs @@ -1,6 +1,6 @@ // AUTOGENERATED FILE #include "barretenberg/vm/{{snakeCase name}}/recursion/recursive_verifier.hpp" -#include "barretenberg/commitment_schemes/zeromorph/zeromorph.hpp" +#include "barretenberg/commitment_schemes/shplonk/shplemini.hpp" #include "barretenberg/plonk_honk_shared/types/aggregation_object_type.hpp" #include "barretenberg/polynomials/polynomial.hpp" #include "barretenberg/polynomials/shared_shifted_virtual_zeroes_array.hpp" @@ -73,12 +73,12 @@ template AggregationObject agg_obj) { using Curve = typename Flavor::Curve; - using Zeromorph = ZeroMorphVerifier_; using PCS = typename Flavor::PCS; using VerifierCommitments = typename Flavor::VerifierCommitments; using CommitmentLabels = typename Flavor::CommitmentLabels; using RelationParams = ::bb::RelationParameters; using Transcript = typename Flavor::Transcript; + using Shplemini = ::bb::ShpleminiVerifier_; transcript = std::make_shared(stdlib_proof); @@ -134,16 +134,16 @@ template {{/each}} - auto opening_claim = Zeromorph::verify(circuit_size, - commitments.get_unshifted(), - commitments.get_to_be_shifted(), - claimed_evaluations.get_unshifted(), - claimed_evaluations.get_shifted(), - multivariate_challenge, - Commitment::one(builder), - transcript); - - auto pairing_points = PCS::reduce_verify(opening_claim, transcript); + // Execute Shplemini rounds. + auto opening_claim = Shplemini::compute_batch_opening_claim(circuit_size, + commitments.get_unshifted(), + commitments.get_to_be_shifted(), + claimed_evaluations.get_unshifted(), + claimed_evaluations.get_shifted(), + multivariate_challenge, + Commitment::one(builder), + transcript); + auto pairing_points = PCS::reduce_verify_batch_opening_claim(opening_claim, transcript); pairing_points[0] = pairing_points[0].normalize(); pairing_points[1] = pairing_points[1].normalize(); diff --git a/bb-pilcom/bb-pil-backend/templates/verifier.cpp.hbs b/bb-pilcom/bb-pil-backend/templates/verifier.cpp.hbs index 2b7bcfc07f4..90656956600 100644 --- a/bb-pilcom/bb-pil-backend/templates/verifier.cpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/verifier.cpp.hbs @@ -1,12 +1,10 @@ // AUTOGENERATED FILE #include "barretenberg/vm/{{snakeCase name}}/generated/verifier.hpp" - +#include "barretenberg/commitment_schemes/shplonk/shplemini.hpp" #include "barretenberg/common/log.hpp" -#include "barretenberg/vm/constants.hpp" - -#include "barretenberg/commitment_schemes/zeromorph/zeromorph.hpp" #include "barretenberg/numeric/bitop/get_msb.hpp" #include "barretenberg/transcript/transcript.hpp" +#include "barretenberg/vm/constants.hpp" namespace bb { @@ -45,9 +43,9 @@ bool {{name}}Verifier::verify_proof(const HonkProof& proof, const std::vector; using VerifierCommitments = Flavor::VerifierCommitments; using CommitmentLabels = Flavor::CommitmentLabels; + using Shplemini = ShpleminiVerifier_; RelationParameters relation_parameters; @@ -108,22 +106,21 @@ bool {{name}}Verifier::verify_proof(const HonkProof& proof, const std::vectorpcs_verification_key->get_g1_identity(), - transcript); - - auto pairing_points = PCS::reduce_verify(opening_claim, transcript); - auto zeromorph_verified = key->pcs_verification_key->pairing_check(pairing_points[0], pairing_points[1]); - - if (!zeromorph_verified) { - vinfo("ZeroMorph verification failed"); + const BatchOpeningClaim opening_claim = + Shplemini::compute_batch_opening_claim(circuit_size, + commitments.get_unshifted(), + commitments.get_to_be_shifted(), + claimed_evaluations.get_unshifted(), + claimed_evaluations.get_shifted(), + multivariate_challenge, + Commitment::one(), + transcript); + + const auto pairing_points = PCS::reduce_verify_batch_opening_claim(opening_claim, transcript); + const auto shplemini_verified = key->pcs_verification_key->pairing_check(pairing_points[0], pairing_points[1]); + + if (!shplemini_verified) { + vinfo("Shplemini verification failed"); return false; } From 72a41cd52d71de4c17bb5c71630284a9a3e09817 Mon Sep 17 00:00:00 2001 From: jeanmon Date: Wed, 23 Oct 2024 12:40:44 +0000 Subject: [PATCH 3/8] 9349: remove occurences of zeromorph --- .../dsl/acir_format/avm_recursion_constraint.cpp | 2 +- .../cpp/src/barretenberg/eccvm/eccvm_prover.cpp | 2 -- .../translator_recursive_verifier.cpp | 3 --- .../src/barretenberg/sumcheck/sumcheck_output.hpp | 2 +- .../barretenberg/translator_vm/translator_flavor.hpp | 2 +- .../barretenberg/translator_vm/translator_prover.cpp | 10 +++++----- .../translator_vm/translator_verifier.cpp | 3 --- .../src/barretenberg/ultra_honk/decider_prover.cpp | 12 ++++++------ .../src/barretenberg/ultra_honk/decider_prover.hpp | 1 - .../ultra_honk/decider_verification_key.hpp | 2 +- .../src/barretenberg/ultra_honk/decider_verifier.cpp | 1 - .../cpp/src/barretenberg/ultra_honk/ultra_prover.hpp | 2 -- .../src/barretenberg/ultra_honk/ultra_verifier.cpp | 1 - .../cpp/src/barretenberg/vm/avm/generated/flavor.cpp | 2 +- .../cpp/src/barretenberg/vm/avm/generated/prover.cpp | 2 +- bb-pilcom/bb-pil-backend/templates/flavor.cpp.hbs | 2 +- bb-pilcom/bb-pil-backend/templates/prover.cpp.hbs | 2 +- 17 files changed, 19 insertions(+), 32 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/avm_recursion_constraint.cpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/avm_recursion_constraint.cpp index 3de39b8d071..bba1f529ae7 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/avm_recursion_constraint.cpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/avm_recursion_constraint.cpp @@ -109,7 +109,7 @@ void create_dummy_vkey_and_proof(Builder& builder, offset++; } - // now the zeromorph commitments + // now the shplemini commitments for (size_t i = 0; i < CONST_PROOF_SIZE_LOG_N; i++) { auto comm = curve::BN254::AffineElement::one() * fr::random_element(); auto frs = field_conversion::convert_to_bn254_frs(comm); diff --git a/barretenberg/cpp/src/barretenberg/eccvm/eccvm_prover.cpp b/barretenberg/cpp/src/barretenberg/eccvm/eccvm_prover.cpp index 7ecc89eb679..db62c810d80 100644 --- a/barretenberg/cpp/src/barretenberg/eccvm/eccvm_prover.cpp +++ b/barretenberg/cpp/src/barretenberg/eccvm/eccvm_prover.cpp @@ -107,8 +107,6 @@ void ECCVMProver::execute_relation_check_rounds() * @brief Produce a univariate opening claim for the sumcheck multivariate evalutions and a batched univariate claim * for the transcript polynomials (for the Translator consistency check). Reduce the two opening claims to a single one * via Shplonk and produce an opening proof with the univariate PCS of choice (IPA when operating on Grumpkin). - * @details See https://hackmd.io/dlf9xEwhTQyE3hiGbq4FsA?view for a complete description of the unrolled ZeroMorph - * protocol. * */ void ECCVMProver::execute_pcs_rounds() diff --git a/barretenberg/cpp/src/barretenberg/stdlib/translator_vm_verifier/translator_recursive_verifier.cpp b/barretenberg/cpp/src/barretenberg/stdlib/translator_vm_verifier/translator_recursive_verifier.cpp index fb5a030844f..bd4400930d1 100644 --- a/barretenberg/cpp/src/barretenberg/stdlib/translator_vm_verifier/translator_recursive_verifier.cpp +++ b/barretenberg/cpp/src/barretenberg/stdlib/translator_vm_verifier/translator_recursive_verifier.cpp @@ -114,9 +114,6 @@ std::array TranslatorRecursiveVerifier_ opening_claim = Shplemini::compute_batch_opening_claim(circuit_size, commitments.get_unshifted_without_concatenated(), diff --git a/barretenberg/cpp/src/barretenberg/sumcheck/sumcheck_output.hpp b/barretenberg/cpp/src/barretenberg/sumcheck/sumcheck_output.hpp index da4b98ce43b..a18353446a2 100644 --- a/barretenberg/cpp/src/barretenberg/sumcheck/sumcheck_output.hpp +++ b/barretenberg/cpp/src/barretenberg/sumcheck/sumcheck_output.hpp @@ -9,7 +9,7 @@ namespace bb { /** * @brief Contains the evaluations of multilinear polynomials \f$ P_1, \ldots, P_N\f$ at the challenge point \f$\vec u * =(u_0,\ldots, u_{d-1})\f$. These are computed by \ref bb::SumcheckProver< Flavor > "Sumcheck Prover" and need to be - * checked using Zeromorph. + * checked using Shplemini. */ template struct SumcheckOutput { using FF = typename Flavor::FF; diff --git a/barretenberg/cpp/src/barretenberg/translator_vm/translator_flavor.hpp b/barretenberg/cpp/src/barretenberg/translator_vm/translator_flavor.hpp index 1be1825aed2..08517654da2 100644 --- a/barretenberg/cpp/src/barretenberg/translator_vm/translator_flavor.hpp +++ b/barretenberg/cpp/src/barretenberg/translator_vm/translator_flavor.hpp @@ -279,7 +279,7 @@ class TranslatorFlavor { OrderedRangeConstraints::get_all()); }; - // everything but ConcatenatedRangeConstraints (used for ZeroMorph input since concatenated handled separately) + // everything but ConcatenatedRangeConstraints (used for Shplemini input since concatenated handled separately) // TODO(https://github.com/AztecProtocol/barretenberg/issues/810) auto get_unshifted_without_concatenated() { diff --git a/barretenberg/cpp/src/barretenberg/translator_vm/translator_prover.cpp b/barretenberg/cpp/src/barretenberg/translator_vm/translator_prover.cpp index a12ba9855d0..49b0e9501d6 100644 --- a/barretenberg/cpp/src/barretenberg/translator_vm/translator_prover.cpp +++ b/barretenberg/cpp/src/barretenberg/translator_vm/translator_prover.cpp @@ -162,11 +162,11 @@ void TranslatorProver::execute_relation_check_rounds() } /** - * @brief Execute the ZeroMorph protocol to produce an opening claim for the multilinear evaluations produced by - * Sumcheck and then produce an opening proof with a univariate PCS - * @details See https://hackmd.io/dlf9xEwhTQyE3hiGbq4FsA?view for a complete description of the unrolled protocol. + * @brief Produce a univariate opening claim for the sumcheck multivariate evalutions and a batched univariate claim + * for the transcript polynomials (for the Translator consistency check). Reduce the two opening claims to a single one + * via Shplonk and produce an opening proof with the univariate PCS of choice (IPA when operating on Grumpkin). * - * */ + */ void TranslatorProver::execute_pcs_rounds() { using Curve = typename Flavor::Curve; @@ -210,7 +210,7 @@ HonkProof TranslatorProver::construct_proof() execute_relation_check_rounds(); // Fiat-Shamir: rho, y, x, z - // Execute Zeromorph multilinear PCS + // Execute Shplemini PCS execute_pcs_rounds(); return export_proof(); diff --git a/barretenberg/cpp/src/barretenberg/translator_vm/translator_verifier.cpp b/barretenberg/cpp/src/barretenberg/translator_vm/translator_verifier.cpp index 715d799b5c2..1086cc6248b 100644 --- a/barretenberg/cpp/src/barretenberg/translator_vm/translator_verifier.cpp +++ b/barretenberg/cpp/src/barretenberg/translator_vm/translator_verifier.cpp @@ -110,9 +110,6 @@ bool TranslatorVerifier::verify_proof(const HonkProof& proof) return false; } - // Execute ZeroMorph rounds. See https://hackmd.io/dlf9xEwhTQyE3hiGbq4FsA?view for a complete description ofthe - // unrolled protocol. - const BatchOpeningClaim opening_claim = Shplemini::compute_batch_opening_claim(circuit_size, commitments.get_unshifted_without_concatenated(), diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/decider_prover.cpp b/barretenberg/cpp/src/barretenberg/ultra_honk/decider_prover.cpp index 3f8fe01b3cc..5c38536fd55 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/decider_prover.cpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/decider_prover.cpp @@ -41,11 +41,11 @@ template void DeciderProver_::execute_relation_ch } /** - * @brief Execute the ZeroMorph protocol to produce an opening claim for the multilinear evaluations produced by - * Sumcheck and then produce an opening proof with a univariate PCS. - * @details See https://hackmd.io/dlf9xEwhTQyE3hiGbq4FsA?view for a complete description of the unrolled protocol. + * @brief Produce a univariate opening claim for the sumcheck multivariate evalutions and a batched univariate claim + * for the transcript polynomials (for the Translator consistency check). Reduce the two opening claims to a single one + * via Shplonk and produce an opening proof with the univariate PCS of choice (IPA when operating on Grumpkin). * - * */ + */ template void DeciderProver_::execute_pcs_rounds() { if (proving_key->proving_key.commitment_key == nullptr) { @@ -82,8 +82,8 @@ template HonkProof DeciderProver_::construct_proo execute_relation_check_rounds(); // Fiat-Shamir: rho, y, x, z - // Execute Zeromorph multilinear PCS - vinfo("executing pcd opening rounds..."); + // Execute Shplemini PCS + vinfo("executing pcs opening rounds..."); execute_pcs_rounds(); return export_proof(); diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/decider_prover.hpp b/barretenberg/cpp/src/barretenberg/ultra_honk/decider_prover.hpp index 28a98bee405..d82555bceea 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/decider_prover.hpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/decider_prover.hpp @@ -1,6 +1,5 @@ #pragma once #include "barretenberg/commitment_schemes/shplonk/shplemini.hpp" -#include "barretenberg/commitment_schemes/zeromorph/zeromorph.hpp" #include "barretenberg/honk/proof_system/types/proof.hpp" #include "barretenberg/relations/relation_parameters.hpp" #include "barretenberg/stdlib_circuit_builders/mega_flavor.hpp" diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/decider_verification_key.hpp b/barretenberg/cpp/src/barretenberg/ultra_honk/decider_verification_key.hpp index 289ec546710..adb8c1be0f9 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/decider_verification_key.hpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/decider_verification_key.hpp @@ -6,7 +6,7 @@ namespace bb { /** * @brief The DeciderVerificationKey encapsulates all the necessary information for a Mega Honk Verifier to verify a - * proof (sumcheck + Zeromorph). In the context of folding, this is returned by the Protogalaxy verifier with non-zero + * proof (sumcheck + Shplemini). In the context of folding, this is returned by the Protogalaxy verifier with non-zero * target sum and gate challenges. * * @details This is Ï• in the paper. diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/decider_verifier.cpp b/barretenberg/cpp/src/barretenberg/ultra_honk/decider_verifier.cpp index 763c74c6a62..72c4ed0b4f7 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/decider_verifier.cpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/decider_verifier.cpp @@ -1,6 +1,5 @@ #include "decider_verifier.hpp" #include "barretenberg/commitment_schemes/shplonk/shplemini.hpp" -#include "barretenberg/commitment_schemes/zeromorph/zeromorph.hpp" #include "barretenberg/numeric/bitop/get_msb.hpp" #include "barretenberg/sumcheck/sumcheck.hpp" #include "barretenberg/transcript/transcript.hpp" diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_prover.hpp b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_prover.hpp index 6ab19509eb6..2382e6f934e 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_prover.hpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_prover.hpp @@ -1,5 +1,4 @@ #pragma once -#include "barretenberg/commitment_schemes/zeromorph/zeromorph.hpp" #include "barretenberg/honk/proof_system/types/proof.hpp" #include "barretenberg/relations/relation_parameters.hpp" #include "barretenberg/stdlib_circuit_builders/mega_flavor.hpp" @@ -24,7 +23,6 @@ template class UltraProver_ { using DeciderProvingKey = DeciderProvingKey_; using DeciderPK = DeciderProvingKey; using Transcript = typename Flavor::Transcript; - using ZeroMorph = ZeroMorphProver_; std::shared_ptr proving_key; diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_verifier.cpp b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_verifier.cpp index 6bd5b3fc3f1..f8807a67c68 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_verifier.cpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_verifier.cpp @@ -1,5 +1,4 @@ #include "./ultra_verifier.hpp" -#include "barretenberg/commitment_schemes/zeromorph/zeromorph.hpp" #include "barretenberg/numeric/bitop/get_msb.hpp" #include "barretenberg/transcript/transcript.hpp" #include "barretenberg/ultra_honk/oink_verifier.hpp" diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp index cc74c6d2323..a2ca780b256 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp @@ -2289,7 +2289,7 @@ AvmFlavor::CommitmentLabels::CommitmentLabels() // Note: current de-/serialization routines are not including the padded zero univariates which are added as part of // current sumcheck implementation. Namely, this algorithm is padding to reach CONST_PROOF_SIZE_LOG_N sumcheck rounds. -// Similarly, zeromorph implementation performs same padding over some commitments (zm_cq_comms). +// Similarly, Shplemini implementation performs same padding over some commitments (zm_cq_comms). // In code below, the loops are of size log(circuit_size) instead of CONST_PROOF_SIZE_LOG_N. void AvmFlavor::Transcript::deserialize_full_transcript() { diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/prover.cpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/prover.cpp index 5837f7f7f84..07bbd42bd1d 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/prover.cpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/prover.cpp @@ -148,7 +148,7 @@ HonkProof AvmProver::construct_proof() AVM_TRACK_TIME("prove/execute_relation_check_rounds", execute_relation_check_rounds()); // Fiat-Shamir: rho, y, x, z - // Execute Zeromorph multilinear PCS + // Execute Shplemini PCS AVM_TRACK_TIME("prove/execute_pcs_rounds", execute_pcs_rounds()); return export_proof(); diff --git a/bb-pilcom/bb-pil-backend/templates/flavor.cpp.hbs b/bb-pilcom/bb-pil-backend/templates/flavor.cpp.hbs index 52d6710bded..9acbab45408 100644 --- a/bb-pilcom/bb-pil-backend/templates/flavor.cpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/flavor.cpp.hbs @@ -48,7 +48,7 @@ namespace bb { // Note: current de-/serialization routines are not including the padded zero univariates which are added as part of // current sumcheck implementation. Namely, this algorithm is padding to reach CONST_PROOF_SIZE_LOG_N sumcheck rounds. -// Similarly, zeromorph implementation performs same padding over some commitments (zm_cq_comms). +// Similarly, Shplemini implementation performs same padding over some commitments (zm_cq_comms). // In code below, the loops are of size log(circuit_size) instead of CONST_PROOF_SIZE_LOG_N. void {{name}}Flavor::Transcript::deserialize_full_transcript() { size_t num_frs_read = 0; diff --git a/bb-pilcom/bb-pil-backend/templates/prover.cpp.hbs b/bb-pilcom/bb-pil-backend/templates/prover.cpp.hbs index 4a0925de4c8..b2e194af043 100644 --- a/bb-pilcom/bb-pil-backend/templates/prover.cpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/prover.cpp.hbs @@ -147,7 +147,7 @@ HonkProof {{name}}Prover::construct_proof() AVM_TRACK_TIME("prove/execute_relation_check_rounds", execute_relation_check_rounds()); // Fiat-Shamir: rho, y, x, z - // Execute Zeromorph multilinear PCS + // Execute Shplemini PCS AVM_TRACK_TIME("prove/execute_pcs_rounds", execute_pcs_rounds()); return export_proof(); From d6f9cc9b4fff8bd8f1add0dddcae0ae773cf27ae Mon Sep 17 00:00:00 2001 From: jeanmon Date: Wed, 23 Oct 2024 17:56:51 +0000 Subject: [PATCH 4/8] 9349: adapt proof length --- .../acir_format/avm_recursion_constraint.cpp | 34 ++++++++----------- .../barretenberg/vm/avm/generated/flavor.hpp | 4 +-- .../src/barretenberg/vm/aztec_constants.hpp | 2 +- .../crates/types/src/constants.nr | 2 +- yarn-project/circuits.js/src/constants.gen.ts | 2 +- 5 files changed, 20 insertions(+), 24 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/avm_recursion_constraint.cpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/avm_recursion_constraint.cpp index bba1f529ae7..bd5139fec50 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/avm_recursion_constraint.cpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/avm_recursion_constraint.cpp @@ -45,17 +45,15 @@ void create_dummy_vkey_and_proof(Builder& builder, // Relevant source for proof layout: AvmFlavor::Transcript::serialize_full_transcript() assert((proof_size - Flavor::NUM_WITNESS_ENTITIES * Flavor::NUM_FRS_COM - - Flavor::NUM_ALL_ENTITIES * Flavor::NUM_FRS_FR - 2 * Flavor::NUM_FRS_COM - Flavor::NUM_FRS_FR) % - (Flavor::NUM_FRS_COM + Flavor::NUM_FRS_FR * Flavor::BATCHED_RELATION_PARTIAL_LENGTH) == + (Flavor::NUM_ALL_ENTITIES + 1) * Flavor::NUM_FRS_FR - Flavor::NUM_FRS_COM) % + (Flavor::NUM_FRS_COM + Flavor::NUM_FRS_FR * (Flavor::BATCHED_RELATION_PARTIAL_LENGTH + 1)) == 0); // Derivation of circuit size based on the proof - // Here, we should always get CONST_PROOF_SIZE_LOG_N which is not what is - // usually set for the AVM proof. As it is a dummy key/proof, it should not matter. - auto log_circuit_size = - (proof_size - Flavor::NUM_WITNESS_ENTITIES * Flavor::NUM_FRS_COM - - Flavor::NUM_ALL_ENTITIES * Flavor::NUM_FRS_FR - 2 * Flavor::NUM_FRS_COM - Flavor::NUM_FRS_FR) / - (Flavor::NUM_FRS_COM + Flavor::NUM_FRS_FR * Flavor::BATCHED_RELATION_PARTIAL_LENGTH); + // Here, we should always get CONST_PROOF_SIZE_LOG_N. + auto log_circuit_size = (proof_size - Flavor::NUM_WITNESS_ENTITIES * Flavor::NUM_FRS_COM - + (Flavor::NUM_ALL_ENTITIES + 1) * Flavor::NUM_FRS_FR - Flavor::NUM_FRS_COM) / + (Flavor::NUM_FRS_COM + Flavor::NUM_FRS_FR * (Flavor::BATCHED_RELATION_PARTIAL_LENGTH + 1)); /*************************************************************************** * Construct Dummy Verification Key @@ -109,8 +107,8 @@ void create_dummy_vkey_and_proof(Builder& builder, offset++; } - // now the shplemini commitments - for (size_t i = 0; i < CONST_PROOF_SIZE_LOG_N; i++) { + // now the gemini fold commitments which are CONST_PROOF_SIZE_LOG_N - 1 + for (size_t i = 1; i < CONST_PROOF_SIZE_LOG_N; i++) { auto comm = curve::BN254::AffineElement::one() * fr::random_element(); auto frs = field_conversion::convert_to_bn254_frs(comm); builder.assert_equal(builder.add_variable(frs[0]), proof_fields[offset].witness_index); @@ -120,7 +118,13 @@ void create_dummy_vkey_and_proof(Builder& builder, offset += 4; } - // lastly the 2 commitments + // the gemini fold evaluations which are CONST_PROOF_SIZE_LOG_N + for (size_t i = 0; i < CONST_PROOF_SIZE_LOG_N; i++) { + builder.assert_equal(builder.add_variable(fr::random_element()), proof_fields[offset].witness_index); + offset++; + } + + // lastly the shplonk batched quotient commitment and kzg quotient commitment for (size_t i = 0; i < 2; i++) { auto comm = curve::BN254::AffineElement::one() * fr::random_element(); auto frs = field_conversion::convert_to_bn254_frs(comm); @@ -163,14 +167,6 @@ AggregationObjectIndices create_avm_recursion_constraints(Builder& builder, key_fields.emplace_back(field); } - // TODO(JEANMON): Once we integrate with public inputs, we will have to decide whether we inject (see - // ProofSurgeon::create_indices_for_reconstructed_proof) them as part of proof_fields or through some separate - // argument like in the native verifier. The latter will be favored because the public inputs are not part of the - // transcript and the verifier code passes the proof to initialize the transcript. - // Create witness indices for the - // proof with public inputs reinserted std::vector proof_indices = - // ProofSurgeon::create_indices_for_reconstructed_proof(input.proof, input.public_inputs); - auto fields_from_witnesses = [&](std::vector const& input) { std::vector result; result.reserve(input.size()); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp index a0d83f7122b..0f912054708 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp @@ -240,8 +240,8 @@ class AvmFlavor { // After any circuit changes, hover `COMPUTED_AVM_PROOF_LENGTH_IN_FIELDS` in your IDE // to see its value and then update `AVM_PROOF_LENGTH_IN_FIELDS` in constants.nr. static constexpr size_t COMPUTED_AVM_PROOF_LENGTH_IN_FIELDS = - (NUM_WITNESS_ENTITIES + 2) * NUM_FRS_COM + (NUM_ALL_ENTITIES + 1) * NUM_FRS_FR + - CONST_PROOF_SIZE_LOG_N * (NUM_FRS_COM + NUM_FRS_FR * BATCHED_RELATION_PARTIAL_LENGTH); + 1 + (NUM_WITNESS_ENTITIES + 1) * NUM_FRS_COM + NUM_ALL_ENTITIES * NUM_FRS_FR + + CONST_PROOF_SIZE_LOG_N * (NUM_FRS_COM + NUM_FRS_FR * (BATCHED_RELATION_PARTIAL_LENGTH + 1)); static_assert(AVM_PROOF_LENGTH_IN_FIELDS == COMPUTED_AVM_PROOF_LENGTH_IN_FIELDS, "\nUnexpected AVM proof length. This might be due to some changes in the\n" diff --git a/barretenberg/cpp/src/barretenberg/vm/aztec_constants.hpp b/barretenberg/cpp/src/barretenberg/vm/aztec_constants.hpp index 8e46fac6d49..1180643222a 100644 --- a/barretenberg/cpp/src/barretenberg/vm/aztec_constants.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/aztec_constants.hpp @@ -35,7 +35,7 @@ #define PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH 674 #define PUBLIC_CONTEXT_INPUTS_LENGTH 41 #define AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS 86 -#define AVM_PROOF_LENGTH_IN_FIELDS 3818 +#define AVM_PROOF_LENGTH_IN_FIELDS 3842 #define AVM_PUBLIC_COLUMN_MAX_SIZE 1024 #define AVM_PUBLIC_INPUTS_FLATTENED_SIZE 2722 #define MEM_TAG_FF 0 diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr index 54f470a7b20..e35af0dbe96 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr @@ -475,7 +475,7 @@ global AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS: u32 = 2 + 21 * 4; // `AVM_PROOF_LENGTH_IN_FIELDS` must be updated when AVM circuit changes. // To determine latest value, hover `COMPUTED_AVM_PROOF_LENGTH_IN_FIELDS` // in barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp -global AVM_PROOF_LENGTH_IN_FIELDS: u32 = 3818; +global AVM_PROOF_LENGTH_IN_FIELDS: u32 = 3842; global AVM_PUBLIC_COLUMN_MAX_SIZE : u32 = 1024; global AVM_PUBLIC_INPUTS_FLATTENED_SIZE : u32 = 2 * AVM_PUBLIC_COLUMN_MAX_SIZE + PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH; /** diff --git a/yarn-project/circuits.js/src/constants.gen.ts b/yarn-project/circuits.js/src/constants.gen.ts index 663970f2744..860495b34e6 100644 --- a/yarn-project/circuits.js/src/constants.gen.ts +++ b/yarn-project/circuits.js/src/constants.gen.ts @@ -216,7 +216,7 @@ export const TUBE_PROOF_LENGTH = 463; export const HONK_VERIFICATION_KEY_LENGTH_IN_FIELDS = 128; export const CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS = 145; export const AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS = 86; -export const AVM_PROOF_LENGTH_IN_FIELDS = 3818; +export const AVM_PROOF_LENGTH_IN_FIELDS = 3842; export const AVM_PUBLIC_COLUMN_MAX_SIZE = 1024; export const AVM_PUBLIC_INPUTS_FLATTENED_SIZE = 2722; export const MEM_TAG_FF = 0; From 663ac364a69b9e70f026e22a16476c34fdb8daf7 Mon Sep 17 00:00:00 2001 From: jeanmon Date: Thu, 24 Oct 2024 08:18:43 +0000 Subject: [PATCH 5/8] 9349: rebase on master --- .../barretenberg/vm/avm/generated/flavor.cpp | 1064 +++++++++-------- .../barretenberg/vm/avm/generated/flavor.hpp | 18 +- .../vm/avm/generated/full_row.hpp | 2 +- .../src/barretenberg/vm/aztec_constants.hpp | 2 +- .../crates/types/src/constants.nr | 2 +- yarn-project/circuits.js/src/constants.gen.ts | 2 +- 6 files changed, 562 insertions(+), 528 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp index a2ca780b256..5cd65b282f3 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp @@ -240,521 +240,555 @@ AvmFlavor::AllConstRefValues::AllConstRefValues( , main_sel_op_sload(il[232]) , main_sel_op_sstore(il[233]) , main_sel_op_static_call(il[234]) - , main_sel_op_storage_address(il[235]) - , main_sel_op_sub(il[236]) - , main_sel_op_timestamp(il[237]) - , main_sel_op_transaction_fee(il[238]) - , main_sel_op_version(il[239]) - , main_sel_op_xor(il[240]) - , main_sel_q_kernel_lookup(il[241]) - , main_sel_q_kernel_output_lookup(il[242]) - , main_sel_resolve_ind_addr_a(il[243]) - , main_sel_resolve_ind_addr_b(il[244]) - , main_sel_resolve_ind_addr_c(il[245]) - , main_sel_resolve_ind_addr_d(il[246]) - , main_sel_returndata(il[247]) - , main_sel_rng_16(il[248]) - , main_sel_rng_8(il[249]) - , main_sel_slice_gadget(il[250]) - , main_side_effect_counter(il[251]) - , main_sload_write_offset(il[252]) - , main_space_id(il[253]) - , main_sstore_write_offset(il[254]) - , main_tag_err(il[255]) - , main_w_in_tag(il[256]) - , mem_addr(il[257]) - , mem_clk(il[258]) - , mem_diff(il[259]) - , mem_glob_addr(il[260]) - , mem_last(il[261]) - , mem_lastAccess(il[262]) - , mem_one_min_inv(il[263]) - , mem_r_in_tag(il[264]) - , mem_rw(il[265]) - , mem_sel_mem(il[266]) - , mem_sel_mov_ia_to_ic(il[267]) - , mem_sel_mov_ib_to_ic(il[268]) - , mem_sel_op_a(il[269]) - , mem_sel_op_b(il[270]) - , mem_sel_op_c(il[271]) - , mem_sel_op_d(il[272]) - , mem_sel_op_poseidon_read_a(il[273]) - , mem_sel_op_poseidon_read_b(il[274]) - , mem_sel_op_poseidon_read_c(il[275]) - , mem_sel_op_poseidon_read_d(il[276]) - , mem_sel_op_poseidon_write_a(il[277]) - , mem_sel_op_poseidon_write_b(il[278]) - , mem_sel_op_poseidon_write_c(il[279]) - , mem_sel_op_poseidon_write_d(il[280]) - , mem_sel_op_slice(il[281]) - , mem_sel_resolve_ind_addr_a(il[282]) - , mem_sel_resolve_ind_addr_b(il[283]) - , mem_sel_resolve_ind_addr_c(il[284]) - , mem_sel_resolve_ind_addr_d(il[285]) - , mem_sel_rng_chk(il[286]) - , mem_skip_check_tag(il[287]) - , mem_space_id(il[288]) - , mem_tag(il[289]) - , mem_tag_err(il[290]) - , mem_tsp(il[291]) - , mem_val(il[292]) - , mem_w_in_tag(il[293]) - , poseidon2_B_10_0(il[294]) - , poseidon2_B_10_1(il[295]) - , poseidon2_B_10_2(il[296]) - , poseidon2_B_10_3(il[297]) - , poseidon2_B_11_0(il[298]) - , poseidon2_B_11_1(il[299]) - , poseidon2_B_11_2(il[300]) - , poseidon2_B_11_3(il[301]) - , poseidon2_B_12_0(il[302]) - , poseidon2_B_12_1(il[303]) - , poseidon2_B_12_2(il[304]) - , poseidon2_B_12_3(il[305]) - , poseidon2_B_13_0(il[306]) - , poseidon2_B_13_1(il[307]) - , poseidon2_B_13_2(il[308]) - , poseidon2_B_13_3(il[309]) - , poseidon2_B_14_0(il[310]) - , poseidon2_B_14_1(il[311]) - , poseidon2_B_14_2(il[312]) - , poseidon2_B_14_3(il[313]) - , poseidon2_B_15_0(il[314]) - , poseidon2_B_15_1(il[315]) - , poseidon2_B_15_2(il[316]) - , poseidon2_B_15_3(il[317]) - , poseidon2_B_16_0(il[318]) - , poseidon2_B_16_1(il[319]) - , poseidon2_B_16_2(il[320]) - , poseidon2_B_16_3(il[321]) - , poseidon2_B_17_0(il[322]) - , poseidon2_B_17_1(il[323]) - , poseidon2_B_17_2(il[324]) - , poseidon2_B_17_3(il[325]) - , poseidon2_B_18_0(il[326]) - , poseidon2_B_18_1(il[327]) - , poseidon2_B_18_2(il[328]) - , poseidon2_B_18_3(il[329]) - , poseidon2_B_19_0(il[330]) - , poseidon2_B_19_1(il[331]) - , poseidon2_B_19_2(il[332]) - , poseidon2_B_19_3(il[333]) - , poseidon2_B_20_0(il[334]) - , poseidon2_B_20_1(il[335]) - , poseidon2_B_20_2(il[336]) - , poseidon2_B_20_3(il[337]) - , poseidon2_B_21_0(il[338]) - , poseidon2_B_21_1(il[339]) - , poseidon2_B_21_2(il[340]) - , poseidon2_B_21_3(il[341]) - , poseidon2_B_22_0(il[342]) - , poseidon2_B_22_1(il[343]) - , poseidon2_B_22_2(il[344]) - , poseidon2_B_22_3(il[345]) - , poseidon2_B_23_0(il[346]) - , poseidon2_B_23_1(il[347]) - , poseidon2_B_23_2(il[348]) - , poseidon2_B_23_3(il[349]) - , poseidon2_B_24_0(il[350]) - , poseidon2_B_24_1(il[351]) - , poseidon2_B_24_2(il[352]) - , poseidon2_B_24_3(il[353]) - , poseidon2_B_25_0(il[354]) - , poseidon2_B_25_1(il[355]) - , poseidon2_B_25_2(il[356]) - , poseidon2_B_25_3(il[357]) - , poseidon2_B_26_0(il[358]) - , poseidon2_B_26_1(il[359]) - , poseidon2_B_26_2(il[360]) - , poseidon2_B_26_3(il[361]) - , poseidon2_B_27_0(il[362]) - , poseidon2_B_27_1(il[363]) - , poseidon2_B_27_2(il[364]) - , poseidon2_B_27_3(il[365]) - , poseidon2_B_28_0(il[366]) - , poseidon2_B_28_1(il[367]) - , poseidon2_B_28_2(il[368]) - , poseidon2_B_28_3(il[369]) - , poseidon2_B_29_0(il[370]) - , poseidon2_B_29_1(il[371]) - , poseidon2_B_29_2(il[372]) - , poseidon2_B_29_3(il[373]) - , poseidon2_B_30_0(il[374]) - , poseidon2_B_30_1(il[375]) - , poseidon2_B_30_2(il[376]) - , poseidon2_B_30_3(il[377]) - , poseidon2_B_31_0(il[378]) - , poseidon2_B_31_1(il[379]) - , poseidon2_B_31_2(il[380]) - , poseidon2_B_31_3(il[381]) - , poseidon2_B_32_0(il[382]) - , poseidon2_B_32_1(il[383]) - , poseidon2_B_32_2(il[384]) - , poseidon2_B_32_3(il[385]) - , poseidon2_B_33_0(il[386]) - , poseidon2_B_33_1(il[387]) - , poseidon2_B_33_2(il[388]) - , poseidon2_B_33_3(il[389]) - , poseidon2_B_34_0(il[390]) - , poseidon2_B_34_1(il[391]) - , poseidon2_B_34_2(il[392]) - , poseidon2_B_34_3(il[393]) - , poseidon2_B_35_0(il[394]) - , poseidon2_B_35_1(il[395]) - , poseidon2_B_35_2(il[396]) - , poseidon2_B_35_3(il[397]) - , poseidon2_B_36_0(il[398]) - , poseidon2_B_36_1(il[399]) - , poseidon2_B_36_2(il[400]) - , poseidon2_B_36_3(il[401]) - , poseidon2_B_37_0(il[402]) - , poseidon2_B_37_1(il[403]) - , poseidon2_B_37_2(il[404]) - , poseidon2_B_37_3(il[405]) - , poseidon2_B_38_0(il[406]) - , poseidon2_B_38_1(il[407]) - , poseidon2_B_38_2(il[408]) - , poseidon2_B_38_3(il[409]) - , poseidon2_B_39_0(il[410]) - , poseidon2_B_39_1(il[411]) - , poseidon2_B_39_2(il[412]) - , poseidon2_B_39_3(il[413]) - , poseidon2_B_40_0(il[414]) - , poseidon2_B_40_1(il[415]) - , poseidon2_B_40_2(il[416]) - , poseidon2_B_40_3(il[417]) - , poseidon2_B_41_0(il[418]) - , poseidon2_B_41_1(il[419]) - , poseidon2_B_41_2(il[420]) - , poseidon2_B_41_3(il[421]) - , poseidon2_B_42_0(il[422]) - , poseidon2_B_42_1(il[423]) - , poseidon2_B_42_2(il[424]) - , poseidon2_B_42_3(il[425]) - , poseidon2_B_43_0(il[426]) - , poseidon2_B_43_1(il[427]) - , poseidon2_B_43_2(il[428]) - , poseidon2_B_43_3(il[429]) - , poseidon2_B_44_0(il[430]) - , poseidon2_B_44_1(il[431]) - , poseidon2_B_44_2(il[432]) - , poseidon2_B_44_3(il[433]) - , poseidon2_B_45_0(il[434]) - , poseidon2_B_45_1(il[435]) - , poseidon2_B_45_2(il[436]) - , poseidon2_B_45_3(il[437]) - , poseidon2_B_46_0(il[438]) - , poseidon2_B_46_1(il[439]) - , poseidon2_B_46_2(il[440]) - , poseidon2_B_46_3(il[441]) - , poseidon2_B_47_0(il[442]) - , poseidon2_B_47_1(il[443]) - , poseidon2_B_47_2(il[444]) - , poseidon2_B_47_3(il[445]) - , poseidon2_B_48_0(il[446]) - , poseidon2_B_48_1(il[447]) - , poseidon2_B_48_2(il[448]) - , poseidon2_B_48_3(il[449]) - , poseidon2_B_49_0(il[450]) - , poseidon2_B_49_1(il[451]) - , poseidon2_B_49_2(il[452]) - , poseidon2_B_49_3(il[453]) - , poseidon2_B_4_0(il[454]) - , poseidon2_B_4_1(il[455]) - , poseidon2_B_4_2(il[456]) - , poseidon2_B_4_3(il[457]) - , poseidon2_B_50_0(il[458]) - , poseidon2_B_50_1(il[459]) - , poseidon2_B_50_2(il[460]) - , poseidon2_B_50_3(il[461]) - , poseidon2_B_51_0(il[462]) - , poseidon2_B_51_1(il[463]) - , poseidon2_B_51_2(il[464]) - , poseidon2_B_51_3(il[465]) - , poseidon2_B_52_0(il[466]) - , poseidon2_B_52_1(il[467]) - , poseidon2_B_52_2(il[468]) - , poseidon2_B_52_3(il[469]) - , poseidon2_B_53_0(il[470]) - , poseidon2_B_53_1(il[471]) - , poseidon2_B_53_2(il[472]) - , poseidon2_B_53_3(il[473]) - , poseidon2_B_54_0(il[474]) - , poseidon2_B_54_1(il[475]) - , poseidon2_B_54_2(il[476]) - , poseidon2_B_54_3(il[477]) - , poseidon2_B_55_0(il[478]) - , poseidon2_B_55_1(il[479]) - , poseidon2_B_55_2(il[480]) - , poseidon2_B_55_3(il[481]) - , poseidon2_B_56_0(il[482]) - , poseidon2_B_56_1(il[483]) - , poseidon2_B_56_2(il[484]) - , poseidon2_B_56_3(il[485]) - , poseidon2_B_57_0(il[486]) - , poseidon2_B_57_1(il[487]) - , poseidon2_B_57_2(il[488]) - , poseidon2_B_57_3(il[489]) - , poseidon2_B_58_0(il[490]) - , poseidon2_B_58_1(il[491]) - , poseidon2_B_58_2(il[492]) - , poseidon2_B_58_3(il[493]) - , poseidon2_B_59_0(il[494]) - , poseidon2_B_59_1(il[495]) - , poseidon2_B_59_2(il[496]) - , poseidon2_B_59_3(il[497]) - , poseidon2_B_5_0(il[498]) - , poseidon2_B_5_1(il[499]) - , poseidon2_B_5_2(il[500]) - , poseidon2_B_5_3(il[501]) - , poseidon2_B_6_0(il[502]) - , poseidon2_B_6_1(il[503]) - , poseidon2_B_6_2(il[504]) - , poseidon2_B_6_3(il[505]) - , poseidon2_B_7_0(il[506]) - , poseidon2_B_7_1(il[507]) - , poseidon2_B_7_2(il[508]) - , poseidon2_B_7_3(il[509]) - , poseidon2_B_8_0(il[510]) - , poseidon2_B_8_1(il[511]) - , poseidon2_B_8_2(il[512]) - , poseidon2_B_8_3(il[513]) - , poseidon2_B_9_0(il[514]) - , poseidon2_B_9_1(il[515]) - , poseidon2_B_9_2(il[516]) - , poseidon2_B_9_3(il[517]) - , poseidon2_EXT_LAYER_4(il[518]) - , poseidon2_EXT_LAYER_5(il[519]) - , poseidon2_EXT_LAYER_6(il[520]) - , poseidon2_EXT_LAYER_7(il[521]) - , poseidon2_T_0_4(il[522]) - , poseidon2_T_0_5(il[523]) - , poseidon2_T_0_6(il[524]) - , poseidon2_T_0_7(il[525]) - , poseidon2_T_1_4(il[526]) - , poseidon2_T_1_5(il[527]) - , poseidon2_T_1_6(il[528]) - , poseidon2_T_1_7(il[529]) - , poseidon2_T_2_4(il[530]) - , poseidon2_T_2_5(il[531]) - , poseidon2_T_2_6(il[532]) - , poseidon2_T_2_7(il[533]) - , poseidon2_T_3_4(il[534]) - , poseidon2_T_3_5(il[535]) - , poseidon2_T_3_6(il[536]) - , poseidon2_T_3_7(il[537]) - , poseidon2_T_60_4(il[538]) - , poseidon2_T_60_5(il[539]) - , poseidon2_T_60_6(il[540]) - , poseidon2_T_60_7(il[541]) - , poseidon2_T_61_4(il[542]) - , poseidon2_T_61_5(il[543]) - , poseidon2_T_61_6(il[544]) - , poseidon2_T_61_7(il[545]) - , poseidon2_T_62_4(il[546]) - , poseidon2_T_62_5(il[547]) - , poseidon2_T_62_6(il[548]) - , poseidon2_T_62_7(il[549]) - , poseidon2_T_63_4(il[550]) - , poseidon2_T_63_5(il[551]) - , poseidon2_T_63_6(il[552]) - , poseidon2_T_63_7(il[553]) - , poseidon2_a_0(il[554]) - , poseidon2_a_1(il[555]) - , poseidon2_a_2(il[556]) - , poseidon2_a_3(il[557]) - , poseidon2_b_0(il[558]) - , poseidon2_b_1(il[559]) - , poseidon2_b_2(il[560]) - , poseidon2_b_3(il[561]) - , poseidon2_clk(il[562]) - , poseidon2_input_addr(il[563]) - , poseidon2_mem_addr_read_a(il[564]) - , poseidon2_mem_addr_read_b(il[565]) - , poseidon2_mem_addr_read_c(il[566]) - , poseidon2_mem_addr_read_d(il[567]) - , poseidon2_mem_addr_write_a(il[568]) - , poseidon2_mem_addr_write_b(il[569]) - , poseidon2_mem_addr_write_c(il[570]) - , poseidon2_mem_addr_write_d(il[571]) - , poseidon2_output_addr(il[572]) - , poseidon2_sel_poseidon_perm(il[573]) - , poseidon2_space_id(il[574]) - , range_check_alu_rng_chk(il[575]) - , range_check_clk(il[576]) - , range_check_cmp_hi_bits_rng_chk(il[577]) - , range_check_cmp_lo_bits_rng_chk(il[578]) - , range_check_dyn_diff(il[579]) - , range_check_dyn_rng_chk_bits(il[580]) - , range_check_dyn_rng_chk_pow_2(il[581]) - , range_check_gas_da_rng_chk(il[582]) - , range_check_gas_l2_rng_chk(il[583]) - , range_check_is_lte_u112(il[584]) - , range_check_is_lte_u128(il[585]) - , range_check_is_lte_u16(il[586]) - , range_check_is_lte_u32(il[587]) - , range_check_is_lte_u48(il[588]) - , range_check_is_lte_u64(il[589]) - , range_check_is_lte_u80(il[590]) - , range_check_is_lte_u96(il[591]) - , range_check_mem_rng_chk(il[592]) - , range_check_rng_chk_bits(il[593]) - , range_check_sel_lookup_0(il[594]) - , range_check_sel_lookup_1(il[595]) - , range_check_sel_lookup_2(il[596]) - , range_check_sel_lookup_3(il[597]) - , range_check_sel_lookup_4(il[598]) - , range_check_sel_lookup_5(il[599]) - , range_check_sel_lookup_6(il[600]) - , range_check_sel_rng_chk(il[601]) - , range_check_u16_r0(il[602]) - , range_check_u16_r1(il[603]) - , range_check_u16_r2(il[604]) - , range_check_u16_r3(il[605]) - , range_check_u16_r4(il[606]) - , range_check_u16_r5(il[607]) - , range_check_u16_r6(il[608]) - , range_check_u16_r7(il[609]) - , range_check_value(il[610]) - , sha256_clk(il[611]) - , sha256_input(il[612]) - , sha256_output(il[613]) - , sha256_sel_sha256_compression(il[614]) - , sha256_state(il[615]) - , slice_addr(il[616]) - , slice_clk(il[617]) - , slice_cnt(il[618]) - , slice_col_offset(il[619]) - , slice_one_min_inv(il[620]) - , slice_sel_cd_cpy(il[621]) - , slice_sel_mem_active(il[622]) - , slice_sel_return(il[623]) - , slice_sel_start(il[624]) - , slice_space_id(il[625]) - , slice_val(il[626]) - , lookup_rng_chk_pow_2_counts(il[627]) - , lookup_rng_chk_diff_counts(il[628]) - , lookup_rng_chk_0_counts(il[629]) - , lookup_rng_chk_1_counts(il[630]) - , lookup_rng_chk_2_counts(il[631]) - , lookup_rng_chk_3_counts(il[632]) - , lookup_rng_chk_4_counts(il[633]) - , lookup_rng_chk_5_counts(il[634]) - , lookup_rng_chk_6_counts(il[635]) - , lookup_rng_chk_7_counts(il[636]) - , lookup_pow_2_0_counts(il[637]) - , lookup_pow_2_1_counts(il[638]) - , lookup_byte_lengths_counts(il[639]) - , lookup_byte_operations_counts(il[640]) - , lookup_opcode_gas_counts(il[641]) - , kernel_output_lookup_counts(il[642]) - , lookup_into_kernel_counts(il[643]) - , lookup_cd_value_counts(il[644]) - , lookup_ret_value_counts(il[645]) - , incl_main_tag_err_counts(il[646]) - , incl_mem_tag_err_counts(il[647]) - , perm_rng_mem_inv(il[648]) - , perm_rng_cmp_lo_inv(il[649]) - , perm_rng_cmp_hi_inv(il[650]) - , perm_rng_alu_inv(il[651]) - , perm_cmp_alu_inv(il[652]) - , perm_rng_gas_l2_inv(il[653]) - , perm_rng_gas_da_inv(il[654]) - , perm_l2_start_gas_inv(il[655]) - , perm_da_start_gas_inv(il[656]) - , perm_l2_end_gas_inv(il[657]) - , perm_da_end_gas_inv(il[658]) - , perm_pos_mem_read_a_inv(il[659]) - , perm_pos_mem_read_b_inv(il[660]) - , perm_pos_mem_read_c_inv(il[661]) - , perm_pos_mem_read_d_inv(il[662]) - , perm_pos_mem_write_a_inv(il[663]) - , perm_pos_mem_write_b_inv(il[664]) - , perm_pos_mem_write_c_inv(il[665]) - , perm_pos_mem_write_d_inv(il[666]) - , perm_slice_mem_inv(il[667]) - , perm_main_alu_inv(il[668]) - , perm_main_bin_inv(il[669]) - , perm_main_conv_inv(il[670]) - , perm_main_sha256_inv(il[671]) - , perm_main_pos2_perm_inv(il[672]) - , perm_main_slice_inv(il[673]) - , perm_main_mem_a_inv(il[674]) - , perm_main_mem_b_inv(il[675]) - , perm_main_mem_c_inv(il[676]) - , perm_main_mem_d_inv(il[677]) - , perm_main_mem_ind_addr_a_inv(il[678]) - , perm_main_mem_ind_addr_b_inv(il[679]) - , perm_main_mem_ind_addr_c_inv(il[680]) - , perm_main_mem_ind_addr_d_inv(il[681]) - , lookup_rng_chk_pow_2_inv(il[682]) - , lookup_rng_chk_diff_inv(il[683]) - , lookup_rng_chk_0_inv(il[684]) - , lookup_rng_chk_1_inv(il[685]) - , lookup_rng_chk_2_inv(il[686]) - , lookup_rng_chk_3_inv(il[687]) - , lookup_rng_chk_4_inv(il[688]) - , lookup_rng_chk_5_inv(il[689]) - , lookup_rng_chk_6_inv(il[690]) - , lookup_rng_chk_7_inv(il[691]) - , lookup_pow_2_0_inv(il[692]) - , lookup_pow_2_1_inv(il[693]) - , lookup_byte_lengths_inv(il[694]) - , lookup_byte_operations_inv(il[695]) - , lookup_opcode_gas_inv(il[696]) - , kernel_output_lookup_inv(il[697]) - , lookup_into_kernel_inv(il[698]) - , lookup_cd_value_inv(il[699]) - , lookup_ret_value_inv(il[700]) - , incl_main_tag_err_inv(il[701]) - , incl_mem_tag_err_inv(il[702]) - , binary_acc_ia_shift(il[703]) - , binary_acc_ib_shift(il[704]) - , binary_acc_ic_shift(il[705]) - , binary_mem_tag_ctr_shift(il[706]) - , binary_op_id_shift(il[707]) - , cmp_a_hi_shift(il[708]) - , cmp_a_lo_shift(il[709]) - , cmp_b_hi_shift(il[710]) - , cmp_b_lo_shift(il[711]) - , cmp_cmp_rng_ctr_shift(il[712]) - , cmp_op_gt_shift(il[713]) - , cmp_p_sub_a_hi_shift(il[714]) - , cmp_p_sub_a_lo_shift(il[715]) - , cmp_p_sub_b_hi_shift(il[716]) - , cmp_p_sub_b_lo_shift(il[717]) - , cmp_sel_rng_chk_shift(il[718]) - , main_da_gas_remaining_shift(il[719]) - , main_emit_l2_to_l1_msg_write_offset_shift(il[720]) - , main_emit_note_hash_write_offset_shift(il[721]) - , main_emit_nullifier_write_offset_shift(il[722]) - , main_emit_unencrypted_log_write_offset_shift(il[723]) - , main_internal_return_ptr_shift(il[724]) - , main_l1_to_l2_msg_exists_write_offset_shift(il[725]) - , main_l2_gas_remaining_shift(il[726]) - , main_note_hash_exist_write_offset_shift(il[727]) - , main_nullifier_exists_write_offset_shift(il[728]) - , main_nullifier_non_exists_write_offset_shift(il[729]) - , main_pc_shift(il[730]) - , main_sel_execution_end_shift(il[731]) - , main_sel_execution_row_shift(il[732]) - , main_sload_write_offset_shift(il[733]) - , main_sstore_write_offset_shift(il[734]) - , mem_glob_addr_shift(il[735]) - , mem_rw_shift(il[736]) - , mem_sel_mem_shift(il[737]) - , mem_tag_shift(il[738]) - , mem_tsp_shift(il[739]) - , mem_val_shift(il[740]) - , slice_addr_shift(il[741]) - , slice_clk_shift(il[742]) - , slice_cnt_shift(il[743]) - , slice_col_offset_shift(il[744]) - , slice_sel_cd_cpy_shift(il[745]) - , slice_sel_mem_active_shift(il[746]) - , slice_sel_return_shift(il[747]) - , slice_sel_start_shift(il[748]) - , slice_space_id_shift(il[749]) + , main_sel_op_sub(il[235]) + , main_sel_op_timestamp(il[236]) + , main_sel_op_transaction_fee(il[237]) + , main_sel_op_version(il[238]) + , main_sel_op_xor(il[239]) + , main_sel_q_kernel_lookup(il[240]) + , main_sel_q_kernel_output_lookup(il[241]) + , main_sel_resolve_ind_addr_a(il[242]) + , main_sel_resolve_ind_addr_b(il[243]) + , main_sel_resolve_ind_addr_c(il[244]) + , main_sel_resolve_ind_addr_d(il[245]) + , main_sel_returndata(il[246]) + , main_sel_rng_16(il[247]) + , main_sel_rng_8(il[248]) + , main_sel_slice_gadget(il[249]) + , main_side_effect_counter(il[250]) + , main_sload_write_offset(il[251]) + , main_space_id(il[252]) + , main_sstore_write_offset(il[253]) + , main_tag_err(il[254]) + , main_w_in_tag(il[255]) + , mem_addr(il[256]) + , mem_clk(il[257]) + , mem_diff(il[258]) + , mem_glob_addr(il[259]) + , mem_last(il[260]) + , mem_lastAccess(il[261]) + , mem_one_min_inv(il[262]) + , mem_r_in_tag(il[263]) + , mem_rw(il[264]) + , mem_sel_mem(il[265]) + , mem_sel_mov_ia_to_ic(il[266]) + , mem_sel_mov_ib_to_ic(il[267]) + , mem_sel_op_a(il[268]) + , mem_sel_op_b(il[269]) + , mem_sel_op_c(il[270]) + , mem_sel_op_d(il[271]) + , mem_sel_op_poseidon_read_a(il[272]) + , mem_sel_op_poseidon_read_b(il[273]) + , mem_sel_op_poseidon_read_c(il[274]) + , mem_sel_op_poseidon_read_d(il[275]) + , mem_sel_op_poseidon_write_a(il[276]) + , mem_sel_op_poseidon_write_b(il[277]) + , mem_sel_op_poseidon_write_c(il[278]) + , mem_sel_op_poseidon_write_d(il[279]) + , mem_sel_op_slice(il[280]) + , mem_sel_resolve_ind_addr_a(il[281]) + , mem_sel_resolve_ind_addr_b(il[282]) + , mem_sel_resolve_ind_addr_c(il[283]) + , mem_sel_resolve_ind_addr_d(il[284]) + , mem_sel_rng_chk(il[285]) + , mem_skip_check_tag(il[286]) + , mem_space_id(il[287]) + , mem_tag(il[288]) + , mem_tag_err(il[289]) + , mem_tsp(il[290]) + , mem_val(il[291]) + , mem_w_in_tag(il[292]) + , poseidon2_B_10_0(il[293]) + , poseidon2_B_10_1(il[294]) + , poseidon2_B_10_2(il[295]) + , poseidon2_B_10_3(il[296]) + , poseidon2_B_11_0(il[297]) + , poseidon2_B_11_1(il[298]) + , poseidon2_B_11_2(il[299]) + , poseidon2_B_11_3(il[300]) + , poseidon2_B_12_0(il[301]) + , poseidon2_B_12_1(il[302]) + , poseidon2_B_12_2(il[303]) + , poseidon2_B_12_3(il[304]) + , poseidon2_B_13_0(il[305]) + , poseidon2_B_13_1(il[306]) + , poseidon2_B_13_2(il[307]) + , poseidon2_B_13_3(il[308]) + , poseidon2_B_14_0(il[309]) + , poseidon2_B_14_1(il[310]) + , poseidon2_B_14_2(il[311]) + , poseidon2_B_14_3(il[312]) + , poseidon2_B_15_0(il[313]) + , poseidon2_B_15_1(il[314]) + , poseidon2_B_15_2(il[315]) + , poseidon2_B_15_3(il[316]) + , poseidon2_B_16_0(il[317]) + , poseidon2_B_16_1(il[318]) + , poseidon2_B_16_2(il[319]) + , poseidon2_B_16_3(il[320]) + , poseidon2_B_17_0(il[321]) + , poseidon2_B_17_1(il[322]) + , poseidon2_B_17_2(il[323]) + , poseidon2_B_17_3(il[324]) + , poseidon2_B_18_0(il[325]) + , poseidon2_B_18_1(il[326]) + , poseidon2_B_18_2(il[327]) + , poseidon2_B_18_3(il[328]) + , poseidon2_B_19_0(il[329]) + , poseidon2_B_19_1(il[330]) + , poseidon2_B_19_2(il[331]) + , poseidon2_B_19_3(il[332]) + , poseidon2_B_20_0(il[333]) + , poseidon2_B_20_1(il[334]) + , poseidon2_B_20_2(il[335]) + , poseidon2_B_20_3(il[336]) + , poseidon2_B_21_0(il[337]) + , poseidon2_B_21_1(il[338]) + , poseidon2_B_21_2(il[339]) + , poseidon2_B_21_3(il[340]) + , poseidon2_B_22_0(il[341]) + , poseidon2_B_22_1(il[342]) + , poseidon2_B_22_2(il[343]) + , poseidon2_B_22_3(il[344]) + , poseidon2_B_23_0(il[345]) + , poseidon2_B_23_1(il[346]) + , poseidon2_B_23_2(il[347]) + , poseidon2_B_23_3(il[348]) + , poseidon2_B_24_0(il[349]) + , poseidon2_B_24_1(il[350]) + , poseidon2_B_24_2(il[351]) + , poseidon2_B_24_3(il[352]) + , poseidon2_B_25_0(il[353]) + , poseidon2_B_25_1(il[354]) + , poseidon2_B_25_2(il[355]) + , poseidon2_B_25_3(il[356]) + , poseidon2_B_26_0(il[357]) + , poseidon2_B_26_1(il[358]) + , poseidon2_B_26_2(il[359]) + , poseidon2_B_26_3(il[360]) + , poseidon2_B_27_0(il[361]) + , poseidon2_B_27_1(il[362]) + , poseidon2_B_27_2(il[363]) + , poseidon2_B_27_3(il[364]) + , poseidon2_B_28_0(il[365]) + , poseidon2_B_28_1(il[366]) + , poseidon2_B_28_2(il[367]) + , poseidon2_B_28_3(il[368]) + , poseidon2_B_29_0(il[369]) + , poseidon2_B_29_1(il[370]) + , poseidon2_B_29_2(il[371]) + , poseidon2_B_29_3(il[372]) + , poseidon2_B_30_0(il[373]) + , poseidon2_B_30_1(il[374]) + , poseidon2_B_30_2(il[375]) + , poseidon2_B_30_3(il[376]) + , poseidon2_B_31_0(il[377]) + , poseidon2_B_31_1(il[378]) + , poseidon2_B_31_2(il[379]) + , poseidon2_B_31_3(il[380]) + , poseidon2_B_32_0(il[381]) + , poseidon2_B_32_1(il[382]) + , poseidon2_B_32_2(il[383]) + , poseidon2_B_32_3(il[384]) + , poseidon2_B_33_0(il[385]) + , poseidon2_B_33_1(il[386]) + , poseidon2_B_33_2(il[387]) + , poseidon2_B_33_3(il[388]) + , poseidon2_B_34_0(il[389]) + , poseidon2_B_34_1(il[390]) + , poseidon2_B_34_2(il[391]) + , poseidon2_B_34_3(il[392]) + , poseidon2_B_35_0(il[393]) + , poseidon2_B_35_1(il[394]) + , poseidon2_B_35_2(il[395]) + , poseidon2_B_35_3(il[396]) + , poseidon2_B_36_0(il[397]) + , poseidon2_B_36_1(il[398]) + , poseidon2_B_36_2(il[399]) + , poseidon2_B_36_3(il[400]) + , poseidon2_B_37_0(il[401]) + , poseidon2_B_37_1(il[402]) + , poseidon2_B_37_2(il[403]) + , poseidon2_B_37_3(il[404]) + , poseidon2_B_38_0(il[405]) + , poseidon2_B_38_1(il[406]) + , poseidon2_B_38_2(il[407]) + , poseidon2_B_38_3(il[408]) + , poseidon2_B_39_0(il[409]) + , poseidon2_B_39_1(il[410]) + , poseidon2_B_39_2(il[411]) + , poseidon2_B_39_3(il[412]) + , poseidon2_B_40_0(il[413]) + , poseidon2_B_40_1(il[414]) + , poseidon2_B_40_2(il[415]) + , poseidon2_B_40_3(il[416]) + , poseidon2_B_41_0(il[417]) + , poseidon2_B_41_1(il[418]) + , poseidon2_B_41_2(il[419]) + , poseidon2_B_41_3(il[420]) + , poseidon2_B_42_0(il[421]) + , poseidon2_B_42_1(il[422]) + , poseidon2_B_42_2(il[423]) + , poseidon2_B_42_3(il[424]) + , poseidon2_B_43_0(il[425]) + , poseidon2_B_43_1(il[426]) + , poseidon2_B_43_2(il[427]) + , poseidon2_B_43_3(il[428]) + , poseidon2_B_44_0(il[429]) + , poseidon2_B_44_1(il[430]) + , poseidon2_B_44_2(il[431]) + , poseidon2_B_44_3(il[432]) + , poseidon2_B_45_0(il[433]) + , poseidon2_B_45_1(il[434]) + , poseidon2_B_45_2(il[435]) + , poseidon2_B_45_3(il[436]) + , poseidon2_B_46_0(il[437]) + , poseidon2_B_46_1(il[438]) + , poseidon2_B_46_2(il[439]) + , poseidon2_B_46_3(il[440]) + , poseidon2_B_47_0(il[441]) + , poseidon2_B_47_1(il[442]) + , poseidon2_B_47_2(il[443]) + , poseidon2_B_47_3(il[444]) + , poseidon2_B_48_0(il[445]) + , poseidon2_B_48_1(il[446]) + , poseidon2_B_48_2(il[447]) + , poseidon2_B_48_3(il[448]) + , poseidon2_B_49_0(il[449]) + , poseidon2_B_49_1(il[450]) + , poseidon2_B_49_2(il[451]) + , poseidon2_B_49_3(il[452]) + , poseidon2_B_4_0(il[453]) + , poseidon2_B_4_1(il[454]) + , poseidon2_B_4_2(il[455]) + , poseidon2_B_4_3(il[456]) + , poseidon2_B_50_0(il[457]) + , poseidon2_B_50_1(il[458]) + , poseidon2_B_50_2(il[459]) + , poseidon2_B_50_3(il[460]) + , poseidon2_B_51_0(il[461]) + , poseidon2_B_51_1(il[462]) + , poseidon2_B_51_2(il[463]) + , poseidon2_B_51_3(il[464]) + , poseidon2_B_52_0(il[465]) + , poseidon2_B_52_1(il[466]) + , poseidon2_B_52_2(il[467]) + , poseidon2_B_52_3(il[468]) + , poseidon2_B_53_0(il[469]) + , poseidon2_B_53_1(il[470]) + , poseidon2_B_53_2(il[471]) + , poseidon2_B_53_3(il[472]) + , poseidon2_B_54_0(il[473]) + , poseidon2_B_54_1(il[474]) + , poseidon2_B_54_2(il[475]) + , poseidon2_B_54_3(il[476]) + , poseidon2_B_55_0(il[477]) + , poseidon2_B_55_1(il[478]) + , poseidon2_B_55_2(il[479]) + , poseidon2_B_55_3(il[480]) + , poseidon2_B_56_0(il[481]) + , poseidon2_B_56_1(il[482]) + , poseidon2_B_56_2(il[483]) + , poseidon2_B_56_3(il[484]) + , poseidon2_B_57_0(il[485]) + , poseidon2_B_57_1(il[486]) + , poseidon2_B_57_2(il[487]) + , poseidon2_B_57_3(il[488]) + , poseidon2_B_58_0(il[489]) + , poseidon2_B_58_1(il[490]) + , poseidon2_B_58_2(il[491]) + , poseidon2_B_58_3(il[492]) + , poseidon2_B_59_0(il[493]) + , poseidon2_B_59_1(il[494]) + , poseidon2_B_59_2(il[495]) + , poseidon2_B_59_3(il[496]) + , poseidon2_B_5_0(il[497]) + , poseidon2_B_5_1(il[498]) + , poseidon2_B_5_2(il[499]) + , poseidon2_B_5_3(il[500]) + , poseidon2_B_6_0(il[501]) + , poseidon2_B_6_1(il[502]) + , poseidon2_B_6_2(il[503]) + , poseidon2_B_6_3(il[504]) + , poseidon2_B_7_0(il[505]) + , poseidon2_B_7_1(il[506]) + , poseidon2_B_7_2(il[507]) + , poseidon2_B_7_3(il[508]) + , poseidon2_B_8_0(il[509]) + , poseidon2_B_8_1(il[510]) + , poseidon2_B_8_2(il[511]) + , poseidon2_B_8_3(il[512]) + , poseidon2_B_9_0(il[513]) + , poseidon2_B_9_1(il[514]) + , poseidon2_B_9_2(il[515]) + , poseidon2_B_9_3(il[516]) + , poseidon2_EXT_LAYER_4(il[517]) + , poseidon2_EXT_LAYER_5(il[518]) + , poseidon2_EXT_LAYER_6(il[519]) + , poseidon2_EXT_LAYER_7(il[520]) + , poseidon2_T_0_4(il[521]) + , poseidon2_T_0_5(il[522]) + , poseidon2_T_0_6(il[523]) + , poseidon2_T_0_7(il[524]) + , poseidon2_T_1_4(il[525]) + , poseidon2_T_1_5(il[526]) + , poseidon2_T_1_6(il[527]) + , poseidon2_T_1_7(il[528]) + , poseidon2_T_2_4(il[529]) + , poseidon2_T_2_5(il[530]) + , poseidon2_T_2_6(il[531]) + , poseidon2_T_2_7(il[532]) + , poseidon2_T_3_4(il[533]) + , poseidon2_T_3_5(il[534]) + , poseidon2_T_3_6(il[535]) + , poseidon2_T_3_7(il[536]) + , poseidon2_T_60_4(il[537]) + , poseidon2_T_60_5(il[538]) + , poseidon2_T_60_6(il[539]) + , poseidon2_T_60_7(il[540]) + , poseidon2_T_61_4(il[541]) + , poseidon2_T_61_5(il[542]) + , poseidon2_T_61_6(il[543]) + , poseidon2_T_61_7(il[544]) + , poseidon2_T_62_4(il[545]) + , poseidon2_T_62_5(il[546]) + , poseidon2_T_62_6(il[547]) + , poseidon2_T_62_7(il[548]) + , poseidon2_T_63_4(il[549]) + , poseidon2_T_63_5(il[550]) + , poseidon2_T_63_6(il[551]) + , poseidon2_T_63_7(il[552]) + , poseidon2_a_0(il[553]) + , poseidon2_a_1(il[554]) + , poseidon2_a_2(il[555]) + , poseidon2_a_3(il[556]) + , poseidon2_b_0(il[557]) + , poseidon2_b_1(il[558]) + , poseidon2_b_2(il[559]) + , poseidon2_b_3(il[560]) + , poseidon2_clk(il[561]) + , poseidon2_full_a_0(il[562]) + , poseidon2_full_a_1(il[563]) + , poseidon2_full_a_2(il[564]) + , poseidon2_full_a_3(il[565]) + , poseidon2_full_b_0(il[566]) + , poseidon2_full_b_1(il[567]) + , poseidon2_full_b_2(il[568]) + , poseidon2_full_b_3(il[569]) + , poseidon2_full_clk(il[570]) + , poseidon2_full_end_poseidon(il[571]) + , poseidon2_full_execute_poseidon_perm(il[572]) + , poseidon2_full_input_0(il[573]) + , poseidon2_full_input_1(il[574]) + , poseidon2_full_input_2(il[575]) + , poseidon2_full_input_len(il[576]) + , poseidon2_full_num_perm_rounds_rem(il[577]) + , poseidon2_full_num_perm_rounds_rem_inv(il[578]) + , poseidon2_full_output(il[579]) + , poseidon2_full_padding(il[580]) + , poseidon2_full_sel_poseidon(il[581]) + , poseidon2_full_start_poseidon(il[582]) + , poseidon2_input_addr(il[583]) + , poseidon2_mem_addr_read_a(il[584]) + , poseidon2_mem_addr_read_b(il[585]) + , poseidon2_mem_addr_read_c(il[586]) + , poseidon2_mem_addr_read_d(il[587]) + , poseidon2_mem_addr_write_a(il[588]) + , poseidon2_mem_addr_write_b(il[589]) + , poseidon2_mem_addr_write_c(il[590]) + , poseidon2_mem_addr_write_d(il[591]) + , poseidon2_output_addr(il[592]) + , poseidon2_sel_poseidon_perm(il[593]) + , poseidon2_sel_poseidon_perm_immediate(il[594]) + , poseidon2_sel_poseidon_perm_mem_op(il[595]) + , poseidon2_space_id(il[596]) + , range_check_alu_rng_chk(il[597]) + , range_check_clk(il[598]) + , range_check_cmp_hi_bits_rng_chk(il[599]) + , range_check_cmp_lo_bits_rng_chk(il[600]) + , range_check_dyn_diff(il[601]) + , range_check_dyn_rng_chk_bits(il[602]) + , range_check_dyn_rng_chk_pow_2(il[603]) + , range_check_gas_da_rng_chk(il[604]) + , range_check_gas_l2_rng_chk(il[605]) + , range_check_is_lte_u112(il[606]) + , range_check_is_lte_u128(il[607]) + , range_check_is_lte_u16(il[608]) + , range_check_is_lte_u32(il[609]) + , range_check_is_lte_u48(il[610]) + , range_check_is_lte_u64(il[611]) + , range_check_is_lte_u80(il[612]) + , range_check_is_lte_u96(il[613]) + , range_check_mem_rng_chk(il[614]) + , range_check_rng_chk_bits(il[615]) + , range_check_sel_lookup_0(il[616]) + , range_check_sel_lookup_1(il[617]) + , range_check_sel_lookup_2(il[618]) + , range_check_sel_lookup_3(il[619]) + , range_check_sel_lookup_4(il[620]) + , range_check_sel_lookup_5(il[621]) + , range_check_sel_lookup_6(il[622]) + , range_check_sel_rng_chk(il[623]) + , range_check_u16_r0(il[624]) + , range_check_u16_r1(il[625]) + , range_check_u16_r2(il[626]) + , range_check_u16_r3(il[627]) + , range_check_u16_r4(il[628]) + , range_check_u16_r5(il[629]) + , range_check_u16_r6(il[630]) + , range_check_u16_r7(il[631]) + , range_check_value(il[632]) + , sha256_clk(il[633]) + , sha256_input(il[634]) + , sha256_output(il[635]) + , sha256_sel_sha256_compression(il[636]) + , sha256_state(il[637]) + , slice_addr(il[638]) + , slice_clk(il[639]) + , slice_cnt(il[640]) + , slice_col_offset(il[641]) + , slice_one_min_inv(il[642]) + , slice_sel_cd_cpy(il[643]) + , slice_sel_mem_active(il[644]) + , slice_sel_return(il[645]) + , slice_sel_start(il[646]) + , slice_space_id(il[647]) + , slice_val(il[648]) + , lookup_rng_chk_pow_2_counts(il[649]) + , lookup_rng_chk_diff_counts(il[650]) + , lookup_rng_chk_0_counts(il[651]) + , lookup_rng_chk_1_counts(il[652]) + , lookup_rng_chk_2_counts(il[653]) + , lookup_rng_chk_3_counts(il[654]) + , lookup_rng_chk_4_counts(il[655]) + , lookup_rng_chk_5_counts(il[656]) + , lookup_rng_chk_6_counts(il[657]) + , lookup_rng_chk_7_counts(il[658]) + , lookup_pow_2_0_counts(il[659]) + , lookup_pow_2_1_counts(il[660]) + , lookup_byte_lengths_counts(il[661]) + , lookup_byte_operations_counts(il[662]) + , lookup_opcode_gas_counts(il[663]) + , kernel_output_lookup_counts(il[664]) + , lookup_into_kernel_counts(il[665]) + , lookup_cd_value_counts(il[666]) + , lookup_ret_value_counts(il[667]) + , incl_main_tag_err_counts(il[668]) + , incl_mem_tag_err_counts(il[669]) + , perm_rng_mem_inv(il[670]) + , perm_rng_cmp_lo_inv(il[671]) + , perm_rng_cmp_hi_inv(il[672]) + , perm_rng_alu_inv(il[673]) + , perm_cmp_alu_inv(il[674]) + , perm_rng_gas_l2_inv(il[675]) + , perm_rng_gas_da_inv(il[676]) + , perm_l2_start_gas_inv(il[677]) + , perm_da_start_gas_inv(il[678]) + , perm_l2_end_gas_inv(il[679]) + , perm_da_end_gas_inv(il[680]) + , perm_pos_mem_read_a_inv(il[681]) + , perm_pos_mem_read_b_inv(il[682]) + , perm_pos_mem_read_c_inv(il[683]) + , perm_pos_mem_read_d_inv(il[684]) + , perm_pos_mem_write_a_inv(il[685]) + , perm_pos_mem_write_b_inv(il[686]) + , perm_pos_mem_write_c_inv(il[687]) + , perm_pos_mem_write_d_inv(il[688]) + , perm_pos2_fixed_pos2_perm_inv(il[689]) + , perm_slice_mem_inv(il[690]) + , perm_main_alu_inv(il[691]) + , perm_main_bin_inv(il[692]) + , perm_main_conv_inv(il[693]) + , perm_main_sha256_inv(il[694]) + , perm_main_pos2_perm_inv(il[695]) + , perm_main_slice_inv(il[696]) + , perm_main_mem_a_inv(il[697]) + , perm_main_mem_b_inv(il[698]) + , perm_main_mem_c_inv(il[699]) + , perm_main_mem_d_inv(il[700]) + , perm_main_mem_ind_addr_a_inv(il[701]) + , perm_main_mem_ind_addr_b_inv(il[702]) + , perm_main_mem_ind_addr_c_inv(il[703]) + , perm_main_mem_ind_addr_d_inv(il[704]) + , lookup_rng_chk_pow_2_inv(il[705]) + , lookup_rng_chk_diff_inv(il[706]) + , lookup_rng_chk_0_inv(il[707]) + , lookup_rng_chk_1_inv(il[708]) + , lookup_rng_chk_2_inv(il[709]) + , lookup_rng_chk_3_inv(il[710]) + , lookup_rng_chk_4_inv(il[711]) + , lookup_rng_chk_5_inv(il[712]) + , lookup_rng_chk_6_inv(il[713]) + , lookup_rng_chk_7_inv(il[714]) + , lookup_pow_2_0_inv(il[715]) + , lookup_pow_2_1_inv(il[716]) + , lookup_byte_lengths_inv(il[717]) + , lookup_byte_operations_inv(il[718]) + , lookup_opcode_gas_inv(il[719]) + , kernel_output_lookup_inv(il[720]) + , lookup_into_kernel_inv(il[721]) + , lookup_cd_value_inv(il[722]) + , lookup_ret_value_inv(il[723]) + , incl_main_tag_err_inv(il[724]) + , incl_mem_tag_err_inv(il[725]) + , binary_acc_ia_shift(il[726]) + , binary_acc_ib_shift(il[727]) + , binary_acc_ic_shift(il[728]) + , binary_mem_tag_ctr_shift(il[729]) + , binary_op_id_shift(il[730]) + , cmp_a_hi_shift(il[731]) + , cmp_a_lo_shift(il[732]) + , cmp_b_hi_shift(il[733]) + , cmp_b_lo_shift(il[734]) + , cmp_cmp_rng_ctr_shift(il[735]) + , cmp_op_gt_shift(il[736]) + , cmp_p_sub_a_hi_shift(il[737]) + , cmp_p_sub_a_lo_shift(il[738]) + , cmp_p_sub_b_hi_shift(il[739]) + , cmp_p_sub_b_lo_shift(il[740]) + , cmp_sel_rng_chk_shift(il[741]) + , main_da_gas_remaining_shift(il[742]) + , main_emit_l2_to_l1_msg_write_offset_shift(il[743]) + , main_emit_note_hash_write_offset_shift(il[744]) + , main_emit_nullifier_write_offset_shift(il[745]) + , main_emit_unencrypted_log_write_offset_shift(il[746]) + , main_internal_return_ptr_shift(il[747]) + , main_l1_to_l2_msg_exists_write_offset_shift(il[748]) + , main_l2_gas_remaining_shift(il[749]) + , main_note_hash_exist_write_offset_shift(il[750]) + , main_nullifier_exists_write_offset_shift(il[751]) + , main_nullifier_non_exists_write_offset_shift(il[752]) + , main_pc_shift(il[753]) + , main_sel_execution_end_shift(il[754]) + , main_sel_execution_row_shift(il[755]) + , main_sload_write_offset_shift(il[756]) + , main_sstore_write_offset_shift(il[757]) + , mem_glob_addr_shift(il[758]) + , mem_rw_shift(il[759]) + , mem_sel_mem_shift(il[760]) + , mem_tag_shift(il[761]) + , mem_tsp_shift(il[762]) + , mem_val_shift(il[763]) + , poseidon2_full_a_0_shift(il[764]) + , poseidon2_full_a_1_shift(il[765]) + , poseidon2_full_a_2_shift(il[766]) + , poseidon2_full_a_3_shift(il[767]) + , poseidon2_full_execute_poseidon_perm_shift(il[768]) + , poseidon2_full_input_0_shift(il[769]) + , poseidon2_full_input_1_shift(il[770]) + , poseidon2_full_input_2_shift(il[771]) + , poseidon2_full_num_perm_rounds_rem_shift(il[772]) + , poseidon2_full_sel_poseidon_shift(il[773]) + , poseidon2_full_start_poseidon_shift(il[774]) + , slice_addr_shift(il[775]) + , slice_clk_shift(il[776]) + , slice_cnt_shift(il[777]) + , slice_col_offset_shift(il[778]) + , slice_sel_cd_cpy_shift(il[779]) + , slice_sel_mem_active_shift(il[780]) + , slice_sel_return_shift(il[781]) + , slice_sel_start_shift(il[782]) + , slice_space_id_shift(il[783]) {} AvmFlavor::ProverPolynomials::ProverPolynomials(ProvingKey& proving_key) diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp index 0f912054708..a6fd7a9331e 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp @@ -95,10 +95,10 @@ template using tuple_cat_t = decltype(std::tuple_cat(std:: // The entities that will be used in the flavor. // clang-format off #define PRECOMPUTED_ENTITIES byte_lookup_sel_bin, byte_lookup_table_byte_lengths, byte_lookup_table_in_tags, byte_lookup_table_input_a, byte_lookup_table_input_b, byte_lookup_table_op_id, byte_lookup_table_output, gas_base_da_gas_fixed_table, gas_base_l2_gas_fixed_table, gas_dyn_da_gas_fixed_table, gas_dyn_l2_gas_fixed_table, gas_sel_gas_cost, main_clk, main_sel_da_end_gas_kernel_input, main_sel_da_start_gas_kernel_input, main_sel_first, main_sel_l2_end_gas_kernel_input, main_sel_l2_start_gas_kernel_input, main_sel_start_exec, main_zeroes, powers_power_of_2 -#define WIRE_ENTITIES main_kernel_inputs, main_kernel_value_out, main_kernel_side_effect_out, main_kernel_metadata_out, main_calldata, main_returndata, alu_a_hi, alu_a_lo, alu_b_hi, alu_b_lo, alu_b_pow, alu_c_hi, alu_c_lo, alu_cf, alu_clk, alu_cmp_gadget_gt, alu_cmp_gadget_input_a, alu_cmp_gadget_input_b, alu_cmp_gadget_result, alu_cmp_gadget_sel, alu_ff_tag, alu_ia, alu_ib, alu_ic, alu_in_tag, alu_max_bits_sub_b_bits, alu_max_bits_sub_b_pow, alu_op_add, alu_op_cast, alu_op_div, alu_op_eq, alu_op_lt, alu_op_lte, alu_op_mul, alu_op_not, alu_op_shl, alu_op_shr, alu_op_sub, alu_partial_prod_hi, alu_partial_prod_lo, alu_range_check_input_value, alu_range_check_num_bits, alu_range_check_sel, alu_remainder, alu_sel_alu, alu_sel_cmp, alu_sel_shift_which, alu_u128_tag, alu_u16_tag, alu_u1_tag, alu_u32_tag, alu_u64_tag, alu_u8_tag, alu_zero_shift, binary_acc_ia, binary_acc_ib, binary_acc_ic, binary_clk, binary_ia_bytes, binary_ib_bytes, binary_ic_bytes, binary_in_tag, binary_mem_tag_ctr, binary_mem_tag_ctr_inv, binary_op_id, binary_sel_bin, binary_start, cmp_a_hi, cmp_a_lo, cmp_b_hi, cmp_b_lo, cmp_borrow, cmp_clk, cmp_cmp_rng_ctr, cmp_input_a, cmp_input_b, cmp_op_eq, cmp_op_eq_diff_inv, cmp_op_gt, cmp_p_a_borrow, cmp_p_b_borrow, cmp_p_sub_a_hi, cmp_p_sub_a_lo, cmp_p_sub_b_hi, cmp_p_sub_b_lo, cmp_range_chk_clk, cmp_res_hi, cmp_res_lo, cmp_result, cmp_sel_cmp, cmp_sel_rng_chk, cmp_shift_sel, conversion_clk, conversion_input, conversion_num_limbs, conversion_output_bits, conversion_radix, conversion_sel_to_radix_le, keccakf1600_clk, keccakf1600_input, keccakf1600_output, keccakf1600_sel_keccakf1600, main_abs_da_rem_gas, main_abs_l2_rem_gas, main_alu_in_tag, main_base_da_gas_op_cost, main_base_l2_gas_op_cost, main_bin_op_id, main_call_ptr, main_da_gas_remaining, main_da_out_of_gas, main_dyn_da_gas_op_cost, main_dyn_gas_multiplier, main_dyn_l2_gas_op_cost, main_emit_l2_to_l1_msg_write_offset, main_emit_note_hash_write_offset, main_emit_nullifier_write_offset, main_emit_unencrypted_log_write_offset, main_ia, main_ib, main_ic, main_id, main_id_zero, main_ind_addr_a, main_ind_addr_b, main_ind_addr_c, main_ind_addr_d, main_internal_return_ptr, main_inv, main_is_fake_row, main_is_gas_accounted, main_kernel_in_offset, main_kernel_out_offset, main_l1_to_l2_msg_exists_write_offset, main_l2_gas_remaining, main_l2_out_of_gas, main_mem_addr_a, main_mem_addr_b, main_mem_addr_c, main_mem_addr_d, main_note_hash_exist_write_offset, main_nullifier_exists_write_offset, main_nullifier_non_exists_write_offset, main_op_err, main_opcode_val, main_pc, main_r_in_tag, main_rwa, main_rwb, main_rwc, main_rwd, main_sel_alu, main_sel_bin, main_sel_calldata, main_sel_execution_end, main_sel_execution_row, main_sel_kernel_inputs, main_sel_kernel_out, main_sel_mem_op_a, main_sel_mem_op_b, main_sel_mem_op_c, main_sel_mem_op_d, main_sel_mov_ia_to_ic, main_sel_mov_ib_to_ic, main_sel_op_add, main_sel_op_address, main_sel_op_and, main_sel_op_block_number, main_sel_op_calldata_copy, main_sel_op_cast, main_sel_op_chain_id, main_sel_op_dagasleft, main_sel_op_div, main_sel_op_ecadd, main_sel_op_emit_l2_to_l1_msg, main_sel_op_emit_note_hash, main_sel_op_emit_nullifier, main_sel_op_emit_unencrypted_log, main_sel_op_eq, main_sel_op_external_call, main_sel_op_external_return, main_sel_op_external_revert, main_sel_op_fdiv, main_sel_op_fee_per_da_gas, main_sel_op_fee_per_l2_gas, main_sel_op_function_selector, main_sel_op_get_contract_instance, main_sel_op_internal_call, main_sel_op_internal_return, main_sel_op_is_static_call, main_sel_op_jump, main_sel_op_jumpi, main_sel_op_keccak, main_sel_op_l1_to_l2_msg_exists, main_sel_op_l2gasleft, main_sel_op_lt, main_sel_op_lte, main_sel_op_mov, main_sel_op_msm, main_sel_op_mul, main_sel_op_not, main_sel_op_note_hash_exists, main_sel_op_nullifier_exists, main_sel_op_or, main_sel_op_poseidon2, main_sel_op_radix_le, main_sel_op_sender, main_sel_op_set, main_sel_op_sha256, main_sel_op_shl, main_sel_op_shr, main_sel_op_sload, main_sel_op_sstore, main_sel_op_static_call, main_sel_op_storage_address, main_sel_op_sub, main_sel_op_timestamp, main_sel_op_transaction_fee, main_sel_op_version, main_sel_op_xor, main_sel_q_kernel_lookup, main_sel_q_kernel_output_lookup, main_sel_resolve_ind_addr_a, main_sel_resolve_ind_addr_b, main_sel_resolve_ind_addr_c, main_sel_resolve_ind_addr_d, main_sel_returndata, main_sel_rng_16, main_sel_rng_8, main_sel_slice_gadget, main_side_effect_counter, main_sload_write_offset, main_space_id, main_sstore_write_offset, main_tag_err, main_w_in_tag, mem_addr, mem_clk, mem_diff, mem_glob_addr, mem_last, mem_lastAccess, mem_one_min_inv, mem_r_in_tag, mem_rw, mem_sel_mem, mem_sel_mov_ia_to_ic, mem_sel_mov_ib_to_ic, mem_sel_op_a, mem_sel_op_b, mem_sel_op_c, mem_sel_op_d, mem_sel_op_poseidon_read_a, mem_sel_op_poseidon_read_b, mem_sel_op_poseidon_read_c, mem_sel_op_poseidon_read_d, mem_sel_op_poseidon_write_a, mem_sel_op_poseidon_write_b, mem_sel_op_poseidon_write_c, mem_sel_op_poseidon_write_d, mem_sel_op_slice, mem_sel_resolve_ind_addr_a, mem_sel_resolve_ind_addr_b, mem_sel_resolve_ind_addr_c, mem_sel_resolve_ind_addr_d, mem_sel_rng_chk, mem_skip_check_tag, mem_space_id, mem_tag, mem_tag_err, mem_tsp, mem_val, mem_w_in_tag, poseidon2_B_10_0, poseidon2_B_10_1, poseidon2_B_10_2, poseidon2_B_10_3, poseidon2_B_11_0, poseidon2_B_11_1, poseidon2_B_11_2, poseidon2_B_11_3, poseidon2_B_12_0, poseidon2_B_12_1, poseidon2_B_12_2, poseidon2_B_12_3, poseidon2_B_13_0, poseidon2_B_13_1, poseidon2_B_13_2, poseidon2_B_13_3, poseidon2_B_14_0, poseidon2_B_14_1, poseidon2_B_14_2, poseidon2_B_14_3, poseidon2_B_15_0, poseidon2_B_15_1, poseidon2_B_15_2, poseidon2_B_15_3, poseidon2_B_16_0, poseidon2_B_16_1, poseidon2_B_16_2, poseidon2_B_16_3, poseidon2_B_17_0, poseidon2_B_17_1, poseidon2_B_17_2, poseidon2_B_17_3, poseidon2_B_18_0, poseidon2_B_18_1, poseidon2_B_18_2, poseidon2_B_18_3, poseidon2_B_19_0, poseidon2_B_19_1, poseidon2_B_19_2, poseidon2_B_19_3, poseidon2_B_20_0, poseidon2_B_20_1, poseidon2_B_20_2, poseidon2_B_20_3, poseidon2_B_21_0, poseidon2_B_21_1, poseidon2_B_21_2, poseidon2_B_21_3, poseidon2_B_22_0, poseidon2_B_22_1, poseidon2_B_22_2, poseidon2_B_22_3, poseidon2_B_23_0, poseidon2_B_23_1, poseidon2_B_23_2, poseidon2_B_23_3, poseidon2_B_24_0, poseidon2_B_24_1, poseidon2_B_24_2, poseidon2_B_24_3, poseidon2_B_25_0, poseidon2_B_25_1, poseidon2_B_25_2, poseidon2_B_25_3, poseidon2_B_26_0, poseidon2_B_26_1, poseidon2_B_26_2, poseidon2_B_26_3, poseidon2_B_27_0, poseidon2_B_27_1, poseidon2_B_27_2, poseidon2_B_27_3, poseidon2_B_28_0, poseidon2_B_28_1, poseidon2_B_28_2, poseidon2_B_28_3, poseidon2_B_29_0, poseidon2_B_29_1, poseidon2_B_29_2, poseidon2_B_29_3, poseidon2_B_30_0, poseidon2_B_30_1, poseidon2_B_30_2, poseidon2_B_30_3, poseidon2_B_31_0, poseidon2_B_31_1, poseidon2_B_31_2, poseidon2_B_31_3, poseidon2_B_32_0, poseidon2_B_32_1, poseidon2_B_32_2, poseidon2_B_32_3, poseidon2_B_33_0, poseidon2_B_33_1, poseidon2_B_33_2, poseidon2_B_33_3, poseidon2_B_34_0, poseidon2_B_34_1, poseidon2_B_34_2, poseidon2_B_34_3, poseidon2_B_35_0, poseidon2_B_35_1, poseidon2_B_35_2, poseidon2_B_35_3, poseidon2_B_36_0, poseidon2_B_36_1, poseidon2_B_36_2, poseidon2_B_36_3, poseidon2_B_37_0, poseidon2_B_37_1, poseidon2_B_37_2, poseidon2_B_37_3, poseidon2_B_38_0, poseidon2_B_38_1, poseidon2_B_38_2, poseidon2_B_38_3, poseidon2_B_39_0, poseidon2_B_39_1, poseidon2_B_39_2, poseidon2_B_39_3, poseidon2_B_40_0, poseidon2_B_40_1, poseidon2_B_40_2, poseidon2_B_40_3, poseidon2_B_41_0, poseidon2_B_41_1, poseidon2_B_41_2, poseidon2_B_41_3, poseidon2_B_42_0, poseidon2_B_42_1, poseidon2_B_42_2, poseidon2_B_42_3, poseidon2_B_43_0, poseidon2_B_43_1, poseidon2_B_43_2, poseidon2_B_43_3, poseidon2_B_44_0, poseidon2_B_44_1, poseidon2_B_44_2, poseidon2_B_44_3, poseidon2_B_45_0, poseidon2_B_45_1, poseidon2_B_45_2, poseidon2_B_45_3, poseidon2_B_46_0, poseidon2_B_46_1, poseidon2_B_46_2, poseidon2_B_46_3, poseidon2_B_47_0, poseidon2_B_47_1, poseidon2_B_47_2, poseidon2_B_47_3, poseidon2_B_48_0, poseidon2_B_48_1, poseidon2_B_48_2, poseidon2_B_48_3, poseidon2_B_49_0, poseidon2_B_49_1, poseidon2_B_49_2, poseidon2_B_49_3, poseidon2_B_4_0, poseidon2_B_4_1, poseidon2_B_4_2, poseidon2_B_4_3, poseidon2_B_50_0, poseidon2_B_50_1, poseidon2_B_50_2, poseidon2_B_50_3, poseidon2_B_51_0, poseidon2_B_51_1, poseidon2_B_51_2, poseidon2_B_51_3, poseidon2_B_52_0, poseidon2_B_52_1, poseidon2_B_52_2, poseidon2_B_52_3, poseidon2_B_53_0, poseidon2_B_53_1, poseidon2_B_53_2, poseidon2_B_53_3, poseidon2_B_54_0, poseidon2_B_54_1, poseidon2_B_54_2, poseidon2_B_54_3, poseidon2_B_55_0, poseidon2_B_55_1, poseidon2_B_55_2, poseidon2_B_55_3, poseidon2_B_56_0, poseidon2_B_56_1, poseidon2_B_56_2, poseidon2_B_56_3, poseidon2_B_57_0, poseidon2_B_57_1, poseidon2_B_57_2, poseidon2_B_57_3, poseidon2_B_58_0, poseidon2_B_58_1, poseidon2_B_58_2, poseidon2_B_58_3, poseidon2_B_59_0, poseidon2_B_59_1, poseidon2_B_59_2, poseidon2_B_59_3, poseidon2_B_5_0, poseidon2_B_5_1, poseidon2_B_5_2, poseidon2_B_5_3, poseidon2_B_6_0, poseidon2_B_6_1, poseidon2_B_6_2, poseidon2_B_6_3, poseidon2_B_7_0, poseidon2_B_7_1, poseidon2_B_7_2, poseidon2_B_7_3, poseidon2_B_8_0, poseidon2_B_8_1, poseidon2_B_8_2, poseidon2_B_8_3, poseidon2_B_9_0, poseidon2_B_9_1, poseidon2_B_9_2, poseidon2_B_9_3, poseidon2_EXT_LAYER_4, poseidon2_EXT_LAYER_5, poseidon2_EXT_LAYER_6, poseidon2_EXT_LAYER_7, poseidon2_T_0_4, poseidon2_T_0_5, poseidon2_T_0_6, poseidon2_T_0_7, poseidon2_T_1_4, poseidon2_T_1_5, poseidon2_T_1_6, poseidon2_T_1_7, poseidon2_T_2_4, poseidon2_T_2_5, poseidon2_T_2_6, poseidon2_T_2_7, poseidon2_T_3_4, poseidon2_T_3_5, poseidon2_T_3_6, poseidon2_T_3_7, poseidon2_T_60_4, poseidon2_T_60_5, poseidon2_T_60_6, poseidon2_T_60_7, poseidon2_T_61_4, poseidon2_T_61_5, poseidon2_T_61_6, poseidon2_T_61_7, poseidon2_T_62_4, poseidon2_T_62_5, poseidon2_T_62_6, poseidon2_T_62_7, poseidon2_T_63_4, poseidon2_T_63_5, poseidon2_T_63_6, poseidon2_T_63_7, poseidon2_a_0, poseidon2_a_1, poseidon2_a_2, poseidon2_a_3, poseidon2_b_0, poseidon2_b_1, poseidon2_b_2, poseidon2_b_3, poseidon2_clk, poseidon2_input_addr, poseidon2_mem_addr_read_a, poseidon2_mem_addr_read_b, poseidon2_mem_addr_read_c, poseidon2_mem_addr_read_d, poseidon2_mem_addr_write_a, poseidon2_mem_addr_write_b, poseidon2_mem_addr_write_c, poseidon2_mem_addr_write_d, poseidon2_output_addr, poseidon2_sel_poseidon_perm, poseidon2_space_id, range_check_alu_rng_chk, range_check_clk, range_check_cmp_hi_bits_rng_chk, range_check_cmp_lo_bits_rng_chk, range_check_dyn_diff, range_check_dyn_rng_chk_bits, range_check_dyn_rng_chk_pow_2, range_check_gas_da_rng_chk, range_check_gas_l2_rng_chk, range_check_is_lte_u112, range_check_is_lte_u128, range_check_is_lte_u16, range_check_is_lte_u32, range_check_is_lte_u48, range_check_is_lte_u64, range_check_is_lte_u80, range_check_is_lte_u96, range_check_mem_rng_chk, range_check_rng_chk_bits, range_check_sel_lookup_0, range_check_sel_lookup_1, range_check_sel_lookup_2, range_check_sel_lookup_3, range_check_sel_lookup_4, range_check_sel_lookup_5, range_check_sel_lookup_6, range_check_sel_rng_chk, range_check_u16_r0, range_check_u16_r1, range_check_u16_r2, range_check_u16_r3, range_check_u16_r4, range_check_u16_r5, range_check_u16_r6, range_check_u16_r7, range_check_value, sha256_clk, sha256_input, sha256_output, sha256_sel_sha256_compression, sha256_state, slice_addr, slice_clk, slice_cnt, slice_col_offset, slice_one_min_inv, slice_sel_cd_cpy, slice_sel_mem_active, slice_sel_return, slice_sel_start, slice_space_id, slice_val, lookup_rng_chk_pow_2_counts, lookup_rng_chk_diff_counts, lookup_rng_chk_0_counts, lookup_rng_chk_1_counts, lookup_rng_chk_2_counts, lookup_rng_chk_3_counts, lookup_rng_chk_4_counts, lookup_rng_chk_5_counts, lookup_rng_chk_6_counts, lookup_rng_chk_7_counts, lookup_pow_2_0_counts, lookup_pow_2_1_counts, lookup_byte_lengths_counts, lookup_byte_operations_counts, lookup_opcode_gas_counts, kernel_output_lookup_counts, lookup_into_kernel_counts, lookup_cd_value_counts, lookup_ret_value_counts, incl_main_tag_err_counts, incl_mem_tag_err_counts -#define DERIVED_WITNESS_ENTITIES perm_rng_mem_inv, perm_rng_cmp_lo_inv, perm_rng_cmp_hi_inv, perm_rng_alu_inv, perm_cmp_alu_inv, perm_rng_gas_l2_inv, perm_rng_gas_da_inv, perm_l2_start_gas_inv, perm_da_start_gas_inv, perm_l2_end_gas_inv, perm_da_end_gas_inv, perm_pos_mem_read_a_inv, perm_pos_mem_read_b_inv, perm_pos_mem_read_c_inv, perm_pos_mem_read_d_inv, perm_pos_mem_write_a_inv, perm_pos_mem_write_b_inv, perm_pos_mem_write_c_inv, perm_pos_mem_write_d_inv, perm_slice_mem_inv, perm_main_alu_inv, perm_main_bin_inv, perm_main_conv_inv, perm_main_sha256_inv, perm_main_pos2_perm_inv, perm_main_slice_inv, perm_main_mem_a_inv, perm_main_mem_b_inv, perm_main_mem_c_inv, perm_main_mem_d_inv, perm_main_mem_ind_addr_a_inv, perm_main_mem_ind_addr_b_inv, perm_main_mem_ind_addr_c_inv, perm_main_mem_ind_addr_d_inv, lookup_rng_chk_pow_2_inv, lookup_rng_chk_diff_inv, lookup_rng_chk_0_inv, lookup_rng_chk_1_inv, lookup_rng_chk_2_inv, lookup_rng_chk_3_inv, lookup_rng_chk_4_inv, lookup_rng_chk_5_inv, lookup_rng_chk_6_inv, lookup_rng_chk_7_inv, lookup_pow_2_0_inv, lookup_pow_2_1_inv, lookup_byte_lengths_inv, lookup_byte_operations_inv, lookup_opcode_gas_inv, kernel_output_lookup_inv, lookup_into_kernel_inv, lookup_cd_value_inv, lookup_ret_value_inv, incl_main_tag_err_inv, incl_mem_tag_err_inv -#define SHIFTED_ENTITIES binary_acc_ia_shift, binary_acc_ib_shift, binary_acc_ic_shift, binary_mem_tag_ctr_shift, binary_op_id_shift, cmp_a_hi_shift, cmp_a_lo_shift, cmp_b_hi_shift, cmp_b_lo_shift, cmp_cmp_rng_ctr_shift, cmp_op_gt_shift, cmp_p_sub_a_hi_shift, cmp_p_sub_a_lo_shift, cmp_p_sub_b_hi_shift, cmp_p_sub_b_lo_shift, cmp_sel_rng_chk_shift, main_da_gas_remaining_shift, main_emit_l2_to_l1_msg_write_offset_shift, main_emit_note_hash_write_offset_shift, main_emit_nullifier_write_offset_shift, main_emit_unencrypted_log_write_offset_shift, main_internal_return_ptr_shift, main_l1_to_l2_msg_exists_write_offset_shift, main_l2_gas_remaining_shift, main_note_hash_exist_write_offset_shift, main_nullifier_exists_write_offset_shift, main_nullifier_non_exists_write_offset_shift, main_pc_shift, main_sel_execution_end_shift, main_sel_execution_row_shift, main_sload_write_offset_shift, main_sstore_write_offset_shift, mem_glob_addr_shift, mem_rw_shift, mem_sel_mem_shift, mem_tag_shift, mem_tsp_shift, mem_val_shift, slice_addr_shift, slice_clk_shift, slice_cnt_shift, slice_col_offset_shift, slice_sel_cd_cpy_shift, slice_sel_mem_active_shift, slice_sel_return_shift, slice_sel_start_shift, slice_space_id_shift -#define TO_BE_SHIFTED(e) e.binary_acc_ia, e.binary_acc_ib, e.binary_acc_ic, e.binary_mem_tag_ctr, e.binary_op_id, e.cmp_a_hi, e.cmp_a_lo, e.cmp_b_hi, e.cmp_b_lo, e.cmp_cmp_rng_ctr, e.cmp_op_gt, e.cmp_p_sub_a_hi, e.cmp_p_sub_a_lo, e.cmp_p_sub_b_hi, e.cmp_p_sub_b_lo, e.cmp_sel_rng_chk, e.main_da_gas_remaining, e.main_emit_l2_to_l1_msg_write_offset, e.main_emit_note_hash_write_offset, e.main_emit_nullifier_write_offset, e.main_emit_unencrypted_log_write_offset, e.main_internal_return_ptr, e.main_l1_to_l2_msg_exists_write_offset, e.main_l2_gas_remaining, e.main_note_hash_exist_write_offset, e.main_nullifier_exists_write_offset, e.main_nullifier_non_exists_write_offset, e.main_pc, e.main_sel_execution_end, e.main_sel_execution_row, e.main_sload_write_offset, e.main_sstore_write_offset, e.mem_glob_addr, e.mem_rw, e.mem_sel_mem, e.mem_tag, e.mem_tsp, e.mem_val, e.slice_addr, e.slice_clk, e.slice_cnt, e.slice_col_offset, e.slice_sel_cd_cpy, e.slice_sel_mem_active, e.slice_sel_return, e.slice_sel_start, e.slice_space_id +#define WIRE_ENTITIES main_kernel_inputs, main_kernel_value_out, main_kernel_side_effect_out, main_kernel_metadata_out, main_calldata, main_returndata, alu_a_hi, alu_a_lo, alu_b_hi, alu_b_lo, alu_b_pow, alu_c_hi, alu_c_lo, alu_cf, alu_clk, alu_cmp_gadget_gt, alu_cmp_gadget_input_a, alu_cmp_gadget_input_b, alu_cmp_gadget_result, alu_cmp_gadget_sel, alu_ff_tag, alu_ia, alu_ib, alu_ic, alu_in_tag, alu_max_bits_sub_b_bits, alu_max_bits_sub_b_pow, alu_op_add, alu_op_cast, alu_op_div, alu_op_eq, alu_op_lt, alu_op_lte, alu_op_mul, alu_op_not, alu_op_shl, alu_op_shr, alu_op_sub, alu_partial_prod_hi, alu_partial_prod_lo, alu_range_check_input_value, alu_range_check_num_bits, alu_range_check_sel, alu_remainder, alu_sel_alu, alu_sel_cmp, alu_sel_shift_which, alu_u128_tag, alu_u16_tag, alu_u1_tag, alu_u32_tag, alu_u64_tag, alu_u8_tag, alu_zero_shift, binary_acc_ia, binary_acc_ib, binary_acc_ic, binary_clk, binary_ia_bytes, binary_ib_bytes, binary_ic_bytes, binary_in_tag, binary_mem_tag_ctr, binary_mem_tag_ctr_inv, binary_op_id, binary_sel_bin, binary_start, cmp_a_hi, cmp_a_lo, cmp_b_hi, cmp_b_lo, cmp_borrow, cmp_clk, cmp_cmp_rng_ctr, cmp_input_a, cmp_input_b, cmp_op_eq, cmp_op_eq_diff_inv, cmp_op_gt, cmp_p_a_borrow, cmp_p_b_borrow, cmp_p_sub_a_hi, cmp_p_sub_a_lo, cmp_p_sub_b_hi, cmp_p_sub_b_lo, cmp_range_chk_clk, cmp_res_hi, cmp_res_lo, cmp_result, cmp_sel_cmp, cmp_sel_rng_chk, cmp_shift_sel, conversion_clk, conversion_input, conversion_num_limbs, conversion_output_bits, conversion_radix, conversion_sel_to_radix_le, keccakf1600_clk, keccakf1600_input, keccakf1600_output, keccakf1600_sel_keccakf1600, main_abs_da_rem_gas, main_abs_l2_rem_gas, main_alu_in_tag, main_base_da_gas_op_cost, main_base_l2_gas_op_cost, main_bin_op_id, main_call_ptr, main_da_gas_remaining, main_da_out_of_gas, main_dyn_da_gas_op_cost, main_dyn_gas_multiplier, main_dyn_l2_gas_op_cost, main_emit_l2_to_l1_msg_write_offset, main_emit_note_hash_write_offset, main_emit_nullifier_write_offset, main_emit_unencrypted_log_write_offset, main_ia, main_ib, main_ic, main_id, main_id_zero, main_ind_addr_a, main_ind_addr_b, main_ind_addr_c, main_ind_addr_d, main_internal_return_ptr, main_inv, main_is_fake_row, main_is_gas_accounted, main_kernel_in_offset, main_kernel_out_offset, main_l1_to_l2_msg_exists_write_offset, main_l2_gas_remaining, main_l2_out_of_gas, main_mem_addr_a, main_mem_addr_b, main_mem_addr_c, main_mem_addr_d, main_note_hash_exist_write_offset, main_nullifier_exists_write_offset, main_nullifier_non_exists_write_offset, main_op_err, main_opcode_val, main_pc, main_r_in_tag, main_rwa, main_rwb, main_rwc, main_rwd, main_sel_alu, main_sel_bin, main_sel_calldata, main_sel_execution_end, main_sel_execution_row, main_sel_kernel_inputs, main_sel_kernel_out, main_sel_mem_op_a, main_sel_mem_op_b, main_sel_mem_op_c, main_sel_mem_op_d, main_sel_mov_ia_to_ic, main_sel_mov_ib_to_ic, main_sel_op_add, main_sel_op_address, main_sel_op_and, main_sel_op_block_number, main_sel_op_calldata_copy, main_sel_op_cast, main_sel_op_chain_id, main_sel_op_dagasleft, main_sel_op_div, main_sel_op_ecadd, main_sel_op_emit_l2_to_l1_msg, main_sel_op_emit_note_hash, main_sel_op_emit_nullifier, main_sel_op_emit_unencrypted_log, main_sel_op_eq, main_sel_op_external_call, main_sel_op_external_return, main_sel_op_external_revert, main_sel_op_fdiv, main_sel_op_fee_per_da_gas, main_sel_op_fee_per_l2_gas, main_sel_op_function_selector, main_sel_op_get_contract_instance, main_sel_op_internal_call, main_sel_op_internal_return, main_sel_op_is_static_call, main_sel_op_jump, main_sel_op_jumpi, main_sel_op_keccak, main_sel_op_l1_to_l2_msg_exists, main_sel_op_l2gasleft, main_sel_op_lt, main_sel_op_lte, main_sel_op_mov, main_sel_op_msm, main_sel_op_mul, main_sel_op_not, main_sel_op_note_hash_exists, main_sel_op_nullifier_exists, main_sel_op_or, main_sel_op_poseidon2, main_sel_op_radix_le, main_sel_op_sender, main_sel_op_set, main_sel_op_sha256, main_sel_op_shl, main_sel_op_shr, main_sel_op_sload, main_sel_op_sstore, main_sel_op_static_call, main_sel_op_sub, main_sel_op_timestamp, main_sel_op_transaction_fee, main_sel_op_version, main_sel_op_xor, main_sel_q_kernel_lookup, main_sel_q_kernel_output_lookup, main_sel_resolve_ind_addr_a, main_sel_resolve_ind_addr_b, main_sel_resolve_ind_addr_c, main_sel_resolve_ind_addr_d, main_sel_returndata, main_sel_rng_16, main_sel_rng_8, main_sel_slice_gadget, main_side_effect_counter, main_sload_write_offset, main_space_id, main_sstore_write_offset, main_tag_err, main_w_in_tag, mem_addr, mem_clk, mem_diff, mem_glob_addr, mem_last, mem_lastAccess, mem_one_min_inv, mem_r_in_tag, mem_rw, mem_sel_mem, mem_sel_mov_ia_to_ic, mem_sel_mov_ib_to_ic, mem_sel_op_a, mem_sel_op_b, mem_sel_op_c, mem_sel_op_d, mem_sel_op_poseidon_read_a, mem_sel_op_poseidon_read_b, mem_sel_op_poseidon_read_c, mem_sel_op_poseidon_read_d, mem_sel_op_poseidon_write_a, mem_sel_op_poseidon_write_b, mem_sel_op_poseidon_write_c, mem_sel_op_poseidon_write_d, mem_sel_op_slice, mem_sel_resolve_ind_addr_a, mem_sel_resolve_ind_addr_b, mem_sel_resolve_ind_addr_c, mem_sel_resolve_ind_addr_d, mem_sel_rng_chk, mem_skip_check_tag, mem_space_id, mem_tag, mem_tag_err, mem_tsp, mem_val, mem_w_in_tag, poseidon2_B_10_0, poseidon2_B_10_1, poseidon2_B_10_2, poseidon2_B_10_3, poseidon2_B_11_0, poseidon2_B_11_1, poseidon2_B_11_2, poseidon2_B_11_3, poseidon2_B_12_0, poseidon2_B_12_1, poseidon2_B_12_2, poseidon2_B_12_3, poseidon2_B_13_0, poseidon2_B_13_1, poseidon2_B_13_2, poseidon2_B_13_3, poseidon2_B_14_0, poseidon2_B_14_1, poseidon2_B_14_2, poseidon2_B_14_3, poseidon2_B_15_0, poseidon2_B_15_1, poseidon2_B_15_2, poseidon2_B_15_3, poseidon2_B_16_0, poseidon2_B_16_1, poseidon2_B_16_2, poseidon2_B_16_3, poseidon2_B_17_0, poseidon2_B_17_1, poseidon2_B_17_2, poseidon2_B_17_3, poseidon2_B_18_0, poseidon2_B_18_1, poseidon2_B_18_2, poseidon2_B_18_3, poseidon2_B_19_0, poseidon2_B_19_1, poseidon2_B_19_2, poseidon2_B_19_3, poseidon2_B_20_0, poseidon2_B_20_1, poseidon2_B_20_2, poseidon2_B_20_3, poseidon2_B_21_0, poseidon2_B_21_1, poseidon2_B_21_2, poseidon2_B_21_3, poseidon2_B_22_0, poseidon2_B_22_1, poseidon2_B_22_2, poseidon2_B_22_3, poseidon2_B_23_0, poseidon2_B_23_1, poseidon2_B_23_2, poseidon2_B_23_3, poseidon2_B_24_0, poseidon2_B_24_1, poseidon2_B_24_2, poseidon2_B_24_3, poseidon2_B_25_0, poseidon2_B_25_1, poseidon2_B_25_2, poseidon2_B_25_3, poseidon2_B_26_0, poseidon2_B_26_1, poseidon2_B_26_2, poseidon2_B_26_3, poseidon2_B_27_0, poseidon2_B_27_1, poseidon2_B_27_2, poseidon2_B_27_3, poseidon2_B_28_0, poseidon2_B_28_1, poseidon2_B_28_2, poseidon2_B_28_3, poseidon2_B_29_0, poseidon2_B_29_1, poseidon2_B_29_2, poseidon2_B_29_3, poseidon2_B_30_0, poseidon2_B_30_1, poseidon2_B_30_2, poseidon2_B_30_3, poseidon2_B_31_0, poseidon2_B_31_1, poseidon2_B_31_2, poseidon2_B_31_3, poseidon2_B_32_0, poseidon2_B_32_1, poseidon2_B_32_2, poseidon2_B_32_3, poseidon2_B_33_0, poseidon2_B_33_1, poseidon2_B_33_2, poseidon2_B_33_3, poseidon2_B_34_0, poseidon2_B_34_1, poseidon2_B_34_2, poseidon2_B_34_3, poseidon2_B_35_0, poseidon2_B_35_1, poseidon2_B_35_2, poseidon2_B_35_3, poseidon2_B_36_0, poseidon2_B_36_1, poseidon2_B_36_2, poseidon2_B_36_3, poseidon2_B_37_0, poseidon2_B_37_1, poseidon2_B_37_2, poseidon2_B_37_3, poseidon2_B_38_0, poseidon2_B_38_1, poseidon2_B_38_2, poseidon2_B_38_3, poseidon2_B_39_0, poseidon2_B_39_1, poseidon2_B_39_2, poseidon2_B_39_3, poseidon2_B_40_0, poseidon2_B_40_1, poseidon2_B_40_2, poseidon2_B_40_3, poseidon2_B_41_0, poseidon2_B_41_1, poseidon2_B_41_2, poseidon2_B_41_3, poseidon2_B_42_0, poseidon2_B_42_1, poseidon2_B_42_2, poseidon2_B_42_3, poseidon2_B_43_0, poseidon2_B_43_1, poseidon2_B_43_2, poseidon2_B_43_3, poseidon2_B_44_0, poseidon2_B_44_1, poseidon2_B_44_2, poseidon2_B_44_3, poseidon2_B_45_0, poseidon2_B_45_1, poseidon2_B_45_2, poseidon2_B_45_3, poseidon2_B_46_0, poseidon2_B_46_1, poseidon2_B_46_2, poseidon2_B_46_3, poseidon2_B_47_0, poseidon2_B_47_1, poseidon2_B_47_2, poseidon2_B_47_3, poseidon2_B_48_0, poseidon2_B_48_1, poseidon2_B_48_2, poseidon2_B_48_3, poseidon2_B_49_0, poseidon2_B_49_1, poseidon2_B_49_2, poseidon2_B_49_3, poseidon2_B_4_0, poseidon2_B_4_1, poseidon2_B_4_2, poseidon2_B_4_3, poseidon2_B_50_0, poseidon2_B_50_1, poseidon2_B_50_2, poseidon2_B_50_3, poseidon2_B_51_0, poseidon2_B_51_1, poseidon2_B_51_2, poseidon2_B_51_3, poseidon2_B_52_0, poseidon2_B_52_1, poseidon2_B_52_2, poseidon2_B_52_3, poseidon2_B_53_0, poseidon2_B_53_1, poseidon2_B_53_2, poseidon2_B_53_3, poseidon2_B_54_0, poseidon2_B_54_1, poseidon2_B_54_2, poseidon2_B_54_3, poseidon2_B_55_0, poseidon2_B_55_1, poseidon2_B_55_2, poseidon2_B_55_3, poseidon2_B_56_0, poseidon2_B_56_1, poseidon2_B_56_2, poseidon2_B_56_3, poseidon2_B_57_0, poseidon2_B_57_1, poseidon2_B_57_2, poseidon2_B_57_3, poseidon2_B_58_0, poseidon2_B_58_1, poseidon2_B_58_2, poseidon2_B_58_3, poseidon2_B_59_0, poseidon2_B_59_1, poseidon2_B_59_2, poseidon2_B_59_3, poseidon2_B_5_0, poseidon2_B_5_1, poseidon2_B_5_2, poseidon2_B_5_3, poseidon2_B_6_0, poseidon2_B_6_1, poseidon2_B_6_2, poseidon2_B_6_3, poseidon2_B_7_0, poseidon2_B_7_1, poseidon2_B_7_2, poseidon2_B_7_3, poseidon2_B_8_0, poseidon2_B_8_1, poseidon2_B_8_2, poseidon2_B_8_3, poseidon2_B_9_0, poseidon2_B_9_1, poseidon2_B_9_2, poseidon2_B_9_3, poseidon2_EXT_LAYER_4, poseidon2_EXT_LAYER_5, poseidon2_EXT_LAYER_6, poseidon2_EXT_LAYER_7, poseidon2_T_0_4, poseidon2_T_0_5, poseidon2_T_0_6, poseidon2_T_0_7, poseidon2_T_1_4, poseidon2_T_1_5, poseidon2_T_1_6, poseidon2_T_1_7, poseidon2_T_2_4, poseidon2_T_2_5, poseidon2_T_2_6, poseidon2_T_2_7, poseidon2_T_3_4, poseidon2_T_3_5, poseidon2_T_3_6, poseidon2_T_3_7, poseidon2_T_60_4, poseidon2_T_60_5, poseidon2_T_60_6, poseidon2_T_60_7, poseidon2_T_61_4, poseidon2_T_61_5, poseidon2_T_61_6, poseidon2_T_61_7, poseidon2_T_62_4, poseidon2_T_62_5, poseidon2_T_62_6, poseidon2_T_62_7, poseidon2_T_63_4, poseidon2_T_63_5, poseidon2_T_63_6, poseidon2_T_63_7, poseidon2_a_0, poseidon2_a_1, poseidon2_a_2, poseidon2_a_3, poseidon2_b_0, poseidon2_b_1, poseidon2_b_2, poseidon2_b_3, poseidon2_clk, poseidon2_full_a_0, poseidon2_full_a_1, poseidon2_full_a_2, poseidon2_full_a_3, poseidon2_full_b_0, poseidon2_full_b_1, poseidon2_full_b_2, poseidon2_full_b_3, poseidon2_full_clk, poseidon2_full_end_poseidon, poseidon2_full_execute_poseidon_perm, poseidon2_full_input_0, poseidon2_full_input_1, poseidon2_full_input_2, poseidon2_full_input_len, poseidon2_full_num_perm_rounds_rem, poseidon2_full_num_perm_rounds_rem_inv, poseidon2_full_output, poseidon2_full_padding, poseidon2_full_sel_poseidon, poseidon2_full_start_poseidon, poseidon2_input_addr, poseidon2_mem_addr_read_a, poseidon2_mem_addr_read_b, poseidon2_mem_addr_read_c, poseidon2_mem_addr_read_d, poseidon2_mem_addr_write_a, poseidon2_mem_addr_write_b, poseidon2_mem_addr_write_c, poseidon2_mem_addr_write_d, poseidon2_output_addr, poseidon2_sel_poseidon_perm, poseidon2_sel_poseidon_perm_immediate, poseidon2_sel_poseidon_perm_mem_op, poseidon2_space_id, range_check_alu_rng_chk, range_check_clk, range_check_cmp_hi_bits_rng_chk, range_check_cmp_lo_bits_rng_chk, range_check_dyn_diff, range_check_dyn_rng_chk_bits, range_check_dyn_rng_chk_pow_2, range_check_gas_da_rng_chk, range_check_gas_l2_rng_chk, range_check_is_lte_u112, range_check_is_lte_u128, range_check_is_lte_u16, range_check_is_lte_u32, range_check_is_lte_u48, range_check_is_lte_u64, range_check_is_lte_u80, range_check_is_lte_u96, range_check_mem_rng_chk, range_check_rng_chk_bits, range_check_sel_lookup_0, range_check_sel_lookup_1, range_check_sel_lookup_2, range_check_sel_lookup_3, range_check_sel_lookup_4, range_check_sel_lookup_5, range_check_sel_lookup_6, range_check_sel_rng_chk, range_check_u16_r0, range_check_u16_r1, range_check_u16_r2, range_check_u16_r3, range_check_u16_r4, range_check_u16_r5, range_check_u16_r6, range_check_u16_r7, range_check_value, sha256_clk, sha256_input, sha256_output, sha256_sel_sha256_compression, sha256_state, slice_addr, slice_clk, slice_cnt, slice_col_offset, slice_one_min_inv, slice_sel_cd_cpy, slice_sel_mem_active, slice_sel_return, slice_sel_start, slice_space_id, slice_val, lookup_rng_chk_pow_2_counts, lookup_rng_chk_diff_counts, lookup_rng_chk_0_counts, lookup_rng_chk_1_counts, lookup_rng_chk_2_counts, lookup_rng_chk_3_counts, lookup_rng_chk_4_counts, lookup_rng_chk_5_counts, lookup_rng_chk_6_counts, lookup_rng_chk_7_counts, lookup_pow_2_0_counts, lookup_pow_2_1_counts, lookup_byte_lengths_counts, lookup_byte_operations_counts, lookup_opcode_gas_counts, kernel_output_lookup_counts, lookup_into_kernel_counts, lookup_cd_value_counts, lookup_ret_value_counts, incl_main_tag_err_counts, incl_mem_tag_err_counts +#define DERIVED_WITNESS_ENTITIES perm_rng_mem_inv, perm_rng_cmp_lo_inv, perm_rng_cmp_hi_inv, perm_rng_alu_inv, perm_cmp_alu_inv, perm_rng_gas_l2_inv, perm_rng_gas_da_inv, perm_l2_start_gas_inv, perm_da_start_gas_inv, perm_l2_end_gas_inv, perm_da_end_gas_inv, perm_pos_mem_read_a_inv, perm_pos_mem_read_b_inv, perm_pos_mem_read_c_inv, perm_pos_mem_read_d_inv, perm_pos_mem_write_a_inv, perm_pos_mem_write_b_inv, perm_pos_mem_write_c_inv, perm_pos_mem_write_d_inv, perm_pos2_fixed_pos2_perm_inv, perm_slice_mem_inv, perm_main_alu_inv, perm_main_bin_inv, perm_main_conv_inv, perm_main_sha256_inv, perm_main_pos2_perm_inv, perm_main_slice_inv, perm_main_mem_a_inv, perm_main_mem_b_inv, perm_main_mem_c_inv, perm_main_mem_d_inv, perm_main_mem_ind_addr_a_inv, perm_main_mem_ind_addr_b_inv, perm_main_mem_ind_addr_c_inv, perm_main_mem_ind_addr_d_inv, lookup_rng_chk_pow_2_inv, lookup_rng_chk_diff_inv, lookup_rng_chk_0_inv, lookup_rng_chk_1_inv, lookup_rng_chk_2_inv, lookup_rng_chk_3_inv, lookup_rng_chk_4_inv, lookup_rng_chk_5_inv, lookup_rng_chk_6_inv, lookup_rng_chk_7_inv, lookup_pow_2_0_inv, lookup_pow_2_1_inv, lookup_byte_lengths_inv, lookup_byte_operations_inv, lookup_opcode_gas_inv, kernel_output_lookup_inv, lookup_into_kernel_inv, lookup_cd_value_inv, lookup_ret_value_inv, incl_main_tag_err_inv, incl_mem_tag_err_inv +#define SHIFTED_ENTITIES binary_acc_ia_shift, binary_acc_ib_shift, binary_acc_ic_shift, binary_mem_tag_ctr_shift, binary_op_id_shift, cmp_a_hi_shift, cmp_a_lo_shift, cmp_b_hi_shift, cmp_b_lo_shift, cmp_cmp_rng_ctr_shift, cmp_op_gt_shift, cmp_p_sub_a_hi_shift, cmp_p_sub_a_lo_shift, cmp_p_sub_b_hi_shift, cmp_p_sub_b_lo_shift, cmp_sel_rng_chk_shift, main_da_gas_remaining_shift, main_emit_l2_to_l1_msg_write_offset_shift, main_emit_note_hash_write_offset_shift, main_emit_nullifier_write_offset_shift, main_emit_unencrypted_log_write_offset_shift, main_internal_return_ptr_shift, main_l1_to_l2_msg_exists_write_offset_shift, main_l2_gas_remaining_shift, main_note_hash_exist_write_offset_shift, main_nullifier_exists_write_offset_shift, main_nullifier_non_exists_write_offset_shift, main_pc_shift, main_sel_execution_end_shift, main_sel_execution_row_shift, main_sload_write_offset_shift, main_sstore_write_offset_shift, mem_glob_addr_shift, mem_rw_shift, mem_sel_mem_shift, mem_tag_shift, mem_tsp_shift, mem_val_shift, poseidon2_full_a_0_shift, poseidon2_full_a_1_shift, poseidon2_full_a_2_shift, poseidon2_full_a_3_shift, poseidon2_full_execute_poseidon_perm_shift, poseidon2_full_input_0_shift, poseidon2_full_input_1_shift, poseidon2_full_input_2_shift, poseidon2_full_num_perm_rounds_rem_shift, poseidon2_full_sel_poseidon_shift, poseidon2_full_start_poseidon_shift, slice_addr_shift, slice_clk_shift, slice_cnt_shift, slice_col_offset_shift, slice_sel_cd_cpy_shift, slice_sel_mem_active_shift, slice_sel_return_shift, slice_sel_start_shift, slice_space_id_shift +#define TO_BE_SHIFTED(e) e.binary_acc_ia, e.binary_acc_ib, e.binary_acc_ic, e.binary_mem_tag_ctr, e.binary_op_id, e.cmp_a_hi, e.cmp_a_lo, e.cmp_b_hi, e.cmp_b_lo, e.cmp_cmp_rng_ctr, e.cmp_op_gt, e.cmp_p_sub_a_hi, e.cmp_p_sub_a_lo, e.cmp_p_sub_b_hi, e.cmp_p_sub_b_lo, e.cmp_sel_rng_chk, e.main_da_gas_remaining, e.main_emit_l2_to_l1_msg_write_offset, e.main_emit_note_hash_write_offset, e.main_emit_nullifier_write_offset, e.main_emit_unencrypted_log_write_offset, e.main_internal_return_ptr, e.main_l1_to_l2_msg_exists_write_offset, e.main_l2_gas_remaining, e.main_note_hash_exist_write_offset, e.main_nullifier_exists_write_offset, e.main_nullifier_non_exists_write_offset, e.main_pc, e.main_sel_execution_end, e.main_sel_execution_row, e.main_sload_write_offset, e.main_sstore_write_offset, e.mem_glob_addr, e.mem_rw, e.mem_sel_mem, e.mem_tag, e.mem_tsp, e.mem_val, e.poseidon2_full_a_0, e.poseidon2_full_a_1, e.poseidon2_full_a_2, e.poseidon2_full_a_3, e.poseidon2_full_execute_poseidon_perm, e.poseidon2_full_input_0, e.poseidon2_full_input_1, e.poseidon2_full_input_2, e.poseidon2_full_num_perm_rounds_rem, e.poseidon2_full_sel_poseidon, e.poseidon2_full_start_poseidon, e.slice_addr, e.slice_clk, e.slice_cnt, e.slice_col_offset, e.slice_sel_cd_cpy, e.slice_sel_mem_active, e.slice_sel_return, e.slice_sel_start, e.slice_space_id #define ALL_ENTITIES PRECOMPUTED_ENTITIES, WIRE_ENTITIES, DERIVED_WITNESS_ENTITIES, SHIFTED_ENTITIES // clang-format on @@ -124,12 +124,12 @@ class AvmFlavor { static constexpr bool HasZK = false; static constexpr size_t NUM_PRECOMPUTED_ENTITIES = 21; - static constexpr size_t NUM_WITNESS_ENTITIES = 682; - static constexpr size_t NUM_SHIFTED_ENTITIES = 47; + static constexpr size_t NUM_WITNESS_ENTITIES = 705; + static constexpr size_t NUM_SHIFTED_ENTITIES = 58; static constexpr size_t NUM_WIRES = NUM_WITNESS_ENTITIES + NUM_PRECOMPUTED_ENTITIES; // We have two copies of the witness entities, so we subtract the number of fixed ones (they have no shift), one for // the unshifted and one for the shifted - static constexpr size_t NUM_ALL_ENTITIES = 750; + static constexpr size_t NUM_ALL_ENTITIES = 784; // The total number of witnesses including shifts and derived entities. static constexpr size_t NUM_ALL_WITNESS_ENTITIES = NUM_WITNESS_ENTITIES + NUM_SHIFTED_ENTITIES; @@ -240,8 +240,8 @@ class AvmFlavor { // After any circuit changes, hover `COMPUTED_AVM_PROOF_LENGTH_IN_FIELDS` in your IDE // to see its value and then update `AVM_PROOF_LENGTH_IN_FIELDS` in constants.nr. static constexpr size_t COMPUTED_AVM_PROOF_LENGTH_IN_FIELDS = - 1 + (NUM_WITNESS_ENTITIES + 1) * NUM_FRS_COM + NUM_ALL_ENTITIES * NUM_FRS_FR + - CONST_PROOF_SIZE_LOG_N * (NUM_FRS_COM + NUM_FRS_FR * (BATCHED_RELATION_PARTIAL_LENGTH + 1)); + (NUM_WITNESS_ENTITIES + 2) * NUM_FRS_COM + (NUM_ALL_ENTITIES + 1) * NUM_FRS_FR + + CONST_PROOF_SIZE_LOG_N * (NUM_FRS_COM + NUM_FRS_FR * BATCHED_RELATION_PARTIAL_LENGTH); static_assert(AVM_PROOF_LENGTH_IN_FIELDS == COMPUTED_AVM_PROOF_LENGTH_IN_FIELDS, "\nUnexpected AVM proof length. This might be due to some changes in the\n" diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/full_row.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/full_row.hpp index de41e9243de..b2775561aac 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/full_row.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/full_row.hpp @@ -740,7 +740,7 @@ template struct AvmFullRow { RefVector as_vector() const; static std::vector names(); - static constexpr size_t SIZE = 703; + static constexpr size_t SIZE = 726; }; template std::ostream& operator<<(std::ostream& os, AvmFullRow const& row); diff --git a/barretenberg/cpp/src/barretenberg/vm/aztec_constants.hpp b/barretenberg/cpp/src/barretenberg/vm/aztec_constants.hpp index 1180643222a..aa35d864f5e 100644 --- a/barretenberg/cpp/src/barretenberg/vm/aztec_constants.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/aztec_constants.hpp @@ -35,7 +35,7 @@ #define PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH 674 #define PUBLIC_CONTEXT_INPUTS_LENGTH 41 #define AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS 86 -#define AVM_PROOF_LENGTH_IN_FIELDS 3842 +#define AVM_PROOF_LENGTH_IN_FIELDS 3949 #define AVM_PUBLIC_COLUMN_MAX_SIZE 1024 #define AVM_PUBLIC_INPUTS_FLATTENED_SIZE 2722 #define MEM_TAG_FF 0 diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr index e35af0dbe96..80e95769454 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr @@ -475,7 +475,7 @@ global AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS: u32 = 2 + 21 * 4; // `AVM_PROOF_LENGTH_IN_FIELDS` must be updated when AVM circuit changes. // To determine latest value, hover `COMPUTED_AVM_PROOF_LENGTH_IN_FIELDS` // in barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp -global AVM_PROOF_LENGTH_IN_FIELDS: u32 = 3842; +global AVM_PROOF_LENGTH_IN_FIELDS: u32 = 3949; global AVM_PUBLIC_COLUMN_MAX_SIZE : u32 = 1024; global AVM_PUBLIC_INPUTS_FLATTENED_SIZE : u32 = 2 * AVM_PUBLIC_COLUMN_MAX_SIZE + PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH; /** diff --git a/yarn-project/circuits.js/src/constants.gen.ts b/yarn-project/circuits.js/src/constants.gen.ts index 860495b34e6..73680d79e42 100644 --- a/yarn-project/circuits.js/src/constants.gen.ts +++ b/yarn-project/circuits.js/src/constants.gen.ts @@ -216,7 +216,7 @@ export const TUBE_PROOF_LENGTH = 463; export const HONK_VERIFICATION_KEY_LENGTH_IN_FIELDS = 128; export const CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS = 145; export const AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS = 86; -export const AVM_PROOF_LENGTH_IN_FIELDS = 3842; +export const AVM_PROOF_LENGTH_IN_FIELDS = 3949; export const AVM_PUBLIC_COLUMN_MAX_SIZE = 1024; export const AVM_PUBLIC_INPUTS_FLATTENED_SIZE = 2722; export const MEM_TAG_FF = 0; From 699a7d4a485c61e7e584e7d7c7e2948a5dbea326 Mon Sep 17 00:00:00 2001 From: jeanmon Date: Thu, 24 Oct 2024 09:08:52 +0000 Subject: [PATCH 6/8] 9349: Transcript serialization --- .../barretenberg/vm/avm/generated/flavor.cpp | 44 ++++++++++------- .../barretenberg/vm/avm/generated/flavor.hpp | 7 +-- .../bb-pil-backend/templates/flavor.cpp.hbs | 48 +++++++++++-------- .../bb-pil-backend/templates/flavor.hpp.hbs | 7 +-- 4 files changed, 64 insertions(+), 42 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp index 5cd65b282f3..3d033a31f1a 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp @@ -2321,53 +2321,63 @@ AvmFlavor::CommitmentLabels::CommitmentLabels() Base::incl_mem_tag_err_counts = "INCL_MEM_TAG_ERR_COUNTS"; }; -// Note: current de-/serialization routines are not including the padded zero univariates which are added as part of -// current sumcheck implementation. Namely, this algorithm is padding to reach CONST_PROOF_SIZE_LOG_N sumcheck rounds. -// Similarly, Shplemini implementation performs same padding over some commitments (zm_cq_comms). -// In code below, the loops are of size log(circuit_size) instead of CONST_PROOF_SIZE_LOG_N. void AvmFlavor::Transcript::deserialize_full_transcript() { size_t num_frs_read = 0; circuit_size = deserialize_from_buffer(proof_data, num_frs_read); - size_t log_n = numeric::get_msb(circuit_size); for (auto& commitment : commitments) { commitment = deserialize_from_buffer(proof_data, num_frs_read); } - for (size_t i = 0; i < log_n; ++i) { + + for (size_t i = 0; i < CONST_PROOF_SIZE_LOG_N; ++i) { sumcheck_univariates.emplace_back(deserialize_from_buffer>( Transcript::proof_data, num_frs_read)); } + sumcheck_evaluations = deserialize_from_buffer>(Transcript::proof_data, num_frs_read); - for (size_t i = 0; i < log_n; ++i) { - zm_cq_comms.push_back(deserialize_from_buffer(proof_data, num_frs_read)); + + for (size_t i = 0; i < CONST_PROOF_SIZE_LOG_N - 1; ++i) { + gemini_fold_comms.push_back(deserialize_from_buffer(proof_data, num_frs_read)); } - zm_cq_comm = deserialize_from_buffer(proof_data, num_frs_read); - zm_pi_comm = deserialize_from_buffer(proof_data, num_frs_read); + + for (size_t i = 0; i < CONST_PROOF_SIZE_LOG_N; ++i) { + gemini_fold_evals.push_back(deserialize_from_buffer(proof_data, num_frs_read)); + } + + shplonk_q_comm = deserialize_from_buffer(proof_data, num_frs_read); + + kzg_w_comm = deserialize_from_buffer(proof_data, num_frs_read); } -// See note above AvmFlavor::Transcript::deserialize_full_transcript() void AvmFlavor::Transcript::serialize_full_transcript() { size_t old_proof_length = proof_data.size(); Transcript::proof_data.clear(); - size_t log_n = numeric::get_msb(circuit_size); serialize_to_buffer(circuit_size, Transcript::proof_data); for (const auto& commitment : commitments) { serialize_to_buffer(commitment, Transcript::proof_data); } - for (size_t i = 0; i < log_n; ++i) { + + for (size_t i = 0; i < CONST_PROOF_SIZE_LOG_N; ++i) { serialize_to_buffer(sumcheck_univariates[i], Transcript::proof_data); } + serialize_to_buffer(sumcheck_evaluations, Transcript::proof_data); - for (size_t i = 0; i < log_n; ++i) { - serialize_to_buffer(zm_cq_comms[i], proof_data); + + for (size_t i = 0; i < CONST_PROOF_SIZE_LOG_N - 1; ++i) { + serialize_to_buffer(gemini_fold_comms[i], proof_data); } - serialize_to_buffer(zm_cq_comm, proof_data); - serialize_to_buffer(zm_pi_comm, proof_data); + + for (size_t i = 0; i < CONST_PROOF_SIZE_LOG_N; ++i) { + serialize_to_buffer(gemini_fold_evals[i], proof_data); + } + + serialize_to_buffer(shplonk_q_comm, proof_data); + serialize_to_buffer(kzg_w_comm, proof_data); // sanity check to make sure we generate the same length of proof as before. ASSERT(proof_data.size() == old_proof_length); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp index a6fd7a9331e..670a64f5dab 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp @@ -499,9 +499,10 @@ class AvmFlavor { std::vector> sumcheck_univariates; std::array sumcheck_evaluations; - std::vector zm_cq_comms; - Commitment zm_cq_comm; - Commitment zm_pi_comm; + std::vector gemini_fold_comms; + std::vector gemini_fold_evals; + Commitment shplonk_q_comm; + Commitment kzg_w_comm; Transcript() = default; diff --git a/bb-pilcom/bb-pil-backend/templates/flavor.cpp.hbs b/bb-pilcom/bb-pil-backend/templates/flavor.cpp.hbs index 9acbab45408..e434426b265 100644 --- a/bb-pilcom/bb-pil-backend/templates/flavor.cpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/flavor.cpp.hbs @@ -46,52 +46,62 @@ namespace bb { {{/each}} }; -// Note: current de-/serialization routines are not including the padded zero univariates which are added as part of -// current sumcheck implementation. Namely, this algorithm is padding to reach CONST_PROOF_SIZE_LOG_N sumcheck rounds. -// Similarly, Shplemini implementation performs same padding over some commitments (zm_cq_comms). -// In code below, the loops are of size log(circuit_size) instead of CONST_PROOF_SIZE_LOG_N. void {{name}}Flavor::Transcript::deserialize_full_transcript() { size_t num_frs_read = 0; circuit_size = deserialize_from_buffer(proof_data, num_frs_read); - size_t log_n = numeric::get_msb(circuit_size); for (auto& commitment : commitments) { commitment = deserialize_from_buffer(proof_data, num_frs_read); } - for (size_t i = 0; i < log_n; ++i) { + + for (size_t i = 0; i < CONST_PROOF_SIZE_LOG_N; ++i) { sumcheck_univariates.emplace_back( deserialize_from_buffer>( Transcript::proof_data, num_frs_read)); } - sumcheck_evaluations = deserialize_from_buffer>( - Transcript::proof_data, num_frs_read); - for (size_t i = 0; i < log_n; ++i) { - zm_cq_comms.push_back(deserialize_from_buffer(proof_data, num_frs_read)); + + sumcheck_evaluations = + deserialize_from_buffer>(Transcript::proof_data, num_frs_read); + + for (size_t i = 0; i < CONST_PROOF_SIZE_LOG_N - 1; ++i) { + gemini_fold_comms.push_back(deserialize_from_buffer(proof_data, num_frs_read)); } - zm_cq_comm = deserialize_from_buffer(proof_data, num_frs_read); - zm_pi_comm = deserialize_from_buffer(proof_data, num_frs_read); + + for (size_t i = 0; i < CONST_PROOF_SIZE_LOG_N; ++i) { + gemini_fold_evals.push_back(deserialize_from_buffer(proof_data, num_frs_read)); + } + + shplonk_q_comm = deserialize_from_buffer(proof_data, num_frs_read); + + kzg_w_comm = deserialize_from_buffer(proof_data, num_frs_read); } -// See note above AvmFlavor::Transcript::deserialize_full_transcript() void {{name}}Flavor::Transcript::serialize_full_transcript() { size_t old_proof_length = proof_data.size(); Transcript::proof_data.clear(); - size_t log_n = numeric::get_msb(circuit_size); serialize_to_buffer(circuit_size, Transcript::proof_data); for (const auto& commitment : commitments) { serialize_to_buffer(commitment, Transcript::proof_data); } - for (size_t i = 0; i < log_n; ++i) { + + for (size_t i = 0; i < CONST_PROOF_SIZE_LOG_N; ++i) { serialize_to_buffer(sumcheck_univariates[i], Transcript::proof_data); } + serialize_to_buffer(sumcheck_evaluations, Transcript::proof_data); - for (size_t i = 0; i < log_n; ++i) { - serialize_to_buffer(zm_cq_comms[i], proof_data); + + for (size_t i = 0; i < CONST_PROOF_SIZE_LOG_N - 1; ++i) { + serialize_to_buffer(gemini_fold_comms[i], proof_data); } - serialize_to_buffer(zm_cq_comm, proof_data); - serialize_to_buffer(zm_pi_comm, proof_data); + + for (size_t i = 0; i < CONST_PROOF_SIZE_LOG_N; ++i) { + serialize_to_buffer(gemini_fold_evals[i], proof_data); + } + + serialize_to_buffer(shplonk_q_comm, proof_data); + serialize_to_buffer(kzg_w_comm, proof_data); // sanity check to make sure we generate the same length of proof as before. ASSERT(proof_data.size() == old_proof_length); diff --git a/bb-pilcom/bb-pil-backend/templates/flavor.hpp.hbs b/bb-pilcom/bb-pil-backend/templates/flavor.hpp.hbs index b14c281ae4b..deeb2e5e171 100644 --- a/bb-pilcom/bb-pil-backend/templates/flavor.hpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/flavor.hpp.hbs @@ -358,9 +358,10 @@ class {{name}}Flavor { std::vector> sumcheck_univariates; std::array sumcheck_evaluations; - std::vector zm_cq_comms; - Commitment zm_cq_comm; - Commitment zm_pi_comm; + std::vector gemini_fold_comms; + std::vector gemini_fold_evals; + Commitment shplonk_q_comm; + Commitment kzg_w_comm; Transcript() = default; From fcbd3f76789d5d38cc266037138be9fe31581567 Mon Sep 17 00:00:00 2001 From: jeanmon Date: Thu, 24 Oct 2024 10:06:14 +0000 Subject: [PATCH 7/8] 9349: Adapt proof length formula in codegen template file --- barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp | 4 ++-- barretenberg/cpp/src/barretenberg/vm/aztec_constants.hpp | 2 +- bb-pilcom/bb-pil-backend/templates/flavor.hpp.hbs | 4 ++-- .../noir-protocol-circuits/crates/types/src/constants.nr | 2 +- yarn-project/circuits.js/src/constants.gen.ts | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp index 670a64f5dab..e43fb6f2a99 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp @@ -240,8 +240,8 @@ class AvmFlavor { // After any circuit changes, hover `COMPUTED_AVM_PROOF_LENGTH_IN_FIELDS` in your IDE // to see its value and then update `AVM_PROOF_LENGTH_IN_FIELDS` in constants.nr. static constexpr size_t COMPUTED_AVM_PROOF_LENGTH_IN_FIELDS = - (NUM_WITNESS_ENTITIES + 2) * NUM_FRS_COM + (NUM_ALL_ENTITIES + 1) * NUM_FRS_FR + - CONST_PROOF_SIZE_LOG_N * (NUM_FRS_COM + NUM_FRS_FR * BATCHED_RELATION_PARTIAL_LENGTH); + (NUM_WITNESS_ENTITIES + 1) * NUM_FRS_COM + (NUM_ALL_ENTITIES + 1) * NUM_FRS_FR + + CONST_PROOF_SIZE_LOG_N * (NUM_FRS_COM + NUM_FRS_FR * (BATCHED_RELATION_PARTIAL_LENGTH + 1)); static_assert(AVM_PROOF_LENGTH_IN_FIELDS == COMPUTED_AVM_PROOF_LENGTH_IN_FIELDS, "\nUnexpected AVM proof length. This might be due to some changes in the\n" diff --git a/barretenberg/cpp/src/barretenberg/vm/aztec_constants.hpp b/barretenberg/cpp/src/barretenberg/vm/aztec_constants.hpp index aa35d864f5e..905e0ab1231 100644 --- a/barretenberg/cpp/src/barretenberg/vm/aztec_constants.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/aztec_constants.hpp @@ -35,7 +35,7 @@ #define PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH 674 #define PUBLIC_CONTEXT_INPUTS_LENGTH 41 #define AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS 86 -#define AVM_PROOF_LENGTH_IN_FIELDS 3949 +#define AVM_PROOF_LENGTH_IN_FIELDS 3973 #define AVM_PUBLIC_COLUMN_MAX_SIZE 1024 #define AVM_PUBLIC_INPUTS_FLATTENED_SIZE 2722 #define MEM_TAG_FF 0 diff --git a/bb-pilcom/bb-pil-backend/templates/flavor.hpp.hbs b/bb-pilcom/bb-pil-backend/templates/flavor.hpp.hbs index deeb2e5e171..802118b38d0 100644 --- a/bb-pilcom/bb-pil-backend/templates/flavor.hpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/flavor.hpp.hbs @@ -109,8 +109,8 @@ class {{name}}Flavor { // After any circuit changes, hover `COMPUTED_AVM_PROOF_LENGTH_IN_FIELDS` in your IDE // to see its value and then update `AVM_PROOF_LENGTH_IN_FIELDS` in constants.nr. static constexpr size_t COMPUTED_AVM_PROOF_LENGTH_IN_FIELDS = - (NUM_WITNESS_ENTITIES + 2) * NUM_FRS_COM + (NUM_ALL_ENTITIES + 1) * NUM_FRS_FR + - CONST_PROOF_SIZE_LOG_N * (NUM_FRS_COM + NUM_FRS_FR * BATCHED_RELATION_PARTIAL_LENGTH); + (NUM_WITNESS_ENTITIES + 1) * NUM_FRS_COM + (NUM_ALL_ENTITIES + 1) * NUM_FRS_FR + + CONST_PROOF_SIZE_LOG_N * (NUM_FRS_COM + NUM_FRS_FR * (BATCHED_RELATION_PARTIAL_LENGTH + 1)); static_assert(AVM_PROOF_LENGTH_IN_FIELDS == COMPUTED_AVM_PROOF_LENGTH_IN_FIELDS, "\nUnexpected AVM proof length. This might be due to some changes in the\n" diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr index 80e95769454..d5a97a4bade 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr @@ -475,7 +475,7 @@ global AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS: u32 = 2 + 21 * 4; // `AVM_PROOF_LENGTH_IN_FIELDS` must be updated when AVM circuit changes. // To determine latest value, hover `COMPUTED_AVM_PROOF_LENGTH_IN_FIELDS` // in barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp -global AVM_PROOF_LENGTH_IN_FIELDS: u32 = 3949; +global AVM_PROOF_LENGTH_IN_FIELDS: u32 = 3973; global AVM_PUBLIC_COLUMN_MAX_SIZE : u32 = 1024; global AVM_PUBLIC_INPUTS_FLATTENED_SIZE : u32 = 2 * AVM_PUBLIC_COLUMN_MAX_SIZE + PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH; /** diff --git a/yarn-project/circuits.js/src/constants.gen.ts b/yarn-project/circuits.js/src/constants.gen.ts index 73680d79e42..17be4feeeb4 100644 --- a/yarn-project/circuits.js/src/constants.gen.ts +++ b/yarn-project/circuits.js/src/constants.gen.ts @@ -216,7 +216,7 @@ export const TUBE_PROOF_LENGTH = 463; export const HONK_VERIFICATION_KEY_LENGTH_IN_FIELDS = 128; export const CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS = 145; export const AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS = 86; -export const AVM_PROOF_LENGTH_IN_FIELDS = 3949; +export const AVM_PROOF_LENGTH_IN_FIELDS = 3973; export const AVM_PUBLIC_COLUMN_MAX_SIZE = 1024; export const AVM_PUBLIC_INPUTS_FLATTENED_SIZE = 2722; export const MEM_TAG_FF = 0; From 9aa76c5e7717a42be35191a01f60c2a37bf83938 Mon Sep 17 00:00:00 2001 From: jeanmon Date: Thu, 24 Oct 2024 11:15:59 +0000 Subject: [PATCH 8/8] 9349: adapt assertions on proof length in honk_recursion_constraint.cpp --- .../dsl/acir_format/honk_recursion_constraint.cpp | 8 ++++---- .../noir-protocol-circuits/crates/types/src/constants.nr | 5 +++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/honk_recursion_constraint.cpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/honk_recursion_constraint.cpp index 0f6ca3d7b39..8543c86acfb 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/honk_recursion_constraint.cpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/honk_recursion_constraint.cpp @@ -41,14 +41,14 @@ void create_dummy_vkey_and_proof(Builder& builder, size_t num_frs_comm = bb::field_conversion::calc_num_bn254_frs(); size_t num_frs_fr = bb::field_conversion::calc_num_bn254_frs(); assert((proof_size - HONK_RECURSION_PUBLIC_INPUT_OFFSET - Flavor::NUM_WITNESS_ENTITIES * num_frs_comm - - Flavor::NUM_ALL_ENTITIES * num_frs_fr - 2 * num_frs_comm) % - (num_frs_comm + num_frs_fr * Flavor::BATCHED_RELATION_PARTIAL_LENGTH) == + Flavor::NUM_ALL_ENTITIES * num_frs_fr - num_frs_comm) % + (num_frs_comm + num_frs_fr * (Flavor::BATCHED_RELATION_PARTIAL_LENGTH + 1)) == 0); // Note: this computation should always result in log_circuit_size = CONST_PROOF_SIZE_LOG_N auto log_circuit_size = (proof_size - HONK_RECURSION_PUBLIC_INPUT_OFFSET - Flavor::NUM_WITNESS_ENTITIES * num_frs_comm - - Flavor::NUM_ALL_ENTITIES * num_frs_fr - 2 * num_frs_comm) / - (num_frs_comm + num_frs_fr * Flavor::BATCHED_RELATION_PARTIAL_LENGTH); + Flavor::NUM_ALL_ENTITIES * num_frs_fr - num_frs_comm) / + (num_frs_comm + num_frs_fr * (Flavor::BATCHED_RELATION_PARTIAL_LENGTH + 1)); // First key field is circuit size builder.assert_equal(builder.add_variable(1 << log_circuit_size), key_fields[0].witness_index); // Second key field is number of public inputs diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr index d5a97a4bade..611ed1c6a5f 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr @@ -476,8 +476,9 @@ global AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS: u32 = 2 + 21 * 4; // To determine latest value, hover `COMPUTED_AVM_PROOF_LENGTH_IN_FIELDS` // in barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp global AVM_PROOF_LENGTH_IN_FIELDS: u32 = 3973; -global AVM_PUBLIC_COLUMN_MAX_SIZE : u32 = 1024; -global AVM_PUBLIC_INPUTS_FLATTENED_SIZE : u32 = 2 * AVM_PUBLIC_COLUMN_MAX_SIZE + PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH; +global AVM_PUBLIC_COLUMN_MAX_SIZE: u32 = 1024; +global AVM_PUBLIC_INPUTS_FLATTENED_SIZE: u32 = + 2 * AVM_PUBLIC_COLUMN_MAX_SIZE + PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH; /** * Enumerate the hash_indices which are used for pedersen hashing. * We start from 1 to avoid the default generators. The generator indices are listed