28static constexpr bb::fq DEFAULT_ECC_COMMITMENT_X(
"0x08434fa4480433735e7aeaccecb911eb7a06165ad70e5ced6ac6848296e59279");
29static constexpr bb::fq DEFAULT_ECC_COMMITMENT_Y(
"0x0a13a1839ab95ef15be8d0710b2c8aa47cea0b0e62a8596e68cc0fd54a6ae73d");
31 DEFAULT_ECC_COMMITMENT_Y);
43template <
typename Builder>
47 for (
auto& table_commitment : empty_tables) {
50 BB_ASSERT(table_commitment.get_value().is_point_at_infinity(),
51 "empty_ecc_op_tables: T_prev must be initialized to point at infinity");
84 static constexpr bool HasIPA =
false;
94 public_inputs.size(),
PUBLIC_INPUTS_SIZE,
"Public inputs too small for HidingKernelIO reconstruction");
101 index += G1::PUBLIC_INPUTS_SIZE;
104 index += G1::PUBLIC_INPUTS_SIZE;
123 app_commitment.set_public();
129 builder->finalize_public_inputs();
142 for (
auto& app_commitment :
inputs.app_return_data) {
180 public_inputs.size(),
PUBLIC_INPUTS_SIZE,
"Public inputs too small for AppCircuitIO reconstruction");
198 builder->finalize_public_inputs();
208 builder.finalize_public_inputs();
245 public_inputs.size(),
PUBLIC_INPUTS_SIZE,
"Public inputs too small for GoblinAvmIO reconstruction");
265 builder->finalize_public_inputs();
301 public_inputs.size(),
PUBLIC_INPUTS_SIZE,
"Public inputs too small for HidingKernelIO reconstruction");
307 index += G1::PUBLIC_INPUTS_SIZE;
310 index += G1::PUBLIC_INPUTS_SIZE;
325 commitment.set_public();
329 builder->finalize_public_inputs();
340 inputs.kernel_return_data =
G1(
typename G1::BaseField(
nullptr,
uint256_t(DEFAULT_ECC_COMMITMENT.x)),
341 typename G1::BaseField(
nullptr,
uint256_t(DEFAULT_ECC_COMMITMENT.y)),
343 inputs.kernel_return_data.convert_constant_to_fixed_witness(&
builder);
344 for (
auto& table_commitment :
inputs.ecc_op_tables) {
345 table_commitment =
G1(
typename G1::BaseField(
nullptr,
uint256_t(DEFAULT_ECC_COMMITMENT.x)),
346 typename G1::BaseField(
nullptr,
uint256_t(DEFAULT_ECC_COMMITMENT.y)),
348 table_commitment.convert_constant_to_fixed_witness(&
builder);
401 builder->finalize_public_inputs();
412 auto [stdlib_opening_claim, ipa_proof] =
414 inputs.ipa_claim = stdlib_opening_claim;
#define BB_ASSERT(expression,...)
#define BB_ASSERT_GTE(left, right,...)
#define BB_ASSERT_NEQ(actual, expected,...)
IPA (inner product argument) commitment scheme class.
uint32_t set_public()
Set the witness indices for the opening claim to public.
typename Group::affine_element AffineElement
static Commitment construct_default_commitment(Builder &builder)
Construct a default commitment for the databus return data.
uint32_t set_public() const
Builder * get_context() const
static field_t from_witness(Builder *ctx, const bb::fr &input)
static constexpr size_t PUBLIC_INPUTS_SIZE
Manages the data that is propagated on the public inputs of an application/function circuit.
void reconstruct_from_public(const std::vector< FF > &public_inputs)
Reconstructs the IO components from a public inputs array.
void set_public()
Set each IO component to be a public input of the underlying circuit.
PairingInputs pairing_inputs
static constexpr bool HasIPA
static constexpr size_t PUBLIC_INPUTS_SIZE
static void add_default(Builder &builder)
Add default public inputs when they are not present.
The data that is propagated on the public inputs of the inner GoblinAvmRecursiveVerifier circuit.
void set_public()
Set each IO component to be a public input of the underlying circuit.
static constexpr bool HasIPA
static constexpr size_t PUBLIC_INPUTS_SIZE
PairingInputs pairing_inputs
void reconstruct_from_public(const std::vector< FF > &public_inputs)
Reconstructs the IO components from a public inputs array.
Manages the data that is propagated on the public inputs of a hiding kernel circuit.
static constexpr bool HasIPA
TableCommitments ecc_op_tables
static constexpr size_t PUBLIC_INPUTS_SIZE
std::array< G1, Builder::NUM_WIRES > TableCommitments
void reconstruct_from_public(const std::vector< FF > &public_inputs)
Reconstructs the IO components from a public inputs array.
PairingInputs pairing_inputs
static void add_default(Builder &builder)
Add default public inputs when they are not present.
void set_public()
Set each IO component to be a public input of the underlying circuit.
Manages the data that is propagated on the public inputs of a kernel circuit.
static constexpr size_t PUBLIC_INPUTS_SIZE
void set_public()
Set each IO component to be a public input of the underlying circuit.
AppReturnDataCommitments app_return_data
void reconstruct_from_public(const std::vector< FF > &public_inputs)
Reconstructs the IO components from a public inputs array.
static constexpr bool HasIPA
std::array< G1, Builder::NUM_WIRES > TableCommitments
static void add_default(Builder &builder)
Add default public inputs when they are not present.
PairingInputs pairing_inputs
std::array< G1, N > AppReturnDataCommitments
The data that is propagated on the public inputs of a rollup circuit.
static constexpr size_t PUBLIC_INPUTS_SIZE
void reconstruct_from_public(const std::vector< FF > &public_inputs)
Reconstructs the IO components from a public inputs array.
static void add_default(Builder &builder)
Add default public inputs when they are not present.
void set_public()
Set each IO component to be a public input of the underlying circuit.
static constexpr bool HasIPA
PairingInputs pairing_inputs
std::array< typename bn254< Builder >::Group, Builder::NUM_WIRES > empty_ecc_op_tables(Builder &builder)
Construct commitments to empty subtables.
constexpr std::size_t kernel_public_inputs_size(std::size_t num_apps)
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
MegaCircuitBuilder_< field< Bn254FrParams > > MegaCircuitBuilder
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
field_t< CircuitBuilder > ScalarField
element< CircuitBuilder, bigfield< CircuitBuilder, bb::Bn254FqParams >, ScalarField, GroupNative > Group
An object storing two EC points that represent the inputs to a pairing check.
static constexpr size_t PUBLIC_INPUTS_SIZE
static uint32_t set_default_to_public(Builder *builder)
Set the witness indices for the default (infinity) pairing points to public.
static PairingPoints construct_default()
Construct default pairing points (both at infinity).
uint32_t set_public(Builder *ctx=nullptr)
Set the witness indices for the pairing points to public.