Skip to content

Commit 58f2cf0

Browse files
committed
Verify the value of u in the CircuitStatement logup sum.
1 parent e7053d7 commit 58f2cf0

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

crates/circuit_verifier/src/statement.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ use stwo_constraint_framework::preprocessed_columns::PreProcessedColumnId;
2424

2525
// TODO(ilya): Update this to the correct values.
2626
pub const INTERACTION_POW_BITS: u32 = 20;
27+
pub const U_ADDRESS: usize = 2;
2728

2829
pub struct CircuitStatement<Value: IValue> {
2930
pub components: IndexMap<&'static str, Box<dyn CircuitEval<Value>>>,
@@ -80,14 +81,20 @@ impl<Value: IValue> Statement<Value> for CircuitStatement<Value> {
8081
interaction_elements: [Var; 2],
8182
) -> Var {
8283
let mut sum = context.zero();
84+
let zero = context.zero();
85+
let one = context.one();
8386

8487
// Output gates public logup sum contribution.
8588
let gate_relation_id = context.constant(GATE_RELATION_ID.into());
8689
for (output_address, output_value) in zip_eq(&self.output_addresses, &self.output_values) {
8790
let [output_value_0, output_value_1, output_value_2, output_value_3] =
88-
Simd::unpack(context, &Simd::from_packed(vec![*output_value], 4))
89-
.try_into()
90-
.unwrap();
91+
if output_address.get().idx == U_ADDRESS {
92+
[zero, zero, one, zero]
93+
} else {
94+
Simd::unpack(context, &Simd::from_packed(vec![*output_value], 4))
95+
.try_into()
96+
.unwrap()
97+
};
9198
let term = logup_use_term(
9299
context,
93100
&[

0 commit comments

Comments
 (0)