3#include "barretenberg/flavor/goblin_ultra.hpp"
4#include "barretenberg/flavor/ultra.hpp"
5#include "barretenberg/proof_system/composer/composer_lib.hpp"
6#include "barretenberg/relations/relation_parameters.hpp"
7#include "barretenberg/srs/factories/file_crs_factory.hpp"
26 using FoldingParameters =
typename Flavor::FoldingParameters;
29 using WitnessCommitments =
typename Flavor::WitnessCommitments;
33 std::shared_ptr<ProvingKey> proving_key;
34 std::shared_ptr<VerificationKey> verification_key;
36 ProverPolynomials prover_polynomials;
37 WitnessCommitments witness_commitments;
38 CommitmentLabels commitment_labels;
40 std::array<Polynomial, 4> sorted_polynomials;
44 std::vector<FF> public_inputs;
48 size_t pub_inputs_offset = 0;
51 std::vector<uint32_t> recursive_proof_public_input_indices;
53 FoldingParameters folding_parameters;
54 bool is_accumulator =
false;
56 size_t log_instance_size;
60 compute_circuit_size_parameters(circuit);
61 compute_proving_key(circuit);
62 compute_witness(circuit);
68 void initialize_prover_polynomials();
70 void compute_sorted_accumulator_polynomials(FF);
77 void compute_grand_product_polynomials(FF, FF);
80 static constexpr size_t num_zero_rows = Flavor::has_zero_row ? 1 : 0;
81 static constexpr size_t NUM_WIRES = Circuit::NUM_WIRES;
82 bool contains_recursive_proof =
false;
83 bool computed_witness =
false;
84 size_t total_num_gates = 0;
85 size_t dyadic_circuit_size = 0;
86 size_t lookups_size = 0;
87 size_t tables_size = 0;
88 size_t num_public_inputs = 0;
89 size_t num_ecc_op_gates = 0;
91 std::shared_ptr<ProvingKey> compute_proving_key(Circuit&);
93 void compute_circuit_size_parameters(Circuit&);
95 void compute_witness(Circuit&);
97 void construct_ecc_op_wire_polynomials(
auto&);
99 void construct_databus_polynomials(Circuit&)
104 void add_plookup_memory_records_to_wire_4(FF);
Definition: polynomial.hpp:12
GoblinTranslatorCircuitBuilder creates a circuit that evaluates the correctness of the evaluation of ...
Definition: goblin_translator_circuit_builder.hpp:76
An Instance is normally constructed from a finalized circuit and it's role is to compute all the poly...
Definition: prover_instance.hpp:20
void compute_logderivative_inverse(FF, FF)
Compute the inverse polynomial used in the log derivative lookup argument.
Definition: prover_instance.cpp:402
void compute_sorted_list_accumulator(FF)
Construct sorted list accumulator polynomial 's'.
Definition: prover_instance.cpp:336
A container for commitment labels.
Definition: goblin_translator.hpp:1022
A container for the prover polynomials handles.
Definition: goblin_translator.hpp:955
The proving key is responsible for storing the polynomials used by the prover.
Definition: goblin_translator.hpp:902
VerificationKey_< PrecomputedEntities< Commitment > > VerificationKey
The verification key is responsible for storing the the commitments to the precomputed (non-witnessk)...
Definition: goblin_translator.hpp:941
CommitmentKey object over a pairing group 𝔾₁.
Definition: commitment_key.hpp:35
Definition: flavor.hpp:295
Base class templates for structures that contain data parameterized by the fundamental polynomials of...
Defines particular circuit builder types expected to be used for circuit construction in stdlib and c...
Definition: claim.hpp:6
Container for parameters used by the grand product (permutation, lookup) Honk relations.
Definition: relation_parameters.hpp:12