Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
ecc_bools_relation.hpp
Go to the documentation of this file.
1
// === AUDIT STATUS ===
2
// internal: { status: Complete, auditors: [Raju], commit: 2a49eb6 }
3
// external_1: { status: not started, auditors: [], commit: }
4
// external_2: { status: not started, auditors: [], commit: }
5
// =====================
6
7
#pragma once
8
9
#include "
barretenberg/ecc/curves/bn254/g1.hpp
"
10
#include "
barretenberg/ecc/curves/grumpkin/grumpkin.hpp
"
11
#include "
barretenberg/relations/relation_types.hpp
"
12
13
namespace
bb
{
14
22
template
<
typename
FF_>
class
ECCVMBoolsRelationImpl
{
23
public
:
24
using
FF
= FF_;
25
26
// Named subrelation indices — matches SUBRELATION_PARTIAL_LENGTHS ordering.
27
// Each constrains a specific column to be boolean: col * (col - 1) == 0.
28
enum
SubrelationIndex
:
size_t
{
29
BOOL_Q_EQ
= 0,
30
BOOL_Q_ADD
= 1,
31
BOOL_Q_MUL
= 2,
32
BOOL_Q_RESET_ACCUMULATOR
= 3,
33
BOOL_MSM_TRANSITION
= 4,
34
BOOL_ACCUMULATOR_NOT_EMPTY
= 5,
35
BOOL_Z1_ZERO
= 6,
36
BOOL_Z2_ZERO
= 7,
37
BOOL_ADD_X_EQUAL
= 8,
38
BOOL_ADD_Y_EQUAL
= 9,
39
BOOL_BASE_INFINITY
= 10,
40
BOOL_MSM_INFINITY
= 11,
41
BOOL_MSM_COUNT_ZERO_AT_TRANSITION
= 12,
42
BOOL_MSM_TRANSITION_MSM
= 13,
43
BOOL_PRECOMPUTE_POINT_TRANSITION
= 14,
44
BOOL_MSM_ADD
= 15,
45
BOOL_MSM_DOUBLE
= 16,
46
BOOL_MSM_SKEW
= 17,
47
BOOL_PRECOMPUTE_SELECT
= 18,
48
BOOL_MSM_ADD1
= 19,
49
BOOL_MSM_ADD2
= 20,
50
BOOL_MSM_ADD3
= 21,
51
BOOL_MSM_ADD4
= 22,
52
NUM_SUBRELATIONS
,
53
};
54
55
static
constexpr
std::array<size_t, 23>
SUBRELATION_PARTIAL_LENGTHS
{
56
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
57
};
58
static_assert
(
NUM_SUBRELATIONS
==
SUBRELATION_PARTIAL_LENGTHS
.size());
59
60
template
<
typename
ContainerOverSubrelations,
typename
AllEntities,
typename
Parameters>
61
static
void
accumulate
(ContainerOverSubrelations& accumulator,
62
const
AllEntities& in,
63
const
Parameters&
/* unused */
,
64
const
FF
& scaling_factor);
65
};
66
67
template
<
typename
FF>
using
ECCVMBoolsRelation
=
Relation<ECCVMBoolsRelationImpl<FF>
>;
68
69
}
// namespace bb
bb::ECCVMBoolsRelationImpl
ECCVMBoolsRelationImpl evaluates the correctness of ECCVM boolean checks.
Definition
ecc_bools_relation.hpp:22
bb::ECCVMBoolsRelationImpl::accumulate
static void accumulate(ContainerOverSubrelations &accumulator, const AllEntities &in, const Parameters &, const FF &scaling_factor)
ECCVMBoolsRelationImpl evaluates the correctness of ECCVM boolean checks.
Definition
ecc_bools_relation_impl.hpp:27
bb::ECCVMBoolsRelationImpl::SubrelationIndex
SubrelationIndex
Definition
ecc_bools_relation.hpp:28
bb::ECCVMBoolsRelationImpl::BOOL_ACCUMULATOR_NOT_EMPTY
@ BOOL_ACCUMULATOR_NOT_EMPTY
Definition
ecc_bools_relation.hpp:34
bb::ECCVMBoolsRelationImpl::BOOL_MSM_ADD3
@ BOOL_MSM_ADD3
Definition
ecc_bools_relation.hpp:50
bb::ECCVMBoolsRelationImpl::BOOL_Q_MUL
@ BOOL_Q_MUL
Definition
ecc_bools_relation.hpp:31
bb::ECCVMBoolsRelationImpl::BOOL_MSM_ADD1
@ BOOL_MSM_ADD1
Definition
ecc_bools_relation.hpp:48
bb::ECCVMBoolsRelationImpl::BOOL_MSM_TRANSITION_MSM
@ BOOL_MSM_TRANSITION_MSM
Definition
ecc_bools_relation.hpp:42
bb::ECCVMBoolsRelationImpl::BOOL_Q_ADD
@ BOOL_Q_ADD
Definition
ecc_bools_relation.hpp:30
bb::ECCVMBoolsRelationImpl::BOOL_ADD_Y_EQUAL
@ BOOL_ADD_Y_EQUAL
Definition
ecc_bools_relation.hpp:38
bb::ECCVMBoolsRelationImpl::BOOL_MSM_DOUBLE
@ BOOL_MSM_DOUBLE
Definition
ecc_bools_relation.hpp:45
bb::ECCVMBoolsRelationImpl::BOOL_MSM_ADD4
@ BOOL_MSM_ADD4
Definition
ecc_bools_relation.hpp:51
bb::ECCVMBoolsRelationImpl::BOOL_Q_EQ
@ BOOL_Q_EQ
Definition
ecc_bools_relation.hpp:29
bb::ECCVMBoolsRelationImpl::BOOL_PRECOMPUTE_POINT_TRANSITION
@ BOOL_PRECOMPUTE_POINT_TRANSITION
Definition
ecc_bools_relation.hpp:43
bb::ECCVMBoolsRelationImpl::BOOL_MSM_INFINITY
@ BOOL_MSM_INFINITY
Definition
ecc_bools_relation.hpp:40
bb::ECCVMBoolsRelationImpl::BOOL_MSM_TRANSITION
@ BOOL_MSM_TRANSITION
Definition
ecc_bools_relation.hpp:33
bb::ECCVMBoolsRelationImpl::BOOL_MSM_ADD2
@ BOOL_MSM_ADD2
Definition
ecc_bools_relation.hpp:49
bb::ECCVMBoolsRelationImpl::BOOL_Q_RESET_ACCUMULATOR
@ BOOL_Q_RESET_ACCUMULATOR
Definition
ecc_bools_relation.hpp:32
bb::ECCVMBoolsRelationImpl::BOOL_PRECOMPUTE_SELECT
@ BOOL_PRECOMPUTE_SELECT
Definition
ecc_bools_relation.hpp:47
bb::ECCVMBoolsRelationImpl::BOOL_Z1_ZERO
@ BOOL_Z1_ZERO
Definition
ecc_bools_relation.hpp:35
bb::ECCVMBoolsRelationImpl::NUM_SUBRELATIONS
@ NUM_SUBRELATIONS
Definition
ecc_bools_relation.hpp:52
bb::ECCVMBoolsRelationImpl::BOOL_BASE_INFINITY
@ BOOL_BASE_INFINITY
Definition
ecc_bools_relation.hpp:39
bb::ECCVMBoolsRelationImpl::BOOL_MSM_COUNT_ZERO_AT_TRANSITION
@ BOOL_MSM_COUNT_ZERO_AT_TRANSITION
Definition
ecc_bools_relation.hpp:41
bb::ECCVMBoolsRelationImpl::BOOL_ADD_X_EQUAL
@ BOOL_ADD_X_EQUAL
Definition
ecc_bools_relation.hpp:37
bb::ECCVMBoolsRelationImpl::BOOL_MSM_SKEW
@ BOOL_MSM_SKEW
Definition
ecc_bools_relation.hpp:46
bb::ECCVMBoolsRelationImpl::BOOL_Z2_ZERO
@ BOOL_Z2_ZERO
Definition
ecc_bools_relation.hpp:36
bb::ECCVMBoolsRelationImpl::BOOL_MSM_ADD
@ BOOL_MSM_ADD
Definition
ecc_bools_relation.hpp:44
bb::ECCVMBoolsRelationImpl::SUBRELATION_PARTIAL_LENGTHS
static constexpr std::array< size_t, 23 > SUBRELATION_PARTIAL_LENGTHS
Definition
ecc_bools_relation.hpp:55
bb::ECCVMBoolsRelationImpl::FF
FF_ FF
Definition
ecc_bools_relation.hpp:24
bb::Relation
A wrapper for Relations to expose methods used by the Sumcheck prover or verifier to add the contribu...
Definition
relation_types.hpp:96
grumpkin.hpp
g1.hpp
bb
Entry point for Barretenberg command-line interface.
Definition
api.hpp:5
relation_types.hpp
bb::field< bb::Bn254FrParams >
src
barretenberg
relations
ecc_vm
ecc_bools_relation.hpp
Generated by
1.9.8