|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
#include <translator_extra_relations.hpp>
Public Types | |
| using | FF = FF_ |
Static Public Member Functions | |
| template<typename AllEntities > | |
| static bool | skip (const AllEntities &in) |
| Returns true if the contribution from all subrelations for the provided inputs is identically zero. | |
| template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters > | |
| static void | accumulate (ContainerOverSubrelations &accumulators, const AllEntities &in, const Parameters &, const FF &scaling_factor) |
| Enforces constraints on the opcode value: | |
Static Public Attributes | |
| static constexpr size_t | RELATION_LENGTH = 6 |
| static constexpr std::array< size_t, 5 > | SUBRELATION_PARTIAL_LENGTHS |
Definition at line 12 of file translator_extra_relations.hpp.
| using bb::TranslatorOpcodeConstraintRelationImpl< FF_ >::FF = FF_ |
Definition at line 14 of file translator_extra_relations.hpp.
|
static |
Enforces constraints on the opcode value:
Enforces two constraints on the opcode value:
on even indices when op = 0 (no-op), accumulator limbs stay the same
Constraints 1 and 2 are a single subrelation gated by lagrange_even/lagrange_odd respectively. Constraint 2 is required for soundness: a genuine opcode placed on an odd row would be skipped by the non-native accumulator (which is gated by lagrange_even·op), so without it a prover could drop an ECC op from the batched evaluation. Random masking ops are exempt because both lagrange selectors are zero in the masking regions. Constraint 3 ensures that at even indices when the opcode is 0 (no-op), the accumulator limbs do not change.
| evals | transformed to evals + C(in(X)...)*scaling_factor |
| in | an std::array containing the fully extended Univariate edges. |
| parameters | contains beta, gamma, and public_input_delta, .... |
| scaling_factor | optional term to scale the evaluation before adding to evals. |
at even indices when op = 0 (no-op), accumulator limbs stay the same
We check the first relation at all rows. On odd rows, op = 0 is always valid, so the check is trivial.
| evals | transformed to evals + C(in(X)...)*scaling_factor |
| in | an std::array containing the fully extended Univariate edges. |
| parameters | contains beta, gamma, and public_input_delta, .... |
| scaling_factor | optional term to scale the evaluation before adding to evals. |
Definition at line 26 of file translator_extra_relations_impl.hpp.
|
inlinestatic |
Returns true if the contribution from all subrelations for the provided inputs is identically zero.
Definition at line 30 of file translator_extra_relations.hpp.
|
staticconstexpr |
Definition at line 17 of file translator_extra_relations.hpp.
|
staticconstexpr |
Definition at line 18 of file translator_extra_relations.hpp.