2#include "barretenberg/dsl/types.hpp"
3#include "barretenberg/plonk/proof_system/verification_key/verification_key.hpp"
48 static constexpr size_t NUM_AGGREGATION_ELEMENTS = 4;
50 static constexpr size_t AGGREGATION_OBJECT_SIZE =
51 NUM_AGGREGATION_ELEMENTS * NUM_QUOTIENT_PARTS;
52 std::vector<uint32_t> key;
53 std::vector<uint32_t>
proof;
54 std::vector<uint32_t> public_inputs;
57 std::array<uint32_t, AGGREGATION_OBJECT_SIZE> input_aggregation_object;
59 std::array<uint32_t, AGGREGATION_OBJECT_SIZE> output_aggregation_object;
64 std::array<uint32_t, AGGREGATION_OBJECT_SIZE> nested_aggregation_object;
69std::array<uint32_t, RecursionConstraint::AGGREGATION_OBJECT_SIZE> create_recursion_constraints(
72 std::array<uint32_t, RecursionConstraint::AGGREGATION_OBJECT_SIZE> input_aggregation_object,
73 std::array<uint32_t, RecursionConstraint::AGGREGATION_OBJECT_SIZE> nested_aggregation_object,
74 bool has_valid_witness_assignments =
false);
76std::vector<barretenberg::fr> export_key_in_recursion_format(std::shared_ptr<verification_key>
const& vkey);
77std::vector<barretenberg::fr> export_dummy_key_in_recursion_format(
const PolynomialManifest& polynomial_manifest,
78 bool contains_recursive_proof = 0);
81std::vector<barretenberg::fr> export_dummy_transcript_in_recursion_format(
const transcript::Manifest& manifest,
82 const bool contains_recursive_proof);
83size_t recursion_proof_size_without_public_inputs();
98 using serialize::read;
99 read(buf, constraint.key);
100 read(buf, constraint.proof);
101 read(buf, constraint.public_inputs);
102 read(buf, constraint.key_hash);
103 read(buf, constraint.input_aggregation_object);
104 read(buf, constraint.output_aggregation_object);
105 read(buf, constraint.nested_aggregation_object);
108template <
typename B>
inline void write(B& buf, RecursionConstraint
const& constraint)
110 using serialize::write;
111 write(buf, constraint.key);
112 write(buf, constraint.proof);
113 write(buf, constraint.public_inputs);
114 write(buf, constraint.key_hash);
115 write(buf, constraint.input_aggregation_object);
116 write(buf, constraint.output_aggregation_object);
117 write(buf, constraint.nested_aggregation_object);
Definition: affine_element.hpp:11
Definition: ultra_circuit_builder.hpp:31
Definition: polynomial_manifest.hpp:142
Definition: manifest.hpp:11
Definition: transcript_wrappers.hpp:13
Definition: widget.bench.cpp:13