|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
This class implements the execution of biggroup with an oracle to detect discrepancies. More...
#include <biggroup.fuzzer.hpp>
Public Member Functions | |
| ExecutionHandler ()=default | |
| ExecutionHandler (ScalarField s, GroupElement g, biggroup_t w_g) | |
| ExecutionHandler | operator_add (Builder *builder, const ExecutionHandler &other) |
| ExecutionHandler | operator_sub (Builder *builder, const ExecutionHandler &other) |
| Subtract two ExecutionHandlers, exploring different code paths for edge cases. | |
| ExecutionHandler | mul (Builder *builder, const ScalarField &multiplier) |
| void | validate_on_curve () const |
| ExecutionHandler | operator- () |
| ExecutionHandler | dbl () |
| ExecutionHandler | conditional_select (Builder *builder, ExecutionHandler &other, const bool predicate) |
| void | incomplete_assert_equal (Builder *builder, ExecutionHandler &other) |
| ExecutionHandler | set (Builder *builder) |
Static Public Member Functions | |
| static ExecutionHandler | batch_mul (Builder *builder, const std::vector< ExecutionHandler > &to_add, const std::vector< ScalarField > &to_mul) |
| static size_t | execute_CONSTANT (Builder *builder, std::vector< ExecutionHandler > &stack, Instruction &instruction) |
| Execute the constant instruction (push constant biggroup to the stack) | |
| static size_t | execute_WITNESS (Builder *builder, std::vector< ExecutionHandler > &stack, Instruction &instruction) |
| Execute the witness instruction (push witness biggroup to the stack) | |
| static size_t | execute_CONSTANT_WITNESS (Builder *builder, std::vector< ExecutionHandler > &stack, Instruction &instruction) |
| Execute the constant_witness instruction (push a biggroup witness set to be public or constant made witness to the stack) | |
| static size_t | execute_VALIDATE_ON_CURVE (Builder *builder, std::vector< ExecutionHandler > &stack, Instruction &instruction) |
| Execute the VALIDATE_ON_CURVE instruction. | |
| static size_t | execute_DBL (Builder *builder, std::vector< ExecutionHandler > &stack, Instruction &instruction) |
| Execute the DBL instruction. | |
| static size_t | execute_NEG (Builder *builder, std::vector< ExecutionHandler > &stack, Instruction &instruction) |
| Execute the NEG instruction. | |
| static size_t | execute_ASSERT_EQUAL (Builder *builder, std::vector< ExecutionHandler > &stack, Instruction &instruction) |
| Execute the ASSERT_EQUAL instruction. | |
| static size_t | execute_SET (Builder *builder, std::vector< ExecutionHandler > &stack, Instruction &instruction) |
| Execute the SET instruction. | |
| static size_t | execute_ADD (Builder *builder, std::vector< ExecutionHandler > &stack, Instruction &instruction) |
| Execute the addition operator instruction. | |
| static size_t | execute_SUBTRACT (Builder *builder, std::vector< ExecutionHandler > &stack, Instruction &instruction) |
| Execute the subtraction operator instruction. | |
| static size_t | execute_COND_ASSIGN (Builder *builder, std::vector< ExecutionHandler > &stack, Instruction &instruction) |
| Execute the COND_ASSIGN instruction. | |
| static size_t | execute_MULTIPLY (Builder *builder, std::vector< ExecutionHandler > &stack, Instruction &instruction) |
| Execute the multiply instruction. | |
| static size_t | execute_BATCH_MUL (Builder *builder, std::vector< ExecutionHandler > &stack, Instruction &instruction) |
| Execute the BATCH_MUL instruction. | |
| static size_t | execute_RANDOMSEED (Builder *builder, std::vector< ExecutionHandler > &stack, Instruction &instruction) |
| Execute the RANDOMSEED instruction. | |
Public Attributes | |
| ScalarField | base_scalar |
| GroupElement | base |
| biggroup_t | biggroup |
Private Member Functions | |
| biggroup_t | bg () const |
| ExecutionHandler | handle_add_doubling_case (Builder *builder, const ExecutionHandler &other, const ScalarField &base_scalar_res, const GroupElement &base_res) |
| Handle addition when points are equal (requires doubling) | |
| ExecutionHandler | handle_add_infinity_case (const ExecutionHandler &other, const ScalarField &base_scalar_res, const GroupElement &base_res) |
| Handle addition when points are negations (result is point at infinity) | |
| ExecutionHandler | handle_add_normal_case (const ExecutionHandler &other, const ScalarField &base_scalar_res, const GroupElement &base_res) |
| Handle normal addition (no special edge cases) | |
| ExecutionHandler | handle_sub_doubling_case (Builder *builder, const ExecutionHandler &other, const ScalarField &base_scalar_res, const GroupElement &base_res) |
| Handle subtraction when points are negations: x - (-x) = 2x (doubling case) | |
| ExecutionHandler | handle_sub_infinity_case (const ExecutionHandler &other, const ScalarField &base_scalar_res, const GroupElement &base_res) |
| Handle subtraction when points are equal: x - x = 0 (point at infinity) | |
| ExecutionHandler | handle_sub_normal_case (const ExecutionHandler &other, const ScalarField &base_scalar_res, const GroupElement &base_res) |
| Handle normal subtraction case (no special edge cases) | |
Static Private Member Functions | |
| static bool_t | construct_predicate (Builder *builder, const bool predicate) |
This class implements the execution of biggroup with an oracle to detect discrepancies.
Definition at line 907 of file biggroup.fuzzer.hpp.
|
default |
|
inline |
Definition at line 937 of file biggroup.fuzzer.hpp.
|
inlinestatic |
Definition at line 1132 of file biggroup.fuzzer.hpp.
|
inlineprivate |
Definition at line 925 of file biggroup.fuzzer.hpp.
|
inline |
Definition at line 1183 of file biggroup.fuzzer.hpp.
|
inlinestaticprivate |
Definition at line 909 of file biggroup.fuzzer.hpp.
|
inline |
Definition at line 1178 of file biggroup.fuzzer.hpp.
|
inlinestatic |
Execute the addition operator instruction.
| builder | |
| stack | |
| instruction |
Definition at line 1510 of file biggroup.fuzzer.hpp.
|
inlinestatic |
Execute the ASSERT_EQUAL instruction.
| builder | |
| stack | |
| instruction |
Definition at line 1446 of file biggroup.fuzzer.hpp.
|
inlinestatic |
Execute the BATCH_MUL instruction.
| builder | |
| stack | |
| instruction |
Definition at line 1652 of file biggroup.fuzzer.hpp.
|
inlinestatic |
Execute the COND_ASSIGN instruction.
| builder | |
| stack | |
| instruction |
Definition at line 1578 of file biggroup.fuzzer.hpp.
|
inlinestatic |
Execute the constant instruction (push constant biggroup to the stack)
| builder | |
| stack | |
| instruction |
Definition at line 1257 of file biggroup.fuzzer.hpp.
|
inlinestatic |
Execute the constant_witness instruction (push a biggroup witness set to be public or constant made witness to the stack)
| builder | |
| stack | |
| instruction |
Definition at line 1306 of file biggroup.fuzzer.hpp.
|
inlinestatic |
Execute the DBL instruction.
| builder | |
| stack | |
| instruction |
Definition at line 1380 of file biggroup.fuzzer.hpp.
|
inlinestatic |
Execute the multiply instruction.
| builder | |
| stack | |
| instruction |
Definition at line 1618 of file biggroup.fuzzer.hpp.
|
inlinestatic |
Execute the NEG instruction.
| builder | |
| stack | |
| instruction |
Definition at line 1413 of file biggroup.fuzzer.hpp.
|
inlinestatic |
Execute the RANDOMSEED instruction.
| builder | |
| stack | |
| instruction |
Definition at line 1706 of file biggroup.fuzzer.hpp.
|
inlinestatic |
Execute the SET instruction.
| builder | |
| stack | |
| instruction |
Definition at line 1472 of file biggroup.fuzzer.hpp.
|
inlinestatic |
Execute the subtraction operator instruction.
| builder | |
| stack | |
| instruction |
Definition at line 1544 of file biggroup.fuzzer.hpp.
|
inlinestatic |
Execute the VALIDATE_ON_CURVE instruction.
| builder | |
| stack | |
| instruction |
Definition at line 1354 of file biggroup.fuzzer.hpp.
|
inlinestatic |
Execute the witness instruction (push witness biggroup to the stack)
| builder | |
| stack | |
| instruction |
Definition at line 1280 of file biggroup.fuzzer.hpp.
|
inlineprivate |
Handle addition when points are equal (requires doubling)
| builder | Circuit builder |
| other | The other execution handler |
| base_scalar_res | Result scalar for native computation |
| base_res | Result point for native computation |
Definition at line 952 of file biggroup.fuzzer.hpp.
|
inlineprivate |
Handle addition when points are negations (result is point at infinity)
| builder | Circuit builder |
| other | The other execution handler |
| base_scalar_res | Result scalar for native computation |
| base_res | Result point for native computation |
Definition at line 981 of file biggroup.fuzzer.hpp.
|
inlineprivate |
Handle normal addition (no special edge cases)
| other | The other execution handler |
| base_scalar_res | Result scalar for native computation |
| base_res | Result point for native computation |
Definition at line 1003 of file biggroup.fuzzer.hpp.
|
inlineprivate |
Handle subtraction when points are negations: x - (-x) = 2x (doubling case)
Definition at line 1050 of file biggroup.fuzzer.hpp.
|
inlineprivate |
Handle subtraction when points are equal: x - x = 0 (point at infinity)
Definition at line 1073 of file biggroup.fuzzer.hpp.
|
inlineprivate |
Handle normal subtraction case (no special edge cases)
Definition at line 1083 of file biggroup.fuzzer.hpp.
|
inline |
Definition at line 1199 of file biggroup.fuzzer.hpp.
|
inline |
Definition at line 1120 of file biggroup.fuzzer.hpp.
|
inline |
Definition at line 1176 of file biggroup.fuzzer.hpp.
|
inline |
Definition at line 1027 of file biggroup.fuzzer.hpp.
|
inline |
Subtract two ExecutionHandlers, exploring different code paths for edge cases.
Definition at line 1106 of file biggroup.fuzzer.hpp.
|
inline |
Definition at line 1213 of file biggroup.fuzzer.hpp.
|
inline |
Definition at line 1174 of file biggroup.fuzzer.hpp.
| GroupElement BigGroupBase< Builder, BigGroupType, _use_bigfield, BigfieldScalar >::ExecutionHandler::base |
Definition at line 933 of file biggroup.fuzzer.hpp.
| ScalarField BigGroupBase< Builder, BigGroupType, _use_bigfield, BigfieldScalar >::ExecutionHandler::base_scalar |
Definition at line 932 of file biggroup.fuzzer.hpp.
| biggroup_t BigGroupBase< Builder, BigGroupType, _use_bigfield, BigfieldScalar >::ExecutionHandler::biggroup |
Definition at line 934 of file biggroup.fuzzer.hpp.