18 3, 3, 3, 3, 4, 4, 3, 3, 3, 3, 3, 2, 2, 3, 2, 2, 3, 2, 2, 3, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2,
19 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
20 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
21 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
22 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 3, 4, 3, 3, 3, 3, 4, 3
25 template <
typename AllEntities>
inline static bool skip(
const AllEntities& in)
29 return ((in.get(C::keccakf1600_sel) + in.get(C::keccakf1600_last))).is_zero();
32 template <
typename ContainerOverSubrelations,
typename AllEntities>
33 void static accumulate(ContainerOverSubrelations& evals,
34 const AllEntities& in,
36 [[maybe_unused]]
const FF& scaling_factor);
41 static constexpr const std::string_view
NAME =
"keccakf1600";
47 return "SEL_NO_ERROR";
49 return "KECCAK_SEL_ROUND_NON_ZERO";
51 return "KECCAK_ROUND_INCREMENT";
53 return "THETA_XOR_ROW_MSB_0_BOOLEAN";
55 return "THETA_XOR_ROW_0_DECOMPOSITION";
57 return "THETA_XOR_ROW_ROTL1_0";
59 return "THETA_XOR_ROW_MSB_1_BOOLEAN";
61 return "THETA_XOR_ROW_1_DECOMPOSITION";
63 return "THETA_XOR_ROW_ROTL1_1";
65 return "THETA_XOR_ROW_MSB_2_BOOLEAN";
67 return "THETA_XOR_ROW_2_DECOMPOSITION";
69 return "THETA_XOR_ROW_ROTL1_2";
71 return "THETA_XOR_ROW_MSB_3_BOOLEAN";
73 return "THETA_XOR_ROW_3_DECOMPOSITION";
75 return "THETA_XOR_ROW_ROTL1_3";
77 return "THETA_XOR_ROW_MSB_4_BOOLEAN";
79 return "THETA_XOR_ROW_4_DECOMPOSITION";
81 return "THETA_XOR_ROW_ROTL1_4";
83 return "STATE_THETA_01_DECOMPOSE";
85 return "STATE_RHO_01";
87 return "STATE_THETA_02_DECOMPOSE";
89 return "STATE_RHO_02";
91 return "STATE_THETA_03_DECOMPOSE";
93 return "STATE_RHO_03";
95 return "STATE_THETA_04_DECOMPOSE";
97 return "STATE_RHO_04";
99 return "STATE_THETA_10_DECOMPOSE";
101 return "STATE_RHO_10";
103 return "STATE_THETA_11_DECOMPOSE";
105 return "STATE_RHO_11";
107 return "STATE_THETA_12_DECOMPOSE";
109 return "STATE_RHO_12";
111 return "STATE_THETA_13_DECOMPOSE";
113 return "STATE_RHO_13";
115 return "STATE_THETA_14_DECOMPOSE";
117 return "STATE_RHO_14";
119 return "STATE_THETA_20_DECOMPOSE";
121 return "STATE_RHO_20";
123 return "STATE_THETA_21_DECOMPOSE";
125 return "STATE_RHO_21";
127 return "STATE_THETA_22_DECOMPOSE";
129 return "STATE_RHO_22";
131 return "STATE_THETA_23_DECOMPOSE";
133 return "STATE_RHO_23";
135 return "STATE_THETA_24_DECOMPOSE";
137 return "STATE_RHO_24";
139 return "STATE_THETA_30_DECOMPOSE";
141 return "STATE_RHO_30";
143 return "STATE_THETA_31_DECOMPOSE";
145 return "STATE_RHO_31";
147 return "STATE_THETA_32_DECOMPOSE";
149 return "STATE_RHO_32";
151 return "STATE_THETA_33_DECOMPOSE";
153 return "STATE_RHO_33";
155 return "STATE_THETA_34_DECOMPOSE";
157 return "STATE_RHO_34";
159 return "STATE_THETA_40_DECOMPOSE";
161 return "STATE_RHO_40";
163 return "STATE_THETA_41_DECOMPOSE";
165 return "STATE_RHO_41";
167 return "STATE_THETA_42_DECOMPOSE";
169 return "STATE_RHO_42";
171 return "STATE_THETA_43_DECOMPOSE";
173 return "STATE_RHO_43";
175 return "STATE_THETA_44_DECOMPOSE";
177 return "STATE_RHO_44";
179 return "STATE_PI_NOT_00";
181 return "STATE_PI_NOT_01";
183 return "STATE_PI_NOT_02";
185 return "STATE_PI_NOT_03";
187 return "STATE_PI_NOT_04";
189 return "STATE_PI_NOT_10";
191 return "STATE_PI_NOT_11";
193 return "STATE_PI_NOT_12";
195 return "STATE_PI_NOT_13";
197 return "STATE_PI_NOT_14";
199 return "STATE_PI_NOT_20";
201 return "STATE_PI_NOT_21";
203 return "STATE_PI_NOT_22";
205 return "STATE_PI_NOT_23";
207 return "STATE_PI_NOT_24";
209 return "STATE_PI_NOT_30";
211 return "STATE_PI_NOT_31";
213 return "STATE_PI_NOT_32";
215 return "STATE_PI_NOT_33";
217 return "STATE_PI_NOT_34";
219 return "STATE_PI_NOT_40";
221 return "STATE_PI_NOT_41";
223 return "STATE_PI_NOT_42";
225 return "STATE_PI_NOT_43";
227 return "STATE_PI_NOT_44";
229 return "NEXT_STATE_IN_00";
231 return "NEXT_STATE_IN_01";
233 return "NEXT_STATE_IN_02";
235 return "NEXT_STATE_IN_03";
237 return "NEXT_STATE_IN_04";
239 return "NEXT_STATE_IN_10";
241 return "NEXT_STATE_IN_11";
243 return "NEXT_STATE_IN_12";
245 return "NEXT_STATE_IN_13";
247 return "NEXT_STATE_IN_14";
249 return "NEXT_STATE_IN_20";
251 return "NEXT_STATE_IN_21";
253 return "NEXT_STATE_IN_22";
255 return "NEXT_STATE_IN_23";
257 return "NEXT_STATE_IN_24";
259 return "NEXT_STATE_IN_30";
261 return "NEXT_STATE_IN_31";
263 return "NEXT_STATE_IN_32";
265 return "NEXT_STATE_IN_33";
267 return "NEXT_STATE_IN_34";
269 return "NEXT_STATE_IN_40";
271 return "NEXT_STATE_IN_41";
273 return "NEXT_STATE_IN_42";
275 return "NEXT_STATE_IN_43";
277 return "NEXT_STATE_IN_44";
279 return "SRC_OUT_OF_RANGE_ERROR_BOOLEAN";
281 return "DST_OUT_OF_RANGE_ERROR_BOOLEAN";
283 return "SRC_OUT_OF_RANGE_TOGGLE";
285 return "DST_OUT_OF_RANGE_TOGGLE";
289 return "DST_ADDR_PROPAGATION";
291 return "CLK_PROPAGATION";
293 return "SPACE_ID_PROPAGATION";
295 return "SEL_NO_ERROR_PROPAGATION";
297 return "SEL_SLICE_READ";
299 return "SEL_SLICE_WRITE";
A wrapper for Relations to expose methods used by the Sumcheck prover or verifier to add the contribu...
static constexpr size_t SR_STATE_THETA_30_DECOMPOSE
static constexpr size_t SR_STATE_THETA_14_DECOMPOSE
static constexpr size_t SR_STATE_THETA_01_DECOMPOSE
static constexpr size_t SR_STATE_THETA_40_DECOMPOSE
static constexpr size_t SR_STATE_RHO_20
static constexpr size_t SR_STATE_THETA_10_DECOMPOSE
static constexpr size_t SR_THETA_XOR_ROW_ROTL1_0
static constexpr size_t SR_NEXT_STATE_IN_10
static constexpr size_t SR_SEL_NO_ERROR
static constexpr size_t SR_NEXT_STATE_IN_41
static constexpr size_t SR_SRC_OUT_OF_RANGE_TOGGLE
static constexpr size_t SR_STATE_RHO_14
static constexpr size_t SR_STATE_PI_NOT_12
static constexpr size_t SR_NEXT_STATE_IN_21
static constexpr size_t SR_STATE_PI_NOT_01
static constexpr size_t SR_STATE_RHO_44
static constexpr size_t SR_THETA_XOR_ROW_ROTL1_2
static constexpr size_t SR_STATE_PI_NOT_00
static constexpr size_t SR_NEXT_STATE_IN_04
static constexpr size_t SR_NEXT_STATE_IN_33
static constexpr size_t SR_STATE_PI_NOT_11
static constexpr size_t SR_STATE_PI_NOT_10
static constexpr size_t SR_KECCAK_ROUND_INCREMENT
static constexpr size_t SR_STATE_RHO_22
static constexpr size_t SR_NEXT_STATE_IN_34
static constexpr size_t SR_THETA_XOR_ROW_MSB_4_BOOLEAN
static constexpr size_t SR_STATE_RHO_11
static constexpr size_t SR_NEXT_STATE_IN_20
static constexpr size_t SR_STATE_RHO_12
static constexpr size_t SR_STATE_PI_NOT_20
static std::string get_subrelation_label(size_t index)
static constexpr size_t SR_STATE_PI_NOT_03
static constexpr size_t SR_STATE_THETA_32_DECOMPOSE
static constexpr size_t SR_THETA_XOR_ROW_MSB_3_BOOLEAN
static constexpr const std::string_view NAME
static constexpr size_t SR_CLK_PROPAGATION
static constexpr size_t SR_STATE_PI_NOT_32
static constexpr size_t SR_STATE_PI_NOT_02
static constexpr size_t SR_NEXT_STATE_IN_23
static constexpr size_t SR_NEXT_STATE_IN_02
static constexpr size_t SR_STATE_PI_NOT_04
static constexpr size_t SR_NEXT_STATE_IN_01
static constexpr size_t SR_THETA_XOR_ROW_1_DECOMPOSITION
static constexpr size_t SR_SEL_NO_ERROR_PROPAGATION
static constexpr size_t SR_STATE_PI_NOT_23
static constexpr size_t SR_STATE_RHO_24
static constexpr size_t SR_STATE_RHO_21
static constexpr size_t SR_STATE_RHO_04
static constexpr size_t SR_STATE_PI_NOT_22
static constexpr size_t SR_STATE_THETA_02_DECOMPOSE
static constexpr size_t SR_STATE_RHO_13
static constexpr size_t SR_STATE_RHO_02
static constexpr size_t SR_THETA_XOR_ROW_ROTL1_4
static constexpr size_t SR_DST_OUT_OF_RANGE_TOGGLE
static constexpr size_t SR_STATE_RHO_43
static constexpr size_t SR_STATE_THETA_44_DECOMPOSE
static constexpr size_t SR_STATE_PI_NOT_43
static constexpr size_t SR_NEXT_STATE_IN_14
static constexpr size_t SR_SEL_SLICE_READ
static constexpr size_t SR_NEXT_STATE_IN_43
static constexpr size_t SR_NEXT_STATE_IN_32
static constexpr size_t SR_STATE_THETA_31_DECOMPOSE
static constexpr size_t SR_STATE_PI_NOT_42
static constexpr size_t SR_STATE_PI_NOT_14
static constexpr size_t SR_SEL_SLICE_WRITE
static constexpr size_t SR_STATE_PI_NOT_13
static constexpr size_t SR_STATE_RHO_42
static constexpr size_t SR_STATE_THETA_23_DECOMPOSE
static constexpr size_t SR_STATE_THETA_13_DECOMPOSE
static constexpr size_t SR_THETA_XOR_ROW_MSB_1_BOOLEAN
static constexpr size_t SR_STATE_RHO_10
static constexpr size_t SR_STATE_THETA_21_DECOMPOSE
static constexpr size_t SR_KECCAK_SEL_ROUND_NON_ZERO
static constexpr size_t SR_THETA_XOR_ROW_ROTL1_3
static constexpr size_t SR_STATE_PI_NOT_21
static constexpr size_t SR_STATE_THETA_24_DECOMPOSE
static constexpr size_t SR_STATE_RHO_32
static constexpr size_t SR_STATE_RHO_33
static constexpr size_t SR_STATE_PI_NOT_41
static constexpr size_t SR_STATE_PI_NOT_30
static constexpr size_t SR_NEXT_STATE_IN_13
static constexpr size_t SR_STATE_THETA_04_DECOMPOSE
static constexpr size_t SR_THETA_XOR_ROW_3_DECOMPOSITION
static constexpr size_t SR_STATE_RHO_34
static constexpr size_t SR_DST_ADDR_PROPAGATION
static constexpr size_t SR_THETA_XOR_ROW_0_DECOMPOSITION
static constexpr size_t SR_NEXT_STATE_IN_30
static constexpr size_t SR_STATE_PI_NOT_34
static constexpr size_t SR_STATE_PI_NOT_33
static constexpr size_t SR_NEXT_STATE_IN_00
static constexpr size_t SR_STATE_PI_NOT_31
static constexpr size_t SR_STATE_RHO_31
static constexpr size_t SR_STATE_RHO_41
static constexpr size_t SR_STATE_PI_NOT_40
static constexpr size_t SR_STATE_RHO_01
static constexpr size_t SR_NEXT_STATE_IN_42
static constexpr size_t SR_STATE_PI_NOT_44
static constexpr size_t SR_NEXT_STATE_IN_40
static constexpr size_t SR_THETA_XOR_ROW_2_DECOMPOSITION
static constexpr size_t SR_THETA_XOR_ROW_ROTL1_1
static constexpr size_t SR_STATE_THETA_20_DECOMPOSE
static constexpr size_t SR_STATE_RHO_23
static constexpr size_t SR_STATE_RHO_40
static constexpr size_t SR_ERROR
static constexpr size_t SR_NEXT_STATE_IN_11
static constexpr size_t SR_STATE_RHO_03
static constexpr size_t SR_STATE_PI_NOT_24
static constexpr size_t SR_STATE_THETA_11_DECOMPOSE
static constexpr size_t SR_NEXT_STATE_IN_44
static constexpr size_t SR_STATE_THETA_43_DECOMPOSE
static constexpr size_t SR_THETA_XOR_ROW_4_DECOMPOSITION
static constexpr size_t SR_STATE_THETA_22_DECOMPOSE
static constexpr size_t SR_NEXT_STATE_IN_24
static constexpr size_t SR_THETA_XOR_ROW_MSB_0_BOOLEAN
static constexpr size_t SR_STATE_THETA_12_DECOMPOSE
static constexpr size_t SR_DST_OUT_OF_RANGE_ERROR_BOOLEAN
static constexpr size_t SR_NEXT_STATE_IN_12
static constexpr size_t SR_STATE_THETA_34_DECOMPOSE
static constexpr size_t SR_STATE_THETA_33_DECOMPOSE
static constexpr size_t SR_NEXT_STATE_IN_03
static constexpr size_t SR_THETA_XOR_ROW_MSB_2_BOOLEAN
static constexpr size_t SR_NEXT_STATE_IN_22
static constexpr size_t SR_STATE_RHO_30
static constexpr size_t SR_STATE_THETA_41_DECOMPOSE
static constexpr size_t SR_STATE_THETA_03_DECOMPOSE
static constexpr size_t SR_NEXT_STATE_IN_31
static constexpr size_t SR_SPACE_ID_PROPAGATION
static constexpr size_t SR_SRC_OUT_OF_RANGE_ERROR_BOOLEAN
static constexpr size_t SR_STATE_THETA_42_DECOMPOSE
static bool skip(const AllEntities &in)
static void accumulate(ContainerOverSubrelations &evals, const AllEntities &in, const RelationParameters< FF > &, const FF &scaling_factor)
static constexpr std::array< size_t, 159 > SUBRELATION_PARTIAL_LENGTHS
std::string to_string(bb::avm2::ValueTag tag)
Container for parameters used by the grand product (permutation, lookup) Honk relations.