Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
libsnark
reductions
ram_to_r1cs
gadgets
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
16
#include <
libsnark/reductions/ram_to_r1cs/gadgets/trace_lines.hpp
>
17
18
namespace
libsnark
19
{
20
21
template
<
typename
ramT>
22
class
memory_checker_gadget
:
public
ram_gadget_base
<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
:
41
memory_line_variable_gadget<ramT>
line1
;
42
memory_line_variable_gadget<ramT>
line2
;
43
44
memory_checker_gadget
(
45
ram_protoboard<ramT>
&pb,
46
const
size_t
timestamp_size,
47
const
memory_line_variable_gadget<ramT>
&
line1
,
48
const
memory_line_variable_gadget<ramT>
&
line2
,
49
const
std::string &annotation_prefix =
""
);
50
51
void
generate_r1cs_constraints
();
52
void
generate_r1cs_witness
();
53
};
54
55
}
// namespace libsnark
56
57
#include <
libsnark/reductions/ram_to_r1cs/gadgets/memory_checker_gadget.tcc
>
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
Generated on Wed Jan 25 2023 11:05:58 for Clearmatics Libsnark by
1.8.17