Skip to content

Commit ddede5a

Browse files
committed
clean recursion compilation
1 parent 05abb86 commit ddede5a

File tree

5 files changed

+505
-515
lines changed

5 files changed

+505
-515
lines changed

crates/lean_prover/src/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ pub const GRINDING_BITS: usize = 18;
2222
pub const MAX_NUM_VARIABLES_TO_SEND_COEFFS: usize = 8;
2323
pub const WHIR_INITIAL_FOLDING_FACTOR: usize = 7;
2424
pub const WHIR_SUBSEQUENT_FOLDING_FACTOR: usize = 5;
25+
pub const RS_DOMAIN_INITIAL_REDUCTION_FACTOR: usize = 5;
2526

2627
pub fn default_whir_config(starting_log_inv_rate: usize, prox_gaps_conjecture: bool) -> WhirConfigBuilder {
2728
WhirConfigBuilder {
@@ -33,7 +34,7 @@ pub fn default_whir_config(starting_log_inv_rate: usize, prox_gaps_conjecture: b
3334
},
3435
pow_bits: GRINDING_BITS,
3536
max_num_variables_to_send_coeffs: MAX_NUM_VARIABLES_TO_SEND_COEFFS,
36-
rs_domain_initial_reduction_factor: 5,
37+
rs_domain_initial_reduction_factor: RS_DOMAIN_INITIAL_REDUCTION_FACTOR,
3738
security_level: SECURITY_BITS,
3839
starting_log_inv_rate,
3940
}

crates/rec_aggregation/recursion.py

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
N_INSTRUCTION_COLUMNS = N_INSTRUCTION_COLUMNS_PLACEHOLDER
3535
N_COMMITTED_EXEC_COLUMNS = N_COMMITTED_EXEC_COLUMNS_PLACEHOLDER
3636

37-
GUEST_BYTECODE_LEN = GUEST_BYTECODE_LEN_PLACEHOLDER
37+
LOG_GUEST_BYTECODE_LEN = LOG_GUEST_BYTECODE_LEN_PLACEHOLDER
3838
COL_PC = COL_PC_PLACEHOLDER
3939
TOTAL_WHIR_STATEMENTS = TOTAL_WHIR_STATEMENTS_PLACEHOLDER
4040
STARTING_PC = STARTING_PC_PLACEHOLDER
@@ -75,8 +75,7 @@ def recursion(inner_public_memory_log_size, inner_public_memory, proof_transcrip
7575
log_n_cycles = table_log_heights[EXECUTION_TABLE_INDEX]
7676
assert log_n_cycles <= log_memory
7777

78-
log_bytecode = log2_ceil(GUEST_BYTECODE_LEN)
79-
log_bytecode_padded = maximum(log_bytecode, log_n_cycles)
78+
log_bytecode_padded = maximum(LOG_GUEST_BYTECODE_LEN, log_n_cycles)
8079

8180
table_heights = Array(N_TABLES)
8281
for i in unroll(0, N_TABLES):
@@ -87,7 +86,7 @@ def recursion(inner_public_memory_log_size, inner_public_memory, proof_transcrip
8786
assert table_log_height <= MAX_LOG_N_ROWS_PER_TABLE[i]
8887
assert MIN_LOG_MEMORY_SIZE <= log_memory
8988
assert log_memory <= MAX_LOG_MEMORY_SIZE
90-
assert log_memory <= GUEST_BYTECODE_LEN
89+
assert LOG_GUEST_BYTECODE_LEN <= log_memory
9190

9291
stacked_n_vars = compute_stacked_n_vars(log_memory, log_bytecode_padded, table_heights)
9392
assert stacked_n_vars <= TWO_ADICITY + WHIR_INITIAL_FOLDING_FACTOR - whir_log_inv_rate
@@ -124,22 +123,22 @@ def recursion(inner_public_memory_log_size, inner_public_memory, proof_transcrip
124123

125124
offset: Mut = powers_of_two(log_memory)
126125

127-
bytecode_and_acc_point = point_gkr + (n_vars_logup_gkr - log_bytecode) * DIM
126+
bytecode_and_acc_point = point_gkr + (n_vars_logup_gkr - LOG_GUEST_BYTECODE_LEN) * DIM
128127
bytecode_multilinear_location_prefix = multilinear_location_prefix(
129-
offset / 2 ** log2_ceil(GUEST_BYTECODE_LEN), n_vars_logup_gkr - log_bytecode, point_gkr
128+
offset / 2 ** LOG_GUEST_BYTECODE_LEN, n_vars_logup_gkr - LOG_GUEST_BYTECODE_LEN, point_gkr
130129
)
131130
bytecode_padded_multilinear_location_prefix = multilinear_location_prefix(
132131
offset / powers_of_two(log_bytecode_padded), n_vars_logup_gkr - log_bytecode_padded, point_gkr
133132
)
134133
pub_mem = NONRESERVED_PROGRAM_INPUT_START
135-
assert pub_mem[1] == log_bytecode + log2_ceil(N_INSTRUCTION_COLUMNS)
136-
copy_many_ef(bytecode_and_acc_point, pub_mem + 2, log_bytecode)
134+
assert pub_mem[1] == LOG_GUEST_BYTECODE_LEN + log2_ceil(N_INSTRUCTION_COLUMNS)
135+
copy_many_ef(bytecode_and_acc_point, pub_mem + 2, LOG_GUEST_BYTECODE_LEN)
137136
copy_many_ef(
138137
logup_alphas + (log2_ceil(MAX_BUS_WIDTH) - log2_ceil(N_INSTRUCTION_COLUMNS)) * DIM,
139-
pub_mem + 2 + log_bytecode * DIM,
138+
pub_mem + 2 + LOG_GUEST_BYTECODE_LEN * DIM,
140139
log2_ceil(N_INSTRUCTION_COLUMNS),
141140
)
142-
bytecode_value = pub_mem + 2 + (log_bytecode + log2_ceil(N_INSTRUCTION_COLUMNS)) * DIM
141+
bytecode_value = pub_mem + 2 + (LOG_GUEST_BYTECODE_LEN + log2_ceil(N_INSTRUCTION_COLUMNS)) * DIM
143142
bytecode_value_corrected: Mut = bytecode_value
144143
for i in unroll(0, log2_ceil(MAX_BUS_WIDTH) - log2_ceil(N_INSTRUCTION_COLUMNS)):
145144
bytecode_value_corrected = mul_extension_ret(
@@ -151,7 +150,7 @@ def recursion(inner_public_memory_log_size, inner_public_memory, proof_transcrip
151150
retrieved_numerators_value, mul_extension_ret(bytecode_multilinear_location_prefix, value_bytecode_acc)
152151
)
153152

154-
bytecode_index_value = mle_of_01234567_etc(bytecode_and_acc_point, log_bytecode)
153+
bytecode_index_value = mle_of_01234567_etc(bytecode_and_acc_point, LOG_GUEST_BYTECODE_LEN)
155154
retrieved_denominators_value = add_extension_ret(
156155
retrieved_denominators_value,
157156
mul_extension_ret(
@@ -176,7 +175,7 @@ def recursion(inner_public_memory_log_size, inner_public_memory, proof_transcrip
176175
bytecode_padded_multilinear_location_prefix,
177176
mle_of_zeros_then_ones(
178177
point_gkr + (n_vars_logup_gkr - log_bytecode_padded) * DIM,
179-
2 ** log2_ceil(GUEST_BYTECODE_LEN),
178+
2 ** LOG_GUEST_BYTECODE_LEN,
180179
log_bytecode_padded,
181180
),
182181
),
@@ -572,13 +571,13 @@ def continue_recursion_ordered(second_table, third_table, fs, offset, retrieved_
572571
offset = powers_of_two(log_memory) * 2 # memory and acc_memory
573572

574573
eq_bytecode_acc = eq_mle_extension(
575-
folding_randomness_global + (stacked_n_vars - log2_ceil(GUEST_BYTECODE_LEN)) * DIM,
574+
folding_randomness_global + (stacked_n_vars - LOG_GUEST_BYTECODE_LEN) * DIM,
576575
bytecode_and_acc_point,
577-
log2_ceil(GUEST_BYTECODE_LEN),
576+
LOG_GUEST_BYTECODE_LEN,
578577
)
579578
prefix_bytecode_acc = multilinear_location_prefix(
580-
offset / 2 ** log2_ceil(GUEST_BYTECODE_LEN),
581-
stacked_n_vars - log2_ceil(GUEST_BYTECODE_LEN),
579+
offset / 2 ** LOG_GUEST_BYTECODE_LEN,
580+
stacked_n_vars - LOG_GUEST_BYTECODE_LEN,
582581
folding_randomness_global,
583582
)
584583
s = add_extension_ret(

0 commit comments

Comments
 (0)