barretenberg
Loading...
Searching...
No Matches
Classes | Public Types | Static Public Attributes | List of all members
proof_system::honk::flavor::UltraRecursive_< BuilderType > Class Template Reference

The recursive counterpart to the "native" Ultra flavor. More...

#include <ultra_recursive.hpp>

Classes

class  AllValues
 A field element for each entity of the flavor. These entities represent the prover polynomials evaluated at one point. More...
 
class  CommitmentLabels
 A container for commitment labels. More...
 
class  VerificationKey
 The verification key is responsible for storing the the commitments to the precomputed (non-witnessk) polynomials used by the verifier. More...
 
class  VerifierCommitments
 

Public Types

using CircuitBuilder = BuilderType
 
using Curve = plonk::stdlib::bn254< CircuitBuilder >
 
using GroupElement = typename Curve::Element
 
using Commitment = typename Curve::Element
 
using CommitmentHandle = typename Curve::Element
 
using FF = typename Curve::ScalarField
 
using NativeVerificationKey = flavor::Ultra::VerificationKey
 
using VerifierCommitmentKey = pcs::VerifierCommitmentKey< Curve >
 
using Relations = std::tuple< proof_system::UltraArithmeticRelation< FF >, proof_system::UltraPermutationRelation< FF >, proof_system::LookupRelation< FF >, proof_system::GenPermSortRelation< FF >, proof_system::EllipticRelation< FF >, proof_system::AuxiliaryRelation< FF > >
 
using SumcheckTupleOfTuplesOfUnivariates = decltype(create_sumcheck_tuple_of_tuples_of_univariates< Relations >())
 
using TupleOfArraysOfValues = decltype(create_tuple_of_arrays_of_values< Relations >())
 
using Transcript = proof_system::plonk::stdlib::recursion::honk::Transcript< CircuitBuilder >
 

Static Public Attributes

static constexpr size_t NUM_WIRES = flavor::Ultra::NUM_WIRES
 
static constexpr size_t NUM_ALL_ENTITIES = 43
 
static constexpr size_t NUM_PRECOMPUTED_ENTITIES = 25
 
static constexpr size_t NUM_WITNESS_ENTITIES = 7
 
static constexpr size_t MAX_PARTIAL_RELATION_LENGTH = compute_max_partial_relation_length<Relations>()
 
static constexpr size_t BATCHED_RELATION_PARTIAL_LENGTH = MAX_PARTIAL_RELATION_LENGTH + 1
 
static constexpr size_t NUM_RELATIONS = std::tuple_size<Relations>::value
 

Detailed Description

template<typename BuilderType>
class proof_system::honk::flavor::UltraRecursive_< BuilderType >

The recursive counterpart to the "native" Ultra flavor.

This flavor can be used to instantiate a recursive Ultra Honk verifier for a proof created using the conventional Ultra flavor. It is similar in structure to its native counterpart with two main differences: 1) the curve types are stdlib types (e.g. field_t instead of field) and 2) it does not specify any Prover related types (e.g. Polynomial, ProverUnivariates, etc.) since we do not emulate prover computation in circuits, i.e. it only makes sense to instantiate a Verifier with this flavor.

Note
Unlike conventional flavors, "recursive" flavors are templated by a builder (much like native vs stdlib types). This is because the flavor itself determines the details of the underlying verifier algorithm (i.e. the set of relations), while the Builder determines the arithmetization of that algorithm into a circuit.
Template Parameters
BuilderTypeDetermines the arithmetization of the verifier circuit defined based on this flavor.

The documentation for this class was generated from the following files: