2#include "barretenberg/commitment_schemes/commitment_key.hpp"
3#include "barretenberg/commitment_schemes/kzg/kzg.hpp"
4#include "barretenberg/common/ref_vector.hpp"
5#include "barretenberg/ecc/curves/bn254/bn254.hpp"
7#include "barretenberg/flavor/flavor_macros.hpp"
8#include "barretenberg/polynomials/univariate.hpp"
9#include "barretenberg/proof_system/arithmetization/arithmetization.hpp"
10#include "barretenberg/proof_system/circuit_builder/goblin_translator_circuit_builder.hpp"
11#include "barretenberg/relations/relation_parameters.hpp"
12#include "barretenberg/relations/translator_vm/translator_decomposition_relation.hpp"
13#include "barretenberg/relations/translator_vm/translator_extra_relations.hpp"
14#include "barretenberg/relations/translator_vm/translator_gen_perm_sort_relation.hpp"
15#include "barretenberg/relations/translator_vm/translator_non_native_field_relation.hpp"
16#include "barretenberg/relations/translator_vm/translator_permutation_relation.hpp"
17#include "relation_definitions_fwd.hpp"
19namespace proof_system::honk::flavor {
24 static constexpr size_t mini_circuit_size = 2048;
28 using GroupElement = Curve::Element;
29 using Commitment = Curve::AffineElement;
30 using CommitmentHandle = Curve::AffineElement;
36 using PolynomialHandle = std::span<FF>;
41 static constexpr size_t MINI_CIRCUIT_SIZE = mini_circuit_size;
46 static constexpr size_t CONCATENATION_INDEX = 16;
49 static constexpr size_t NUM_CONCATENATED_WIRES = 4;
52 static constexpr size_t FULL_CIRCUIT_SIZE = MINI_CIRCUIT_SIZE * CONCATENATION_INDEX;
55 static constexpr size_t NUM_WIRES = CircuitBuilder::NUM_WIRES;
58 static constexpr size_t SORT_STEP = 3;
61 static constexpr size_t MICRO_LIMB_BITS = CircuitBuilder::MICRO_LIMB_BITS;
64 static constexpr auto NEGATIVE_MODULUS_LIMBS = CircuitBuilder::NEGATIVE_MODULUS_LIMBS;
68 static constexpr size_t NUM_LIMB_BITS = CircuitBuilder::NUM_LIMB_BITS;
73 static constexpr size_t NUM_ALL_ENTITIES = 184;
76 static constexpr size_t NUM_PRECOMPUTED_ENTITIES = 7;
78 static constexpr size_t NUM_WITNESS_ENTITIES = 91;
80 using GrandProductRelations = std::tuple<GoblinTranslatorPermutationRelation<FF>>;
82 using Relations = std::tuple<GoblinTranslatorPermutationRelation<FF>,
89 static constexpr size_t MAX_PARTIAL_RELATION_LENGTH = compute_max_partial_relation_length<Relations>();
90 static constexpr size_t MAX_TOTAL_RELATION_LENGTH = compute_max_total_relation_length<Relations>();
95 static constexpr size_t BATCHED_RELATION_PARTIAL_LENGTH = MAX_PARTIAL_RELATION_LENGTH + 1;
96 static constexpr size_t BATCHED_RELATION_TOTAL_LENGTH = MAX_TOTAL_RELATION_LENGTH + 1;
97 static constexpr size_t NUM_RELATIONS = std::tuple_size_v<Relations>;
100 using SumcheckTupleOfTuplesOfUnivariates =
101 std::tuple<typename GoblinTranslatorPermutationRelation<FF>::SumcheckTupleOfUnivariatesOverSubrelations,
102 typename GoblinTranslatorGenPermSortRelation<FF>::SumcheckTupleOfUnivariatesOverSubrelations,
103 typename GoblinTranslatorOpcodeConstraintRelation<FF>::SumcheckTupleOfUnivariatesOverSubrelations,
104 typename GoblinTranslatorAccumulatorTransferRelation<FF>::SumcheckTupleOfUnivariatesOverSubrelations,
105 typename GoblinTranslatorDecompositionRelation<FF>::SumcheckTupleOfUnivariatesOverSubrelations,
106 typename GoblinTranslatorNonNativeFieldRelation<FF>::SumcheckTupleOfUnivariatesOverSubrelations>;
107 using TupleOfArraysOfValues =
decltype(create_tuple_of_arrays_of_values<Relations>());
116 using DataType = DataType_;
117 DEFINE_FLAVOR_MEMBERS(DataType,
121 lagrange_odd_in_minicircuit,
122 lagrange_even_in_minicircuit,
124 lagrange_second_to_last_in_minicircuit,
125 ordered_extra_range_constraints_numerator);
131 template <
typename DataType>
class ConcatenatedRangeConstraints {
133 DEFINE_FLAVOR_MEMBERS(DataType,
134 concatenated_range_constraints_0,
135 concatenated_range_constraints_1,
136 concatenated_range_constraints_2,
137 concatenated_range_constraints_3)
140 template <
typename DataType>
class WireToBeShiftedEntities {
142 DEFINE_FLAVOR_MEMBERS(DataType,
147 p_x_low_limbs_range_constraint_0,
148 p_x_low_limbs_range_constraint_1,
149 p_x_low_limbs_range_constraint_2,
150 p_x_low_limbs_range_constraint_3,
151 p_x_low_limbs_range_constraint_4,
152 p_x_low_limbs_range_constraint_tail,
154 p_x_high_limbs_range_constraint_0,
155 p_x_high_limbs_range_constraint_1,
156 p_x_high_limbs_range_constraint_2,
157 p_x_high_limbs_range_constraint_3,
158 p_x_high_limbs_range_constraint_4,
159 p_x_high_limbs_range_constraint_tail,
161 p_y_low_limbs_range_constraint_0,
162 p_y_low_limbs_range_constraint_1,
163 p_y_low_limbs_range_constraint_2,
164 p_y_low_limbs_range_constraint_3,
165 p_y_low_limbs_range_constraint_4,
166 p_y_low_limbs_range_constraint_tail,
168 p_y_high_limbs_range_constraint_0,
169 p_y_high_limbs_range_constraint_1,
170 p_y_high_limbs_range_constraint_2,
171 p_y_high_limbs_range_constraint_3,
172 p_y_high_limbs_range_constraint_4,
173 p_y_high_limbs_range_constraint_tail,
175 z_low_limbs_range_constraint_0,
176 z_low_limbs_range_constraint_1,
177 z_low_limbs_range_constraint_2,
178 z_low_limbs_range_constraint_3,
179 z_low_limbs_range_constraint_4,
180 z_low_limbs_range_constraint_tail,
182 z_high_limbs_range_constraint_0,
183 z_high_limbs_range_constraint_1,
184 z_high_limbs_range_constraint_2,
185 z_high_limbs_range_constraint_3,
186 z_high_limbs_range_constraint_4,
187 z_high_limbs_range_constraint_tail,
188 accumulators_binary_limbs_0,
189 accumulators_binary_limbs_1,
190 accumulators_binary_limbs_2,
191 accumulators_binary_limbs_3,
192 accumulator_low_limbs_range_constraint_0,
193 accumulator_low_limbs_range_constraint_1,
194 accumulator_low_limbs_range_constraint_2,
195 accumulator_low_limbs_range_constraint_3,
196 accumulator_low_limbs_range_constraint_4,
197 accumulator_low_limbs_range_constraint_tail,
198 accumulator_high_limbs_range_constraint_0,
199 accumulator_high_limbs_range_constraint_1,
200 accumulator_high_limbs_range_constraint_2,
201 accumulator_high_limbs_range_constraint_3,
202 accumulator_high_limbs_range_constraint_4,
203 accumulator_high_limbs_range_constraint_tail,
204 quotient_low_binary_limbs,
205 quotient_high_binary_limbs,
206 quotient_low_limbs_range_constraint_0,
207 quotient_low_limbs_range_constraint_1,
208 quotient_low_limbs_range_constraint_2,
209 quotient_low_limbs_range_constraint_3,
210 quotient_low_limbs_range_constraint_4,
211 quotient_low_limbs_range_constraint_tail,
212 quotient_high_limbs_range_constraint_0,
213 quotient_high_limbs_range_constraint_1,
214 quotient_high_limbs_range_constraint_2,
215 quotient_high_limbs_range_constraint_3,
216 quotient_high_limbs_range_constraint_4,
217 quotient_high_limbs_range_constraint_tail,
219 relation_wide_limbs_range_constraint_0,
220 relation_wide_limbs_range_constraint_1,
221 relation_wide_limbs_range_constraint_2,
222 relation_wide_limbs_range_constraint_3,
223 ordered_range_constraints_0,
224 ordered_range_constraints_1,
225 ordered_range_constraints_2,
226 ordered_range_constraints_3,
227 ordered_range_constraints_4);
229 template <
typename DataType>
class WireNonshiftedEntities {
231 DEFINE_FLAVOR_MEMBERS(DataType,
235 template <
typename DataType>
class DerivedWitnessEntities {
237 DEFINE_FLAVOR_MEMBERS(DataType,
243 template <
typename DataType>
244 class WitnessEntities :
public WireNonshiftedEntities<DataType>,
245 public WireToBeShiftedEntities<DataType>,
246 public DerivedWitnessEntities<DataType>,
247 public ConcatenatedRangeConstraints<DataType> {
249 DEFINE_COMPOUND_GET_ALL(WireNonshiftedEntities<DataType>,
250 WireToBeShiftedEntities<DataType>,
251 DerivedWitnessEntities<DataType>,
252 ConcatenatedRangeConstraints<DataType>)
261 this->p_x_low_limbs_range_constraint_0,
262 this->p_x_low_limbs_range_constraint_1,
263 this->p_x_low_limbs_range_constraint_2,
264 this->p_x_low_limbs_range_constraint_3,
265 this->p_x_low_limbs_range_constraint_4,
266 this->p_x_low_limbs_range_constraint_tail,
267 this->p_x_high_limbs,
268 this->p_x_high_limbs_range_constraint_0,
269 this->p_x_high_limbs_range_constraint_1,
270 this->p_x_high_limbs_range_constraint_2,
271 this->p_x_high_limbs_range_constraint_3,
272 this->p_x_high_limbs_range_constraint_4,
273 this->p_x_high_limbs_range_constraint_tail,
275 this->p_y_low_limbs_range_constraint_0,
276 this->p_y_low_limbs_range_constraint_1,
277 this->p_y_low_limbs_range_constraint_2,
278 this->p_y_low_limbs_range_constraint_3,
279 this->p_y_low_limbs_range_constraint_4,
280 this->p_y_low_limbs_range_constraint_tail,
281 this->p_y_high_limbs,
282 this->p_y_high_limbs_range_constraint_0,
283 this->p_y_high_limbs_range_constraint_1,
284 this->p_y_high_limbs_range_constraint_2,
285 this->p_y_high_limbs_range_constraint_3,
286 this->p_y_high_limbs_range_constraint_4,
287 this->p_y_high_limbs_range_constraint_tail,
289 this->z_low_limbs_range_constraint_0,
290 this->z_low_limbs_range_constraint_1,
291 this->z_low_limbs_range_constraint_2,
292 this->z_low_limbs_range_constraint_3,
293 this->z_low_limbs_range_constraint_4,
294 this->z_low_limbs_range_constraint_tail,
296 this->z_high_limbs_range_constraint_0,
297 this->z_high_limbs_range_constraint_1,
298 this->z_high_limbs_range_constraint_2,
299 this->z_high_limbs_range_constraint_3,
300 this->z_high_limbs_range_constraint_4,
301 this->z_high_limbs_range_constraint_tail,
302 this->accumulators_binary_limbs_0,
303 this->accumulators_binary_limbs_1,
304 this->accumulators_binary_limbs_2,
305 this->accumulators_binary_limbs_3,
306 this->accumulator_low_limbs_range_constraint_0,
307 this->accumulator_low_limbs_range_constraint_1,
308 this->accumulator_low_limbs_range_constraint_2,
309 this->accumulator_low_limbs_range_constraint_3,
310 this->accumulator_low_limbs_range_constraint_4,
311 this->accumulator_low_limbs_range_constraint_tail,
312 this->accumulator_high_limbs_range_constraint_0,
313 this->accumulator_high_limbs_range_constraint_1,
314 this->accumulator_high_limbs_range_constraint_2,
315 this->accumulator_high_limbs_range_constraint_3,
316 this->accumulator_high_limbs_range_constraint_4,
317 this->accumulator_high_limbs_range_constraint_tail,
318 this->quotient_low_binary_limbs,
319 this->quotient_high_binary_limbs,
320 this->quotient_low_limbs_range_constraint_0,
321 this->quotient_low_limbs_range_constraint_1,
322 this->quotient_low_limbs_range_constraint_2,
323 this->quotient_low_limbs_range_constraint_3,
324 this->quotient_low_limbs_range_constraint_4,
325 this->quotient_low_limbs_range_constraint_tail,
326 this->quotient_high_limbs_range_constraint_0,
327 this->quotient_high_limbs_range_constraint_1,
328 this->quotient_high_limbs_range_constraint_2,
329 this->quotient_high_limbs_range_constraint_3,
330 this->quotient_high_limbs_range_constraint_4,
331 this->quotient_high_limbs_range_constraint_tail,
332 this->relation_wide_limbs,
333 this->relation_wide_limbs_range_constraint_0,
334 this->relation_wide_limbs_range_constraint_1,
335 this->relation_wide_limbs_range_constraint_2,
336 this->relation_wide_limbs_range_constraint_3,
337 this->ordered_range_constraints_0,
338 this->ordered_range_constraints_1,
339 this->ordered_range_constraints_2,
340 this->ordered_range_constraints_3,
341 this->ordered_range_constraints_4 };
348 return concatenate(WireNonshiftedEntities<DataType>::get_all(),
349 WireToBeShiftedEntities<DataType>::get_all(),
350 DerivedWitnessEntities<DataType>::get_all());
354 std::vector<std::string> get_unshifted_wire_labels()
356 return concatenate(WireNonshiftedEntities<DataType>::get_labels(),
357 WireToBeShiftedEntities<DataType>::get_labels(),
358 DerivedWitnessEntities<DataType>::get_labels());
362 return concatenate(WireToBeShiftedEntities<DataType>::get_all(),
363 DerivedWitnessEntities<DataType>::get_all());
371 auto get_concatenated_constraints() {
return ConcatenatedRangeConstraints<DataType>::get_all(); }
378 std::vector<RefVector<DataType>> get_concatenation_groups()
382 this->p_x_low_limbs_range_constraint_0,
383 this->p_x_low_limbs_range_constraint_1,
384 this->p_x_low_limbs_range_constraint_2,
385 this->p_x_low_limbs_range_constraint_3,
386 this->p_x_low_limbs_range_constraint_4,
387 this->p_x_low_limbs_range_constraint_tail,
388 this->p_x_high_limbs_range_constraint_0,
389 this->p_x_high_limbs_range_constraint_1,
390 this->p_x_high_limbs_range_constraint_2,
391 this->p_x_high_limbs_range_constraint_3,
392 this->p_x_high_limbs_range_constraint_4,
393 this->p_x_high_limbs_range_constraint_tail,
394 this->p_y_low_limbs_range_constraint_0,
395 this->p_y_low_limbs_range_constraint_1,
396 this->p_y_low_limbs_range_constraint_2,
397 this->p_y_low_limbs_range_constraint_3,
400 this->p_y_low_limbs_range_constraint_4,
401 this->p_y_low_limbs_range_constraint_tail,
402 this->p_y_high_limbs_range_constraint_0,
403 this->p_y_high_limbs_range_constraint_1,
404 this->p_y_high_limbs_range_constraint_2,
405 this->p_y_high_limbs_range_constraint_3,
406 this->p_y_high_limbs_range_constraint_4,
407 this->p_y_high_limbs_range_constraint_tail,
408 this->z_low_limbs_range_constraint_0,
409 this->z_low_limbs_range_constraint_1,
410 this->z_low_limbs_range_constraint_2,
411 this->z_low_limbs_range_constraint_3,
412 this->z_low_limbs_range_constraint_4,
413 this->z_low_limbs_range_constraint_tail,
414 this->z_high_limbs_range_constraint_0,
415 this->z_high_limbs_range_constraint_1,
418 this->z_high_limbs_range_constraint_2,
419 this->z_high_limbs_range_constraint_3,
420 this->z_high_limbs_range_constraint_4,
421 this->z_high_limbs_range_constraint_tail,
422 this->accumulator_low_limbs_range_constraint_0,
423 this->accumulator_low_limbs_range_constraint_1,
424 this->accumulator_low_limbs_range_constraint_2,
425 this->accumulator_low_limbs_range_constraint_3,
426 this->accumulator_low_limbs_range_constraint_4,
427 this->accumulator_low_limbs_range_constraint_tail,
428 this->accumulator_high_limbs_range_constraint_0,
429 this->accumulator_high_limbs_range_constraint_1,
430 this->accumulator_high_limbs_range_constraint_2,
431 this->accumulator_high_limbs_range_constraint_3,
432 this->accumulator_high_limbs_range_constraint_4,
433 this->accumulator_high_limbs_range_constraint_tail,
436 this->quotient_low_limbs_range_constraint_0,
437 this->quotient_low_limbs_range_constraint_1,
438 this->quotient_low_limbs_range_constraint_2,
439 this->quotient_low_limbs_range_constraint_3,
440 this->quotient_low_limbs_range_constraint_4,
441 this->quotient_low_limbs_range_constraint_tail,
442 this->quotient_high_limbs_range_constraint_0,
443 this->quotient_high_limbs_range_constraint_1,
444 this->quotient_high_limbs_range_constraint_2,
445 this->quotient_high_limbs_range_constraint_3,
446 this->quotient_high_limbs_range_constraint_4,
447 this->quotient_high_limbs_range_constraint_tail,
448 this->relation_wide_limbs_range_constraint_0,
449 this->relation_wide_limbs_range_constraint_1,
450 this->relation_wide_limbs_range_constraint_2,
451 this->relation_wide_limbs_range_constraint_3,
460 template <
typename DataType>
class ShiftedEntities {
462 DEFINE_FLAVOR_MEMBERS(DataType,
467 p_x_low_limbs_range_constraint_0_shift,
468 p_x_low_limbs_range_constraint_1_shift,
469 p_x_low_limbs_range_constraint_2_shift,
470 p_x_low_limbs_range_constraint_3_shift,
471 p_x_low_limbs_range_constraint_4_shift,
472 p_x_low_limbs_range_constraint_tail_shift,
473 p_x_high_limbs_shift,
474 p_x_high_limbs_range_constraint_0_shift,
475 p_x_high_limbs_range_constraint_1_shift,
476 p_x_high_limbs_range_constraint_2_shift,
477 p_x_high_limbs_range_constraint_3_shift,
478 p_x_high_limbs_range_constraint_4_shift,
479 p_x_high_limbs_range_constraint_tail_shift,
481 p_y_low_limbs_range_constraint_0_shift,
482 p_y_low_limbs_range_constraint_1_shift,
483 p_y_low_limbs_range_constraint_2_shift,
484 p_y_low_limbs_range_constraint_3_shift,
485 p_y_low_limbs_range_constraint_4_shift,
486 p_y_low_limbs_range_constraint_tail_shift,
487 p_y_high_limbs_shift,
488 p_y_high_limbs_range_constraint_0_shift,
489 p_y_high_limbs_range_constraint_1_shift,
490 p_y_high_limbs_range_constraint_2_shift,
491 p_y_high_limbs_range_constraint_3_shift,
492 p_y_high_limbs_range_constraint_4_shift,
493 p_y_high_limbs_range_constraint_tail_shift,
495 z_low_limbs_range_constraint_0_shift,
496 z_low_limbs_range_constraint_1_shift,
497 z_low_limbs_range_constraint_2_shift,
498 z_low_limbs_range_constraint_3_shift,
499 z_low_limbs_range_constraint_4_shift,
500 z_low_limbs_range_constraint_tail_shift,
502 z_high_limbs_range_constraint_0_shift,
503 z_high_limbs_range_constraint_1_shift,
504 z_high_limbs_range_constraint_2_shift,
505 z_high_limbs_range_constraint_3_shift,
506 z_high_limbs_range_constraint_4_shift,
507 z_high_limbs_range_constraint_tail_shift,
508 accumulators_binary_limbs_0_shift,
509 accumulators_binary_limbs_1_shift,
510 accumulators_binary_limbs_2_shift,
511 accumulators_binary_limbs_3_shift,
512 accumulator_low_limbs_range_constraint_0_shift,
513 accumulator_low_limbs_range_constraint_1_shift,
514 accumulator_low_limbs_range_constraint_2_shift,
515 accumulator_low_limbs_range_constraint_3_shift,
516 accumulator_low_limbs_range_constraint_4_shift,
517 accumulator_low_limbs_range_constraint_tail_shift,
518 accumulator_high_limbs_range_constraint_0_shift,
519 accumulator_high_limbs_range_constraint_1_shift,
520 accumulator_high_limbs_range_constraint_2_shift,
521 accumulator_high_limbs_range_constraint_3_shift,
522 accumulator_high_limbs_range_constraint_4_shift,
523 accumulator_high_limbs_range_constraint_tail_shift,
524 quotient_low_binary_limbs_shift,
525 quotient_high_binary_limbs_shift,
526 quotient_low_limbs_range_constraint_0_shift,
527 quotient_low_limbs_range_constraint_1_shift,
528 quotient_low_limbs_range_constraint_2_shift,
529 quotient_low_limbs_range_constraint_3_shift,
530 quotient_low_limbs_range_constraint_4_shift,
531 quotient_low_limbs_range_constraint_tail_shift,
532 quotient_high_limbs_range_constraint_0_shift,
533 quotient_high_limbs_range_constraint_1_shift,
534 quotient_high_limbs_range_constraint_2_shift,
535 quotient_high_limbs_range_constraint_3_shift,
536 quotient_high_limbs_range_constraint_4_shift,
537 quotient_high_limbs_range_constraint_tail_shift,
538 relation_wide_limbs_shift,
539 relation_wide_limbs_range_constraint_0_shift,
540 relation_wide_limbs_range_constraint_1_shift,
541 relation_wide_limbs_range_constraint_2_shift,
542 relation_wide_limbs_range_constraint_3_shift,
543 ordered_range_constraints_0_shift,
544 ordered_range_constraints_1_shift,
545 ordered_range_constraints_2_shift,
546 ordered_range_constraints_3_shift,
547 ordered_range_constraints_4_shift,
558 template <
typename DataType>
559 class AllEntities :
public PrecomputedEntities<DataType>,
560 public WitnessEntities<DataType>,
561 public ShiftedEntities<DataType> {
565 : PrecomputedEntities<DataType>{}
566 , WitnessEntities<DataType>{}
567 , ShiftedEntities<DataType>{}
576 this->p_x_low_limbs_range_constraint_0,
577 this->p_x_low_limbs_range_constraint_1,
578 this->p_x_low_limbs_range_constraint_2,
579 this->p_x_low_limbs_range_constraint_3,
580 this->p_x_low_limbs_range_constraint_4,
581 this->p_x_low_limbs_range_constraint_tail,
582 this->p_x_high_limbs,
583 this->p_x_high_limbs_range_constraint_0,
584 this->p_x_high_limbs_range_constraint_1,
585 this->p_x_high_limbs_range_constraint_2,
586 this->p_x_high_limbs_range_constraint_3,
587 this->p_x_high_limbs_range_constraint_4,
588 this->p_x_high_limbs_range_constraint_tail,
590 this->p_y_low_limbs_range_constraint_0,
591 this->p_y_low_limbs_range_constraint_1,
592 this->p_y_low_limbs_range_constraint_2,
593 this->p_y_low_limbs_range_constraint_3,
594 this->p_y_low_limbs_range_constraint_4,
595 this->p_y_low_limbs_range_constraint_tail,
596 this->p_y_high_limbs,
597 this->p_y_high_limbs_range_constraint_0,
598 this->p_y_high_limbs_range_constraint_1,
599 this->p_y_high_limbs_range_constraint_2,
600 this->p_y_high_limbs_range_constraint_3,
601 this->p_y_high_limbs_range_constraint_4,
602 this->p_y_high_limbs_range_constraint_tail,
604 this->z_low_limbs_range_constraint_0,
605 this->z_low_limbs_range_constraint_1,
606 this->z_low_limbs_range_constraint_2,
607 this->z_low_limbs_range_constraint_3,
608 this->z_low_limbs_range_constraint_4,
609 this->z_low_limbs_range_constraint_tail,
611 this->z_high_limbs_range_constraint_0,
612 this->z_high_limbs_range_constraint_1,
613 this->z_high_limbs_range_constraint_2,
614 this->z_high_limbs_range_constraint_3,
615 this->z_high_limbs_range_constraint_4,
616 this->z_high_limbs_range_constraint_tail,
617 this->accumulators_binary_limbs_0,
618 this->accumulators_binary_limbs_1,
619 this->accumulators_binary_limbs_2,
620 this->accumulators_binary_limbs_3,
621 this->accumulator_low_limbs_range_constraint_0,
622 this->accumulator_low_limbs_range_constraint_1,
623 this->accumulator_low_limbs_range_constraint_2,
624 this->accumulator_low_limbs_range_constraint_3,
625 this->accumulator_low_limbs_range_constraint_4,
626 this->accumulator_low_limbs_range_constraint_tail,
627 this->accumulator_high_limbs_range_constraint_0,
628 this->accumulator_high_limbs_range_constraint_1,
629 this->accumulator_high_limbs_range_constraint_2,
630 this->accumulator_high_limbs_range_constraint_3,
631 this->accumulator_high_limbs_range_constraint_4,
632 this->accumulator_high_limbs_range_constraint_tail,
633 this->quotient_low_binary_limbs,
634 this->quotient_high_binary_limbs,
635 this->quotient_low_limbs_range_constraint_0,
636 this->quotient_low_limbs_range_constraint_1,
637 this->quotient_low_limbs_range_constraint_2,
638 this->quotient_low_limbs_range_constraint_3,
639 this->quotient_low_limbs_range_constraint_4,
640 this->quotient_low_limbs_range_constraint_tail,
641 this->quotient_high_limbs_range_constraint_0,
642 this->quotient_high_limbs_range_constraint_1,
643 this->quotient_high_limbs_range_constraint_2,
644 this->quotient_high_limbs_range_constraint_3,
645 this->quotient_high_limbs_range_constraint_4,
646 this->quotient_high_limbs_range_constraint_tail,
647 this->relation_wide_limbs,
648 this->relation_wide_limbs_range_constraint_0,
649 this->relation_wide_limbs_range_constraint_1,
650 this->relation_wide_limbs_range_constraint_2,
651 this->relation_wide_limbs_range_constraint_3,
652 this->ordered_range_constraints_0,
653 this->ordered_range_constraints_1,
654 this->ordered_range_constraints_2,
655 this->ordered_range_constraints_3,
656 this->ordered_range_constraints_4 };
659 DEFINE_COMPOUND_GET_ALL(PrecomputedEntities<DataType>, WitnessEntities<DataType>, ShiftedEntities<DataType>)
665 std::vector<RefVector<DataType>> get_concatenation_groups()
669 this->p_x_low_limbs_range_constraint_0,
670 this->p_x_low_limbs_range_constraint_1,
671 this->p_x_low_limbs_range_constraint_2,
672 this->p_x_low_limbs_range_constraint_3,
673 this->p_x_low_limbs_range_constraint_4,
674 this->p_x_low_limbs_range_constraint_tail,
675 this->p_x_high_limbs_range_constraint_0,
676 this->p_x_high_limbs_range_constraint_1,
677 this->p_x_high_limbs_range_constraint_2,
678 this->p_x_high_limbs_range_constraint_3,
679 this->p_x_high_limbs_range_constraint_4,
680 this->p_x_high_limbs_range_constraint_tail,
681 this->p_y_low_limbs_range_constraint_0,
682 this->p_y_low_limbs_range_constraint_1,
683 this->p_y_low_limbs_range_constraint_2,
684 this->p_y_low_limbs_range_constraint_3,
687 this->p_y_low_limbs_range_constraint_4,
688 this->p_y_low_limbs_range_constraint_tail,
689 this->p_y_high_limbs_range_constraint_0,
690 this->p_y_high_limbs_range_constraint_1,
691 this->p_y_high_limbs_range_constraint_2,
692 this->p_y_high_limbs_range_constraint_3,
693 this->p_y_high_limbs_range_constraint_4,
694 this->p_y_high_limbs_range_constraint_tail,
695 this->z_low_limbs_range_constraint_0,
696 this->z_low_limbs_range_constraint_1,
697 this->z_low_limbs_range_constraint_2,
698 this->z_low_limbs_range_constraint_3,
699 this->z_low_limbs_range_constraint_4,
700 this->z_low_limbs_range_constraint_tail,
701 this->z_high_limbs_range_constraint_0,
702 this->z_high_limbs_range_constraint_1,
705 this->z_high_limbs_range_constraint_2,
706 this->z_high_limbs_range_constraint_3,
707 this->z_high_limbs_range_constraint_4,
708 this->z_high_limbs_range_constraint_tail,
709 this->accumulator_low_limbs_range_constraint_0,
710 this->accumulator_low_limbs_range_constraint_1,
711 this->accumulator_low_limbs_range_constraint_2,
712 this->accumulator_low_limbs_range_constraint_3,
713 this->accumulator_low_limbs_range_constraint_4,
714 this->accumulator_low_limbs_range_constraint_tail,
715 this->accumulator_high_limbs_range_constraint_0,
716 this->accumulator_high_limbs_range_constraint_1,
717 this->accumulator_high_limbs_range_constraint_2,
718 this->accumulator_high_limbs_range_constraint_3,
719 this->accumulator_high_limbs_range_constraint_4,
720 this->accumulator_high_limbs_range_constraint_tail,
723 this->quotient_low_limbs_range_constraint_0,
724 this->quotient_low_limbs_range_constraint_1,
725 this->quotient_low_limbs_range_constraint_2,
726 this->quotient_low_limbs_range_constraint_3,
727 this->quotient_low_limbs_range_constraint_4,
728 this->quotient_low_limbs_range_constraint_tail,
729 this->quotient_high_limbs_range_constraint_0,
730 this->quotient_high_limbs_range_constraint_1,
731 this->quotient_high_limbs_range_constraint_2,
732 this->quotient_high_limbs_range_constraint_3,
733 this->quotient_high_limbs_range_constraint_4,
734 this->quotient_high_limbs_range_constraint_tail,
735 this->relation_wide_limbs_range_constraint_0,
736 this->relation_wide_limbs_range_constraint_1,
737 this->relation_wide_limbs_range_constraint_2,
738 this->relation_wide_limbs_range_constraint_3,
749 return ConcatenatedRangeConstraints<DataType>::get_all();
758 return { this->ordered_range_constraints_0,
759 this->ordered_range_constraints_1,
760 this->ordered_range_constraints_2,
761 this->ordered_range_constraints_3,
762 this->ordered_range_constraints_4 };
768 return concatenate(PrecomputedEntities<DataType>::get_all(),
769 WitnessEntities<DataType>::get_unshifted_wires());
774 return { this->x_lo_y_hi_shift,
775 this->x_hi_z_1_shift,
776 this->y_lo_z_2_shift,
777 this->p_x_low_limbs_shift,
778 this->p_x_low_limbs_range_constraint_0_shift,
779 this->p_x_low_limbs_range_constraint_1_shift,
780 this->p_x_low_limbs_range_constraint_2_shift,
781 this->p_x_low_limbs_range_constraint_3_shift,
782 this->p_x_low_limbs_range_constraint_4_shift,
783 this->p_x_low_limbs_range_constraint_tail_shift,
784 this->p_x_high_limbs_shift,
785 this->p_x_high_limbs_range_constraint_0_shift,
786 this->p_x_high_limbs_range_constraint_1_shift,
787 this->p_x_high_limbs_range_constraint_2_shift,
788 this->p_x_high_limbs_range_constraint_3_shift,
789 this->p_x_high_limbs_range_constraint_4_shift,
790 this->p_x_high_limbs_range_constraint_tail_shift,
791 this->p_y_low_limbs_shift,
792 this->p_y_low_limbs_range_constraint_0_shift,
793 this->p_y_low_limbs_range_constraint_1_shift,
794 this->p_y_low_limbs_range_constraint_2_shift,
795 this->p_y_low_limbs_range_constraint_3_shift,
796 this->p_y_low_limbs_range_constraint_4_shift,
797 this->p_y_low_limbs_range_constraint_tail_shift,
798 this->p_y_high_limbs_shift,
799 this->p_y_high_limbs_range_constraint_0_shift,
800 this->p_y_high_limbs_range_constraint_1_shift,
801 this->p_y_high_limbs_range_constraint_2_shift,
802 this->p_y_high_limbs_range_constraint_3_shift,
803 this->p_y_high_limbs_range_constraint_4_shift,
804 this->p_y_high_limbs_range_constraint_tail_shift,
805 this->z_low_limbs_shift,
806 this->z_low_limbs_range_constraint_0_shift,
807 this->z_low_limbs_range_constraint_1_shift,
808 this->z_low_limbs_range_constraint_2_shift,
809 this->z_low_limbs_range_constraint_3_shift,
810 this->z_low_limbs_range_constraint_4_shift,
811 this->z_low_limbs_range_constraint_tail_shift,
812 this->z_high_limbs_shift,
813 this->z_high_limbs_range_constraint_0_shift,
814 this->z_high_limbs_range_constraint_1_shift,
815 this->z_high_limbs_range_constraint_2_shift,
816 this->z_high_limbs_range_constraint_3_shift,
817 this->z_high_limbs_range_constraint_4_shift,
818 this->z_high_limbs_range_constraint_tail_shift,
819 this->accumulators_binary_limbs_0_shift,
820 this->accumulators_binary_limbs_1_shift,
821 this->accumulators_binary_limbs_2_shift,
822 this->accumulators_binary_limbs_3_shift,
823 this->accumulator_low_limbs_range_constraint_0_shift,
824 this->accumulator_low_limbs_range_constraint_1_shift,
825 this->accumulator_low_limbs_range_constraint_2_shift,
826 this->accumulator_low_limbs_range_constraint_3_shift,
827 this->accumulator_low_limbs_range_constraint_4_shift,
828 this->accumulator_low_limbs_range_constraint_tail_shift,
829 this->accumulator_high_limbs_range_constraint_0_shift,
830 this->accumulator_high_limbs_range_constraint_1_shift,
831 this->accumulator_high_limbs_range_constraint_2_shift,
832 this->accumulator_high_limbs_range_constraint_3_shift,
833 this->accumulator_high_limbs_range_constraint_4_shift,
834 this->accumulator_high_limbs_range_constraint_tail_shift,
835 this->quotient_low_binary_limbs_shift,
836 this->quotient_high_binary_limbs_shift,
837 this->quotient_low_limbs_range_constraint_0_shift,
838 this->quotient_low_limbs_range_constraint_1_shift,
839 this->quotient_low_limbs_range_constraint_2_shift,
840 this->quotient_low_limbs_range_constraint_3_shift,
841 this->quotient_low_limbs_range_constraint_4_shift,
842 this->quotient_low_limbs_range_constraint_tail_shift,
843 this->quotient_high_limbs_range_constraint_0_shift,
844 this->quotient_high_limbs_range_constraint_1_shift,
845 this->quotient_high_limbs_range_constraint_2_shift,
846 this->quotient_high_limbs_range_constraint_3_shift,
847 this->quotient_high_limbs_range_constraint_4_shift,
848 this->quotient_high_limbs_range_constraint_tail_shift,
849 this->relation_wide_limbs_shift,
850 this->relation_wide_limbs_range_constraint_0_shift,
851 this->relation_wide_limbs_range_constraint_1_shift,
852 this->relation_wide_limbs_range_constraint_2_shift,
853 this->relation_wide_limbs_range_constraint_3_shift,
854 this->ordered_range_constraints_0_shift,
855 this->ordered_range_constraints_1_shift,
856 this->ordered_range_constraints_2_shift,
857 this->ordered_range_constraints_3_shift,
858 this->ordered_range_constraints_4_shift,
860 this->z_perm_shift };
876 result.insert(result.end(), shifted.begin(), shifted.end());
877 result.insert(result.end(), special.begin(), special.end());
881 friend std::ostream& operator<<(std::ostream& os,
const AllEntities& a)
884 std::ios_base::fmtflags f(os.flags());
885 auto entities = a.get_all();
886 for (
size_t i = 0; i < entities.size() - 1; i++) {
887 os <<
"e[" << std::setw(2) << i <<
"] = " << (entities[i]) <<
",\n";
889 os <<
"e[" << std::setw(2) << (entities.size() - 1) <<
"] = " << entities[entities.size() - 1] <<
" }";
904 BF batching_challenge_v = { 0 };
905 BF evaluation_input_x = { 0 };
914 std::vector<std::string> get_labels()
916 return concatenate(PrecomputedEntities<Polynomial>::get_labels(),
917 WitnessEntities<Polynomial>::get_unshifted_wire_labels());
921 return concatenate(PrecomputedEntities<Polynomial>::get_all(),
922 WitnessEntities<Polynomial>::get_unshifted_wires());
928 , batching_challenge_v(0)
929 , evaluation_input_x(0)
949 using Base = AllEntities<FF>;
964 [[nodiscard]]
size_t get_polynomial_size()
const {
return this->op.size(); }
1000 for (
auto& poly : this->get_all()) {
1009 template <
size_t LENGTH>
using ProverUnivariates = AllEntities<barretenberg::Univariate<FF, LENGTH>>;
1027 this->x_lo_y_hi =
"X_LO_Y_HI";
1028 this->x_hi_z_1 =
"X_HI_Z_1";
1029 this->y_lo_z_2 =
"Y_LO_Z_2";
1030 this->p_x_low_limbs =
"P_X_LOW_LIMBS";
1031 this->p_x_low_limbs_range_constraint_0 =
"P_X_LOW_LIMBS_RANGE_CONSTRAINT_0";
1032 this->p_x_low_limbs_range_constraint_1 =
"P_X_LOW_LIMBS_RANGE_CONSTRAINT_1";
1033 this->p_x_low_limbs_range_constraint_2 =
"P_X_LOW_LIMBS_RANGE_CONSTRAINT_2";
1034 this->p_x_low_limbs_range_constraint_3 =
"P_X_LOW_LIMBS_RANGE_CONSTRAINT_3";
1035 this->p_x_low_limbs_range_constraint_4 =
"P_X_LOW_LIMBS_RANGE_CONSTRAINT_4";
1036 this->p_x_low_limbs_range_constraint_tail =
"P_X_LOW_LIMBS_RANGE_CONSTRAINT_TAIL";
1037 this->p_x_high_limbs =
"P_X_HIGH_LIMBS";
1038 this->p_x_high_limbs_range_constraint_0 =
"P_X_HIGH_LIMBS_RANGE_CONSTRAINT_0";
1039 this->p_x_high_limbs_range_constraint_1 =
"P_X_HIGH_LIMBS_RANGE_CONSTRAINT_1";
1040 this->p_x_high_limbs_range_constraint_2 =
"P_X_HIGH_LIMBS_RANGE_CONSTRAINT_2";
1041 this->p_x_high_limbs_range_constraint_3 =
"P_X_HIGH_LIMBS_RANGE_CONSTRAINT_3";
1042 this->p_x_high_limbs_range_constraint_4 =
"P_X_HIGH_LIMBS_RANGE_CONSTRAINT_4";
1043 this->p_x_high_limbs_range_constraint_tail =
"P_X_HIGH_LIMBS_RANGE_CONSTRAINT_TAIL";
1044 this->p_y_low_limbs =
"P_Y_LOW_LIMBS";
1045 this->p_y_low_limbs_range_constraint_0 =
"P_Y_LOW_LIMBS_RANGE_CONSTRAINT_0";
1046 this->p_y_low_limbs_range_constraint_1 =
"P_Y_LOW_LIMBS_RANGE_CONSTRAINT_1";
1047 this->p_y_low_limbs_range_constraint_2 =
"P_Y_LOW_LIMBS_RANGE_CONSTRAINT_2";
1048 this->p_y_low_limbs_range_constraint_3 =
"P_Y_LOW_LIMBS_RANGE_CONSTRAINT_3";
1049 this->p_y_low_limbs_range_constraint_4 =
"P_Y_LOW_LIMBS_RANGE_CONSTRAINT_4";
1050 this->p_y_low_limbs_range_constraint_tail =
"P_Y_LOW_LIMBS_RANGE_CONSTRAINT_TAIL";
1051 this->p_y_high_limbs =
"P_Y_HIGH_LIMBS";
1052 this->p_y_high_limbs_range_constraint_0 =
"P_Y_HIGH_LIMBS_RANGE_CONSTRAINT_0";
1053 this->p_y_high_limbs_range_constraint_1 =
"P_Y_HIGH_LIMBS_RANGE_CONSTRAINT_1";
1054 this->p_y_high_limbs_range_constraint_2 =
"P_Y_HIGH_LIMBS_RANGE_CONSTRAINT_2";
1055 this->p_y_high_limbs_range_constraint_3 =
"P_Y_HIGH_LIMBS_RANGE_CONSTRAINT_3";
1056 this->p_y_high_limbs_range_constraint_4 =
"P_Y_HIGH_LIMBS_RANGE_CONSTRAINT_4";
1057 this->p_y_high_limbs_range_constraint_tail =
"P_Y_HIGH_LIMBS_RANGE_CONSTRAINT_TAIL";
1058 this->z_low_limbs =
"Z_LOw_LIMBS";
1059 this->z_low_limbs_range_constraint_0 =
"Z_LOW_LIMBS_RANGE_CONSTRAINT_0";
1060 this->z_low_limbs_range_constraint_1 =
"Z_LOW_LIMBS_RANGE_CONSTRAINT_1";
1061 this->z_low_limbs_range_constraint_2 =
"Z_LOW_LIMBS_RANGE_CONSTRAINT_2";
1062 this->z_low_limbs_range_constraint_3 =
"Z_LOW_LIMBS_RANGE_CONSTRAINT_3";
1063 this->z_low_limbs_range_constraint_4 =
"Z_LOW_LIMBS_RANGE_CONSTRAINT_4";
1064 this->z_low_limbs_range_constraint_tail =
"Z_LOW_LIMBS_RANGE_CONSTRAINT_TAIL";
1065 this->z_high_limbs =
"Z_HIGH_LIMBS";
1066 this->z_high_limbs_range_constraint_0 =
"Z_HIGH_LIMBS_RANGE_CONSTRAINT_0";
1067 this->z_high_limbs_range_constraint_1 =
"Z_HIGH_LIMBS_RANGE_CONSTRAINT_1";
1068 this->z_high_limbs_range_constraint_2 =
"Z_HIGH_LIMBS_RANGE_CONSTRAINT_2";
1069 this->z_high_limbs_range_constraint_3 =
"Z_HIGH_LIMBS_RANGE_CONSTRAINT_3";
1070 this->z_high_limbs_range_constraint_4 =
"Z_HIGH_LIMBS_RANGE_CONSTRAINT_4";
1071 this->z_high_limbs_range_constraint_tail =
"Z_HIGH_LIMBS_RANGE_CONSTRAINT_TAIL";
1072 this->accumulators_binary_limbs_0 =
"ACCUMULATORS_BINARY_LIMBS_0";
1073 this->accumulators_binary_limbs_1 =
"ACCUMULATORS_BINARY_LIMBS_1";
1074 this->accumulators_binary_limbs_2 =
"ACCUMULATORS_BINARY_LIMBS_2";
1075 this->accumulators_binary_limbs_3 =
"ACCUMULATORS_BINARY_LIMBS_3";
1076 this->accumulator_low_limbs_range_constraint_0 =
"ACCUMULATOR_LOW_LIMBS_RANGE_CONSTRAINT_0";
1077 this->accumulator_low_limbs_range_constraint_1 =
"ACCUMULATOR_LOW_LIMBS_RANGE_CONSTRAINT_1";
1078 this->accumulator_low_limbs_range_constraint_2 =
"ACCUMULATOR_LOW_LIMBS_RANGE_CONSTRAINT_2";
1079 this->accumulator_low_limbs_range_constraint_3 =
"ACCUMULATOR_LOW_LIMBS_RANGE_CONSTRAINT_3";
1080 this->accumulator_low_limbs_range_constraint_4 =
"ACCUMULATOR_LOW_LIMBS_RANGE_CONSTRAINT_4";
1081 this->accumulator_low_limbs_range_constraint_tail =
"ACCUMULATOR_LOW_LIMBS_RANGE_CONSTRAINT_TAIL";
1082 this->accumulator_high_limbs_range_constraint_0 =
"ACCUMULATOR_HIGH_LIMBS_RANGE_CONSTRAINT_0";
1083 this->accumulator_high_limbs_range_constraint_1 =
"ACCUMULATOR_HIGH_LIMBS_RANGE_CONSTRAINT_1";
1084 this->accumulator_high_limbs_range_constraint_2 =
"ACCUMULATOR_HIGH_LIMBS_RANGE_CONSTRAINT_2";
1085 this->accumulator_high_limbs_range_constraint_3 =
"ACCUMULATOR_HIGH_LIMBS_RANGE_CONSTRAINT_3";
1086 this->accumulator_high_limbs_range_constraint_4 =
"ACCUMULATOR_HIGH_LIMBS_RANGE_CONSTRAINT_4";
1087 this->accumulator_high_limbs_range_constraint_tail =
"ACCUMULATOR_HIGH_LIMBS_RANGE_CONSTRAINT_TAIL";
1088 this->quotient_low_binary_limbs =
"QUOTIENT_LOW_BINARY_LIMBS";
1089 this->quotient_high_binary_limbs =
"QUOTIENT_HIGH_BINARY_LIMBS";
1090 this->quotient_low_limbs_range_constraint_0 =
"QUOTIENT_LOW_LIMBS_RANGE_CONSTRAINT_0";
1091 this->quotient_low_limbs_range_constraint_1 =
"QUOTIENT_LOW_LIMBS_RANGE_CONSTRAINT_1";
1092 this->quotient_low_limbs_range_constraint_2 =
"QUOTIENT_LOW_LIMBS_RANGE_CONSTRAINT_2";
1093 this->quotient_low_limbs_range_constraint_3 =
"QUOTIENT_LOW_LIMBS_RANGE_CONSTRAINT_3";
1094 this->quotient_low_limbs_range_constraint_4 =
"QUOTIENT_LOW_LIMBS_RANGE_CONSTRAINT_4";
1095 this->quotient_low_limbs_range_constraint_tail =
"QUOTIENT_LOW_LIMBS_RANGE_CONSTRAINT_TAIL";
1096 this->quotient_high_limbs_range_constraint_0 =
"QUOTIENT_HIGH_LIMBS_RANGE_CONSTRAINT_0";
1097 this->quotient_high_limbs_range_constraint_1 =
"QUOTIENT_HIGH_LIMBS_RANGE_CONSTRAINT_1";
1098 this->quotient_high_limbs_range_constraint_2 =
"QUOTIENT_HIGH_LIMBS_RANGE_CONSTRAINT_2";
1099 this->quotient_high_limbs_range_constraint_3 =
"QUOTIENT_HIGH_LIMBS_RANGE_CONSTRAINT_3";
1100 this->quotient_high_limbs_range_constraint_4 =
"QUOTIENT_HIGH_LIMBS_RANGE_CONSTRAINT_4";
1101 this->quotient_high_limbs_range_constraint_tail =
"QUOTIENT_HIGH_LIMBS_RANGE_CONSTRAINT_TAIL";
1102 this->relation_wide_limbs =
"RELATION_WIDE_LIMBS";
1103 this->relation_wide_limbs_range_constraint_0 =
"RELATION_WIDE_LIMBS_RANGE_CONSTRAINT_0";
1104 this->relation_wide_limbs_range_constraint_1 =
"RELATION_WIDE_LIMBS_RANGE_CONSTRAINT_1";
1105 this->relation_wide_limbs_range_constraint_2 =
"RELATION_WIDE_LIMBS_RANGE_CONSTRAINT_2";
1106 this->relation_wide_limbs_range_constraint_3 =
"RELATION_WIDE_LIMBS_RANGE_CONSTRAINT_2";
1107 this->concatenated_range_constraints_0 =
"CONCATENATED_RANGE_CONSTRAINTS_0";
1108 this->concatenated_range_constraints_1 =
"CONCATENATED_RANGE_CONSTRAINTS_1";
1109 this->concatenated_range_constraints_2 =
"CONCATENATED_RANGE_CONSTRAINTS_2";
1110 this->concatenated_range_constraints_3 =
"CONCATENATED_RANGE_CONSTRAINTS_3";
1111 this->z_perm =
"Z_PERM";
1113 this->lagrange_first =
"__LAGRANGE_FIRST";
1114 this->lagrange_last =
"__LAGRANGE_LAST";
1115 this->lagrange_odd_in_minicircuit =
"__LAGRANGE_ODD_IN_MINICIRCUIT";
1116 this->lagrange_even_in_minicircuit =
"__LAGRANGE_EVEN_IN_MINICIRCUIT";
1117 this->lagrange_second =
"__LAGRANGE_SECOND";
1118 this->lagrange_second_to_last_in_minicircuit =
"__LAGRANGE_SECOND_TO_LAST_IN_MINICIRCUIT";
1119 this->ordered_extra_range_constraints_numerator =
"__ORDERED_EXTRA_RANGE_CONSTRAINTS_NUMERATOR";
1127 this->lagrange_first = verification_key->lagrange_first;
1128 this->lagrange_last = verification_key->lagrange_last;
1129 this->lagrange_odd_in_minicircuit = verification_key->lagrange_odd_in_minicircuit;
1130 this->lagrange_even_in_minicircuit = verification_key->lagrange_even_in_minicircuit;
1131 this->lagrange_second = verification_key->lagrange_second;
1132 this->lagrange_second_to_last_in_minicircuit = verification_key->lagrange_second_to_last_in_minicircuit;
1133 this->ordered_extra_range_constraints_numerator =
1134 verification_key->ordered_extra_range_constraints_numerator;
1142namespace proof_system {
A template class for a reference vector. Behaves as if std::vector<T&> was possible.
Definition: ref_vector.hpp:20
Definition: polynomial.hpp:12
Definition: translator_extra_relations.hpp:34
GoblinTranslatorCircuitBuilder creates a circuit that evaluates the correctness of the evaluation of ...
Definition: goblin_translator_circuit_builder.hpp:76
Definition: translator_decomposition_relation.hpp:7
Definition: translator_gen_perm_sort_relation.hpp:6
Definition: translator_non_native_field_relation.hpp:7
Definition: translator_extra_relations.hpp:6
Definition: translator_permutation_relation.hpp:6
The templates defined herein facilitate sharing the relation arithmetic between the prover and the ve...
Definition: relation_types.hpp:121
Common transcript class for both parties. Stores the data for the current round, as well as the manif...
Definition: transcript.hpp:62
A field element for each entity of the flavor. These entities represent the prover polynomials evalua...
Definition: goblin_translator.hpp:947
A container for commitment labels.
Definition: goblin_translator.hpp:1022
A container for storing the partially evaluated multivariates produced by sumcheck.
Definition: goblin_translator.hpp:993
A container for the prover polynomials handles.
Definition: goblin_translator.hpp:955
AllValues get_row(size_t row_idx) const
Returns the evaluations of all prover polynomials at one point on the boolean hypercube,...
Definition: goblin_translator.hpp:969
The proving key is responsible for storing the polynomials used by the prover.
Definition: goblin_translator.hpp:902
Definition: goblin_translator.hpp:1123
Definition: goblin_translator.hpp:21
AllEntities< size_t > ProverPolynomialIds
A container for easier mapping of polynomials.
Definition: goblin_translator.hpp:982
ProverUnivariates< MAX_PARTIAL_RELATION_LENGTH > ExtendedEdges
A container for univariates produced during the hot loop in sumcheck.
Definition: goblin_translator.hpp:1014
AllEntities< barretenberg::Univariate< FF, LENGTH > > ProverUnivariates
A container for univariates used during sumcheck.
Definition: goblin_translator.hpp:1009
AllEntities< FF > RowPolynomials
A container for polynomials produced after the first round of sumcheck.
Definition: goblin_translator.hpp:988
Base class template containing circuit-specifying data.
Definition: flavor.hpp:85
Base proving key class.
Definition: flavor.hpp:101
CommitmentKey object over a pairing group 𝔾₁.
Definition: commitment_key.hpp:35
Definition: verification_key.hpp:25
Definition: zip_view.hpp:159
Base class templates for structures that contain data parameterized by the fundamental polynomials of...