8#include "../columns.hpp"
17 static constexpr std::string_view
NAME =
"LOOKUP_INDEXED_TREE_CHECK_SILO_POSEIDON2";
22 static constexpr Column COUNTS = Column::lookup_indexed_tree_check_silo_poseidon2_counts;
23 static constexpr Column INVERSES = Column::lookup_indexed_tree_check_silo_poseidon2_inv;
24 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
25 ColumnAndShifts::indexed_tree_check_siloing_separator,
26 ColumnAndShifts::indexed_tree_check_address,
27 ColumnAndShifts::indexed_tree_check_value,
28 ColumnAndShifts::indexed_tree_check_siloed_value,
29 ColumnAndShifts::indexed_tree_check_const_three
31 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
32 ColumnAndShifts::poseidon2_hash_input_0,
33 ColumnAndShifts::poseidon2_hash_input_1,
34 ColumnAndShifts::poseidon2_hash_input_2,
35 ColumnAndShifts::poseidon2_hash_output,
36 ColumnAndShifts::poseidon2_hash_input_len
42template <
typename FF_>
49 static constexpr std::string_view
NAME =
"LOOKUP_INDEXED_TREE_CHECK_LOW_LEAF_VALUE_VALIDATION";
54 static constexpr Column COUNTS = Column::lookup_indexed_tree_check_low_leaf_value_validation_counts;
55 static constexpr Column INVERSES = Column::lookup_indexed_tree_check_low_leaf_value_validation_inv;
56 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
57 ColumnAndShifts::indexed_tree_check_siloed_value,
58 ColumnAndShifts::indexed_tree_check_low_leaf_value,
59 ColumnAndShifts::indexed_tree_check_sel
61 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::ff_gt_a,
62 ColumnAndShifts::ff_gt_b,
63 ColumnAndShifts::ff_gt_result };
68template <
typename FF_>
75 static constexpr std::string_view
NAME =
"LOOKUP_INDEXED_TREE_CHECK_LOW_LEAF_NEXT_VALUE_VALIDATION";
80 static constexpr Column COUNTS = Column::lookup_indexed_tree_check_low_leaf_next_value_validation_counts;
81 static constexpr Column INVERSES = Column::lookup_indexed_tree_check_low_leaf_next_value_validation_inv;
82 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
83 ColumnAndShifts::indexed_tree_check_low_leaf_next_value,
84 ColumnAndShifts::indexed_tree_check_siloed_value,
85 ColumnAndShifts::indexed_tree_check_sel
87 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::ff_gt_a,
88 ColumnAndShifts::ff_gt_b,
89 ColumnAndShifts::ff_gt_result };
94template <
typename FF_>
101 static constexpr std::string_view
NAME =
"LOOKUP_INDEXED_TREE_CHECK_LOW_LEAF_POSEIDON2";
106 static constexpr Column COUNTS = Column::lookup_indexed_tree_check_low_leaf_poseidon2_counts;
107 static constexpr Column INVERSES = Column::lookup_indexed_tree_check_low_leaf_poseidon2_inv;
108 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
109 ColumnAndShifts::indexed_tree_check_low_leaf_value,
110 ColumnAndShifts::indexed_tree_check_low_leaf_next_value,
111 ColumnAndShifts::indexed_tree_check_low_leaf_next_index,
112 ColumnAndShifts::indexed_tree_check_low_leaf_hash,
113 ColumnAndShifts::indexed_tree_check_const_three
115 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
116 ColumnAndShifts::poseidon2_hash_input_0,
117 ColumnAndShifts::poseidon2_hash_input_1,
118 ColumnAndShifts::poseidon2_hash_input_2,
119 ColumnAndShifts::poseidon2_hash_output,
120 ColumnAndShifts::poseidon2_hash_input_len
126template <
typename FF_>
133 static constexpr std::string_view
NAME =
"LOOKUP_INDEXED_TREE_CHECK_UPDATED_LOW_LEAF_POSEIDON2";
138 static constexpr Column COUNTS = Column::lookup_indexed_tree_check_updated_low_leaf_poseidon2_counts;
139 static constexpr Column INVERSES = Column::lookup_indexed_tree_check_updated_low_leaf_poseidon2_inv;
140 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
141 ColumnAndShifts::indexed_tree_check_low_leaf_value,
142 ColumnAndShifts::indexed_tree_check_updated_low_leaf_next_value,
143 ColumnAndShifts::indexed_tree_check_updated_low_leaf_next_index,
144 ColumnAndShifts::indexed_tree_check_updated_low_leaf_hash,
145 ColumnAndShifts::indexed_tree_check_const_three
147 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
148 ColumnAndShifts::poseidon2_hash_input_0,
149 ColumnAndShifts::poseidon2_hash_input_1,
150 ColumnAndShifts::poseidon2_hash_input_2,
151 ColumnAndShifts::poseidon2_hash_output,
152 ColumnAndShifts::poseidon2_hash_input_len
158template <
typename FF_>
165 static constexpr std::string_view
NAME =
"LOOKUP_INDEXED_TREE_CHECK_LOW_LEAF_MERKLE_CHECK";
170 static constexpr Column COUNTS = Column::lookup_indexed_tree_check_low_leaf_merkle_check_counts;
171 static constexpr Column INVERSES = Column::lookup_indexed_tree_check_low_leaf_merkle_check_inv;
172 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
173 ColumnAndShifts::indexed_tree_check_sel_insert,
174 ColumnAndShifts::indexed_tree_check_low_leaf_hash,
175 ColumnAndShifts::indexed_tree_check_updated_low_leaf_hash,
176 ColumnAndShifts::indexed_tree_check_low_leaf_index,
177 ColumnAndShifts::indexed_tree_check_tree_height,
178 ColumnAndShifts::indexed_tree_check_root,
179 ColumnAndShifts::indexed_tree_check_intermediate_root
181 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
182 ColumnAndShifts::merkle_check_write, ColumnAndShifts::merkle_check_read_node,
183 ColumnAndShifts::merkle_check_write_node, ColumnAndShifts::merkle_check_index,
184 ColumnAndShifts::merkle_check_path_len, ColumnAndShifts::merkle_check_read_root,
185 ColumnAndShifts::merkle_check_write_root
191template <
typename FF_>
198 static constexpr std::string_view
NAME =
"LOOKUP_INDEXED_TREE_CHECK_NEW_LEAF_POSEIDON2";
203 static constexpr Column COUNTS = Column::lookup_indexed_tree_check_new_leaf_poseidon2_counts;
204 static constexpr Column INVERSES = Column::lookup_indexed_tree_check_new_leaf_poseidon2_inv;
205 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
206 ColumnAndShifts::indexed_tree_check_siloed_value,
207 ColumnAndShifts::indexed_tree_check_low_leaf_next_value,
208 ColumnAndShifts::indexed_tree_check_low_leaf_next_index,
209 ColumnAndShifts::indexed_tree_check_new_leaf_hash,
210 ColumnAndShifts::indexed_tree_check_const_three
212 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
213 ColumnAndShifts::poseidon2_hash_input_0,
214 ColumnAndShifts::poseidon2_hash_input_1,
215 ColumnAndShifts::poseidon2_hash_input_2,
216 ColumnAndShifts::poseidon2_hash_output,
217 ColumnAndShifts::poseidon2_hash_input_len
223template <
typename FF_>
230 static constexpr std::string_view
NAME =
"LOOKUP_INDEXED_TREE_CHECK_NEW_LEAF_MERKLE_CHECK";
235 static constexpr Column COUNTS = Column::lookup_indexed_tree_check_new_leaf_merkle_check_counts;
236 static constexpr Column INVERSES = Column::lookup_indexed_tree_check_new_leaf_merkle_check_inv;
237 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
238 ColumnAndShifts::indexed_tree_check_sel, ColumnAndShifts::precomputed_zero,
239 ColumnAndShifts::indexed_tree_check_new_leaf_hash, ColumnAndShifts::indexed_tree_check_tree_size_before_write,
240 ColumnAndShifts::indexed_tree_check_tree_height, ColumnAndShifts::indexed_tree_check_intermediate_root,
241 ColumnAndShifts::indexed_tree_check_write_root
243 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
244 ColumnAndShifts::merkle_check_write, ColumnAndShifts::merkle_check_read_node,
245 ColumnAndShifts::merkle_check_write_node, ColumnAndShifts::merkle_check_index,
246 ColumnAndShifts::merkle_check_path_len, ColumnAndShifts::merkle_check_read_root,
247 ColumnAndShifts::merkle_check_write_root
253template <
typename FF_>
260 static constexpr std::string_view
NAME =
"LOOKUP_INDEXED_TREE_CHECK_WRITE_VALUE_TO_PUBLIC_INPUTS";
265 static constexpr Column COUNTS = Column::lookup_indexed_tree_check_write_value_to_public_inputs_counts;
266 static constexpr Column INVERSES = Column::lookup_indexed_tree_check_write_value_to_public_inputs_inv;
267 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
268 ColumnAndShifts::indexed_tree_check_public_inputs_index, ColumnAndShifts::indexed_tree_check_siloed_value
270 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
271 ColumnAndShifts::precomputed_idx, ColumnAndShifts::public_inputs_cols_0_
277template <
typename FF_>
static constexpr std::string_view RELATION_NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
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 std::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
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
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
Settings to be passed ot GenericLookupRelationImpl.