Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
memory_checker_gadget.hpp
Go to the documentation of this file.
1 
13 #ifndef MEMORY_CHECKER_GADGET_HPP_
14 #define MEMORY_CHECKER_GADGET_HPP_
15 
17 
18 namespace libsnark
19 {
20 
21 template<typename ramT>
23 {
24 private:
25  typedef ram_base_field<ramT> FieldT;
26 
27  pb_variable<FieldT> timestamps_leq;
28  pb_variable<FieldT> timestamps_less;
29  std::shared_ptr<comparison_gadget<FieldT>> compare_timestamps;
30 
31  pb_variable<FieldT> addresses_eq;
32  pb_variable<FieldT> addresses_leq;
33  pb_variable<FieldT> addresses_less;
34  std::shared_ptr<comparison_gadget<FieldT>> compare_addresses;
35 
36  pb_variable<FieldT> loose_contents_after1_equals_contents_before2;
37  pb_variable<FieldT> loose_contents_before2_equals_zero;
38  pb_variable<FieldT> loose_timestamp2_is_zero;
39 
40 public:
43 
46  const size_t timestamp_size,
49  const std::string &annotation_prefix = "");
50 
52  void generate_r1cs_witness();
53 };
54 
55 } // namespace libsnark
56 
58 
59 #endif // MEMORY_CHECKER_GADGET_HPP_
libsnark::memory_line_variable_gadget
Definition: trace_lines.hpp:33
libsnark::ram_protoboard
typename ramT::protoboard_type ram_protoboard
Definition: ram_params.hpp:46
libsnark::memory_checker_gadget::line1
memory_line_variable_gadget< ramT > line1
Definition: memory_checker_gadget.hpp:41
memory_checker_gadget.tcc
libsnark
Definition: accumulation_vector.hpp:18
libsnark::ram_base_field
typename ramT::base_field_type ram_base_field
Definition: ram_params.hpp:40
trace_lines.hpp
libsnark::memory_checker_gadget::generate_r1cs_witness
void generate_r1cs_witness()
libsnark::memory_checker_gadget::generate_r1cs_constraints
void generate_r1cs_constraints()
libsnark::pb_variable
Definition: pb_variable.hpp:24
libsnark::memory_checker_gadget::memory_checker_gadget
memory_checker_gadget(ram_protoboard< ramT > &pb, const size_t timestamp_size, const memory_line_variable_gadget< ramT > &line1, const memory_line_variable_gadget< ramT > &line2, const std::string &annotation_prefix="")
libsnark::memory_checker_gadget
Definition: memory_checker_gadget.hpp:22
libsnark::ram_gadget_base
typename ramT::gadget_base_type ram_gadget_base
Definition: ram_params.hpp:48
libsnark::memory_checker_gadget::line2
memory_line_variable_gadget< ramT > line2
Definition: memory_checker_gadget.hpp:42