28 for (
auto [key_poly, prover_poly] :
zip_view(proving_key->get_all(), polynomials.get_unshifted())) {
42 std::vector<fr> vk_as_fields = many_from_buffer<AvmFlavorSettings::FF>(vk_data);
44 std::span vk_span(vk_as_fields);
46 vinfo(
"vk fields size: ", vk_as_fields.size());
49 for (
size_t i = 0; i < VerificationKey::NUM_PRECOMPUTED_COMMITMENTS; i++) {
51 precomputed_cmts[i] = field_conversion::convert_from_bn254_frs<VerificationKey::Commitment>(
61 auto proving_key =
AVM_TRACK_TIME_V(
"proving/prove:proving_key", create_proving_key(polynomials));
63 auto verification_key =
66 AvmProver(proving_key, verification_key, proving_key->commitment_key));
68 auto proof =
AVM_TRACK_TIME_V(
"proving/construct_proof", prover.construct_proof());
69 auto serialized_vk =
to_buffer(verification_key->to_field_elements());
80 const size_t num_rows =
trace.get_num_rows_without_clk() + 1;
81 const bool skippable_enabled =
true;
82 info(
"Running check ",
83 skippable_enabled ?
"(with skippable)" :
"(without skippable)",
93 }
catch (std::runtime_error& e) {
96 info(
"Circuit check failed: ", e.what());
#define BB_ASSERT_EQ(actual, expected,...)
static constexpr size_t NUM_FRS_COM
Flavor::ProverPolynomials ProverPolynomials
std::vector< uint8_t > VkData
bool verify(const Proof &proof, const PublicInputs &pi, const VkData &vk_data)
std::pair< Proof, VkData > prove(tracegen::TraceContainer &&trace)
bool check_circuit(tracegen::TraceContainer &&trace)
static std::shared_ptr< AvmVerifier::VerificationKey > create_verification_key(const VkData &vk_data)
Flavor::VerificationKey VerificationKey
UltraKeccakFlavor::VerificationKey VerificationKey
AvmProver::ProverPolynomials compute_polynomials(tracegen::TraceContainer &trace)
void run_check_circuit(AvmFlavor::ProverPolynomials &polys, size_t num_rows, bool skippable_enabled)
std::string flavor_get_label(Container &&container, const Element &element)
VerifierCommitmentKey< Curve > vk
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
std::vector< uint8_t > to_buffer(T const &value)
#define AVM_TRACK_TIME_V(key, body)
#define AVM_TRACK_TIME(key, body)