94 auto [proof,
vk] = construct_client_ivc_prover_output();
98 ClientIVCVerifier verifier{ &tube_builder,
vk.mega };
102 CIVCRecVerifierOutput client_ivc_rec_verifier_output = verifier.verify(stdlib_proof);
107 inputs.
pairing_inputs = client_ivc_rec_verifier_output.points_accumulator;
108 inputs.
ipa_claim = client_ivc_rec_verifier_output.opening_claim;
113 tube_builder.
ipa_proof = client_ivc_rec_verifier_output.ipa_proof.get_value();
115 info(
"ClientIVC Recursive Verifier: num prefinalized gates = ", tube_builder.
num_gates);
117 EXPECT_EQ(tube_builder.
failed(),
false) << tube_builder.
err();
132 native_verifier.template verify_proof<bb::RollupIO>(native_tube_proof, tube_prover.proving_key->ipa_proof)
134 EXPECT_TRUE(native_result);
141 UltraRecursiveVerifier base_verifier{ &base_builder, stdlib_tube_vk_and_hash };
143 info(
"Tube UH Recursive Verifier: num prefinalized gates = ", base_builder.
num_gates);
153 base_builder.
ipa_proof = tube_prover.proving_key->ipa_proof;
154 EXPECT_EQ(base_builder.
failed(),
false) << base_builder.
err();
160 ipa_transcript->load_proof(base_proving_key->ipa_proof);
162 ipa_verification_key, output.
ipa_claim.get_native_opening_claim(), ipa_transcript);
169 auto get_blocks = [](
size_t num_app_circuits)
171 auto [proof, ivc_vk] = construct_client_ivc_prover_output(num_app_circuits);
174 ClientIVCVerifier verifier{ &tube_builder, ivc_vk.mega };
177 auto client_ivc_rec_verifier_output = verifier.verify(stdlib_proof);
181 inputs.
pairing_inputs = client_ivc_rec_verifier_output.points_accumulator;
182 inputs.
ipa_claim = client_ivc_rec_verifier_output.opening_claim;
186 tube_builder.
ipa_proof = client_ivc_rec_verifier_output.ipa_proof.get_value();
188 info(
"ClientIVC Recursive Verifier: num prefinalized gates = ", tube_builder.
num_gates);
190 EXPECT_EQ(tube_builder.
failed(),
false) << tube_builder.
err();
197 return { tube_builder.
blocks, tube_vk };
200 auto [blocks_4, verification_key_4] = get_blocks(1);
201 auto [blocks_5, verification_key_5] = get_blocks(2);
203 compare_ultra_blocks_and_verification_keys<NativeFlavor>({ blocks_4, blocks_5 },
204 { verification_key_4, verification_key_5 });