Skip to content

Commit

Permalink
remove pi folding and add a test
Browse files Browse the repository at this point in the history
  • Loading branch information
ledwards2225 committed Jun 18, 2024
1 parent 109624f commit 22db0c5
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 16 deletions.
33 changes: 33 additions & 0 deletions barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy.test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,34 @@ template <typename Flavor> class ProtoGalaxyTests : public testing::Test {
}
}

/**
* @brief Testing one valid round of folding followed by the decider.
* @brief For additional robustness we give one of the circuits more public inputs than the other
*
*/
static void test_full_protogalaxy_simple()
{
// Construct a first circuit with some public inputs
Builder builder1;
construct_circuit(builder1);
bb::MockCircuits::add_arithmetic_gates_with_public_inputs(builder1, /*num_gates=*/4);

// Construct a second circuit with no public inputs
Builder builder2;
construct_circuit(builder2);

// Construct the prover/verifier instances for each
TupleOfInstances instances;
construct_prover_and_verifier_instance(instances, builder1);
construct_prover_and_verifier_instance(instances, builder2);

// Perform prover and verifier folding
auto [prover_accumulator, verifier_accumulator] = fold_and_verify(get<0>(instances), get<1>(instances));
check_accumulator_target_sum_manual(prover_accumulator, true);

decide_and_verify(prover_accumulator, verifier_accumulator, true);
}

/**
* @brief Testing two valid rounds of folding followed by the decider.
*
Expand Down Expand Up @@ -489,6 +517,11 @@ TYPED_TEST(ProtoGalaxyTests, CombineAlpha)
TestFixture::test_combine_alpha();
}

TYPED_TEST(ProtoGalaxyTests, FullProtogalaxySimple)
{
TestFixture::test_full_protogalaxy_simple();
}

TYPED_TEST(ProtoGalaxyTests, FullProtogalaxyTest)
{
TestFixture::test_full_protogalaxy();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,22 +104,6 @@ std::shared_ptr<typename ProverInstances::Instance> ProtoGalaxyProver_<ProverIns
});
}

// Fold the public inputs and send to the verifier
size_t el_idx = 0;
for (auto& el : next_accumulator->proving_key.public_inputs) {
el *= lagranges[0];
size_t inst = 0;
for (size_t inst_idx = 1; inst_idx < ProverInstances::NUM; inst_idx++) {
auto& instance = instances[inst_idx];
// TODO(https://github.com/AztecProtocol/barretenberg/issues/830)
if (instance->proving_key.num_public_inputs >= next_accumulator->proving_key.num_public_inputs) {
el += instance->proving_key.public_inputs[el_idx] * lagranges[inst];
inst++;
};
}
el_idx++;
}

// Evaluate the combined batching α_i univariate at challenge to obtain next α_i and send it to the
// verifier, where i ∈ {0,...,NUM_SUBRELATIONS - 1}
auto& folded_alphas = next_accumulator->alphas;
Expand Down

0 comments on commit 22db0c5

Please sign in to comment.