Skip to content

Commit f18d701

Browse files
authored
chore(avm): more pilcom compat changes (#10569)
More changes that I need for compatibility between old and new witgen. In particular, I'm using `bb::{{vm_name}}` namespaces versus ``{{name}}Composer/Verifier`` etc because it makes it easier to work with both of them. Also I had to add a prefix to the macros because namespaces don't work with them.
1 parent d132f83 commit f18d701

File tree

112 files changed

+457
-408
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

112 files changed

+457
-408
lines changed

barretenberg/cpp/src/barretenberg/bb/main.cpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,7 @@ void avm_prove(const std::filesystem::path& public_inputs_path,
659659
*/
660660
bool avm_verify(const std::filesystem::path& proof_path, const std::filesystem::path& vk_path)
661661
{
662-
using Commitment = AvmFlavorSettings::Commitment;
662+
using Commitment = bb::avm::AvmFlavorSettings::Commitment;
663663
std::vector<fr> const proof = many_from_buffer<fr>(read_file(proof_path));
664664
std::vector<uint8_t> vk_bytes = read_file(vk_path);
665665
std::vector<fr> vk_as_fields = many_from_buffer<fr>(vk_bytes);
@@ -683,14 +683,14 @@ bool avm_verify(const std::filesystem::path& proof_path, const std::filesystem::
683683
return false;
684684
}
685685

686-
std::array<Commitment, AvmFlavor::NUM_PRECOMPUTED_ENTITIES> precomputed_cmts;
687-
for (size_t i = 0; i < AvmFlavor::NUM_PRECOMPUTED_ENTITIES; i++) {
686+
std::array<Commitment, bb::avm::AvmFlavor::NUM_PRECOMPUTED_ENTITIES> precomputed_cmts;
687+
for (size_t i = 0; i < bb::avm::AvmFlavor::NUM_PRECOMPUTED_ENTITIES; i++) {
688688
// Start at offset 2 and adds 4 (NUM_FRS_COM) fr elements per commitment. Therefore, index = 4 * i + 2.
689689
precomputed_cmts[i] = field_conversion::convert_from_bn254_frs<Commitment>(
690-
vk_span.subspan(AvmFlavor::NUM_FRS_COM * i + 2, AvmFlavor::NUM_FRS_COM));
690+
vk_span.subspan(bb::avm::AvmFlavor::NUM_FRS_COM * i + 2, bb::avm::AvmFlavor::NUM_FRS_COM));
691691
}
692692

693-
auto vk = AvmFlavor::VerificationKey(circuit_size, num_public_inputs, precomputed_cmts);
693+
auto vk = bb::avm::AvmFlavor::VerificationKey(circuit_size, num_public_inputs, precomputed_cmts);
694694

695695
const bool verified = AVM_TRACK_TIME_V("verify/all", avm_trace::Execution::verify(vk, proof));
696696
vinfo("verified: ", verified);

barretenberg/cpp/src/barretenberg/dsl/acir_format/avm_recursion_constraint.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ void create_dummy_vkey_and_proof(Builder& builder,
4141
const std::vector<field_ct>& key_fields,
4242
const std::vector<field_ct>& proof_fields)
4343
{
44-
using Flavor = AvmFlavor;
44+
using Flavor = bb::avm::AvmFlavor;
4545

4646
// Relevant source for proof layout: AvmFlavor::Transcript::serialize_full_transcript()
4747
assert((proof_size - Flavor::NUM_WITNESS_ENTITIES * Flavor::NUM_FRS_COM -
@@ -157,7 +157,7 @@ PairingPointAccumulatorIndices create_avm_recursion_constraints(
157157
{
158158
using Flavor = AvmRecursiveFlavor_<Builder>;
159159
using RecursiveVerificationKey = Flavor::VerificationKey;
160-
using RecursiveVerifier = AvmRecursiveVerifier_<Flavor>;
160+
using RecursiveVerifier = bb::avm::AvmRecursiveVerifier_<Flavor>;
161161

162162
ASSERT(input.proof_type == AVM);
163163

barretenberg/cpp/src/barretenberg/dsl/acir_format/avm_recursion_constraint.test.cpp

+5-4
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,10 @@ using namespace bb::avm_trace;
2929

3030
class AcirAvmRecursionConstraint : public ::testing::Test {
3131
public:
32-
using InnerBuilder = AvmCircuitBuilder;
33-
using InnerProver = AvmProver;
34-
using InnerVerifier = AvmVerifier;
32+
using InnerBuilder = bb::avm::AvmCircuitBuilder;
33+
using InnerProver = bb::avm::AvmProver;
34+
using InnerVerifier = bb::avm::AvmVerifier;
35+
using InnerComposer = bb::avm::AvmComposer;
3536

3637
using OuterProver = UltraProver;
3738
using OuterVerifier = UltraVerifier;
@@ -77,7 +78,7 @@ class AcirAvmRecursionConstraint : public ::testing::Test {
7778
SlabVector<fr> witness;
7879

7980
for (auto& avm_circuit : inner_avm_circuits) {
80-
AvmComposer composer = AvmComposer();
81+
InnerComposer composer = InnerComposer();
8182
InnerProver prover = composer.create_prover(avm_circuit);
8283
InnerVerifier verifier = composer.create_verifier(avm_circuit);
8384

barretenberg/cpp/src/barretenberg/flavor/flavor.hpp

+2
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,9 @@ class UltraKeccakFlavor;
329329
class MegaFlavor;
330330
class MegaZKFlavor;
331331
class TranslatorFlavor;
332+
namespace avm {
332333
class AvmFlavor;
334+
}
333335
template <typename BuilderType> class UltraRecursiveFlavor_;
334336
template <typename BuilderType> class UltraRollupRecursiveFlavor_;
335337
template <typename BuilderType> class MegaRecursiveFlavor_;

barretenberg/cpp/src/barretenberg/vm/avm/generated/circuit_builder.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp"
1616
#include "barretenberg/vm/stats.hpp"
1717

18-
namespace bb {
18+
namespace bb::avm {
1919

2020
AvmCircuitBuilder::ProverPolynomials AvmCircuitBuilder::compute_polynomials() const
2121
{
@@ -914,4 +914,4 @@ bool AvmCircuitBuilder::check_circuit() const
914914
return errors.empty();
915915
}
916916

917-
} // namespace bb
917+
} // namespace bb::avm

barretenberg/cpp/src/barretenberg/vm/avm/generated/circuit_builder.hpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
#include "flavor.hpp"
77
#include "full_row.hpp"
88

9-
namespace bb {
9+
namespace bb::avm {
1010

1111
class AvmCircuitBuilder {
1212
public:
1313
// Do not use this constant directly, use get_circuit_subgroup_size() instead.
1414
constexpr static size_t CIRCUIT_SUBGROUP_SIZE = 1 << 21;
1515

16-
using Flavor = bb::AvmFlavor;
16+
using Flavor = bb::avm::AvmFlavor;
1717
using FF = Flavor::FF;
1818
using Row = AvmFullRow<FF>;
1919
using Polynomial = Flavor::Polynomial;
@@ -44,4 +44,4 @@ class AvmCircuitBuilder {
4444
std::vector<Row> rows;
4545
};
4646

47-
} // namespace bb
47+
} // namespace bb::avm

barretenberg/cpp/src/barretenberg/vm/avm/generated/columns.hpp

+14-16
Large diffs are not rendered by default.

barretenberg/cpp/src/barretenberg/vm/avm/generated/composer.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#include "composer.hpp"
33
#include "barretenberg/vm/stats.hpp"
44

5-
namespace bb {
5+
namespace bb::avm {
66

77
using Flavor = AvmFlavor;
88
void AvmComposer::compute_witness(CircuitConstructor& circuit)
@@ -64,4 +64,4 @@ std::shared_ptr<Flavor::VerificationKey> AvmComposer::compute_verification_key(C
6464
return verification_key;
6565
}
6666

67-
} // namespace bb
67+
} // namespace bb::avm

barretenberg/cpp/src/barretenberg/vm/avm/generated/composer.hpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#include "prover.hpp"
77
#include "verifier.hpp"
88

9-
namespace bb {
9+
namespace bb::avm {
1010

1111
class AvmComposer {
1212
public:
@@ -63,4 +63,4 @@ class AvmComposer {
6363
};
6464
};
6565

66-
} // namespace bb
66+
} // namespace bb::avm

barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// AUTOGENERATED FILE
22
#include "flavor.hpp"
33

4-
namespace bb {
4+
namespace bb::avm {
55

66
AvmFlavor::AllConstRefValues::AllConstRefValues(
77
const RefArray<AvmFlavor::AllConstRefValues::BaseDataType, AvmFlavor::NUM_ALL_ENTITIES>& il)
@@ -2518,4 +2518,4 @@ std::vector<AvmFlavor::VerificationKey::FF> AvmFlavor::VerificationKey::to_field
25182518
return elements;
25192519
}
25202520

2521-
} // namespace bb
2521+
} // namespace bb::avm

barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp

+8-8
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@
9393
// Metaprogramming to concatenate tuple types.
9494
template <typename... input_t> using tuple_cat_t = decltype(std::tuple_cat(std::declval<input_t>()...));
9595

96-
namespace bb {
96+
namespace bb::avm {
9797

9898
class AvmFlavor {
9999
public:
@@ -252,7 +252,7 @@ class AvmFlavor {
252252
public:
253253
using DataType = DataType_;
254254

255-
DEFINE_FLAVOR_MEMBERS(DataType, PRECOMPUTED_ENTITIES)
255+
DEFINE_FLAVOR_MEMBERS(DataType, AVM_PRECOMPUTED_ENTITIES)
256256

257257
RefVector<DataType> get_selectors() { return get_all(); }
258258
RefVector<DataType> get_sigma_polynomials() { return {}; }
@@ -263,23 +263,23 @@ class AvmFlavor {
263263
private:
264264
template <typename DataType> class WireEntities {
265265
public:
266-
DEFINE_FLAVOR_MEMBERS(DataType, WIRE_ENTITIES)
266+
DEFINE_FLAVOR_MEMBERS(DataType, AVM_WIRE_ENTITIES)
267267
};
268268

269269
template <typename DataType> class DerivedWitnessEntities {
270270
public:
271-
DEFINE_FLAVOR_MEMBERS(DataType, DERIVED_WITNESS_ENTITIES)
271+
DEFINE_FLAVOR_MEMBERS(DataType, AVM_DERIVED_WITNESS_ENTITIES)
272272
};
273273

274274
template <typename DataType> class ShiftedEntities {
275275
public:
276-
DEFINE_FLAVOR_MEMBERS(DataType, SHIFTED_ENTITIES)
276+
DEFINE_FLAVOR_MEMBERS(DataType, AVM_SHIFTED_ENTITIES)
277277
};
278278

279279
template <typename DataType, typename PrecomputedAndWitnessEntitiesSuperset>
280280
static auto get_to_be_shifted([[maybe_unused]] PrecomputedAndWitnessEntitiesSuperset& entities)
281281
{
282-
return RefArray<DataType, NUM_SHIFTED_ENTITIES>{ TO_BE_SHIFTED(entities) };
282+
return RefArray<DataType, NUM_SHIFTED_ENTITIES>{ AVM_TO_BE_SHIFTED(entities) };
283283
}
284284

285285
public:
@@ -386,7 +386,7 @@ class AvmFlavor {
386386
using BaseDataType = const FF;
387387
using DataType = BaseDataType&;
388388

389-
DEFINE_FLAVOR_MEMBERS(DataType, ALL_ENTITIES)
389+
DEFINE_FLAVOR_MEMBERS(DataType, AVM_ALL_ENTITIES)
390390

391391
AllConstRefValues(const RefArray<BaseDataType, NUM_ALL_ENTITIES>& il);
392392
};
@@ -513,4 +513,4 @@ class AvmFlavor {
513513
};
514514
};
515515

516-
} // namespace bb
516+
} // namespace bb::avm

barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor_settings.hpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#include "barretenberg/polynomials/barycentric.hpp"
88
#include "barretenberg/polynomials/univariate.hpp"
99

10-
namespace bb {
10+
namespace bb::avm {
1111

1212
class AvmFlavorSettings {
1313
public:
@@ -26,4 +26,4 @@ class AvmFlavorSettings {
2626
using RelationSeparator = FF;
2727
};
2828

29-
} // namespace bb
29+
} // namespace bb::avm

barretenberg/cpp/src/barretenberg/vm/avm/generated/full_row.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace bb::avm {
1313
template <typename FF_> struct AvmFullRow {
1414
using FF = FF_;
1515

16-
FF ALL_ENTITIES;
16+
FF AVM_ALL_ENTITIES;
1717

1818
RefVector<const FF> as_vector() const;
1919
static std::vector<std::string> names();

barretenberg/cpp/src/barretenberg/vm/avm/generated/prover.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#include "barretenberg/sumcheck/sumcheck.hpp"
1313
#include "barretenberg/vm/stats.hpp"
1414

15-
namespace bb {
15+
namespace bb::avm {
1616

1717
using Flavor = AvmFlavor;
1818
using FF = Flavor::FF;
@@ -154,4 +154,4 @@ HonkProof AvmProver::construct_proof()
154154
return export_proof();
155155
}
156156

157-
} // namespace bb
157+
} // namespace bb::avm

barretenberg/cpp/src/barretenberg/vm/avm/generated/prover.hpp

+15-11
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#include "barretenberg/transcript/transcript.hpp"
88
#include "flavor.hpp"
99

10-
namespace bb {
10+
namespace bb::avm {
1111

1212
class AvmProver {
1313
using Flavor = AvmFlavor;
@@ -23,16 +23,20 @@ class AvmProver {
2323

2424
public:
2525
explicit AvmProver(std::shared_ptr<ProvingKey> input_key, std::shared_ptr<PCSCommitmentKey> commitment_key);
26+
AvmProver(AvmProver&& prover) = default;
27+
virtual ~AvmProver() = default;
2628

27-
void execute_preamble_round();
28-
void execute_wire_commitments_round();
29-
void execute_log_derivative_inverse_round();
30-
void execute_log_derivative_inverse_commitments_round();
31-
void execute_relation_check_rounds();
32-
void execute_pcs_rounds();
29+
// Note: all the following methods are virtual to allow Avm2 to tweak the behaviour.
30+
// We can remove this once the transition is done.
31+
virtual void execute_preamble_round();
32+
virtual void execute_wire_commitments_round();
33+
virtual void execute_log_derivative_inverse_round();
34+
virtual void execute_log_derivative_inverse_commitments_round();
35+
virtual void execute_relation_check_rounds();
36+
virtual void execute_pcs_rounds();
3337

34-
HonkProof export_proof();
35-
HonkProof construct_proof();
38+
virtual HonkProof export_proof();
39+
virtual HonkProof construct_proof();
3640

3741
std::shared_ptr<Transcript> transcript = std::make_shared<Transcript>();
3842

@@ -54,8 +58,8 @@ class AvmProver {
5458

5559
std::shared_ptr<PCSCommitmentKey> commitment_key;
5660

57-
private:
61+
protected:
5862
HonkProof proof;
5963
};
6064

61-
} // namespace bb
65+
} // namespace bb::avm

barretenberg/cpp/src/barretenberg/vm/avm/generated/recursive_verifier.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#include <cstddef>
1212
#include <memory>
1313

14-
namespace bb {
14+
namespace bb::avm {
1515

1616
template <typename Flavor>
1717
AvmRecursiveVerifier_<Flavor>::AvmRecursiveVerifier_(
@@ -170,4 +170,5 @@ AvmRecursiveVerifier_<Flavor>::AggregationObject AvmRecursiveVerifier_<Flavor>::
170170
}
171171

172172
template class AvmRecursiveVerifier_<AvmRecursiveFlavor_<UltraCircuitBuilder>>;
173-
} // namespace bb
173+
174+
} // namespace bb::avm

barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/alu.hpp

+1
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,7 @@ template <typename FF> class alu : public Relation<aluImpl<FF>> {
442442
return std::to_string(index);
443443
}
444444

445+
// Subrelation indices constants, to be used in tests.
445446
static constexpr size_t SR_ALU_MULTIPLICATION_FF = 20;
446447
static constexpr size_t SR_ALU_PROD_MUL = 24;
447448
static constexpr size_t SR_DIVISION_RELATION = 31;

barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/binary.hpp

+1
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ template <typename FF> class binary : public Relation<binaryImpl<FF>> {
115115
return std::to_string(index);
116116
}
117117

118+
// Subrelation indices constants, to be used in tests.
118119
static constexpr size_t SR_OP_ID_REL = 1;
119120
static constexpr size_t SR_MEM_TAG_REL = 2;
120121
static constexpr size_t SR_SEL_BIN_CTR_REL = 3;

barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/cmp.hpp

+1
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,7 @@ template <typename FF> class cmp : public Relation<cmpImpl<FF>> {
266266
return std::to_string(index);
267267
}
268268

269+
// Subrelation indices constants, to be used in tests.
269270
static constexpr size_t SR_CMP_RES_IS_BOOL = 3;
270271
static constexpr size_t SR_CMP_OP_EQ = 4;
271272
static constexpr size_t SR_INPUT_DECOMP_1 = 5;

barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/gas.hpp

+1
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ template <typename FF> class gas : public Relation<gasImpl<FF>> {
132132
return std::to_string(index);
133133
}
134134

135+
// Subrelation indices constants, to be used in tests.
135136
static constexpr size_t SR_IS_GAS_ACCOUNTED = 0;
136137
static constexpr size_t SR_L2_GAS_NO_DECREMENT_FAKE_ROW = 4;
137138
static constexpr size_t SR_DA_GAS_NO_DECREMENT_FAKE_ROW = 5;

barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/incl_main_tag_err.hpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#include <cstddef>
77
#include <tuple>
88

9-
namespace bb {
9+
namespace bb::avm {
1010

1111
class incl_main_tag_err_lookup_settings {
1212
public:
@@ -61,4 +61,4 @@ class incl_main_tag_err_relation : public GenericLookupRelation<incl_main_tag_er
6161
};
6262
template <typename FF_> using incl_main_tag_err = GenericLookup<incl_main_tag_err_lookup_settings, FF_>;
6363

64-
} // namespace bb
64+
} // namespace bb::avm

0 commit comments

Comments
 (0)