107 InnerProver inner_prover(proving_key, verification_key);
112 auto stdlib_vk_and_hash =
115 verifier.
key->vk_and_hash->vk->num_public_inputs.fix_witness();
116 verifier.key->vk_and_hash->vk->pub_inputs_offset.fix_witness();
118 verifier.key->vk_and_hash->vk->log_circuit_size.fix_witness();
120 StdlibProof stdlib_inner_proof(outer_circuit, inner_proof);
121 VerifierOutput output = verifier.template verify_proof<DefaultIO<OuterBuilder>>(stdlib_inner_proof);
123 pairing_points.
P0.x.fix_witness();
124 pairing_points.P0.y.fix_witness();
125 pairing_points.P1.x.fix_witness();
126 pairing_points.P1.y.fix_witness();
129 outer_circuit.ipa_proof = output.
ipa_proof.get_value();
131 info(
"Recursive Verifier: num gates = ", outer_circuit.get_estimated_num_finalized_gates());
134 EXPECT_EQ(outer_circuit.failed(),
false) << outer_circuit.err();
136 outer_circuit.finalize_circuit(
false);
138 auto connected_components = graph.find_connected_components();
139 EXPECT_EQ(connected_components.size(), 2);
140 info(
"Connected components: ", connected_components.size());
141 auto variables_in_one_gate = graph.show_variables_in_one_gate(outer_circuit);
142 EXPECT_EQ(variables_in_one_gate.size(), 2);