Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Attributes | List of all members
libsnark::ram_compliance_predicate_handler< ramT > Class Template Reference

#include <ram_compliance_predicate.hpp>

Inheritance diagram for libsnark::ram_compliance_predicate_handler< ramT >:
Inheritance graph
[legend]
Collaboration diagram for libsnark::ram_compliance_predicate_handler< ramT >:
Collaboration graph
[legend]

Public Types

typedef ram_base_field< ramT > FieldT
 
typedef CRH_with_bit_out_gadget< FieldTHashT
 
typedef compliance_predicate_handler< ram_base_field< ramT >, ram_protoboard< ramT > > base_handler
 

Public Member Functions

 ram_compliance_predicate_handler (const ram_architecture_params< ramT > &ap)
 
void generate_r1cs_constraints ()
 
void generate_r1cs_witness (const std::vector< std::shared_ptr< r1cs_pcd_message< FieldT >>> &incoming_message_values, const std::shared_ptr< r1cs_pcd_local_data< FieldT >> &local_data_value)
 
- Public Member Functions inherited from libsnark::compliance_predicate_handler< ram_base_field< ramT >, ram_protoboard< ramT > >
 compliance_predicate_handler (const ram_protoboard< ramT > &pb, const size_t name, const size_t type, const size_t max_arity, const bool relies_on_same_type_inputs, const std::set< size_t > accepted_input_types=std::set< size_t >())
 
virtual void generate_r1cs_witness (const std::vector< std::shared_ptr< r1cs_pcd_message< ram_base_field< ramT > >>> &incoming_message_values, const std::shared_ptr< r1cs_pcd_local_data< ram_base_field< ramT > >> &local_data_value)
 
r1cs_pcd_compliance_predicate< ram_base_field< ramT > > get_compliance_predicate () const
 
r1cs_variable_assignment< ram_base_field< ramT > > get_full_variable_assignment () const
 
std::shared_ptr< r1cs_pcd_message< ram_base_field< ramT > > > get_outgoing_message () const
 
size_t get_arity () const
 
std::shared_ptr< r1cs_pcd_message< ram_base_field< ramT > > > get_incoming_message (const size_t message_idx) const
 
std::shared_ptr< r1cs_pcd_local_data< ram_base_field< ramT > > > get_local_data () const
 
r1cs_variable_assignment< ram_base_field< ramT > > get_witness () const
 

Static Public Member Functions

static std::shared_ptr< r1cs_pcd_message< FieldT > > get_base_case_message (const ram_architecture_params< ramT > &ap, const ram_boot_trace< ramT > &primary_input)
 
static std::shared_ptr< r1cs_pcd_message< FieldT > > get_final_case_msg (const ram_architecture_params< ramT > &ap, const ram_boot_trace< ramT > &primary_input, const size_t time_bound)
 

Public Attributes

std::shared_ptr< ram_pcd_message_variable< ramT > > next
 
std::shared_ptr< ram_pcd_message_variable< ramT > > cur
 
const size_t addr_size
 
const size_t value_size
 
const size_t digest_size
 
size_t message_length
 
- Public Attributes inherited from libsnark::compliance_predicate_handler< ram_base_field< ramT >, ram_protoboard< ramT > >
const size_t name
 
const size_t type
 
const size_t max_arity
 
const bool relies_on_same_type_inputs
 
const std::set< size_t > accepted_input_types
 

Protected Attributes

ram_architecture_params< ramT > ap
 
- Protected Attributes inherited from libsnark::compliance_predicate_handler< ram_base_field< ramT >, ram_protoboard< ramT > >
ram_protoboard< ramT > pb
 
std::shared_ptr< r1cs_pcd_message_variable< ram_base_field< ramT > > > outgoing_message
 
pb_variable< ram_base_field< ramT > > arity
 
std::vector< std::shared_ptr< r1cs_pcd_message_variable< ram_base_field< ramT > > > > incoming_messages
 
std::shared_ptr< r1cs_pcd_local_data_variable< ram_base_field< ramT > > > local_data
 

Detailed Description

template<typename ramT>
class libsnark::ram_compliance_predicate_handler< ramT >

A RAM compliance predicate.

Definition at line 171 of file ram_compliance_predicate.hpp.

Member Typedef Documentation

◆ base_handler

Definition at line 185 of file ram_compliance_predicate.hpp.

◆ FieldT

template<typename ramT >
typedef ram_base_field<ramT> libsnark::ram_compliance_predicate_handler< ramT >::FieldT

Definition at line 180 of file ram_compliance_predicate.hpp.

◆ HashT

Definition at line 181 of file ram_compliance_predicate.hpp.

Constructor & Destructor Documentation

◆ ram_compliance_predicate_handler()

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename ramT >
void libsnark::ram_compliance_predicate_handler< ramT >::generate_r1cs_constraints ( )
virtual

◆ generate_r1cs_witness()

template<typename ramT >
void libsnark::ram_compliance_predicate_handler< ramT >::generate_r1cs_witness ( const std::vector< std::shared_ptr< r1cs_pcd_message< FieldT >>> &  incoming_message_values,
const std::shared_ptr< r1cs_pcd_local_data< FieldT >> &  local_data_value 
)

◆ get_base_case_message()

template<typename ramT >
static std::shared_ptr<r1cs_pcd_message<FieldT> > libsnark::ram_compliance_predicate_handler< ramT >::get_base_case_message ( const ram_architecture_params< ramT > &  ap,
const ram_boot_trace< ramT > &  primary_input 
)
static

◆ get_final_case_msg()

template<typename ramT >
static std::shared_ptr<r1cs_pcd_message<FieldT> > libsnark::ram_compliance_predicate_handler< ramT >::get_final_case_msg ( const ram_architecture_params< ramT > &  ap,
const ram_boot_trace< ramT > &  primary_input,
const size_t  time_bound 
)
static

Member Data Documentation

◆ addr_size

template<typename ramT >
const size_t libsnark::ram_compliance_predicate_handler< ramT >::addr_size

Definition at line 248 of file ram_compliance_predicate.hpp.

◆ ap

template<typename ramT >
ram_architecture_params<ramT> libsnark::ram_compliance_predicate_handler< ramT >::ap
protected

Definition at line 177 of file ram_compliance_predicate.hpp.

◆ cur

template<typename ramT >
std::shared_ptr<ram_pcd_message_variable<ramT> > libsnark::ram_compliance_predicate_handler< ramT >::cur

Definition at line 188 of file ram_compliance_predicate.hpp.

◆ digest_size

template<typename ramT >
const size_t libsnark::ram_compliance_predicate_handler< ramT >::digest_size

Definition at line 250 of file ram_compliance_predicate.hpp.

◆ message_length

template<typename ramT >
size_t libsnark::ram_compliance_predicate_handler< ramT >::message_length

Definition at line 252 of file ram_compliance_predicate.hpp.

◆ next

template<typename ramT >
std::shared_ptr<ram_pcd_message_variable<ramT> > libsnark::ram_compliance_predicate_handler< ramT >::next

Definition at line 187 of file ram_compliance_predicate.hpp.

◆ value_size

template<typename ramT >
const size_t libsnark::ram_compliance_predicate_handler< ramT >::value_size

Definition at line 249 of file ram_compliance_predicate.hpp.


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