Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
ecc_transcript_msm_transition_short_relation.hpp
Go to the documentation of this file.
1// === AUDIT STATUS ===
2// internal: { status: Planned, auditors: [], commit: }
3// external_1: { status: not started, auditors: [], commit: }
4// external_2: { status: not started, auditors: [], commit: }
5// =====================
6
7#pragma once
8
12
13namespace bb {
14
28template <typename FF_> class ECCVMTranscriptMsmTransitionShortRelationImpl {
29 public:
30 using FF = FF_;
31
32 // Local subrelation indices; map in order onto base transcript subrelations 27..31.
41
42 static constexpr std::array<size_t, 5> SUBRELATION_PARTIAL_LENGTHS{
43 6, // OFFSET_GENERATOR_X (deg 5)
44 6, // OFFSET_GENERATOR_Y (deg 5)
45 4, // MSM_INFINITY_X_DIFF (deg 3)
46 4, // MSM_INFINITY_Y_SUM (deg 3)
47 5, // MSM_INFINITY_INVERSE (deg 4)
48 };
49 static_assert(NUM_SUBRELATIONS == SUBRELATION_PARTIAL_LENGTHS.size());
50
54 template <typename AllEntities> inline static bool skip(const AllEntities& in)
55 {
56 return in.transcript_msm_transition.is_zero();
57 }
58
59 template <typename ContainerOverSubrelations, typename AllEntities, typename Parameters>
60 static void accumulate(ContainerOverSubrelations& accumulator,
61 const AllEntities& in,
62 const Parameters& params,
63 const FF& scaling_factor);
64};
65
66template <typename FF>
68
69} // namespace bb
The msm_transition-gated tail of the ECCVM transcript relation, split out for prover-side skipping.
static void accumulate(ContainerOverSubrelations &accumulator, const AllEntities &in, const Parameters &params, const FF &scaling_factor)
static bool skip(const AllEntities &in)
Skip when msm_transition vanishes on both rows of the edge-pair — every subrelation here is gated by ...
A wrapper for Relations to expose methods used by the Sumcheck prover or verifier to add the contribu...
Entry point for Barretenberg command-line interface.
Definition api.hpp:5