@@ -36,13 +36,13 @@ class AvmMiniFlavor {
36
36
using VerifierCommitmentKey = pcs::VerifierCommitmentKey<Curve>;
37
37
38
38
static constexpr size_t NUM_PRECOMPUTED_ENTITIES = 2 ;
39
- static constexpr size_t NUM_WITNESS_ENTITIES = 37 ;
39
+ static constexpr size_t NUM_WITNESS_ENTITIES = 38 ;
40
40
static constexpr size_t NUM_WIRES = NUM_WITNESS_ENTITIES + NUM_PRECOMPUTED_ENTITIES;
41
41
// We have two copies of the witness entities, so we subtract the number of fixed ones (they have no shift), one for
42
42
// the unshifted and one for the shifted
43
- static constexpr size_t NUM_ALL_ENTITIES = 45 ;
43
+ static constexpr size_t NUM_ALL_ENTITIES = 46 ;
44
44
45
- using Relations = std::tuple<AvmMini_vm::avm_mini <FF>, AvmMini_vm::mem_trace <FF>>;
45
+ using Relations = std::tuple<AvmMini_vm::mem_trace <FF>, AvmMini_vm::avm_mini <FF>>;
46
46
47
47
static constexpr size_t MAX_PARTIAL_RELATION_LENGTH = compute_max_partial_relation_length<Relations>();
48
48
@@ -91,6 +91,7 @@ class AvmMiniFlavor {
91
91
avmMini_internal_return_ptr,
92
92
avmMini_sel_internal_call,
93
93
avmMini_sel_internal_return,
94
+ avmMini_sel_jump,
94
95
avmMini_sel_halt,
95
96
avmMini_sel_op_add,
96
97
avmMini_sel_op_sub,
@@ -131,6 +132,7 @@ class AvmMiniFlavor {
131
132
avmMini_internal_return_ptr,
132
133
avmMini_sel_internal_call,
133
134
avmMini_sel_internal_return,
135
+ avmMini_sel_jump,
134
136
avmMini_sel_halt,
135
137
avmMini_sel_op_add,
136
138
avmMini_sel_op_sub,
@@ -177,6 +179,7 @@ class AvmMiniFlavor {
177
179
avmMini_internal_return_ptr,
178
180
avmMini_sel_internal_call,
179
181
avmMini_sel_internal_return,
182
+ avmMini_sel_jump,
180
183
avmMini_sel_halt,
181
184
avmMini_sel_op_add,
182
185
avmMini_sel_op_sub,
@@ -199,12 +202,12 @@ class AvmMiniFlavor {
199
202
avmMini_mem_idx_b,
200
203
avmMini_mem_idx_c,
201
204
avmMini_last,
202
- avmMini_internal_return_ptr_shift,
203
- avmMini_pc_shift,
204
- memTrace_m_tag_shift,
205
205
memTrace_m_val_shift,
206
+ memTrace_m_addr_shift,
207
+ memTrace_m_tag_shift,
206
208
memTrace_m_rw_shift,
207
- memTrace_m_addr_shift)
209
+ avmMini_internal_return_ptr_shift,
210
+ avmMini_pc_shift)
208
211
209
212
RefVector<DataType> get_wires ()
210
213
{
@@ -225,6 +228,7 @@ class AvmMiniFlavor {
225
228
avmMini_internal_return_ptr,
226
229
avmMini_sel_internal_call,
227
230
avmMini_sel_internal_return,
231
+ avmMini_sel_jump,
228
232
avmMini_sel_halt,
229
233
avmMini_sel_op_add,
230
234
avmMini_sel_op_sub,
@@ -247,12 +251,12 @@ class AvmMiniFlavor {
247
251
avmMini_mem_idx_b,
248
252
avmMini_mem_idx_c,
249
253
avmMini_last,
250
- avmMini_internal_return_ptr_shift,
251
- avmMini_pc_shift,
252
- memTrace_m_tag_shift,
253
254
memTrace_m_val_shift,
255
+ memTrace_m_addr_shift,
256
+ memTrace_m_tag_shift,
254
257
memTrace_m_rw_shift,
255
- memTrace_m_addr_shift };
258
+ avmMini_internal_return_ptr_shift,
259
+ avmMini_pc_shift };
256
260
};
257
261
RefVector<DataType> get_unshifted ()
258
262
{
@@ -273,6 +277,7 @@ class AvmMiniFlavor {
273
277
avmMini_internal_return_ptr,
274
278
avmMini_sel_internal_call,
275
279
avmMini_sel_internal_return,
280
+ avmMini_sel_jump,
276
281
avmMini_sel_halt,
277
282
avmMini_sel_op_add,
278
283
avmMini_sel_op_sub,
@@ -298,18 +303,17 @@ class AvmMiniFlavor {
298
303
};
299
304
RefVector<DataType> get_to_be_shifted ()
300
305
{
301
- return {
302
- avmMini_internal_return_ptr, avmMini_pc, memTrace_m_tag, memTrace_m_val, memTrace_m_rw, memTrace_m_addr
303
- };
306
+ return { memTrace_m_val, memTrace_m_addr, memTrace_m_tag, memTrace_m_rw, avmMini_internal_return_ptr,
307
+ avmMini_pc };
304
308
};
305
309
RefVector<DataType> get_shifted ()
306
310
{
307
- return { avmMini_internal_return_ptr_shift ,
308
- avmMini_pc_shift ,
311
+ return { memTrace_m_val_shift ,
312
+ memTrace_m_addr_shift ,
309
313
memTrace_m_tag_shift,
310
- memTrace_m_val_shift,
311
314
memTrace_m_rw_shift,
312
- memTrace_m_addr_shift };
315
+ avmMini_internal_return_ptr_shift,
316
+ avmMini_pc_shift };
313
317
};
314
318
};
315
319
@@ -322,9 +326,8 @@ class AvmMiniFlavor {
322
326
323
327
RefVector<DataType> get_to_be_shifted ()
324
328
{
325
- return {
326
- avmMini_internal_return_ptr, avmMini_pc, memTrace_m_tag, memTrace_m_val, memTrace_m_rw, memTrace_m_addr
327
- };
329
+ return { memTrace_m_val, memTrace_m_addr, memTrace_m_tag, memTrace_m_rw, avmMini_internal_return_ptr,
330
+ avmMini_pc };
328
331
};
329
332
330
333
// The plookup wires that store plookup read data.
@@ -418,6 +421,7 @@ class AvmMiniFlavor {
418
421
Base::avmMini_internal_return_ptr = " AVMMINI_INTERNAL_RETURN_PTR" ;
419
422
Base::avmMini_sel_internal_call = " AVMMINI_SEL_INTERNAL_CALL" ;
420
423
Base::avmMini_sel_internal_return = " AVMMINI_SEL_INTERNAL_RETURN" ;
424
+ Base::avmMini_sel_jump = " AVMMINI_SEL_JUMP" ;
421
425
Base::avmMini_sel_halt = " AVMMINI_SEL_HALT" ;
422
426
Base::avmMini_sel_op_add = " AVMMINI_SEL_OP_ADD" ;
423
427
Base::avmMini_sel_op_sub = " AVMMINI_SEL_OP_SUB" ;
@@ -474,6 +478,7 @@ class AvmMiniFlavor {
474
478
Commitment avmMini_internal_return_ptr;
475
479
Commitment avmMini_sel_internal_call;
476
480
Commitment avmMini_sel_internal_return;
481
+ Commitment avmMini_sel_jump;
477
482
Commitment avmMini_sel_halt;
478
483
Commitment avmMini_sel_op_add;
479
484
Commitment avmMini_sel_op_sub;
@@ -530,6 +535,7 @@ class AvmMiniFlavor {
530
535
avmMini_internal_return_ptr = deserialize_from_buffer<Commitment>(Transcript::proof_data, num_bytes_read);
531
536
avmMini_sel_internal_call = deserialize_from_buffer<Commitment>(Transcript::proof_data, num_bytes_read);
532
537
avmMini_sel_internal_return = deserialize_from_buffer<Commitment>(Transcript::proof_data, num_bytes_read);
538
+ avmMini_sel_jump = deserialize_from_buffer<Commitment>(Transcript::proof_data, num_bytes_read);
533
539
avmMini_sel_halt = deserialize_from_buffer<Commitment>(Transcript::proof_data, num_bytes_read);
534
540
avmMini_sel_op_add = deserialize_from_buffer<Commitment>(Transcript::proof_data, num_bytes_read);
535
541
avmMini_sel_op_sub = deserialize_from_buffer<Commitment>(Transcript::proof_data, num_bytes_read);
@@ -590,6 +596,7 @@ class AvmMiniFlavor {
590
596
serialize_to_buffer<Commitment>(avmMini_internal_return_ptr, Transcript::proof_data);
591
597
serialize_to_buffer<Commitment>(avmMini_sel_internal_call, Transcript::proof_data);
592
598
serialize_to_buffer<Commitment>(avmMini_sel_internal_return, Transcript::proof_data);
599
+ serialize_to_buffer<Commitment>(avmMini_sel_jump, Transcript::proof_data);
593
600
serialize_to_buffer<Commitment>(avmMini_sel_halt, Transcript::proof_data);
594
601
serialize_to_buffer<Commitment>(avmMini_sel_op_add, Transcript::proof_data);
595
602
serialize_to_buffer<Commitment>(avmMini_sel_op_sub, Transcript::proof_data);
0 commit comments