13template <
typename FF_>
class txImpl {
17 static constexpr std::array<size_t, 56>
SUBRELATION_PARTIAL_LENGTHS = { 3, 4, 3, 4, 3, 3, 3, 3, 3, 4, 7, 6, 3, 5,
18 6, 4, 3, 6, 6, 3, 3, 4, 4, 4, 4, 2, 4, 5,
19 3, 3, 3, 4, 5, 4, 4, 4, 4, 6, 4, 3, 4, 2,
20 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 };
22 template <
typename AllEntities>
inline static bool skip(
const AllEntities& in)
26 return (in.get(C::tx_sel)).is_zero();
29 template <
typename ContainerOverSubrelations,
typename AllEntities>
30 void static accumulate(ContainerOverSubrelations& evals,
31 const AllEntities& in,
33 [[maybe_unused]]
const FF& scaling_factor);
36template <
typename FF>
class tx :
public Relation<txImpl<FF>> {
38 static constexpr const std::string_view
NAME =
"tx";
44 return "NO_EXTRANEOUS_ROWS";
46 return "SEL_ON_FIRST_ROW";
48 return "NO_EARLY_END";
50 return "START_WITH_SEL";
52 return "START_FOLLOWS_END";
54 return "PHASE_VALUE_CONTINUITY";
56 return "INCR_PHASE_VALUE_ON_END";
58 return "REM_COUNT_IS_ZERO";
60 return "REM_COUNT_IS_ONE";
62 return "READ_PI_LENGTH_SEL";
64 return "ONE_SHOT_REMAINING_PHASE_COUNTER_ONE";
66 return "DECR_REM_PHASE_EVENTS";
68 return "INCR_READ_PI_OFFSET";
70 return "MAX_NOTE_HASH_WRITES_REACHED";
72 return "MAX_NULLIFIER_WRITES_REACHED";
74 return "MAX_L2_L1_MSG_WRITES_REACHED";
76 return "UPDATE_NUM_L2_TO_L1_MSGS";
80 return "TEARDOWN_GETS_FEE";
82 return "FEE_ZERO_UNLESS_COLLECT_FEE_OR_TEARDOWN";
84 return "NOTE_HASH_TREE_ROOT_IMMUTABLE_IN_PADDING";
86 return "PAD_NOTE_HASH_TREE";
88 return "NOTE_HASHES_EMITTED_IMMUTABLE_IN_PADDING";
90 return "NULLIFIER_TREE_ROOT_IMMUTABLE_IN_PADDING";
92 return "PAD_NULLIFIER_TREE";
94 return "NULLIFIERS_EMITTED_IMMUTABLE_IN_PADDING";
A wrapper for Relations to expose methods used by the Sumcheck prover or verifier to add the contribu...
static constexpr size_t SR_NO_EARLY_END
static constexpr size_t SR_MAX_NOTE_HASH_WRITES_REACHED
static constexpr size_t SR_SEL_ON_FIRST_ROW
static constexpr size_t SR_DECR_REM_PHASE_EVENTS
static std::string get_subrelation_label(size_t index)
static constexpr size_t SR_INCR_PHASE_VALUE_ON_END
static constexpr size_t SR_PHASE_VALUE_CONTINUITY
static constexpr size_t SR_READ_PI_LENGTH_SEL
static constexpr size_t SR_NO_EXTRANEOUS_ROWS
static constexpr size_t SR_UPDATE_NUM_L2_TO_L1_MSGS
static constexpr size_t SR_NOTE_HASHES_EMITTED_IMMUTABLE_IN_PADDING
static constexpr size_t SR_ONE_SHOT_REMAINING_PHASE_COUNTER_ONE
static constexpr size_t SR_NOTE_HASH_TREE_ROOT_IMMUTABLE_IN_PADDING
static constexpr size_t SR_START_FOLLOWS_END
static constexpr size_t SR_NULLIFIER_TREE_ROOT_IMMUTABLE_IN_PADDING
static constexpr size_t SR_MAX_NULLIFIER_WRITES_REACHED
static constexpr size_t SR_PAD_NOTE_HASH_TREE
static constexpr size_t SR_REM_COUNT_IS_ONE
static constexpr size_t SR_NULLIFIERS_EMITTED_IMMUTABLE_IN_PADDING
static constexpr size_t SR_INCR_READ_PI_OFFSET
static constexpr size_t SR_TEARDOWN_GETS_FEE
static constexpr size_t SR_MAX_L2_L1_MSG_WRITES_REACHED
static constexpr size_t SR_FEE_ZERO_UNLESS_COLLECT_FEE_OR_TEARDOWN
static constexpr size_t SR_REM_COUNT_IS_ZERO
static constexpr size_t SR_PAD_NULLIFIER_TREE
static constexpr size_t SR_START_WITH_SEL
static constexpr size_t SR_COMPUTE_FEE
static constexpr const std::string_view NAME
static bool skip(const AllEntities &in)
static constexpr std::array< size_t, 56 > SUBRELATION_PARTIAL_LENGTHS
static void accumulate(ContainerOverSubrelations &evals, const AllEntities &in, const RelationParameters< FF > &, const FF &scaling_factor)
std::string to_string(bb::avm2::ValueTag tag)
Container for parameters used by the grand product (permutation, lookup) Honk relations.