1-
21#pragma once
32
43#include " barretenberg/commitment_schemes/kzg/kzg.hpp"
76#include " barretenberg/polynomials/barycentric.hpp"
87#include " barretenberg/polynomials/univariate.hpp"
98
10- #include " barretenberg/relations/generic_permutation/generic_permutation_relation.hpp"
11-
129#include " barretenberg/flavor/flavor.hpp"
1310#include " barretenberg/flavor/flavor_macros.hpp"
1411#include " barretenberg/polynomials/evaluation_domain.hpp"
1512#include " barretenberg/polynomials/polynomial.hpp"
13+ #include " barretenberg/transcript/transcript.hpp"
14+ #include " barretenberg/vm/avm_trace/stats.hpp"
15+
16+ // Relations
1617#include " barretenberg/relations/generated/avm/alu.hpp"
1718#include " barretenberg/relations/generated/avm/binary.hpp"
1819#include " barretenberg/relations/generated/avm/conversion.hpp"
1920#include " barretenberg/relations/generated/avm/gas.hpp"
20- #include " barretenberg/relations/generated/avm/incl_main_tag_err.hpp"
21- #include " barretenberg/relations/generated/avm/incl_mem_tag_err.hpp"
2221#include " barretenberg/relations/generated/avm/keccakf1600.hpp"
2322#include " barretenberg/relations/generated/avm/kernel.hpp"
23+ #include " barretenberg/relations/generated/avm/main.hpp"
24+ #include " barretenberg/relations/generated/avm/mem.hpp"
25+ #include " barretenberg/relations/generated/avm/pedersen.hpp"
26+ #include " barretenberg/relations/generated/avm/poseidon2.hpp"
27+ #include " barretenberg/relations/generated/avm/powers.hpp"
28+ #include " barretenberg/relations/generated/avm/sha256.hpp"
29+
30+ // Lookup relations
31+ #include " barretenberg/relations/generated/avm/incl_main_tag_err.hpp"
32+ #include " barretenberg/relations/generated/avm/incl_mem_tag_err.hpp"
2433#include " barretenberg/relations/generated/avm/kernel_output_lookup.hpp"
2534#include " barretenberg/relations/generated/avm/lookup_byte_lengths.hpp"
2635#include " barretenberg/relations/generated/avm/lookup_byte_operations.hpp"
5665#include " barretenberg/relations/generated/avm/lookup_u16_9.hpp"
5766#include " barretenberg/relations/generated/avm/lookup_u8_0.hpp"
5867#include " barretenberg/relations/generated/avm/lookup_u8_1.hpp"
59- #include " barretenberg/relations/generated/avm/main.hpp"
60- #include " barretenberg/relations/generated/avm/mem.hpp"
61- #include " barretenberg/relations/generated/avm/pedersen.hpp"
6268#include " barretenberg/relations/generated/avm/perm_main_alu.hpp"
6369#include " barretenberg/relations/generated/avm/perm_main_bin.hpp"
6470#include " barretenberg/relations/generated/avm/perm_main_conv.hpp"
7278#include " barretenberg/relations/generated/avm/perm_main_mem_ind_addr_d.hpp"
7379#include " barretenberg/relations/generated/avm/perm_main_pedersen.hpp"
7480#include " barretenberg/relations/generated/avm/perm_main_pos2_perm.hpp"
75- #include " barretenberg/relations/generated/avm/poseidon2.hpp"
76- #include " barretenberg/relations/generated/avm/powers.hpp"
7781#include " barretenberg/relations/generated/avm/range_check_da_gas_hi.hpp"
7882#include " barretenberg/relations/generated/avm/range_check_da_gas_lo.hpp"
7983#include " barretenberg/relations/generated/avm/range_check_l2_gas_hi.hpp"
8084#include " barretenberg/relations/generated/avm/range_check_l2_gas_lo.hpp"
81- #include " barretenberg/relations/generated/avm/sha256.hpp"
82- #include " barretenberg/transcript/transcript.hpp"
83- #include " barretenberg/vm/avm_trace/stats.hpp"
85+ #include " barretenberg/relations/generic_permutation/generic_permutation_relation.hpp"
8486
8587namespace bb {
8688
@@ -162,72 +164,75 @@ class AvmFlavor {
162164 lookup_div_u16_6_relation<FF>,
163165 lookup_div_u16_7_relation<FF>>;
164166
165- using Relations = std::tuple<Avm_vm::alu<FF>,
166- Avm_vm::binary<FF>,
167- Avm_vm::conversion<FF>,
168- Avm_vm::gas<FF>,
169- Avm_vm::keccakf1600<FF>,
170- Avm_vm::kernel<FF>,
171- Avm_vm::main<FF>,
172- Avm_vm::mem<FF>,
173- Avm_vm::pedersen<FF>,
174- Avm_vm::poseidon2<FF>,
175- Avm_vm::powers<FF>,
176- Avm_vm::sha256<FF>,
177- perm_main_alu_relation<FF>,
178- perm_main_bin_relation<FF>,
179- perm_main_conv_relation<FF>,
180- perm_main_pos2_perm_relation<FF>,
181- perm_main_pedersen_relation<FF>,
182- perm_main_mem_a_relation<FF>,
183- perm_main_mem_b_relation<FF>,
184- perm_main_mem_c_relation<FF>,
185- perm_main_mem_d_relation<FF>,
186- perm_main_mem_ind_addr_a_relation<FF>,
187- perm_main_mem_ind_addr_b_relation<FF>,
188- perm_main_mem_ind_addr_c_relation<FF>,
189- perm_main_mem_ind_addr_d_relation<FF>,
190- lookup_byte_lengths_relation<FF>,
191- lookup_byte_operations_relation<FF>,
192- lookup_opcode_gas_relation<FF>,
193- range_check_l2_gas_hi_relation<FF>,
194- range_check_l2_gas_lo_relation<FF>,
195- range_check_da_gas_hi_relation<FF>,
196- range_check_da_gas_lo_relation<FF>,
197- kernel_output_lookup_relation<FF>,
198- lookup_into_kernel_relation<FF>,
199- incl_main_tag_err_relation<FF>,
200- incl_mem_tag_err_relation<FF>,
201- lookup_mem_rng_chk_lo_relation<FF>,
202- lookup_mem_rng_chk_mid_relation<FF>,
203- lookup_mem_rng_chk_hi_relation<FF>,
204- lookup_pow_2_0_relation<FF>,
205- lookup_pow_2_1_relation<FF>,
206- lookup_u8_0_relation<FF>,
207- lookup_u8_1_relation<FF>,
208- lookup_u16_0_relation<FF>,
209- lookup_u16_1_relation<FF>,
210- lookup_u16_2_relation<FF>,
211- lookup_u16_3_relation<FF>,
212- lookup_u16_4_relation<FF>,
213- lookup_u16_5_relation<FF>,
214- lookup_u16_6_relation<FF>,
215- lookup_u16_7_relation<FF>,
216- lookup_u16_8_relation<FF>,
217- lookup_u16_9_relation<FF>,
218- lookup_u16_10_relation<FF>,
219- lookup_u16_11_relation<FF>,
220- lookup_u16_12_relation<FF>,
221- lookup_u16_13_relation<FF>,
222- lookup_u16_14_relation<FF>,
223- lookup_div_u16_0_relation<FF>,
224- lookup_div_u16_1_relation<FF>,
225- lookup_div_u16_2_relation<FF>,
226- lookup_div_u16_3_relation<FF>,
227- lookup_div_u16_4_relation<FF>,
228- lookup_div_u16_5_relation<FF>,
229- lookup_div_u16_6_relation<FF>,
230- lookup_div_u16_7_relation<FF>>;
167+ using Relations = std::tuple<
168+ // Relations
169+ Avm_vm::alu<FF>,
170+ Avm_vm::binary<FF>,
171+ Avm_vm::conversion<FF>,
172+ Avm_vm::gas<FF>,
173+ Avm_vm::keccakf1600<FF>,
174+ Avm_vm::kernel<FF>,
175+ Avm_vm::main<FF>,
176+ Avm_vm::mem<FF>,
177+ Avm_vm::pedersen<FF>,
178+ Avm_vm::poseidon2<FF>,
179+ Avm_vm::powers<FF>,
180+ Avm_vm::sha256<FF>,
181+ // Lookups
182+ perm_main_alu_relation<FF>,
183+ perm_main_bin_relation<FF>,
184+ perm_main_conv_relation<FF>,
185+ perm_main_pos2_perm_relation<FF>,
186+ perm_main_pedersen_relation<FF>,
187+ perm_main_mem_a_relation<FF>,
188+ perm_main_mem_b_relation<FF>,
189+ perm_main_mem_c_relation<FF>,
190+ perm_main_mem_d_relation<FF>,
191+ perm_main_mem_ind_addr_a_relation<FF>,
192+ perm_main_mem_ind_addr_b_relation<FF>,
193+ perm_main_mem_ind_addr_c_relation<FF>,
194+ perm_main_mem_ind_addr_d_relation<FF>,
195+ lookup_byte_lengths_relation<FF>,
196+ lookup_byte_operations_relation<FF>,
197+ lookup_opcode_gas_relation<FF>,
198+ range_check_l2_gas_hi_relation<FF>,
199+ range_check_l2_gas_lo_relation<FF>,
200+ range_check_da_gas_hi_relation<FF>,
201+ range_check_da_gas_lo_relation<FF>,
202+ kernel_output_lookup_relation<FF>,
203+ lookup_into_kernel_relation<FF>,
204+ incl_main_tag_err_relation<FF>,
205+ incl_mem_tag_err_relation<FF>,
206+ lookup_mem_rng_chk_lo_relation<FF>,
207+ lookup_mem_rng_chk_mid_relation<FF>,
208+ lookup_mem_rng_chk_hi_relation<FF>,
209+ lookup_pow_2_0_relation<FF>,
210+ lookup_pow_2_1_relation<FF>,
211+ lookup_u8_0_relation<FF>,
212+ lookup_u8_1_relation<FF>,
213+ lookup_u16_0_relation<FF>,
214+ lookup_u16_1_relation<FF>,
215+ lookup_u16_2_relation<FF>,
216+ lookup_u16_3_relation<FF>,
217+ lookup_u16_4_relation<FF>,
218+ lookup_u16_5_relation<FF>,
219+ lookup_u16_6_relation<FF>,
220+ lookup_u16_7_relation<FF>,
221+ lookup_u16_8_relation<FF>,
222+ lookup_u16_9_relation<FF>,
223+ lookup_u16_10_relation<FF>,
224+ lookup_u16_11_relation<FF>,
225+ lookup_u16_12_relation<FF>,
226+ lookup_u16_13_relation<FF>,
227+ lookup_u16_14_relation<FF>,
228+ lookup_div_u16_0_relation<FF>,
229+ lookup_div_u16_1_relation<FF>,
230+ lookup_div_u16_2_relation<FF>,
231+ lookup_div_u16_3_relation<FF>,
232+ lookup_div_u16_4_relation<FF>,
233+ lookup_div_u16_5_relation<FF>,
234+ lookup_div_u16_6_relation<FF>,
235+ lookup_div_u16_7_relation<FF>>;
231236
232237 static constexpr size_t MAX_PARTIAL_RELATION_LENGTH = compute_max_partial_relation_length<Relations>();
233238
@@ -252,14 +257,16 @@ class AvmFlavor {
252257
253258 DEFINE_FLAVOR_MEMBERS (DataType, main_clk, main_sel_first)
254259
255- RefVector<DataType> get_selectors () { return { main_clk, main_sel_first }; };
256- RefVector<DataType> get_sigma_polynomials () { return {}; };
257- RefVector<DataType> get_id_polynomials () { return {}; };
258- RefVector<DataType> get_table_polynomials () { return {}; };
260+ RefVector<DataType> get_selectors () { return { main_clk, main_sel_first }; }
261+ RefVector<DataType> get_sigma_polynomials () { return {}; }
262+ RefVector<DataType> get_id_polynomials () { return {}; }
263+ RefVector<DataType> get_table_polynomials () { return {}; }
259264 };
260265
261- template <typename DataType > class WitnessEntities {
266+ template <typename DataType_ > class WitnessEntities {
262267 public:
268+ using DataType = DataType_;
269+
263270 DEFINE_FLAVOR_MEMBERS (DataType,
264271 kernel_kernel_inputs,
265272 kernel_kernel_value_out,
@@ -1034,11 +1041,13 @@ class AvmFlavor {
10341041 lookup_div_u16_5_counts,
10351042 lookup_div_u16_6_counts,
10361043 lookup_div_u16_7_counts };
1037- };
1044+ }
10381045 };
10391046
1040- template <typename DataType > class AllEntities {
1047+ template <typename DataType_ > class AllEntities {
10411048 public:
1049+ using DataType = DataType_;
1050+
10421051 DEFINE_FLAVOR_MEMBERS (DataType,
10431052 main_clk,
10441053 main_sel_first,
@@ -1947,7 +1956,7 @@ class AvmFlavor {
19471956 mem_tag_shift,
19481957 mem_tsp_shift,
19491958 mem_val_shift };
1950- };
1959+ }
19511960 RefVector<DataType> get_unshifted ()
19521961 {
19531962 return { main_clk,
@@ -2337,7 +2346,7 @@ class AvmFlavor {
23372346 lookup_div_u16_5_counts,
23382347 lookup_div_u16_6_counts,
23392348 lookup_div_u16_7_counts };
2340- };
2349+ }
23412350 RefVector<DataType> get_to_be_shifted ()
23422351 {
23432352 return { alu_a_hi,
@@ -2405,7 +2414,7 @@ class AvmFlavor {
24052414 mem_tag,
24062415 mem_tsp,
24072416 mem_val };
2408- };
2417+ }
24092418 RefVector<DataType> get_shifted ()
24102419 {
24112420 return { alu_a_hi_shift,
@@ -2473,10 +2482,9 @@ class AvmFlavor {
24732482 mem_tag_shift,
24742483 mem_tsp_shift,
24752484 mem_val_shift };
2476- };
2485+ }
24772486 };
24782487
2479- public:
24802488 class ProvingKey
24812489 : public ProvingKeyAvm_<PrecomputedEntities<Polynomial>, WitnessEntities<Polynomial>, CommitmentKey> {
24822490 public:
@@ -2551,7 +2559,7 @@ class AvmFlavor {
25512559 mem_tag,
25522560 mem_tsp,
25532561 mem_val };
2554- };
2562+ }
25552563
25562564 void compute_logderivative_inverses (const RelationParameters<FF>& relation_parameters)
25572565 {
@@ -3069,7 +3077,7 @@ class AvmFlavor {
30693077 Base::mem_diff_mid = " MEM_DIFF_MID" ;
30703078 Base::mem_glob_addr = " MEM_GLOB_ADDR" ;
30713079 Base::mem_last = " MEM_LAST" ;
3072- Base::mem_lastAccess = " MEM_LASTACCESS " ;
3080+ Base::mem_lastAccess = " MEM_LAST_ACCESS " ;
30733081 Base::mem_one_min_inv = " MEM_ONE_MIN_INV" ;
30743082 Base::mem_r_in_tag = " MEM_R_IN_TAG" ;
30753083 Base::mem_rw = " MEM_RW" ;
@@ -4447,4 +4455,4 @@ class AvmFlavor {
44474455 };
44484456};
44494457
4450- } // namespace bb
4458+ } // namespace bb
0 commit comments