8#include "../columns.hpp"
17 static constexpr std::string_view
NAME =
"LOOKUP_RETRIEVED_BYTECODES_TREE_CHECK_LOW_LEAF_POSEIDON2";
18 static constexpr std::string_view
RELATION_NAME =
"retrieved_bytecodes_tree_check";
22 static constexpr Column COUNTS = Column::lookup_retrieved_bytecodes_tree_check_low_leaf_poseidon2_counts;
23 static constexpr Column INVERSES = Column::lookup_retrieved_bytecodes_tree_check_low_leaf_poseidon2_inv;
24 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
25 ColumnAndShifts::retrieved_bytecodes_tree_check_sel,
26 ColumnAndShifts::retrieved_bytecodes_tree_check_low_leaf_class_id,
27 ColumnAndShifts::retrieved_bytecodes_tree_check_low_leaf_next_class_id,
28 ColumnAndShifts::retrieved_bytecodes_tree_check_low_leaf_next_index,
29 ColumnAndShifts::retrieved_bytecodes_tree_check_low_leaf_hash
31 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
32 ColumnAndShifts::poseidon2_hash_start,
33 ColumnAndShifts::poseidon2_hash_input_0,
34 ColumnAndShifts::poseidon2_hash_input_1,
35 ColumnAndShifts::poseidon2_hash_input_2,
36 ColumnAndShifts::poseidon2_hash_output
42template <
typename FF_>
49 static constexpr std::string_view
NAME =
"LOOKUP_RETRIEVED_BYTECODES_TREE_CHECK_UPDATED_LOW_LEAF_POSEIDON2";
50 static constexpr std::string_view
RELATION_NAME =
"retrieved_bytecodes_tree_check";
54 static constexpr Column COUNTS = Column::lookup_retrieved_bytecodes_tree_check_updated_low_leaf_poseidon2_counts;
55 static constexpr Column INVERSES = Column::lookup_retrieved_bytecodes_tree_check_updated_low_leaf_poseidon2_inv;
56 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
57 ColumnAndShifts::retrieved_bytecodes_tree_check_sel,
58 ColumnAndShifts::retrieved_bytecodes_tree_check_low_leaf_class_id,
59 ColumnAndShifts::retrieved_bytecodes_tree_check_updated_low_leaf_next_class_id,
60 ColumnAndShifts::retrieved_bytecodes_tree_check_updated_low_leaf_next_index,
61 ColumnAndShifts::retrieved_bytecodes_tree_check_updated_low_leaf_hash
63 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
64 ColumnAndShifts::poseidon2_hash_start,
65 ColumnAndShifts::poseidon2_hash_input_0,
66 ColumnAndShifts::poseidon2_hash_input_1,
67 ColumnAndShifts::poseidon2_hash_input_2,
68 ColumnAndShifts::poseidon2_hash_output
74template <
typename FF_>
81 static constexpr std::string_view
NAME =
"LOOKUP_RETRIEVED_BYTECODES_TREE_CHECK_LOW_LEAF_MERKLE_CHECK";
82 static constexpr std::string_view
RELATION_NAME =
"retrieved_bytecodes_tree_check";
86 static constexpr Column COUNTS = Column::lookup_retrieved_bytecodes_tree_check_low_leaf_merkle_check_counts;
87 static constexpr Column INVERSES = Column::lookup_retrieved_bytecodes_tree_check_low_leaf_merkle_check_inv;
88 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
89 ColumnAndShifts::retrieved_bytecodes_tree_check_should_insert,
90 ColumnAndShifts::retrieved_bytecodes_tree_check_low_leaf_hash,
91 ColumnAndShifts::retrieved_bytecodes_tree_check_updated_low_leaf_hash,
92 ColumnAndShifts::retrieved_bytecodes_tree_check_low_leaf_index,
93 ColumnAndShifts::retrieved_bytecodes_tree_check_tree_height,
94 ColumnAndShifts::retrieved_bytecodes_tree_check_root,
95 ColumnAndShifts::retrieved_bytecodes_tree_check_intermediate_root
97 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
98 ColumnAndShifts::merkle_check_write, ColumnAndShifts::merkle_check_read_node,
99 ColumnAndShifts::merkle_check_write_node, ColumnAndShifts::merkle_check_index,
100 ColumnAndShifts::merkle_check_path_len, ColumnAndShifts::merkle_check_read_root,
101 ColumnAndShifts::merkle_check_write_root
107template <
typename FF_>
114 static constexpr std::string_view
NAME =
"LOOKUP_RETRIEVED_BYTECODES_TREE_CHECK_LOW_LEAF_CLASS_ID_VALIDATION";
115 static constexpr std::string_view
RELATION_NAME =
"retrieved_bytecodes_tree_check";
119 static constexpr Column COUNTS = Column::lookup_retrieved_bytecodes_tree_check_low_leaf_class_id_validation_counts;
120 static constexpr Column INVERSES = Column::lookup_retrieved_bytecodes_tree_check_low_leaf_class_id_validation_inv;
121 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
122 ColumnAndShifts::retrieved_bytecodes_tree_check_class_id,
123 ColumnAndShifts::retrieved_bytecodes_tree_check_low_leaf_class_id,
124 ColumnAndShifts::retrieved_bytecodes_tree_check_sel
126 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::ff_gt_a,
127 ColumnAndShifts::ff_gt_b,
128 ColumnAndShifts::ff_gt_result };
133template <
typename FF_>
140 static constexpr std::string_view
NAME =
"LOOKUP_RETRIEVED_BYTECODES_TREE_CHECK_LOW_LEAF_NEXT_CLASS_ID_VALIDATION";
141 static constexpr std::string_view
RELATION_NAME =
"retrieved_bytecodes_tree_check";
143 static constexpr Column SRC_SELECTOR = Column::retrieved_bytecodes_tree_check_next_class_id_is_nonzero;
146 Column::lookup_retrieved_bytecodes_tree_check_low_leaf_next_class_id_validation_counts;
148 Column::lookup_retrieved_bytecodes_tree_check_low_leaf_next_class_id_validation_inv;
149 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
150 ColumnAndShifts::retrieved_bytecodes_tree_check_low_leaf_next_class_id,
151 ColumnAndShifts::retrieved_bytecodes_tree_check_class_id,
152 ColumnAndShifts::retrieved_bytecodes_tree_check_sel
154 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::ff_gt_a,
155 ColumnAndShifts::ff_gt_b,
156 ColumnAndShifts::ff_gt_result };
161template <
typename FF_>
168 static constexpr std::string_view
NAME =
"LOOKUP_RETRIEVED_BYTECODES_TREE_CHECK_NEW_LEAF_POSEIDON2";
169 static constexpr std::string_view
RELATION_NAME =
"retrieved_bytecodes_tree_check";
173 static constexpr Column COUNTS = Column::lookup_retrieved_bytecodes_tree_check_new_leaf_poseidon2_counts;
174 static constexpr Column INVERSES = Column::lookup_retrieved_bytecodes_tree_check_new_leaf_poseidon2_inv;
175 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
176 ColumnAndShifts::retrieved_bytecodes_tree_check_sel,
177 ColumnAndShifts::retrieved_bytecodes_tree_check_class_id,
178 ColumnAndShifts::retrieved_bytecodes_tree_check_low_leaf_next_class_id,
179 ColumnAndShifts::retrieved_bytecodes_tree_check_low_leaf_next_index,
180 ColumnAndShifts::retrieved_bytecodes_tree_check_new_leaf_hash
182 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
183 ColumnAndShifts::poseidon2_hash_start,
184 ColumnAndShifts::poseidon2_hash_input_0,
185 ColumnAndShifts::poseidon2_hash_input_1,
186 ColumnAndShifts::poseidon2_hash_input_2,
187 ColumnAndShifts::poseidon2_hash_output
193template <
typename FF_>
200 static constexpr std::string_view
NAME =
"LOOKUP_RETRIEVED_BYTECODES_TREE_CHECK_NEW_LEAF_MERKLE_CHECK";
201 static constexpr std::string_view
RELATION_NAME =
"retrieved_bytecodes_tree_check";
205 static constexpr Column COUNTS = Column::lookup_retrieved_bytecodes_tree_check_new_leaf_merkle_check_counts;
206 static constexpr Column INVERSES = Column::lookup_retrieved_bytecodes_tree_check_new_leaf_merkle_check_inv;
207 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
208 ColumnAndShifts::retrieved_bytecodes_tree_check_sel,
209 ColumnAndShifts::precomputed_zero,
210 ColumnAndShifts::retrieved_bytecodes_tree_check_new_leaf_hash,
211 ColumnAndShifts::retrieved_bytecodes_tree_check_tree_size_before_write,
212 ColumnAndShifts::retrieved_bytecodes_tree_check_tree_height,
213 ColumnAndShifts::retrieved_bytecodes_tree_check_intermediate_root,
214 ColumnAndShifts::retrieved_bytecodes_tree_check_write_root
216 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
217 ColumnAndShifts::merkle_check_write, ColumnAndShifts::merkle_check_read_node,
218 ColumnAndShifts::merkle_check_write_node, ColumnAndShifts::merkle_check_index,
219 ColumnAndShifts::merkle_check_path_len, ColumnAndShifts::merkle_check_read_root,
220 ColumnAndShifts::merkle_check_write_root
226template <
typename FF_>
This file contains the template for the generic lookup that can be specialized to enforce various loo...
static constexpr Column DST_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
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 Column COUNTS
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column INVERSES
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 size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS