8#include "../columns.hpp"
17 static constexpr std::string_view
NAME =
"LOOKUP_NULLIFIER_CHECK_SILO_POSEIDON2";
22 static constexpr Column COUNTS = Column::lookup_nullifier_check_silo_poseidon2_counts;
23 static constexpr Column INVERSES = Column::lookup_nullifier_check_silo_poseidon2_inv;
24 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
25 ColumnAndShifts::nullifier_check_siloing_separator,
26 ColumnAndShifts::nullifier_check_address,
27 ColumnAndShifts::nullifier_check_nullifier,
28 ColumnAndShifts::nullifier_check_siloed_nullifier,
29 ColumnAndShifts::nullifier_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
41template <
typename FF_>
48 static constexpr std::string_view
NAME =
"LOOKUP_NULLIFIER_CHECK_LOW_LEAF_NULLIFIER_VALIDATION";
53 static constexpr Column COUNTS = Column::lookup_nullifier_check_low_leaf_nullifier_validation_counts;
54 static constexpr Column INVERSES = Column::lookup_nullifier_check_low_leaf_nullifier_validation_inv;
55 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
56 ColumnAndShifts::nullifier_check_siloed_nullifier,
57 ColumnAndShifts::nullifier_check_low_leaf_nullifier,
58 ColumnAndShifts::nullifier_check_sel
60 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::ff_gt_a,
61 ColumnAndShifts::ff_gt_b,
62 ColumnAndShifts::ff_gt_result };
67template <
typename FF_>
74 static constexpr std::string_view
NAME =
"LOOKUP_NULLIFIER_CHECK_LOW_LEAF_NEXT_NULLIFIER_VALIDATION";
79 static constexpr Column COUNTS = Column::lookup_nullifier_check_low_leaf_next_nullifier_validation_counts;
80 static constexpr Column INVERSES = Column::lookup_nullifier_check_low_leaf_next_nullifier_validation_inv;
81 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
82 ColumnAndShifts::nullifier_check_low_leaf_next_nullifier,
83 ColumnAndShifts::nullifier_check_siloed_nullifier,
84 ColumnAndShifts::nullifier_check_sel
86 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::ff_gt_a,
87 ColumnAndShifts::ff_gt_b,
88 ColumnAndShifts::ff_gt_result };
93template <
typename FF_>
100 static constexpr std::string_view
NAME =
"LOOKUP_NULLIFIER_CHECK_LOW_LEAF_POSEIDON2";
105 static constexpr Column COUNTS = Column::lookup_nullifier_check_low_leaf_poseidon2_counts;
106 static constexpr Column INVERSES = Column::lookup_nullifier_check_low_leaf_poseidon2_inv;
107 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
108 ColumnAndShifts::nullifier_check_low_leaf_nullifier,
109 ColumnAndShifts::nullifier_check_low_leaf_next_nullifier,
110 ColumnAndShifts::nullifier_check_low_leaf_next_index,
111 ColumnAndShifts::nullifier_check_low_leaf_hash,
112 ColumnAndShifts::nullifier_check_const_three
114 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
115 ColumnAndShifts::poseidon2_hash_input_0,
116 ColumnAndShifts::poseidon2_hash_input_1,
117 ColumnAndShifts::poseidon2_hash_input_2,
118 ColumnAndShifts::poseidon2_hash_output,
119 ColumnAndShifts::poseidon2_hash_input_len
125template <
typename FF_>
132 static constexpr std::string_view
NAME =
"LOOKUP_NULLIFIER_CHECK_UPDATED_LOW_LEAF_POSEIDON2";
137 static constexpr Column COUNTS = Column::lookup_nullifier_check_updated_low_leaf_poseidon2_counts;
138 static constexpr Column INVERSES = Column::lookup_nullifier_check_updated_low_leaf_poseidon2_inv;
139 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
140 ColumnAndShifts::nullifier_check_low_leaf_nullifier,
141 ColumnAndShifts::nullifier_check_updated_low_leaf_next_nullifier,
142 ColumnAndShifts::nullifier_check_updated_low_leaf_next_index,
143 ColumnAndShifts::nullifier_check_updated_low_leaf_hash,
144 ColumnAndShifts::nullifier_check_const_three
146 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
147 ColumnAndShifts::poseidon2_hash_input_0,
148 ColumnAndShifts::poseidon2_hash_input_1,
149 ColumnAndShifts::poseidon2_hash_input_2,
150 ColumnAndShifts::poseidon2_hash_output,
151 ColumnAndShifts::poseidon2_hash_input_len
157template <
typename FF_>
164 static constexpr std::string_view
NAME =
"LOOKUP_NULLIFIER_CHECK_LOW_LEAF_MERKLE_CHECK";
169 static constexpr Column COUNTS = Column::lookup_nullifier_check_low_leaf_merkle_check_counts;
170 static constexpr Column INVERSES = Column::lookup_nullifier_check_low_leaf_merkle_check_inv;
171 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
172 ColumnAndShifts::nullifier_check_sel_insert,
173 ColumnAndShifts::nullifier_check_low_leaf_hash,
174 ColumnAndShifts::nullifier_check_updated_low_leaf_hash,
175 ColumnAndShifts::nullifier_check_low_leaf_index,
176 ColumnAndShifts::nullifier_check_tree_height,
177 ColumnAndShifts::nullifier_check_root,
178 ColumnAndShifts::nullifier_check_intermediate_root
180 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
181 ColumnAndShifts::merkle_check_write, ColumnAndShifts::merkle_check_read_node,
182 ColumnAndShifts::merkle_check_write_node, ColumnAndShifts::merkle_check_index,
183 ColumnAndShifts::merkle_check_path_len, ColumnAndShifts::merkle_check_read_root,
184 ColumnAndShifts::merkle_check_write_root
190template <
typename FF_>
197 static constexpr std::string_view
NAME =
"LOOKUP_NULLIFIER_CHECK_NEW_LEAF_POSEIDON2";
202 static constexpr Column COUNTS = Column::lookup_nullifier_check_new_leaf_poseidon2_counts;
203 static constexpr Column INVERSES = Column::lookup_nullifier_check_new_leaf_poseidon2_inv;
204 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
205 ColumnAndShifts::nullifier_check_siloed_nullifier,
206 ColumnAndShifts::nullifier_check_low_leaf_next_nullifier,
207 ColumnAndShifts::nullifier_check_low_leaf_next_index,
208 ColumnAndShifts::nullifier_check_new_leaf_hash,
209 ColumnAndShifts::nullifier_check_const_three
211 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
212 ColumnAndShifts::poseidon2_hash_input_0,
213 ColumnAndShifts::poseidon2_hash_input_1,
214 ColumnAndShifts::poseidon2_hash_input_2,
215 ColumnAndShifts::poseidon2_hash_output,
216 ColumnAndShifts::poseidon2_hash_input_len
222template <
typename FF_>
229 static constexpr std::string_view
NAME =
"LOOKUP_NULLIFIER_CHECK_NEW_LEAF_MERKLE_CHECK";
234 static constexpr Column COUNTS = Column::lookup_nullifier_check_new_leaf_merkle_check_counts;
235 static constexpr Column INVERSES = Column::lookup_nullifier_check_new_leaf_merkle_check_inv;
236 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
237 ColumnAndShifts::nullifier_check_sel, ColumnAndShifts::precomputed_zero,
238 ColumnAndShifts::nullifier_check_new_leaf_hash, ColumnAndShifts::nullifier_check_tree_size_before_write,
239 ColumnAndShifts::nullifier_check_tree_height, ColumnAndShifts::nullifier_check_intermediate_root,
240 ColumnAndShifts::nullifier_check_write_root
242 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
243 ColumnAndShifts::merkle_check_write, ColumnAndShifts::merkle_check_read_node,
244 ColumnAndShifts::merkle_check_write_node, ColumnAndShifts::merkle_check_index,
245 ColumnAndShifts::merkle_check_path_len, ColumnAndShifts::merkle_check_read_root,
246 ColumnAndShifts::merkle_check_write_root
252template <
typename FF_>
259 static constexpr std::string_view
NAME =
"LOOKUP_NULLIFIER_CHECK_WRITE_NULLIFIER_TO_PUBLIC_INPUTS";
264 static constexpr Column COUNTS = Column::lookup_nullifier_check_write_nullifier_to_public_inputs_counts;
265 static constexpr Column INVERSES = Column::lookup_nullifier_check_write_nullifier_to_public_inputs_inv;
266 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
267 ColumnAndShifts::nullifier_check_public_inputs_index, ColumnAndShifts::nullifier_check_siloed_nullifier
269 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
270 ColumnAndShifts::precomputed_idx, ColumnAndShifts::public_inputs_cols_0_
276template <
typename FF_>
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
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::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr Column DST_SELECTOR
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 size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
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 INVERSES
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr Column DST_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 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 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 Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr std::string_view 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
Settings to be passed ot GenericLookupRelationImpl.