8#include "../columns.hpp"
17 static constexpr std::string_view
NAME =
"LOOKUP_PUBLIC_DATA_CHECK_CLK_DIFF_RANGE_LO";
22 static constexpr Column COUNTS = Column::lookup_public_data_check_clk_diff_range_lo_counts;
23 static constexpr Column INVERSES = Column::lookup_public_data_check_clk_diff_range_lo_inv;
24 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
25 ColumnAndShifts::public_data_check_clk_diff_lo
27 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::precomputed_idx };
32template <
typename FF_>
39 static constexpr std::string_view
NAME =
"LOOKUP_PUBLIC_DATA_CHECK_CLK_DIFF_RANGE_HI";
44 static constexpr Column COUNTS = Column::lookup_public_data_check_clk_diff_range_hi_counts;
45 static constexpr Column INVERSES = Column::lookup_public_data_check_clk_diff_range_hi_inv;
46 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
47 ColumnAndShifts::public_data_check_clk_diff_hi
49 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::precomputed_idx };
54template <
typename FF_>
61 static constexpr std::string_view
NAME =
"LOOKUP_PUBLIC_DATA_CHECK_SILO_POSEIDON2";
66 static constexpr Column COUNTS = Column::lookup_public_data_check_silo_poseidon2_counts;
67 static constexpr Column INVERSES = Column::lookup_public_data_check_silo_poseidon2_inv;
68 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
69 ColumnAndShifts::public_data_check_siloing_separator,
70 ColumnAndShifts::public_data_check_address,
71 ColumnAndShifts::public_data_check_slot,
72 ColumnAndShifts::public_data_check_leaf_slot,
73 ColumnAndShifts::public_data_check_const_three
75 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
76 ColumnAndShifts::poseidon2_hash_input_0,
77 ColumnAndShifts::poseidon2_hash_input_1,
78 ColumnAndShifts::poseidon2_hash_input_2,
79 ColumnAndShifts::poseidon2_hash_output,
80 ColumnAndShifts::poseidon2_hash_input_len
86template <
typename FF_>
93 static constexpr std::string_view
NAME =
"LOOKUP_PUBLIC_DATA_CHECK_LOW_LEAF_SLOT_VALIDATION";
98 static constexpr Column COUNTS = Column::lookup_public_data_check_low_leaf_slot_validation_counts;
99 static constexpr Column INVERSES = Column::lookup_public_data_check_low_leaf_slot_validation_inv;
100 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
101 ColumnAndShifts::public_data_check_leaf_slot,
102 ColumnAndShifts::public_data_check_low_leaf_slot,
103 ColumnAndShifts::public_data_check_leaf_not_exists
105 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::ff_gt_a,
106 ColumnAndShifts::ff_gt_b,
107 ColumnAndShifts::ff_gt_result };
112template <
typename FF_>
119 static constexpr std::string_view
NAME =
"LOOKUP_PUBLIC_DATA_CHECK_LOW_LEAF_NEXT_SLOT_VALIDATION";
124 static constexpr Column COUNTS = Column::lookup_public_data_check_low_leaf_next_slot_validation_counts;
125 static constexpr Column INVERSES = Column::lookup_public_data_check_low_leaf_next_slot_validation_inv;
126 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
127 ColumnAndShifts::public_data_check_low_leaf_next_slot,
128 ColumnAndShifts::public_data_check_leaf_slot,
129 ColumnAndShifts::public_data_check_next_slot_is_nonzero
131 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::ff_gt_a,
132 ColumnAndShifts::ff_gt_b,
133 ColumnAndShifts::ff_gt_result };
138template <
typename FF_>
145 static constexpr std::string_view
NAME =
"LOOKUP_PUBLIC_DATA_CHECK_LOW_LEAF_POSEIDON2_0";
150 static constexpr Column COUNTS = Column::lookup_public_data_check_low_leaf_poseidon2_0_counts;
151 static constexpr Column INVERSES = Column::lookup_public_data_check_low_leaf_poseidon2_0_inv;
152 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
153 ColumnAndShifts::public_data_check_low_leaf_slot,
154 ColumnAndShifts::public_data_check_low_leaf_value,
155 ColumnAndShifts::public_data_check_low_leaf_next_slot,
156 ColumnAndShifts::public_data_check_low_leaf_hash,
157 ColumnAndShifts::public_data_check_const_four
159 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
160 ColumnAndShifts::poseidon2_hash_input_0,
161 ColumnAndShifts::poseidon2_hash_input_1,
162 ColumnAndShifts::poseidon2_hash_input_2,
163 ColumnAndShifts::poseidon2_hash_output,
164 ColumnAndShifts::poseidon2_hash_input_len
170template <
typename FF_>
177 static constexpr std::string_view
NAME =
"LOOKUP_PUBLIC_DATA_CHECK_LOW_LEAF_POSEIDON2_1";
182 static constexpr Column COUNTS = Column::lookup_public_data_check_low_leaf_poseidon2_1_counts;
183 static constexpr Column INVERSES = Column::lookup_public_data_check_low_leaf_poseidon2_1_inv;
184 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
185 ColumnAndShifts::public_data_check_low_leaf_next_index,
186 ColumnAndShifts::precomputed_zero,
187 ColumnAndShifts::precomputed_zero,
188 ColumnAndShifts::public_data_check_low_leaf_hash
190 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
191 ColumnAndShifts::poseidon2_hash_input_0,
192 ColumnAndShifts::poseidon2_hash_input_1,
193 ColumnAndShifts::poseidon2_hash_input_2,
194 ColumnAndShifts::poseidon2_hash_output
200template <
typename FF_>
207 static constexpr std::string_view
NAME =
"LOOKUP_PUBLIC_DATA_CHECK_UPDATED_LOW_LEAF_POSEIDON2_0";
212 static constexpr Column COUNTS = Column::lookup_public_data_check_updated_low_leaf_poseidon2_0_counts;
213 static constexpr Column INVERSES = Column::lookup_public_data_check_updated_low_leaf_poseidon2_0_inv;
214 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
215 ColumnAndShifts::public_data_check_low_leaf_slot,
216 ColumnAndShifts::public_data_check_updated_low_leaf_value,
217 ColumnAndShifts::public_data_check_updated_low_leaf_next_slot,
218 ColumnAndShifts::public_data_check_updated_low_leaf_hash,
219 ColumnAndShifts::public_data_check_const_four
221 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
222 ColumnAndShifts::poseidon2_hash_input_0,
223 ColumnAndShifts::poseidon2_hash_input_1,
224 ColumnAndShifts::poseidon2_hash_input_2,
225 ColumnAndShifts::poseidon2_hash_output,
226 ColumnAndShifts::poseidon2_hash_input_len
232template <
typename FF_>
239 static constexpr std::string_view
NAME =
"LOOKUP_PUBLIC_DATA_CHECK_UPDATED_LOW_LEAF_POSEIDON2_1";
244 static constexpr Column COUNTS = Column::lookup_public_data_check_updated_low_leaf_poseidon2_1_counts;
245 static constexpr Column INVERSES = Column::lookup_public_data_check_updated_low_leaf_poseidon2_1_inv;
246 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
247 ColumnAndShifts::public_data_check_updated_low_leaf_next_index,
248 ColumnAndShifts::precomputed_zero,
249 ColumnAndShifts::precomputed_zero,
250 ColumnAndShifts::public_data_check_updated_low_leaf_hash
252 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
253 ColumnAndShifts::poseidon2_hash_input_0,
254 ColumnAndShifts::poseidon2_hash_input_1,
255 ColumnAndShifts::poseidon2_hash_input_2,
256 ColumnAndShifts::poseidon2_hash_output
262template <
typename FF_>
269 static constexpr std::string_view
NAME =
"LOOKUP_PUBLIC_DATA_CHECK_LOW_LEAF_MERKLE_CHECK";
274 static constexpr Column COUNTS = Column::lookup_public_data_check_low_leaf_merkle_check_counts;
275 static constexpr Column INVERSES = Column::lookup_public_data_check_low_leaf_merkle_check_inv;
276 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
277 ColumnAndShifts::public_data_check_write,
278 ColumnAndShifts::public_data_check_low_leaf_hash,
279 ColumnAndShifts::public_data_check_updated_low_leaf_hash,
280 ColumnAndShifts::public_data_check_low_leaf_index,
281 ColumnAndShifts::public_data_check_tree_height,
282 ColumnAndShifts::public_data_check_root,
283 ColumnAndShifts::public_data_check_intermediate_root,
284 ColumnAndShifts::public_data_check_merkle_hash_separator
286 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
287 ColumnAndShifts::merkle_check_write, ColumnAndShifts::merkle_check_read_node,
288 ColumnAndShifts::merkle_check_write_node, ColumnAndShifts::merkle_check_index,
289 ColumnAndShifts::merkle_check_path_len, ColumnAndShifts::merkle_check_read_root,
290 ColumnAndShifts::merkle_check_write_root, ColumnAndShifts::merkle_check_merkle_hash_separator
296template <
typename FF_>
303 static constexpr std::string_view
NAME =
"LOOKUP_PUBLIC_DATA_CHECK_NEW_LEAF_POSEIDON2_0";
308 static constexpr Column COUNTS = Column::lookup_public_data_check_new_leaf_poseidon2_0_counts;
309 static constexpr Column INVERSES = Column::lookup_public_data_check_new_leaf_poseidon2_0_inv;
310 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
311 ColumnAndShifts::public_data_check_leaf_slot,
312 ColumnAndShifts::public_data_check_value,
313 ColumnAndShifts::public_data_check_low_leaf_next_slot,
314 ColumnAndShifts::public_data_check_new_leaf_hash,
315 ColumnAndShifts::public_data_check_const_four
317 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
318 ColumnAndShifts::poseidon2_hash_input_0,
319 ColumnAndShifts::poseidon2_hash_input_1,
320 ColumnAndShifts::poseidon2_hash_input_2,
321 ColumnAndShifts::poseidon2_hash_output,
322 ColumnAndShifts::poseidon2_hash_input_len
328template <
typename FF_>
335 static constexpr std::string_view
NAME =
"LOOKUP_PUBLIC_DATA_CHECK_NEW_LEAF_POSEIDON2_1";
340 static constexpr Column COUNTS = Column::lookup_public_data_check_new_leaf_poseidon2_1_counts;
341 static constexpr Column INVERSES = Column::lookup_public_data_check_new_leaf_poseidon2_1_inv;
342 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
343 ColumnAndShifts::public_data_check_low_leaf_next_index,
344 ColumnAndShifts::precomputed_zero,
345 ColumnAndShifts::precomputed_zero,
346 ColumnAndShifts::public_data_check_new_leaf_hash
348 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
349 ColumnAndShifts::poseidon2_hash_input_0,
350 ColumnAndShifts::poseidon2_hash_input_1,
351 ColumnAndShifts::poseidon2_hash_input_2,
352 ColumnAndShifts::poseidon2_hash_output
358template <
typename FF_>
365 static constexpr std::string_view
NAME =
"LOOKUP_PUBLIC_DATA_CHECK_NEW_LEAF_MERKLE_CHECK";
370 static constexpr Column COUNTS = Column::lookup_public_data_check_new_leaf_merkle_check_counts;
371 static constexpr Column INVERSES = Column::lookup_public_data_check_new_leaf_merkle_check_inv;
372 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
373 ColumnAndShifts::public_data_check_should_insert, ColumnAndShifts::precomputed_zero,
374 ColumnAndShifts::public_data_check_new_leaf_hash, ColumnAndShifts::public_data_check_tree_size_before_write,
375 ColumnAndShifts::public_data_check_tree_height, ColumnAndShifts::public_data_check_intermediate_root,
376 ColumnAndShifts::public_data_check_write_root, ColumnAndShifts::public_data_check_merkle_hash_separator
378 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
379 ColumnAndShifts::merkle_check_write, ColumnAndShifts::merkle_check_read_node,
380 ColumnAndShifts::merkle_check_write_node, ColumnAndShifts::merkle_check_index,
381 ColumnAndShifts::merkle_check_path_len, ColumnAndShifts::merkle_check_read_root,
382 ColumnAndShifts::merkle_check_write_root, ColumnAndShifts::merkle_check_merkle_hash_separator
388template <
typename FF_>
395 static constexpr std::string_view
NAME =
"LOOKUP_PUBLIC_DATA_CHECK_WRITE_PUBLIC_DATA_TO_PUBLIC_INPUTS";
400 static constexpr Column COUNTS = Column::lookup_public_data_check_write_public_data_to_public_inputs_counts;
401 static constexpr Column INVERSES = Column::lookup_public_data_check_write_public_data_to_public_inputs_inv;
402 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
403 ColumnAndShifts::public_data_check_write_idx,
404 ColumnAndShifts::public_data_check_leaf_slot,
405 ColumnAndShifts::public_data_check_final_value
407 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
408 ColumnAndShifts::precomputed_idx, ColumnAndShifts::public_inputs_cols_0_, ColumnAndShifts::public_inputs_cols_1_
414template <
typename FF_>
421 static constexpr std::string_view
NAME =
"LOOKUP_PUBLIC_DATA_CHECK_WRITE_WRITES_LENGTH_TO_PUBLIC_INPUTS";
426 static constexpr Column COUNTS = Column::lookup_public_data_check_write_writes_length_to_public_inputs_counts;
427 static constexpr Column INVERSES = Column::lookup_public_data_check_write_writes_length_to_public_inputs_inv;
428 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
429 ColumnAndShifts::public_data_check_length_pi_idx, ColumnAndShifts::public_data_check_public_data_writes_length
431 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
432 ColumnAndShifts::precomputed_idx, ColumnAndShifts::public_inputs_cols_0_
438template <
typename FF_>
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
Settings to be passed ot GenericLookupRelationImpl.