22 using type =
typename Flavor::NativeFlavor;
33template <
typename Flavor,
typename Builder>
46 return verification_key.hash();
50template <
typename Flavor,
typename Builder>
54 info(
"compute_vk_hash: Not implemented for this Flavor/Builder, returning 0.");
61 for (
auto& coeff : polynomial) {
62 if (!coeff.is_zero()) {
76 auto& prover_polys = prover_instance->prover_polynomials;
77 std::vector<std::string> zero_polys;
78 for (
auto [label, poly] :
zip_view(prover_polys.get_labels(), prover_polys.get_all())) {
80 zero_polys.emplace_back(label);
83 if (zero_polys.empty()) {
84 info(
"\nProving Key Inspector: All prover polynomials are non-zero.");
86 info(
"\nProving Key Inspector: The following prover polynomials are identically zero: ");
87 for (
const std::string& label : zero_polys) {
A ProverInstance is normally constructed from a finalized circuit and it contains all the information...
Base class templates for structures that contain data parameterized by the fundamental polynomials of...
UltraKeccakFlavor::VerificationKey VerificationKey
void inspect_prover_instance(auto &prover_instance)
Utility for indicating which polynomials in a decider proving key are identically zero.
bool is_non_zero(auto &polynomial)
uint256_t compute_vk_hash(const Builder &circuit_in)
Compute the hash of the verification key that results from constructing a proving key from the given ...
typename Flavor::NativeFlavor type