Skip to content

Commit 6222fa9

Browse files
committed
fix: enforce one-hot operation flags in BaseAlu eval
1 parent d780825 commit 6222fa9

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

crates/recursion/core/src/chips/alu_base.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,10 @@ where
209209
) in zip(local.values, prep_local.accesses)
210210
{
211211
// Check exactly one flag is enabled.
212+
builder.assert_bool(is_add.clone());
213+
builder.assert_bool(is_sub.clone());
214+
builder.assert_bool(is_mul.clone());
215+
builder.assert_bool(is_div.clone());
212216
let is_real = is_add + is_sub + is_mul + is_div;
213217
builder.assert_bool(is_real.clone());
214218

crates/recursion/core/src/chips/alu_ext.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,10 @@ where
214214
let out = vals.out.as_extension::<AB>();
215215

216216
// Check exactly one flag is enabled.
217+
builder.assert_bool(is_add.clone());
218+
builder.assert_bool(is_sub.clone());
219+
builder.assert_bool(is_mul.clone());
220+
builder.assert_bool(is_div.clone());
217221
let is_real = is_add + is_sub + is_mul + is_div;
218222
builder.assert_bool(is_real.clone());
219223

0 commit comments

Comments
 (0)