Skip to content

Commit b02bdfd

Browse files
committed
use bare assumed bool conditionals in XMSS aggregation and recursion programs
1 parent cfe1684 commit b02bdfd

File tree

4 files changed

+8
-7
lines changed

4 files changed

+8
-7
lines changed

crates/lean_compiler/src/grammar.pest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ if_statement = { "if" ~ condition ~ "{" ~ statement* ~ "}" ~ else_clause? }
4242

4343
condition = { expression | assumed_bool_expr }
4444

45-
assumed_bool_expr = { "!assume_bool" ~ "(" ~ expression ~ ")" }
45+
assumed_bool_expr = { "!!assume_bool" ~ "(" ~ expression ~ ")" }
4646

4747
else_clause = { "else" ~ "{" ~ statement* ~ "}" }
4848

crates/lean_compiler/src/parser/parsers/statement.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,15 +129,16 @@ pub struct ConditionParser;
129129

130130
impl Parse<Condition> for ConditionParser {
131131
fn parse(pair: ParsePair<'_>, ctx: &mut ParseContext) -> ParseResult<Condition> {
132-
if pair.as_rule() == Rule::assumed_bool_expr {
132+
let mut inner_pair = next_inner_pair(&mut pair.into_inner(), "inner expression")?;
133+
if inner_pair.as_rule() == Rule::assumed_bool_expr {
133134
ExpressionParser::parse(
134-
next_inner_pair(&mut pair.into_inner(), "inner expression")?,
135+
next_inner_pair(&mut inner_pair.into_inner(), "inner expression")?,
135136
ctx,
136137
)
137138
.map(|e| Condition::Expression(e, AssumeBoolean::AssumeBoolean))
138139
} else {
139140
let expr_result = ExpressionParser::parse(
140-
next_inner_pair(&mut pair.into_inner(), "inner expression")?,
141+
inner_pair,
141142
ctx,
142143
);
143144
match expr_result {

crates/rec_aggregation/recursion_program.lean_lang

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ fn sample_stir_indexes_and_fold(fs_state, num_queries, merkle_leaves_in_basefiel
293293
fs_states_b[0] = fs_state_9;
294294

295295
// the number of chunk of 8 field elements per merkle leaf opened
296-
if merkle_leaves_in_basefield == 1 {
296+
if !!assume_bool(merkle_leaves_in_basefield) {
297297
n_chuncks_per_answer = two_pow_folding_factor / 8; // "/ 8" because initial merkle leaves are in the basefield
298298
} else {
299299
n_chuncks_per_answer = two_pow_folding_factor * DIM / 8;
@@ -350,7 +350,7 @@ fn sample_stir_indexes_and_fold(fs_state, num_queries, merkle_leaves_in_basefiel
350350
fs_state_11 = fs_states_c[num_queries];
351351

352352
folds = malloc(num_queries * DIM);
353-
if merkle_leaves_in_basefield == 1 {
353+
if !!assume_bool(merkle_leaves_in_basefield) {
354354
folding_randomness_alligned = malloc_vec(1, log2_ceil(DIM * FOLDING_FACTOR_0));
355355
folding_randomness_alligned_ptr = folding_randomness_alligned * (2 ** log2_ceil(DIM * FOLDING_FACTOR_0));
356356
for i in 0..FOLDING_FACTOR_0 unroll {

crates/rec_aggregation/src/xmss_aggregate.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ pub fn run_xmss_benchmark(n_xmss: usize) -> XmssBenchStats {
4343
bitield = public_input_start + (2 + N_PUBLIC_KEYS) * 8;
4444
signatures_start = private_input_start / 8;
4545
for i in 0..N_PUBLIC_KEYS {
46-
if bitield[i] == 1 {
46+
if !!assume_bool(bitield[i]) {
4747
xmss_public_key = all_public_keys + i;
4848
4949
sig_index = counter_hint();

0 commit comments

Comments
 (0)