33 claim.
univariate.opening_pair.challenge.fix_witness();
34 claim.
univariate.opening_pair.evaluation.fix_witness();
36 challenge.fix_witness();
55 goblin.
op_queue->construct_zk_columns();
58 auto goblin_proof = goblin.
prove();
61 auto t_current = goblin.
op_queue->construct_current_ultra_ops_subtable_columns();
62 auto T_prev = goblin.
op_queue->construct_table_columns_up_to_tail();
81 auto [proof, verifier_input, merge_commitments] = create_goblin_prover_output();
86 RecursiveMergeCommitments recursive_merge_commitments;
88 recursive_merge_commitments.t_commitments[idx] =
89 RecursiveCommitment::from_witness(&
builder, merge_commitments.t_commitments[idx]);
90 recursive_merge_commitments.T_prev_commitments[idx] =
91 RecursiveCommitment::from_witness(&
builder, merge_commitments.T_prev_commitments[idx]);
92 recursive_merge_commitments.t_commitments[idx].unset_free_witness_tag();
93 recursive_merge_commitments.T_prev_commitments[idx].unset_free_witness_tag();
110 inputs.ipa_claim = ipa_claim;
123 translator_pairing_points.fix_witness();
128 info(
"Recursive Verifier: num gates = ",
builder.num_gates());
130 auto variables_in_one_gate = graph.get_variables_in_one_gate();
131 EXPECT_EQ(variables_in_one_gate.size(), 0);
CommitmentKey object over a pairing group 𝔾₁.
Commitment commit(PolynomialSpan< const Fr > polynomial, bool has_duplicates_hint=false) const
Uses the ProverSRS to create a commitment to p(X)
Simple verification key class for fixed-size circuits (ECCVM, Translator, AVM).
TranslatorFlavor::VerificationKey TranslatorVerificationKey
GoblinProof prove()
Constuct a full Goblin proof (ECCVM, Translator, merge)
std::shared_ptr< OpQueue > op_queue
ECCVMFlavor::VerificationKey ECCVMVerificationKey
static void construct_and_merge_mock_circuits(Goblin &goblin, const size_t num_circuits=3)
Unified Goblin verifier for both native and recursive verification.
IPA (inner product argument) commitment scheme class.
static constexpr size_t NUM_WIRES
typename Curve::AffineElement Commitment
static constexpr size_t ZK_ULTRA_OPS
static void SetUpTestSuite()
GoblinRecursiveVerifier::MergeVerifier::Commitment RecursiveCommitment
MergeVerifier::Commitment Commitment
static ProverOutput create_goblin_prover_output()
Create a goblin proof and the VM verification keys needed by the goblin recursive verifier.
static void fix_triple_ipa_claim_witnesses(TripleIpaClaim &claim)
GoblinRecursiveVerifier::MergeVerifier::InputCommitments RecursiveMergeCommitments
The data that is propagated on the public inputs of a rollup circuit.
std::filesystem::path bb_crs_path()
void init_file_crs_factory(const std::filesystem::path &path)
TEST_F(BoomerangGoblinRecursiveVerifierTests, graph_description_basic)
Construct and check a goblin recursive verification circuit.
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
UltraStaticAnalyzer StaticAnalyzer
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
DeferredTripleIpaOpening triple_ipa_opening
PairingPoints translator_pairing_points
PairingPoints merge_pairing_points
The compact TripleIPA opening claim: the statement that crosses verifier boundaries.
std::vector< Fr > multilinear_challenge
Commitment unshifted_commitment
Commitment shifted_commitment
OpeningClaim< Curve > univariate
MergeCommitments merge_commitments
Goblin::VerificationKey verifier_input