Prefer inlining last variable. (#3136)

This commit is contained in:
chriseth
2025-08-05 21:03:23 +02:00
committed by GitHub
parent ea3e10d686
commit 24ddce250d
43 changed files with 665 additions and 690 deletions

View File

@@ -228,7 +228,13 @@ impl<T: RuntimeConstant, V: Ord + Clone + Eq> GroupedExpression<T, V> {
}
/// Returns the quadratic, linear and constant components of this expression.
pub fn components(&self) -> (&[(Self, Self)], impl Iterator<Item = (&V, &T)>, &T) {
pub fn components(
&self,
) -> (
&[(Self, Self)],
impl DoubleEndedIterator<Item = (&V, &T)>,
&T,
) {
(&self.quadratic, self.linear.iter(), &self.constant)
}

View File

@@ -114,6 +114,7 @@ fn find_inlinable_variables<
) -> Vec<(V, GroupedExpression<T, V>)> {
let (_, linear, _) = constraint.components();
linear
.rev()
.filter_map(|(target_var, _)| {
let rhs_expr = constraint.try_solve_for(target_var)?;
assert!(!rhs_expr.referenced_unknown_variables().contains(target_var));
@@ -184,7 +185,7 @@ mod test {
// keep column result
let bus_interactions = vec![BusInteraction {
bus_id: constant(1),
payload: vec![var("result"), var("b")],
payload: vec![var("0result"), var("b")],
multiplicity: constant(1),
}];
@@ -192,7 +193,7 @@ mod test {
algebraic_constraints: vec![
var("a") + var("b") + var("c"),
var("b") + var("d") - constant(1),
var("c") + var("b") + var("a") + var("d") - var("result"),
var("c") + var("b") + var("a") + var("d") - var("0result"),
],
bus_interactions,
}
@@ -217,8 +218,8 @@ mod test {
let [result, b] = payload.as_slice() else {
panic!();
};
assert_eq!(result.to_string(), "result");
assert_eq!(b.to_string(), "-(result - 1)");
assert_eq!(result.to_string(), "0result");
assert_eq!(b.to_string(), "-(0result - 1)");
}
#[test]
@@ -253,19 +254,9 @@ mod test {
let constraint_system =
replace_constrained_witness_columns(constraint_system, bounds(3, 3));
// 1) b + d = 0 => b = -d
// 2) a * b = c => a * (-d) = c => a * d + c = 0
// 3) a + b + c + d = result
// =(1)=> a - d + c + d = result
// = a + c
// => a + c - result = 0
// × (-d): -a*d - c*d + d*result = 0
// =(2)=> c - c*d + d*result = 0
// ⇒ (c + -result) * (-d) + c = 0
let constraints = constraint_system.algebraic_constraints().collect_vec();
assert_eq!(constraints.len(), 1);
assert_eq!(constraints[0].to_string(), "-((c - result) * (d) - c)");
assert_eq!(constraints.len(), 0);
}
#[test]
@@ -298,21 +289,9 @@ mod test {
let constraint_system =
replace_constrained_witness_columns(constraint_system, bounds(3, 3));
// 1) b + d = 0 => b = -d
// 2) c * d = e => e = c * d
// 3) a + b + c + d + e = result
// =⇒ a + (-d) + c + d + (c * d) = result
// =⇒ a + c + (c * d) = result ⇒ a = result - c - c*d
//
// Replace a and b in (a * b = c):
// (result - c - c*d) * (-d) = c
// ⇒ ((c * d) + c - result) * (-d) + c = 0
let constraints = constraint_system.algebraic_constraints().collect_vec();
assert_eq!(constraints.len(), 1);
assert_eq!(
constraints[0].to_string(),
"-(((c) * (d) + c - result) * (d) - c)"
);
assert_eq!(constraints.len(), 0);
}
#[test]
@@ -346,8 +325,8 @@ mod test {
let [result, x] = payload.as_slice() else {
panic!();
};
assert_eq!(result.to_string(), "z + 1");
assert_eq!(x.to_string(), "z - 5");
assert_eq!(result.to_string(), "result");
assert_eq!(x.to_string(), "result - 6");
}
#[test]
@@ -392,23 +371,21 @@ mod test {
let [a, b, c, d, e, f, result] = payload.as_slice() else {
panic!();
};
// From first identity: a = b + 1
assert_eq!(a.to_string(), "b + 1");
// b kept as a symbol
assert_eq!(b.to_string(), "b");
assert_eq!(a.to_string(), "a");
assert_eq!(b.to_string(), "a - 1");
// From second identity: c = a * a
// In-lining c would violate the degree bound, so it is kept as a symbol
// with a constraint to enforce the equality.
assert_eq!(c.to_string(), "c");
assert_eq!(identity.to_string(), "-((b + 1) * (b + 1) - c)");
assert_eq!(identity.to_string(), "-((a) * (a) - c)");
// From third identity: d = c * a
assert_eq!(d.to_string(), "(c) * (b + 1)");
assert_eq!(d.to_string(), "(c) * (a)");
// From fourth identity: e = d * a
assert_eq!(e.to_string(), "((c) * (b + 1)) * (b + 1)");
assert_eq!(e.to_string(), "((c) * (a)) * (a)");
// From fifth identity: f = e + 5
assert_eq!(f.to_string(), "((c) * (b + 1)) * (b + 1) + 5");
assert_eq!(f.to_string(), "((c) * (a)) * (a) + 5");
// From sixth identity: result = f * 2
assert_eq!(result.to_string(), "((2 * c) * (b + 1)) * (b + 1) + 10");
assert_eq!(result.to_string(), "((2 * c) * (a)) * (a) + 10");
}
#[test]

View File

@@ -1457,11 +1457,11 @@ mod tests {
AirMetrics {
widths: AirWidths {
preprocessed: 0,
main: 14676,
log_up: 11976,
main: 14664,
log_up: 11960,
},
constraints: 4143,
bus_interactions: 11642,
bus_interactions: 11630,
}
"#]],
powdr_expected_machine_count: expect![[r#"
@@ -1485,11 +1485,11 @@ mod tests {
AirMetrics {
widths: AirWidths {
preprocessed: 0,
main: 14656,
log_up: 11956,
main: 14644,
log_up: 11940,
},
constraints: 4127,
bus_interactions: 11632,
bus_interactions: 11620,
}
"#]],
powdr_expected_machine_count: expect![[r#"
@@ -1507,8 +1507,8 @@ mod tests {
},
after: AirWidths {
preprocessed: 0,
main: 14656,
log_up: 11956,
main: 14644,
log_up: 11940,
},
}
"#]]),
@@ -1564,11 +1564,11 @@ mod tests {
AirMetrics {
widths: AirWidths {
preprocessed: 0,
main: 2010,
main: 2008,
log_up: 1788,
},
constraints: 166,
bus_interactions: 1782,
bus_interactions: 1780,
}
"#]],
powdr_expected_machine_count: expect![[r#"
@@ -1592,11 +1592,11 @@ mod tests {
AirMetrics {
widths: AirWidths {
preprocessed: 0,
main: 2010,
main: 2008,
log_up: 1788,
},
constraints: 166,
bus_interactions: 1782,
bus_interactions: 1780,
}
"#]],
powdr_expected_machine_count: expect![[r#"
@@ -1620,11 +1620,11 @@ mod tests {
AirMetrics {
widths: AirWidths {
preprocessed: 0,
main: 2010,
main: 2008,
log_up: 1788,
},
constraints: 166,
bus_interactions: 1782,
bus_interactions: 1780,
}
"#]],
powdr_expected_machine_count: expect![[r#"
@@ -1642,7 +1642,7 @@ mod tests {
},
after: AirWidths {
preprocessed: 0,
main: 2010,
main: 2008,
log_up: 1788,
},
}
@@ -1671,11 +1671,11 @@ mod tests {
AirMetrics {
widths: AirWidths {
preprocessed: 0,
main: 4843,
log_up: 3952,
main: 4850,
log_up: 3948,
},
constraints: 958,
bus_interactions: 3817,
constraints: 950,
bus_interactions: 3819,
}
"#]],
powdr_expected_machine_count: expect![[r#"
@@ -1688,13 +1688,13 @@ mod tests {
AirWidthsDiff {
before: AirWidths {
preprocessed: 0,
main: 38986,
log_up: 26936,
main: 39120,
log_up: 27036,
},
after: AirWidths {
preprocessed: 0,
main: 4843,
log_up: 3952,
main: 4850,
log_up: 3948,
},
}
"#]]),

View File

@@ -7,11 +7,11 @@ APC advantage:
- Constraints: 11 -> 6 (1.83x reduction)
Symbolic machine using 14 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
reads_aux__1__base__prev_timestamp_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0
a__0_0
a__1_0
a__2_0
@@ -23,20 +23,20 @@ Symbolic machine using 14 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * 1, args=[8 - (4 * a__0_0 * diff_inv_marker__0_0 + 4 * a__1_0 * diff_inv_marker__1_0 + 4 * a__2_0 * diff_inv_marker__2_0 + 4 * a__3_0 * diff_inv_marker__3_0), reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[8 - (4 * a__0_0 * diff_inv_marker__0_0 + 4 * a__1_0 * diff_inv_marker__1_0 + 4 * a__2_0 * diff_inv_marker__2_0 + 4 * a__3_0 * diff_inv_marker__3_0), from_state__timestamp_0 + 2]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 5, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 5, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 5, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, a__0_0, a__1_0, a__2_0, a__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, reads_aux__1__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, from_state__timestamp_0 + 1]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_0 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
// Algebraic constraints:
-((1 - (a__0_0 * diff_inv_marker__0_0 + a__1_0 * diff_inv_marker__1_0 + a__2_0 * diff_inv_marker__2_0 + a__3_0 * diff_inv_marker__3_0)) * (a__0_0 * diff_inv_marker__0_0 + a__1_0 * diff_inv_marker__1_0 + a__2_0 * diff_inv_marker__2_0 + a__3_0 * diff_inv_marker__3_0)) = 0

View File

@@ -7,17 +7,17 @@ APC advantage:
- Constraints: 25 -> 18 (1.39x reduction)
Symbolic machine using 17 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
reads_aux__1__base__prev_timestamp_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0
a__0_0
a__1_0
a__2_0
a__3_0
cmp_result_0
a_msb_f_0
cmp_lt_0
diff_marker__0_0
diff_marker__1_0
diff_marker__2_0
@@ -26,41 +26,41 @@ Symbolic machine using 17 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * 1, args=[8 - 4 * cmp_lt_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4 * cmp_result_0 + 4, from_state__timestamp_0 + 2]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 5, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 5, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 5, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, a__0_0, a__1_0, a__2_0, a__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, reads_aux__1__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, from_state__timestamp_0 + 1]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_0 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0, args=[diff_val_0 - 1, 0, 0, 0]
mult=is_valid * 1, args=[a_msb_f_0 + 128, 0, 0, 0]
// Algebraic constraints:
-((1 - cmp_lt_0) * cmp_lt_0) = 0
cmp_result_0 * (cmp_result_0 - 1) = 0
(a__3_0 - a_msb_f_0) * (a_msb_f_0 + 256 - a__3_0) = 0
diff_marker__3_0 * (diff_marker__3_0 - 1) = 0
-((1 - diff_marker__3_0) * (a_msb_f_0 * (2 * cmp_lt_0 - 1))) = 0
diff_marker__3_0 * (a_msb_f_0 * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
-((1 - diff_marker__3_0) * (a_msb_f_0 * (1 - 2 * cmp_result_0))) = 0
diff_marker__3_0 * (a_msb_f_0 * (1 - 2 * cmp_result_0) + diff_val_0) = 0
diff_marker__2_0 * (diff_marker__2_0 - 1) = 0
-((1 - (diff_marker__2_0 + diff_marker__3_0)) * (a__2_0 * (2 * cmp_lt_0 - 1))) = 0
diff_marker__2_0 * (a__2_0 * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
-((1 - (diff_marker__2_0 + diff_marker__3_0)) * (a__2_0 * (1 - 2 * cmp_result_0))) = 0
diff_marker__2_0 * (a__2_0 * (1 - 2 * cmp_result_0) + diff_val_0) = 0
diff_marker__1_0 * (diff_marker__1_0 - 1) = 0
-((1 - (diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (a__1_0 * (2 * cmp_lt_0 - 1))) = 0
diff_marker__1_0 * (a__1_0 * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
-((1 - (diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (a__1_0 * (1 - 2 * cmp_result_0))) = 0
diff_marker__1_0 * (a__1_0 * (1 - 2 * cmp_result_0) + diff_val_0) = 0
diff_marker__0_0 * (diff_marker__0_0 - 1) = 0
-((1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (a__0_0 * (2 * cmp_lt_0 - 1))) = 0
diff_marker__0_0 * (a__0_0 * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
-((1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (a__0_0 * (1 - 2 * cmp_result_0))) = 0
diff_marker__0_0 * (a__0_0 * (1 - 2 * cmp_result_0) + diff_val_0) = 0
(diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0) * (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0 - 1) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * cmp_lt_0 = 0
(1 * is_valid - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (1 - cmp_result_0) = 0
(1 - is_valid) * (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0) = 0
is_valid * (is_valid - 1) = 0

View File

@@ -7,17 +7,17 @@ APC advantage:
- Constraints: 25 -> 18 (1.39x reduction)
Symbolic machine using 17 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
reads_aux__1__base__prev_timestamp_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0
b__0_0
b__1_0
b__2_0
b__3_0
cmp_result_0
b_msb_f_0
cmp_lt_0
diff_marker__0_0
diff_marker__1_0
diff_marker__2_0
@@ -26,41 +26,41 @@ Symbolic machine using 17 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * 1, args=[4 * cmp_lt_0 + 4, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4 * cmp_result_0 + 4, from_state__timestamp_0 + 2]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__1__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, from_state__timestamp_0 + 1]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_0 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0, args=[diff_val_0 - 1, 0, 0, 0]
mult=is_valid * 1, args=[b_msb_f_0 + 128, 0, 0, 0]
// Algebraic constraints:
cmp_lt_0 * (cmp_lt_0 - 1) = 0
cmp_result_0 * (cmp_result_0 - 1) = 0
(b__3_0 - b_msb_f_0) * (b_msb_f_0 + 256 - b__3_0) = 0
diff_marker__3_0 * (diff_marker__3_0 - 1) = 0
(1 - diff_marker__3_0) * (b_msb_f_0 * (2 * cmp_lt_0 - 1)) = 0
diff_marker__3_0 * (diff_val_0 - b_msb_f_0 * (2 * cmp_lt_0 - 1)) = 0
(1 - diff_marker__3_0) * (b_msb_f_0 * (2 * cmp_result_0 - 1)) = 0
diff_marker__3_0 * (diff_val_0 - b_msb_f_0 * (2 * cmp_result_0 - 1)) = 0
diff_marker__2_0 * (diff_marker__2_0 - 1) = 0
(1 - (diff_marker__2_0 + diff_marker__3_0)) * (b__2_0 * (2 * cmp_lt_0 - 1)) = 0
diff_marker__2_0 * (diff_val_0 - b__2_0 * (2 * cmp_lt_0 - 1)) = 0
(1 - (diff_marker__2_0 + diff_marker__3_0)) * (b__2_0 * (2 * cmp_result_0 - 1)) = 0
diff_marker__2_0 * (diff_val_0 - b__2_0 * (2 * cmp_result_0 - 1)) = 0
diff_marker__1_0 * (diff_marker__1_0 - 1) = 0
(1 - (diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (b__1_0 * (2 * cmp_lt_0 - 1)) = 0
diff_marker__1_0 * (diff_val_0 - b__1_0 * (2 * cmp_lt_0 - 1)) = 0
(1 - (diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (b__1_0 * (2 * cmp_result_0 - 1)) = 0
diff_marker__1_0 * (diff_val_0 - b__1_0 * (2 * cmp_result_0 - 1)) = 0
diff_marker__0_0 * (diff_marker__0_0 - 1) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (b__0_0 * (2 * cmp_lt_0 - 1)) = 0
diff_marker__0_0 * (diff_val_0 - b__0_0 * (2 * cmp_lt_0 - 1)) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (b__0_0 * (2 * cmp_result_0 - 1)) = 0
diff_marker__0_0 * (diff_val_0 - b__0_0 * (2 * cmp_result_0 - 1)) = 0
(diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0) * (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0 - 1) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * cmp_lt_0 = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * cmp_result_0 = 0
(1 - is_valid) * (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0) = 0
is_valid * (is_valid - 1) = 0

View File

@@ -7,17 +7,17 @@ APC advantage:
- Constraints: 25 -> 18 (1.39x reduction)
Symbolic machine using 17 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
reads_aux__1__base__prev_timestamp_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0
b__0_0
b__1_0
b__2_0
b__3_0
cmp_result_0
b_msb_f_0
cmp_lt_0
diff_marker__0_0
diff_marker__1_0
diff_marker__2_0
@@ -26,41 +26,41 @@ Symbolic machine using 17 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * 1, args=[8 - 4 * cmp_lt_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4 * cmp_result_0 + 4, from_state__timestamp_0 + 2]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__1__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, from_state__timestamp_0 + 1]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_0 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0, args=[diff_val_0 - 1, 0, 0, 0]
mult=is_valid * 1, args=[b_msb_f_0 + 128, 0, 0, 0]
// Algebraic constraints:
-((1 - cmp_lt_0) * cmp_lt_0) = 0
cmp_result_0 * (cmp_result_0 - 1) = 0
(b__3_0 - b_msb_f_0) * (b_msb_f_0 + 256 - b__3_0) = 0
diff_marker__3_0 * (diff_marker__3_0 - 1) = 0
(1 - diff_marker__3_0) * (b_msb_f_0 * (2 * cmp_lt_0 - 1)) = 0
diff_marker__3_0 * (diff_val_0 - b_msb_f_0 * (2 * cmp_lt_0 - 1)) = 0
(1 - diff_marker__3_0) * (b_msb_f_0 * (1 - 2 * cmp_result_0)) = 0
diff_marker__3_0 * (diff_val_0 - b_msb_f_0 * (1 - 2 * cmp_result_0)) = 0
diff_marker__2_0 * (diff_marker__2_0 - 1) = 0
(1 - (diff_marker__2_0 + diff_marker__3_0)) * (b__2_0 * (2 * cmp_lt_0 - 1)) = 0
diff_marker__2_0 * (diff_val_0 - b__2_0 * (2 * cmp_lt_0 - 1)) = 0
(1 - (diff_marker__2_0 + diff_marker__3_0)) * (b__2_0 * (1 - 2 * cmp_result_0)) = 0
diff_marker__2_0 * (diff_val_0 - b__2_0 * (1 - 2 * cmp_result_0)) = 0
diff_marker__1_0 * (diff_marker__1_0 - 1) = 0
(1 - (diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (b__1_0 * (2 * cmp_lt_0 - 1)) = 0
diff_marker__1_0 * (diff_val_0 - b__1_0 * (2 * cmp_lt_0 - 1)) = 0
(1 - (diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (b__1_0 * (1 - 2 * cmp_result_0)) = 0
diff_marker__1_0 * (diff_val_0 - b__1_0 * (1 - 2 * cmp_result_0)) = 0
diff_marker__0_0 * (diff_marker__0_0 - 1) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (b__0_0 * (2 * cmp_lt_0 - 1)) = 0
diff_marker__0_0 * (diff_val_0 - b__0_0 * (2 * cmp_lt_0 - 1)) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (b__0_0 * (1 - 2 * cmp_result_0)) = 0
diff_marker__0_0 * (diff_val_0 - b__0_0 * (1 - 2 * cmp_result_0)) = 0
(diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0) * (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0 - 1) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * cmp_lt_0 = 0
(1 * is_valid - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (1 - cmp_result_0) = 0
(1 - is_valid) * (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0) = 0
is_valid * (is_valid - 1) = 0

View File

@@ -7,17 +7,17 @@ APC advantage:
- Constraints: 25 -> 18 (1.39x reduction)
Symbolic machine using 17 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
reads_aux__1__base__prev_timestamp_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0
a__0_0
a__1_0
a__2_0
a__3_0
cmp_result_0
a_msb_f_0
cmp_lt_0
diff_marker__0_0
diff_marker__1_0
diff_marker__2_0
@@ -26,41 +26,41 @@ Symbolic machine using 17 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * 1, args=[4 * cmp_lt_0 + 4, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4 * cmp_result_0 + 4, from_state__timestamp_0 + 2]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 5, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 5, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 5, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, a__0_0, a__1_0, a__2_0, a__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, reads_aux__1__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, from_state__timestamp_0 + 1]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_0 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0, args=[diff_val_0 - 1, 0, 0, 0]
mult=is_valid * 1, args=[a_msb_f_0 + 128, 0, 0, 0]
// Algebraic constraints:
cmp_lt_0 * (cmp_lt_0 - 1) = 0
cmp_result_0 * (cmp_result_0 - 1) = 0
(a__3_0 - a_msb_f_0) * (a_msb_f_0 + 256 - a__3_0) = 0
diff_marker__3_0 * (diff_marker__3_0 - 1) = 0
-((1 - diff_marker__3_0) * (a_msb_f_0 * (2 * cmp_lt_0 - 1))) = 0
diff_marker__3_0 * (a_msb_f_0 * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
-((1 - diff_marker__3_0) * (a_msb_f_0 * (2 * cmp_result_0 - 1))) = 0
diff_marker__3_0 * (a_msb_f_0 * (2 * cmp_result_0 - 1) + diff_val_0) = 0
diff_marker__2_0 * (diff_marker__2_0 - 1) = 0
-((1 - (diff_marker__2_0 + diff_marker__3_0)) * (a__2_0 * (2 * cmp_lt_0 - 1))) = 0
diff_marker__2_0 * (a__2_0 * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
-((1 - (diff_marker__2_0 + diff_marker__3_0)) * (a__2_0 * (2 * cmp_result_0 - 1))) = 0
diff_marker__2_0 * (a__2_0 * (2 * cmp_result_0 - 1) + diff_val_0) = 0
diff_marker__1_0 * (diff_marker__1_0 - 1) = 0
-((1 - (diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (a__1_0 * (2 * cmp_lt_0 - 1))) = 0
diff_marker__1_0 * (a__1_0 * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
-((1 - (diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (a__1_0 * (2 * cmp_result_0 - 1))) = 0
diff_marker__1_0 * (a__1_0 * (2 * cmp_result_0 - 1) + diff_val_0) = 0
diff_marker__0_0 * (diff_marker__0_0 - 1) = 0
-((1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (a__0_0 * (2 * cmp_lt_0 - 1))) = 0
diff_marker__0_0 * (a__0_0 * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
-((1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (a__0_0 * (2 * cmp_result_0 - 1))) = 0
diff_marker__0_0 * (a__0_0 * (2 * cmp_result_0 - 1) + diff_val_0) = 0
(diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0) * (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0 - 1) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * cmp_lt_0 = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * cmp_result_0 = 0
(1 - is_valid) * (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0) = 0
is_valid * (is_valid - 1) = 0

View File

@@ -7,11 +7,11 @@ APC advantage:
- Constraints: 11 -> 6 (1.83x reduction)
Symbolic machine using 14 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
reads_aux__1__base__prev_timestamp_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0
a__0_0
a__1_0
a__2_0
@@ -23,20 +23,20 @@ Symbolic machine using 14 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * 1, args=[4 * a__0_0 * diff_inv_marker__0_0 + 4 * a__1_0 * diff_inv_marker__1_0 + 4 * a__2_0 * diff_inv_marker__2_0 + 4 * a__3_0 * diff_inv_marker__3_0 + 4, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4 * a__0_0 * diff_inv_marker__0_0 + 4 * a__1_0 * diff_inv_marker__1_0 + 4 * a__2_0 * diff_inv_marker__2_0 + 4 * a__3_0 * diff_inv_marker__3_0 + 4, from_state__timestamp_0 + 2]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 5, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 5, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 5, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, a__0_0, a__1_0, a__2_0, a__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, reads_aux__1__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, from_state__timestamp_0 + 1]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_0 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
// Algebraic constraints:
(a__0_0 * diff_inv_marker__0_0 + a__1_0 * diff_inv_marker__1_0 + a__2_0 * diff_inv_marker__2_0 + a__3_0 * diff_inv_marker__3_0) * (a__0_0 * diff_inv_marker__0_0 + a__1_0 * diff_inv_marker__1_0 + a__2_0 * diff_inv_marker__2_0 + a__3_0 * diff_inv_marker__3_0 - 1) = 0

View File

@@ -5,13 +5,14 @@ Instructions:
JALR 4 4 1780 1 0
APC advantage:
- Main columns: 125 -> 28 (4.46x reduction)
- Bus interactions: 65 -> 20 (3.25x reduction)
- Main columns: 125 -> 26 (4.81x reduction)
- Bus interactions: 65 -> 18 (3.61x reduction)
- Constraints: 61 -> 7 (8.71x reduction)
Symbolic machine using 28 unique main columns:
Symbolic machine using 26 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
a__0_0
a__1_0
a__2_0
@@ -20,48 +21,43 @@ Symbolic machine using 28 unique main columns:
b__1_0
b__2_0
b__3_0
read_data_aux__base__prev_timestamp_1
read_data_aux__base__timestamp_lt_aux__lower_decomp__0_1
read_data_aux__base__timestamp_lt_aux__lower_decomp__1_1
mem_ptr_limbs__0_1
mem_ptr_limbs__1_1
write_base_aux__prev_timestamp_1
write_base_aux__timestamp_lt_aux__lower_decomp__0_1
write_base_aux__timestamp_lt_aux__lower_decomp__1_1
read_data__0_1
read_data__1_1
read_data__2_1
read_data__3_1
prev_data__0_1
prev_data__1_1
prev_data__2_1
prev_data__3_1
rd_aux_cols__prev_data__0_2
rd_aux_cols__prev_data__1_2
rd_aux_cols__prev_data__2_2
rd_aux_cols__prev_data__3_2
rs1_aux_cols__base__prev_timestamp_3
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_3
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_3
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, rs1_aux_cols__base__prev_timestamp_3 + rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_3 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_3 - 6]
mult=is_valid * 1, args=[1788, rs1_aux_cols__base__prev_timestamp_3 + rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_3 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_3 + 3]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[1788, from_state__timestamp_0 + 9]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 8, b__0_0, b__1_0, b__2_0, b__3_0, rs1_aux_cols__base__prev_timestamp_3 + rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_3 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_3 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 7)]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, rs1_aux_cols__base__prev_timestamp_3 + rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_3 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_3 - 3]
mult=is_valid * -1, args=[1, 4, rd_aux_cols__prev_data__0_2, rd_aux_cols__prev_data__1_2, rd_aux_cols__prev_data__2_2, rd_aux_cols__prev_data__3_2, rs1_aux_cols__base__prev_timestamp_3 + rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_3 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_3 - (read_data_aux__base__timestamp_lt_aux__lower_decomp__0_1 + 131072 * read_data_aux__base__timestamp_lt_aux__lower_decomp__1_1 + 3)]
mult=is_valid * -1, args=[2, mem_ptr_limbs__0_1 + 65536 * mem_ptr_limbs__1_1, prev_data__0_1, prev_data__1_1, prev_data__2_1, prev_data__3_1, rs1_aux_cols__base__prev_timestamp_3 + rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_3 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_3 - (write_base_aux__timestamp_lt_aux__lower_decomp__0_1 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_1 + 2)]
mult=is_valid * 1, args=[2, mem_ptr_limbs__0_1 + 65536 * mem_ptr_limbs__1_1, rd_aux_cols__prev_data__0_2, rd_aux_cols__prev_data__1_2, rd_aux_cols__prev_data__2_2, rd_aux_cols__prev_data__3_2, rs1_aux_cols__base__prev_timestamp_3 + rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_3 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_3 - 1]
mult=is_valid * 1, args=[1, 4, 8, 0, 0, 0, rs1_aux_cols__base__prev_timestamp_3 + rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_3 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_3 + 1]
mult=is_valid * -1, args=[1, 8, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, from_state__timestamp_0 + 3]
mult=is_valid * -1, args=[1, 4, read_data__0_1, read_data__1_1, read_data__2_1, read_data__3_1, read_data_aux__base__prev_timestamp_1]
mult=is_valid * -1, args=[2, mem_ptr_limbs__0_1 + 65536 * mem_ptr_limbs__1_1, prev_data__0_1, prev_data__1_1, prev_data__2_1, prev_data__3_1, write_base_aux__prev_timestamp_1]
mult=is_valid * 1, args=[2, mem_ptr_limbs__0_1 + 65536 * mem_ptr_limbs__1_1, read_data__0_1, read_data__1_1, read_data__2_1, read_data__3_1, from_state__timestamp_0 + 5]
mult=is_valid * 1, args=[1, 4, 8, 0, 0, 0, from_state__timestamp_0 + 7]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[-(503316480 * mem_ptr_limbs__0_1), 14]
mult=is_valid * 1, args=[mem_ptr_limbs__1_1, 13]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__0_1, 17]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__1_1, 12]
mult=is_valid * 1, args=[15360 * read_data_aux__base__prev_timestamp_1 + 15360 * read_data_aux__base__timestamp_lt_aux__lower_decomp__0_1 - (15360 * from_state__timestamp_0 + 46080), 12]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__0_1, 17]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__1_1, 12]
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_3, 17]
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_3, 12]
mult=is_valid * 1, args=[15360 * write_base_aux__prev_timestamp_1 + 15360 * write_base_aux__timestamp_lt_aux__lower_decomp__0_1 - (15360 * from_state__timestamp_0 + 61440), 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=is_valid * 1, args=[a__0_0, a__1_0, 0, 0]

View File

@@ -11,77 +11,77 @@ APC advantage:
- Constraints: 111 -> 34 (3.26x reduction)
Symbolic machine using 38 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__base__prev_timestamp_0
writes_aux__base__timestamp_lt_aux__lower_decomp__0_0
writes_aux__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__prev_data__0_0
writes_aux__prev_data__1_0
writes_aux__prev_data__2_0
writes_aux__prev_data__3_0
a__0_0
b__0_0
b__1_0
b__2_0
b__3_0
b__0_1
cmp_result_1
diff_marker__0_1
diff_marker__1_1
diff_marker__2_1
diff_marker__3_1
diff_val_1
reads_aux__0__base__prev_timestamp_2
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_2
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_2
b__0_2
b__1_2
b__2_2
b__3_2
writes_aux__prev_data__0_2
writes_aux__prev_data__1_2
writes_aux__prev_data__2_2
writes_aux__prev_data__3_2
cmp_result_2
b_msb_f_2
diff_marker__0_2
diff_marker__1_2
diff_marker__2_2
diff_marker__3_2
diff_val_2
b__0_3
c__0_3
reads_aux__1__base__prev_timestamp_4
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_4
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_4
cmp_result_4
diff_inv_marker__0_4
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, reads_aux__1__base__prev_timestamp_4 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_4 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_4 - 12]
mult=is_valid * 1, args=[244 * cmp_result_4 + 20, reads_aux__1__base__prev_timestamp_4 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_4 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_4 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[244 * cmp_result_4 + 20, from_state__timestamp_0 + 14]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 44, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__1__base__prev_timestamp_4 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_4 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_4 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 13)]
mult=is_valid * 1, args=[1, 44, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__1__base__prev_timestamp_4 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_4 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_4 - 12]
mult=is_valid * -1, args=[1, 52, writes_aux__prev_data__0_0, writes_aux__prev_data__1_0, writes_aux__prev_data__2_0, writes_aux__prev_data__3_0, reads_aux__1__base__prev_timestamp_4 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_4 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_4 - (writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 11)]
mult=is_valid * -1, args=[1, 56, b__0_2, b__1_2, b__2_2, b__3_2, reads_aux__1__base__prev_timestamp_4 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_4 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_4 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_2 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_2 + 7)]
mult=is_valid * 1, args=[1, 56, c__0_3, 0, 0, 0, reads_aux__1__base__prev_timestamp_4 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_4 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_4 - 2]
mult=is_valid * 1, args=[1, 52, b__0_3 + c__0_3 - b__0_3 * c__0_3, 0, 0, 0, reads_aux__1__base__prev_timestamp_4 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_4 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_4]
mult=is_valid * -1, args=[1, 44, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 44, b__0_0, b__1_0, b__2_0, b__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 52, writes_aux__prev_data__0_0, writes_aux__prev_data__1_0, writes_aux__prev_data__2_0, writes_aux__prev_data__3_0, writes_aux__base__prev_timestamp_0]
mult=is_valid * -1, args=[1, 56, writes_aux__prev_data__0_2, writes_aux__prev_data__1_2, writes_aux__prev_data__2_2, writes_aux__prev_data__3_2, reads_aux__0__base__prev_timestamp_2]
mult=is_valid * 1, args=[1, 56, cmp_result_2, 0, 0, 0, from_state__timestamp_0 + 10]
mult=is_valid * 1, args=[1, 52, cmp_result_1 + cmp_result_2 - cmp_result_1 * cmp_result_2, 0, 0, 0, from_state__timestamp_0 + 12]
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, reads_aux__1__base__prev_timestamp_4]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, reads_aux__1__base__prev_timestamp_4 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_4 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_4 + 1]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, from_state__timestamp_0 + 13]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * writes_aux__base__prev_timestamp_0 + 15360 * writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_2, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_2, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_2 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_2 - (15360 * from_state__timestamp_0 + 76800), 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_4, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_4, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_4 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_4 - (15360 * from_state__timestamp_0 + 184320), 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=is_valid * 1, args=[b__0_0, 3, b__0_0 + 3 - 2 * b__0_1, 1]
mult=is_valid * 1, args=[b__0_0, 3, b__0_0 + 3 - 2 * a__0_0, 1]
mult=diff_marker__0_1 + diff_marker__1_1 + diff_marker__2_1 + diff_marker__3_1, args=[diff_val_1 - 1, 0, 0, 0]
mult=diff_marker__0_2 + diff_marker__1_2 + diff_marker__2_2 + diff_marker__3_2, args=[diff_val_2 - 1, 0, 0, 0]
mult=is_valid * 1, args=[b__0_3 + c__0_3 - 2 * b__0_3 * c__0_3, b_msb_f_2, 0, 0]
mult=is_valid * 1, args=[cmp_result_1 + cmp_result_2 - 2 * cmp_result_1 * cmp_result_2, b_msb_f_2, 0, 0]
// Algebraic constraints:
b__0_3 * (b__0_3 - 1) = 0
cmp_result_1 * (cmp_result_1 - 1) = 0
diff_marker__3_1 * (diff_marker__3_1 - 1) = 0
diff_marker__3_1 * diff_val_1 = 0
diff_marker__2_1 * (diff_marker__2_1 - 1) = 0
@@ -89,29 +89,29 @@ diff_marker__2_1 * diff_val_1 = 0
diff_marker__1_1 * (diff_marker__1_1 - 1) = 0
diff_marker__1_1 * diff_val_1 = 0
diff_marker__0_1 * (diff_marker__0_1 - 1) = 0
(1 * is_valid - (diff_marker__0_1 + diff_marker__1_1 + diff_marker__2_1 + diff_marker__3_1)) * ((1 - b__0_1) * (2 * b__0_3 - 1)) = 0
diff_marker__0_1 * ((b__0_1 - 1) * (2 * b__0_3 - 1) + diff_val_1) = 0
(1 * is_valid - (diff_marker__0_1 + diff_marker__1_1 + diff_marker__2_1 + diff_marker__3_1)) * ((1 - a__0_0) * (2 * cmp_result_1 - 1)) = 0
diff_marker__0_1 * ((a__0_0 - 1) * (2 * cmp_result_1 - 1) + diff_val_1) = 0
(diff_marker__0_1 + diff_marker__1_1 + diff_marker__2_1 + diff_marker__3_1) * (diff_marker__0_1 + diff_marker__1_1 + diff_marker__2_1 + diff_marker__3_1 - 1) = 0
(1 - (diff_marker__0_1 + diff_marker__1_1 + diff_marker__2_1 + diff_marker__3_1)) * b__0_3 = 0
c__0_3 * (c__0_3 - 1) = 0
(b__3_2 - b_msb_f_2) * (b_msb_f_2 + 256 - b__3_2) = 0
(1 - (diff_marker__0_1 + diff_marker__1_1 + diff_marker__2_1 + diff_marker__3_1)) * cmp_result_1 = 0
cmp_result_2 * (cmp_result_2 - 1) = 0
(writes_aux__prev_data__3_2 - b_msb_f_2) * (b_msb_f_2 + 256 - writes_aux__prev_data__3_2) = 0
diff_marker__3_2 * (diff_marker__3_2 - 1) = 0
-((1 - diff_marker__3_2) * (b_msb_f_2 * (2 * c__0_3 - 1))) = 0
diff_marker__3_2 * (b_msb_f_2 * (2 * c__0_3 - 1) + diff_val_2) = 0
-((1 - diff_marker__3_2) * (b_msb_f_2 * (2 * cmp_result_2 - 1))) = 0
diff_marker__3_2 * (b_msb_f_2 * (2 * cmp_result_2 - 1) + diff_val_2) = 0
diff_marker__2_2 * (diff_marker__2_2 - 1) = 0
-((1 - (diff_marker__2_2 + diff_marker__3_2)) * (b__2_2 * (2 * c__0_3 - 1))) = 0
diff_marker__2_2 * (b__2_2 * (2 * c__0_3 - 1) + diff_val_2) = 0
-((1 - (diff_marker__2_2 + diff_marker__3_2)) * (writes_aux__prev_data__2_2 * (2 * cmp_result_2 - 1))) = 0
diff_marker__2_2 * (writes_aux__prev_data__2_2 * (2 * cmp_result_2 - 1) + diff_val_2) = 0
diff_marker__1_2 * (diff_marker__1_2 - 1) = 0
-((1 - (diff_marker__1_2 + diff_marker__2_2 + diff_marker__3_2)) * (b__1_2 * (2 * c__0_3 - 1))) = 0
diff_marker__1_2 * (b__1_2 * (2 * c__0_3 - 1) + diff_val_2) = 0
-((1 - (diff_marker__1_2 + diff_marker__2_2 + diff_marker__3_2)) * (writes_aux__prev_data__1_2 * (2 * cmp_result_2 - 1))) = 0
diff_marker__1_2 * (writes_aux__prev_data__1_2 * (2 * cmp_result_2 - 1) + diff_val_2) = 0
diff_marker__0_2 * (diff_marker__0_2 - 1) = 0
(1 * is_valid - (diff_marker__0_2 + diff_marker__1_2 + diff_marker__2_2 + diff_marker__3_2)) * ((1 - b__0_2) * (2 * c__0_3 - 1)) = 0
diff_marker__0_2 * ((b__0_2 - 1) * (2 * c__0_3 - 1) + diff_val_2) = 0
(1 * is_valid - (diff_marker__0_2 + diff_marker__1_2 + diff_marker__2_2 + diff_marker__3_2)) * ((1 - writes_aux__prev_data__0_2) * (2 * cmp_result_2 - 1)) = 0
diff_marker__0_2 * ((writes_aux__prev_data__0_2 - 1) * (2 * cmp_result_2 - 1) + diff_val_2) = 0
(diff_marker__0_2 + diff_marker__1_2 + diff_marker__2_2 + diff_marker__3_2) * (diff_marker__0_2 + diff_marker__1_2 + diff_marker__2_2 + diff_marker__3_2 - 1) = 0
(1 - (diff_marker__0_2 + diff_marker__1_2 + diff_marker__2_2 + diff_marker__3_2)) * c__0_3 = 0
(1 - (diff_marker__0_2 + diff_marker__1_2 + diff_marker__2_2 + diff_marker__3_2)) * cmp_result_2 = 0
cmp_result_4 * (cmp_result_4 - 1) = 0
(1 - cmp_result_4) * (b__0_3 + c__0_3 - b__0_3 * c__0_3) = 0
(b__0_3 + c__0_3 - b__0_3 * c__0_3) * diff_inv_marker__0_4 - cmp_result_4 = 0
(1 - cmp_result_4) * (cmp_result_1 + cmp_result_2 - cmp_result_1 * cmp_result_2) = 0
(cmp_result_1 + cmp_result_2 - cmp_result_1 * cmp_result_2) * diff_inv_marker__0_4 - cmp_result_4 = 0
(1 - is_valid) * (diff_marker__0_1 + diff_marker__1_1 + diff_marker__2_1 + diff_marker__3_1) = 0
(1 - is_valid) * (diff_marker__0_2 + diff_marker__1_2 + diff_marker__2_2 + diff_marker__3_2) = 0
is_valid * (is_valid - 1) = 0

View File

@@ -7,11 +7,11 @@ APC advantage:
- Constraints: 22 -> 5 (4.40x reduction)
Symbolic machine using 18 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__base__prev_timestamp_0
writes_aux__base__timestamp_lt_aux__lower_decomp__0_0
writes_aux__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__prev_data__0_0
writes_aux__prev_data__1_0
writes_aux__prev_data__2_0
@@ -27,20 +27,20 @@ Symbolic machine using 18 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 8, writes_aux__prev_data__0_0, writes_aux__prev_data__1_0, writes_aux__prev_data__2_0, writes_aux__prev_data__3_0, writes_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * writes_aux__base__prev_timestamp_0 + 15360 * writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=is_valid * 1, args=[a__0_0, a__1_0, 0, 0]

View File

@@ -7,13 +7,13 @@ APC advantage:
- Constraints: 22 -> 5 (4.40x reduction)
Symbolic machine using 20 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
reads_aux__1__base__prev_timestamp_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__base__prev_timestamp_0
writes_aux__base__timestamp_lt_aux__lower_decomp__0_0
writes_aux__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__prev_data__0_0
writes_aux__prev_data__1_0
writes_aux__prev_data__2_0
@@ -29,24 +29,24 @@ Symbolic machine using 20 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, reads_aux__1__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, from_state__timestamp_0 + 1]
mult=is_valid * -1, args=[1, 8, writes_aux__prev_data__0_0, writes_aux__prev_data__1_0, writes_aux__prev_data__2_0, writes_aux__prev_data__3_0, writes_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_0 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * writes_aux__base__prev_timestamp_0 + 15360 * writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=is_valid * 1, args=[a__0_0, a__1_0, 0, 0]

View File

@@ -7,11 +7,11 @@ APC advantage:
- Constraints: 22 -> 1 (22.00x reduction)
Symbolic machine using 18 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__base__prev_timestamp_0
writes_aux__base__timestamp_lt_aux__lower_decomp__0_0
writes_aux__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__prev_data__0_0
writes_aux__prev_data__1_0
writes_aux__prev_data__2_0
@@ -27,20 +27,20 @@ Symbolic machine using 18 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 8, writes_aux__prev_data__0_0, writes_aux__prev_data__1_0, writes_aux__prev_data__2_0, writes_aux__prev_data__3_0, writes_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * writes_aux__base__prev_timestamp_0 + 15360 * writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=is_valid * 1, args=[b__0_0, 255, a__0_0, 1]

View File

@@ -7,9 +7,9 @@ APC advantage:
- Constraints: 9 -> 4 (2.25x reduction)
Symbolic machine using 11 unique main columns:
from_state__timestamp_0
rs1_aux_cols__base__prev_timestamp_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0
rs1_data__0_0
rs1_data__1_0
rs1_data__2_0
@@ -20,18 +20,18 @@ Symbolic machine using 11 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, rs1_aux_cols__base__prev_timestamp_0 + rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[2 * to_pc_limbs__0_0 + 65536 * to_pc_limbs__1_0, rs1_aux_cols__base__prev_timestamp_0 + rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0 + 3]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[2 * to_pc_limbs__0_0 + 65536 * to_pc_limbs__1_0, from_state__timestamp_0 + 2]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 1, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, rs1_aux_cols__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 1, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, rs1_aux_cols__base__prev_timestamp_0 + rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 1, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, from_state__timestamp_0]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[to_pc_limbs__1_0, 14]
mult=is_valid * 1, args=[to_pc_limbs__0_0, 15]
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * rs1_aux_cols__base__prev_timestamp_0 + 15360 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
// Algebraic constraints:
to_pc_least_sig_bit_0 * (to_pc_least_sig_bit_0 - 1) = 0

View File

@@ -7,11 +7,11 @@ APC advantage:
- Constraints: 28 -> 18 (1.56x reduction)
Symbolic machine using 21 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__base__prev_timestamp_0
writes_aux__base__timestamp_lt_aux__lower_decomp__0_0
writes_aux__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__prev_data__0_0
writes_aux__prev_data__1_0
writes_aux__prev_data__2_0
@@ -30,20 +30,20 @@ Symbolic machine using 21 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 8, writes_aux__prev_data__0_0, writes_aux__prev_data__1_0, writes_aux__prev_data__2_0, writes_aux__prev_data__3_0, writes_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, cmp_result_0, 0, 0, 0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 8, cmp_result_0, 0, 0, 0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * writes_aux__base__prev_timestamp_0 + 15360 * writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0, args=[diff_val_0 - 1, 0, 0, 0]

View File

@@ -7,13 +7,13 @@ APC advantage:
- Constraints: 28 -> 18 (1.56x reduction)
Symbolic machine using 23 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
reads_aux__1__base__prev_timestamp_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__base__prev_timestamp_0
writes_aux__base__timestamp_lt_aux__lower_decomp__0_0
writes_aux__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__prev_data__0_0
writes_aux__prev_data__1_0
writes_aux__prev_data__2_0
@@ -32,24 +32,24 @@ Symbolic machine using 23 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, reads_aux__1__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, from_state__timestamp_0 + 1]
mult=is_valid * -1, args=[1, 8, writes_aux__prev_data__0_0, writes_aux__prev_data__1_0, writes_aux__prev_data__2_0, writes_aux__prev_data__3_0, writes_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, cmp_result_0, 0, 0, 0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 8, cmp_result_0, 0, 0, 0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_0 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * writes_aux__base__prev_timestamp_0 + 15360 * writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0, args=[diff_val_0 - 1, 0, 0, 0]

View File

@@ -7,11 +7,11 @@ APC advantage:
- Constraints: 22 -> 1 (22.00x reduction)
Symbolic machine using 10 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__base__prev_timestamp_0
writes_aux__base__timestamp_lt_aux__lower_decomp__0_0
writes_aux__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__prev_data__0_0
writes_aux__prev_data__1_0
writes_aux__prev_data__2_0
@@ -19,20 +19,20 @@ Symbolic machine using 10 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 8, writes_aux__prev_data__0_0, writes_aux__prev_data__1_0, writes_aux__prev_data__2_0, writes_aux__prev_data__3_0, writes_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, 5, 0, 0, 0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 8, 5, 0, 0, 0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * writes_aux__base__prev_timestamp_0 + 15360 * writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Algebraic constraints:
is_valid * (is_valid - 1) = 0

View File

@@ -7,11 +7,11 @@ APC advantage:
- Constraints: 22 -> 1 (22.00x reduction)
Symbolic machine using 10 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__base__prev_timestamp_0
writes_aux__base__timestamp_lt_aux__lower_decomp__0_0
writes_aux__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__prev_data__0_0
writes_aux__prev_data__1_0
writes_aux__prev_data__2_0
@@ -19,20 +19,20 @@ Symbolic machine using 10 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 8, writes_aux__prev_data__0_0, writes_aux__prev_data__1_0, writes_aux__prev_data__2_0, writes_aux__prev_data__3_0, writes_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, 0, 0, 0, 0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 8, 0, 0, 0, 0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * writes_aux__base__prev_timestamp_0 + 15360 * writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Algebraic constraints:
is_valid * (is_valid - 1) = 0

View File

@@ -7,11 +7,11 @@ APC advantage:
- Constraints: 11 -> 6 (1.83x reduction)
Symbolic machine using 18 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
reads_aux__1__base__prev_timestamp_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0
a__0_0
a__1_0
a__2_0
@@ -27,20 +27,20 @@ Symbolic machine using 18 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * 1, args=[(2 * a__0_0 - 2 * b__0_0) * diff_inv_marker__0_0 + (2 * a__1_0 - 2 * b__1_0) * diff_inv_marker__1_0 + (2 * a__2_0 - 2 * b__2_0) * diff_inv_marker__2_0 + (2 * a__3_0 - 2 * b__3_0) * diff_inv_marker__3_0 + 2, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[(2 * a__0_0 - 2 * b__0_0) * diff_inv_marker__0_0 + (2 * a__1_0 - 2 * b__1_0) * diff_inv_marker__1_0 + (2 * a__2_0 - 2 * b__2_0) * diff_inv_marker__2_0 + (2 * a__3_0 - 2 * b__3_0) * diff_inv_marker__3_0 + 2, from_state__timestamp_0 + 2]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__1__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, from_state__timestamp_0 + 1]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_0 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
// Algebraic constraints:
((b__0_0 - a__0_0) * diff_inv_marker__0_0 + (b__1_0 - a__1_0) * diff_inv_marker__1_0 + (b__2_0 - a__2_0) * diff_inv_marker__2_0 + (b__3_0 - a__3_0) * diff_inv_marker__3_0 + 1) * ((b__0_0 - a__0_0) * diff_inv_marker__0_0 + (b__1_0 - a__1_0) * diff_inv_marker__1_0 + (b__2_0 - a__2_0) * diff_inv_marker__2_0 + (b__3_0 - a__3_0) * diff_inv_marker__3_0) = 0

View File

@@ -7,11 +7,11 @@ APC advantage:
- Constraints: 25 -> 19 (1.32x reduction)
Symbolic machine using 22 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
reads_aux__1__base__prev_timestamp_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0
a__0_0
a__1_0
a__2_0
@@ -20,9 +20,9 @@ Symbolic machine using 22 unique main columns:
b__1_0
b__2_0
b__3_0
cmp_result_0
a_msb_f_0
b_msb_f_0
cmp_lt_0
diff_marker__0_0
diff_marker__1_0
diff_marker__2_0
@@ -31,42 +31,42 @@ Symbolic machine using 22 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * 1, args=[2 * cmp_lt_0 + 2, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4 - 2 * cmp_result_0, from_state__timestamp_0 + 2]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__1__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, from_state__timestamp_0 + 1]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_0 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0, args=[diff_val_0 - 1, 0, 0, 0]
mult=is_valid * 1, args=[a_msb_f_0 + 128, b_msb_f_0 + 128, 0, 0]
// Algebraic constraints:
-((1 - cmp_lt_0) * cmp_lt_0) = 0
cmp_result_0 * (cmp_result_0 - 1) = 0
(a__3_0 - a_msb_f_0) * (a_msb_f_0 + 256 - a__3_0) = 0
(b__3_0 - b_msb_f_0) * (b_msb_f_0 + 256 - b__3_0) = 0
diff_marker__3_0 * (diff_marker__3_0 - 1) = 0
(1 - diff_marker__3_0) * ((b_msb_f_0 - a_msb_f_0) * (2 * cmp_lt_0 - 1)) = 0
diff_marker__3_0 * ((a_msb_f_0 - b_msb_f_0) * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
(1 - diff_marker__3_0) * ((b_msb_f_0 - a_msb_f_0) * (1 - 2 * cmp_result_0)) = 0
diff_marker__3_0 * ((a_msb_f_0 - b_msb_f_0) * (1 - 2 * cmp_result_0) + diff_val_0) = 0
diff_marker__2_0 * (diff_marker__2_0 - 1) = 0
(1 - (diff_marker__2_0 + diff_marker__3_0)) * ((b__2_0 - a__2_0) * (2 * cmp_lt_0 - 1)) = 0
diff_marker__2_0 * ((a__2_0 - b__2_0) * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
(1 - (diff_marker__2_0 + diff_marker__3_0)) * ((b__2_0 - a__2_0) * (1 - 2 * cmp_result_0)) = 0
diff_marker__2_0 * ((a__2_0 - b__2_0) * (1 - 2 * cmp_result_0) + diff_val_0) = 0
diff_marker__1_0 * (diff_marker__1_0 - 1) = 0
(1 - (diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * ((b__1_0 - a__1_0) * (2 * cmp_lt_0 - 1)) = 0
diff_marker__1_0 * ((a__1_0 - b__1_0) * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
(1 - (diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * ((b__1_0 - a__1_0) * (1 - 2 * cmp_result_0)) = 0
diff_marker__1_0 * ((a__1_0 - b__1_0) * (1 - 2 * cmp_result_0) + diff_val_0) = 0
diff_marker__0_0 * (diff_marker__0_0 - 1) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * ((b__0_0 - a__0_0) * (2 * cmp_lt_0 - 1)) = 0
diff_marker__0_0 * ((a__0_0 - b__0_0) * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * ((b__0_0 - a__0_0) * (1 - 2 * cmp_result_0)) = 0
diff_marker__0_0 * ((a__0_0 - b__0_0) * (1 - 2 * cmp_result_0) + diff_val_0) = 0
(diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0) * (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0 - 1) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * cmp_lt_0 = 0
(1 * is_valid - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (1 - cmp_result_0) = 0
(1 - is_valid) * (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0) = 0
is_valid * (is_valid - 1) = 0

View File

@@ -7,11 +7,11 @@ APC advantage:
- Constraints: 25 -> 19 (1.32x reduction)
Symbolic machine using 22 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
reads_aux__1__base__prev_timestamp_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0
a__0_0
a__1_0
a__2_0
@@ -20,9 +20,9 @@ Symbolic machine using 22 unique main columns:
b__1_0
b__2_0
b__3_0
cmp_result_0
a_msb_f_0
b_msb_f_0
cmp_lt_0
diff_marker__0_0
diff_marker__1_0
diff_marker__2_0
@@ -31,42 +31,42 @@ Symbolic machine using 22 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * 1, args=[2 * cmp_lt_0 + 2, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4 - 2 * cmp_result_0, from_state__timestamp_0 + 2]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__1__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, from_state__timestamp_0 + 1]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_0 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0, args=[diff_val_0 - 1, 0, 0, 0]
mult=is_valid * 1, args=[a_msb_f_0, b_msb_f_0, 0, 0]
// Algebraic constraints:
-((1 - cmp_lt_0) * cmp_lt_0) = 0
cmp_result_0 * (cmp_result_0 - 1) = 0
(a__3_0 - a_msb_f_0) * (a_msb_f_0 + 256 - a__3_0) = 0
(b__3_0 - b_msb_f_0) * (b_msb_f_0 + 256 - b__3_0) = 0
diff_marker__3_0 * (diff_marker__3_0 - 1) = 0
(1 - diff_marker__3_0) * ((b_msb_f_0 - a_msb_f_0) * (2 * cmp_lt_0 - 1)) = 0
diff_marker__3_0 * ((a_msb_f_0 - b_msb_f_0) * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
(1 - diff_marker__3_0) * ((b_msb_f_0 - a_msb_f_0) * (1 - 2 * cmp_result_0)) = 0
diff_marker__3_0 * ((a_msb_f_0 - b_msb_f_0) * (1 - 2 * cmp_result_0) + diff_val_0) = 0
diff_marker__2_0 * (diff_marker__2_0 - 1) = 0
(1 - (diff_marker__2_0 + diff_marker__3_0)) * ((b__2_0 - a__2_0) * (2 * cmp_lt_0 - 1)) = 0
diff_marker__2_0 * ((a__2_0 - b__2_0) * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
(1 - (diff_marker__2_0 + diff_marker__3_0)) * ((b__2_0 - a__2_0) * (1 - 2 * cmp_result_0)) = 0
diff_marker__2_0 * ((a__2_0 - b__2_0) * (1 - 2 * cmp_result_0) + diff_val_0) = 0
diff_marker__1_0 * (diff_marker__1_0 - 1) = 0
(1 - (diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * ((b__1_0 - a__1_0) * (2 * cmp_lt_0 - 1)) = 0
diff_marker__1_0 * ((a__1_0 - b__1_0) * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
(1 - (diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * ((b__1_0 - a__1_0) * (1 - 2 * cmp_result_0)) = 0
diff_marker__1_0 * ((a__1_0 - b__1_0) * (1 - 2 * cmp_result_0) + diff_val_0) = 0
diff_marker__0_0 * (diff_marker__0_0 - 1) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * ((b__0_0 - a__0_0) * (2 * cmp_lt_0 - 1)) = 0
diff_marker__0_0 * ((a__0_0 - b__0_0) * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * ((b__0_0 - a__0_0) * (1 - 2 * cmp_result_0)) = 0
diff_marker__0_0 * ((a__0_0 - b__0_0) * (1 - 2 * cmp_result_0) + diff_val_0) = 0
(diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0) * (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0 - 1) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * cmp_lt_0 = 0
(1 * is_valid - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * (1 - cmp_result_0) = 0
(1 - is_valid) * (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0) = 0
is_valid * (is_valid - 1) = 0

View File

@@ -7,11 +7,11 @@ APC advantage:
- Constraints: 25 -> 19 (1.32x reduction)
Symbolic machine using 22 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
reads_aux__1__base__prev_timestamp_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0
a__0_0
a__1_0
a__2_0
@@ -20,9 +20,9 @@ Symbolic machine using 22 unique main columns:
b__1_0
b__2_0
b__3_0
cmp_result_0
a_msb_f_0
b_msb_f_0
cmp_lt_0
diff_marker__0_0
diff_marker__1_0
diff_marker__2_0
@@ -31,42 +31,42 @@ Symbolic machine using 22 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * 1, args=[4 - 2 * cmp_lt_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4 - 2 * cmp_result_0, from_state__timestamp_0 + 2]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__1__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, from_state__timestamp_0 + 1]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_0 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0, args=[diff_val_0 - 1, 0, 0, 0]
mult=is_valid * 1, args=[a_msb_f_0 + 128, b_msb_f_0 + 128, 0, 0]
// Algebraic constraints:
cmp_lt_0 * (cmp_lt_0 - 1) = 0
cmp_result_0 * (cmp_result_0 - 1) = 0
(a__3_0 - a_msb_f_0) * (a_msb_f_0 + 256 - a__3_0) = 0
(b__3_0 - b_msb_f_0) * (b_msb_f_0 + 256 - b__3_0) = 0
diff_marker__3_0 * (diff_marker__3_0 - 1) = 0
(1 - diff_marker__3_0) * ((b_msb_f_0 - a_msb_f_0) * (2 * cmp_lt_0 - 1)) = 0
diff_marker__3_0 * ((a_msb_f_0 - b_msb_f_0) * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
(1 - diff_marker__3_0) * ((b_msb_f_0 - a_msb_f_0) * (2 * cmp_result_0 - 1)) = 0
diff_marker__3_0 * ((a_msb_f_0 - b_msb_f_0) * (2 * cmp_result_0 - 1) + diff_val_0) = 0
diff_marker__2_0 * (diff_marker__2_0 - 1) = 0
(1 - (diff_marker__2_0 + diff_marker__3_0)) * ((b__2_0 - a__2_0) * (2 * cmp_lt_0 - 1)) = 0
diff_marker__2_0 * ((a__2_0 - b__2_0) * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
(1 - (diff_marker__2_0 + diff_marker__3_0)) * ((b__2_0 - a__2_0) * (2 * cmp_result_0 - 1)) = 0
diff_marker__2_0 * ((a__2_0 - b__2_0) * (2 * cmp_result_0 - 1) + diff_val_0) = 0
diff_marker__1_0 * (diff_marker__1_0 - 1) = 0
(1 - (diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * ((b__1_0 - a__1_0) * (2 * cmp_lt_0 - 1)) = 0
diff_marker__1_0 * ((a__1_0 - b__1_0) * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
(1 - (diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * ((b__1_0 - a__1_0) * (2 * cmp_result_0 - 1)) = 0
diff_marker__1_0 * ((a__1_0 - b__1_0) * (2 * cmp_result_0 - 1) + diff_val_0) = 0
diff_marker__0_0 * (diff_marker__0_0 - 1) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * ((b__0_0 - a__0_0) * (2 * cmp_lt_0 - 1)) = 0
diff_marker__0_0 * ((a__0_0 - b__0_0) * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * ((b__0_0 - a__0_0) * (2 * cmp_result_0 - 1)) = 0
diff_marker__0_0 * ((a__0_0 - b__0_0) * (2 * cmp_result_0 - 1) + diff_val_0) = 0
(diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0) * (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0 - 1) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * cmp_lt_0 = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * cmp_result_0 = 0
(1 - is_valid) * (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0) = 0
is_valid * (is_valid - 1) = 0

View File

@@ -7,11 +7,11 @@ APC advantage:
- Constraints: 25 -> 19 (1.32x reduction)
Symbolic machine using 22 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
reads_aux__1__base__prev_timestamp_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0
a__0_0
a__1_0
a__2_0
@@ -20,9 +20,9 @@ Symbolic machine using 22 unique main columns:
b__1_0
b__2_0
b__3_0
cmp_result_0
a_msb_f_0
b_msb_f_0
cmp_lt_0
diff_marker__0_0
diff_marker__1_0
diff_marker__2_0
@@ -31,42 +31,42 @@ Symbolic machine using 22 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * 1, args=[4 - 2 * cmp_lt_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4 - 2 * cmp_result_0, from_state__timestamp_0 + 2]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__1__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, from_state__timestamp_0 + 1]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_0 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0, args=[diff_val_0 - 1, 0, 0, 0]
mult=is_valid * 1, args=[a_msb_f_0, b_msb_f_0, 0, 0]
// Algebraic constraints:
cmp_lt_0 * (cmp_lt_0 - 1) = 0
cmp_result_0 * (cmp_result_0 - 1) = 0
(a__3_0 - a_msb_f_0) * (a_msb_f_0 + 256 - a__3_0) = 0
(b__3_0 - b_msb_f_0) * (b_msb_f_0 + 256 - b__3_0) = 0
diff_marker__3_0 * (diff_marker__3_0 - 1) = 0
(1 - diff_marker__3_0) * ((b_msb_f_0 - a_msb_f_0) * (2 * cmp_lt_0 - 1)) = 0
diff_marker__3_0 * ((a_msb_f_0 - b_msb_f_0) * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
(1 - diff_marker__3_0) * ((b_msb_f_0 - a_msb_f_0) * (2 * cmp_result_0 - 1)) = 0
diff_marker__3_0 * ((a_msb_f_0 - b_msb_f_0) * (2 * cmp_result_0 - 1) + diff_val_0) = 0
diff_marker__2_0 * (diff_marker__2_0 - 1) = 0
(1 - (diff_marker__2_0 + diff_marker__3_0)) * ((b__2_0 - a__2_0) * (2 * cmp_lt_0 - 1)) = 0
diff_marker__2_0 * ((a__2_0 - b__2_0) * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
(1 - (diff_marker__2_0 + diff_marker__3_0)) * ((b__2_0 - a__2_0) * (2 * cmp_result_0 - 1)) = 0
diff_marker__2_0 * ((a__2_0 - b__2_0) * (2 * cmp_result_0 - 1) + diff_val_0) = 0
diff_marker__1_0 * (diff_marker__1_0 - 1) = 0
(1 - (diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * ((b__1_0 - a__1_0) * (2 * cmp_lt_0 - 1)) = 0
diff_marker__1_0 * ((a__1_0 - b__1_0) * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
(1 - (diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * ((b__1_0 - a__1_0) * (2 * cmp_result_0 - 1)) = 0
diff_marker__1_0 * ((a__1_0 - b__1_0) * (2 * cmp_result_0 - 1) + diff_val_0) = 0
diff_marker__0_0 * (diff_marker__0_0 - 1) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * ((b__0_0 - a__0_0) * (2 * cmp_lt_0 - 1)) = 0
diff_marker__0_0 * ((a__0_0 - b__0_0) * (2 * cmp_lt_0 - 1) + diff_val_0) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * ((b__0_0 - a__0_0) * (2 * cmp_result_0 - 1)) = 0
diff_marker__0_0 * ((a__0_0 - b__0_0) * (2 * cmp_result_0 - 1) + diff_val_0) = 0
(diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0) * (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0 - 1) = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * cmp_lt_0 = 0
(1 - (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0)) * cmp_result_0 = 0
(1 - is_valid) * (diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0) = 0
is_valid * (is_valid - 1) = 0

View File

@@ -7,11 +7,11 @@ APC advantage:
- Constraints: 11 -> 6 (1.83x reduction)
Symbolic machine using 18 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
reads_aux__1__base__prev_timestamp_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0
a__0_0
a__1_0
a__2_0
@@ -27,20 +27,20 @@ Symbolic machine using 18 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * 1, args=[(2 * b__0_0 - 2 * a__0_0) * diff_inv_marker__0_0 + (2 * b__1_0 - 2 * a__1_0) * diff_inv_marker__1_0 + (2 * b__2_0 - 2 * a__2_0) * diff_inv_marker__2_0 + (2 * b__3_0 - 2 * a__3_0) * diff_inv_marker__3_0 + 4, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[(2 * b__0_0 - 2 * a__0_0) * diff_inv_marker__0_0 + (2 * b__1_0 - 2 * a__1_0) * diff_inv_marker__1_0 + (2 * b__2_0 - 2 * a__2_0) * diff_inv_marker__2_0 + (2 * b__3_0 - 2 * a__3_0) * diff_inv_marker__3_0 + 4, from_state__timestamp_0 + 2]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__1__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__1__base__prev_timestamp_0 + reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, from_state__timestamp_0 + 1]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_0 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
// Algebraic constraints:
((a__0_0 - b__0_0) * diff_inv_marker__0_0 + (a__1_0 - b__1_0) * diff_inv_marker__1_0 + (a__2_0 - b__2_0) * diff_inv_marker__2_0 + (a__3_0 - b__3_0) * diff_inv_marker__3_0) * ((a__0_0 - b__0_0) * diff_inv_marker__0_0 + (a__1_0 - b__1_0) * diff_inv_marker__1_0 + (a__2_0 - b__2_0) * diff_inv_marker__2_0 + (a__3_0 - b__3_0) * diff_inv_marker__3_0 - 1) = 0

View File

@@ -7,18 +7,18 @@ APC advantage:
- Constraints: 18 -> 6 (3.00x reduction)
Symbolic machine using 19 unique main columns:
from_state__timestamp_0
rs1_data__0_0
rs1_data__1_0
rs1_data__2_0
rs1_data__3_0
rs1_aux_cols__base__prev_timestamp_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0
read_data_aux__base__prev_timestamp_0
read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0
read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0
mem_ptr_limbs__0_0
mem_ptr_limbs__1_0
opcode_loadb_flag1_0
opcode_loadb_flag0_0
shift_most_sig_bit_0
data_most_sig_bit_0
shifted_read_data__0_0
@@ -28,26 +28,26 @@ Symbolic machine using 19 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, read_data_aux__base__prev_timestamp_0 + read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * 1, args=[4, read_data_aux__base__prev_timestamp_0 + read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 3]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, read_data_aux__base__prev_timestamp_0 + read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, read_data_aux__base__prev_timestamp_0 + read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 - (opcode_loadb_flag1_0 + 2 * shift_most_sig_bit_0), shift_most_sig_bit_0 * shifted_read_data__2_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__0_0, shift_most_sig_bit_0 * shifted_read_data__3_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__1_0, shift_most_sig_bit_0 * shifted_read_data__0_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__2_0, shift_most_sig_bit_0 * shifted_read_data__1_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__3_0, read_data_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 - (opcode_loadb_flag1_0 + 2 * shift_most_sig_bit_0), shift_most_sig_bit_0 * shifted_read_data__2_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__0_0, shift_most_sig_bit_0 * shifted_read_data__3_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__1_0, shift_most_sig_bit_0 * shifted_read_data__0_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__2_0, shift_most_sig_bit_0 * shifted_read_data__1_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__3_0, read_data_aux__base__prev_timestamp_0 + read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * -1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, rs1_aux_cols__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 + opcode_loadb_flag0_0 - (2 * shift_most_sig_bit_0 + 1), shift_most_sig_bit_0 * shifted_read_data__2_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__0_0, shift_most_sig_bit_0 * shifted_read_data__3_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__1_0, shift_most_sig_bit_0 * shifted_read_data__0_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__2_0, shift_most_sig_bit_0 * shifted_read_data__1_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__3_0, read_data_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 + opcode_loadb_flag0_0 - (2 * shift_most_sig_bit_0 + 1), shift_most_sig_bit_0 * shifted_read_data__2_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__0_0, shift_most_sig_bit_0 * shifted_read_data__3_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__1_0, shift_most_sig_bit_0 * shifted_read_data__0_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__2_0, shift_most_sig_bit_0 * shifted_read_data__1_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__3_0, from_state__timestamp_0 + 1]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[shifted_read_data__0_0 * (1 - opcode_loadb_flag1_0) + shifted_read_data__1_0 * opcode_loadb_flag1_0 - 128 * data_most_sig_bit_0, 7]
mult=is_valid * 1, args=[shifted_read_data__0_0 * opcode_loadb_flag0_0 + shifted_read_data__1_0 * (1 - opcode_loadb_flag0_0) - 128 * data_most_sig_bit_0, 7]
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[503316480 * opcode_loadb_flag1_0 + 1006632960 * shift_most_sig_bit_0 - 503316480 * mem_ptr_limbs__0_0, 14]
mult=is_valid * 1, args=[15360 * rs1_aux_cols__base__prev_timestamp_0 + 15360 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[1006632960 * shift_most_sig_bit_0 + 503316480 - (503316480 * mem_ptr_limbs__0_0 + 503316480 * opcode_loadb_flag0_0), 14]
mult=is_valid * 1, args=[mem_ptr_limbs__1_0, 13]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * read_data_aux__base__prev_timestamp_0 + 15360 * read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
// Algebraic constraints:
-((1 - opcode_loadb_flag1_0) * opcode_loadb_flag1_0) = 0
opcode_loadb_flag0_0 * (opcode_loadb_flag0_0 - 1) = 0
data_most_sig_bit_0 * (data_most_sig_bit_0 - 1) = 0
shift_most_sig_bit_0 * (shift_most_sig_bit_0 - 1) = 0
(30720 * mem_ptr_limbs__0_0 - (30720 * rs1_data__0_0 + 7864320 * rs1_data__1_0 + 92160 * is_valid)) * (30720 * mem_ptr_limbs__0_0 - (30720 * rs1_data__0_0 + 7864320 * rs1_data__1_0 + 92161)) = 0

View File

@@ -7,19 +7,19 @@ APC advantage:
- Constraints: 25 -> 14 (1.79x reduction)
Symbolic machine using 26 unique main columns:
from_state__timestamp_0
rs1_data__0_0
rs1_data__1_0
rs1_data__2_0
rs1_data__3_0
rs1_aux_cols__base__prev_timestamp_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0
read_data_aux__base__prev_timestamp_0
read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0
read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0
mem_ptr_limbs__0_0
mem_ptr_limbs__1_0
write_base_aux__prev_timestamp_0
write_base_aux__timestamp_lt_aux__lower_decomp__0_0
write_base_aux__timestamp_lt_aux__lower_decomp__1_0
flags__0_0
flags__1_0
flags__2_0
@@ -35,26 +35,26 @@ Symbolic machine using 26 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - (rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[2, flags__0_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) + 2 * flags__1_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) + 3 * flags__2_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) + mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 - flags__2_0 * (flags__2_0 - 1), read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - (read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[2, flags__0_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) + 2 * flags__1_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) + 3 * flags__2_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) + mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 - flags__2_0 * (flags__2_0 - 1), read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, rs1_aux_cols__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[2, flags__0_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) + 2 * flags__1_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) + 3 * flags__2_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) + mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 - flags__2_0 * (flags__2_0 - 1), read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, read_data_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[2, flags__0_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) + 2 * flags__1_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) + 3 * flags__2_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) + mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 - flags__2_0 * (flags__2_0 - 1), read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, from_state__timestamp_0 + 1]
mult=is_valid * -1, args=[1, 8, prev_data__0_0, prev_data__1_0, prev_data__2_0, prev_data__3_0, write_base_aux__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, (flags__0_0 * flags__1_0 + flags__0_0 * flags__3_0 - flags__3_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2)) * read_data__0_0 + (flags__0_0 * flags__2_0 + flags__1_0 * flags__2_0 + flags__1_0 * flags__3_0 + flags__2_0 * flags__3_0) * prev_data__0_0 - ((1006632960 * flags__0_0 * (flags__0_0 - 1) + 1006632960 * flags__1_0 * (flags__1_0 - 1) + 1006632960 * flags__3_0 * (flags__3_0 - 1)) * read_data__0_0 + flags__0_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) * read_data__1_0 + (1006632960 * flags__2_0 * (flags__2_0 - 1) + flags__1_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2)) * read_data__2_0 + flags__2_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) * read_data__3_0), 0, 0, 0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 8, (flags__0_0 * flags__1_0 + flags__0_0 * flags__3_0 - flags__3_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2)) * read_data__0_0 + (flags__0_0 * flags__2_0 + flags__1_0 * flags__2_0 + flags__1_0 * flags__3_0 + flags__2_0 * flags__3_0) * prev_data__0_0 - ((1006632960 * flags__0_0 * (flags__0_0 - 1) + 1006632960 * flags__1_0 * (flags__1_0 - 1) + 1006632960 * flags__3_0 * (flags__3_0 - 1)) * read_data__0_0 + flags__0_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) * read_data__1_0 + (1006632960 * flags__2_0 * (flags__2_0 - 1) + flags__1_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2)) * read_data__2_0 + flags__2_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) * read_data__3_0), 0, 0, 0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * rs1_aux_cols__base__prev_timestamp_0 + 15360 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[503316480 * flags__2_0 * (flags__2_0 - 1) + 503316481 * flags__2_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) + 503316480 * flags__1_0 * flags__2_0 + 1006632960 * flags__0_0 * flags__2_0 + 1006632960 * flags__1_0 * flags__3_0 - (503316480 * flags__0_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) + 1006632960 * flags__1_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) + 503316481 * flags__2_0 * flags__3_0 + 503316480 * mem_ptr_limbs__0_0), 14]
mult=is_valid * 1, args=[mem_ptr_limbs__1_0, 13]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * read_data_aux__base__prev_timestamp_0 + 15360 * read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * write_base_aux__prev_timestamp_0 + 15360 * write_base_aux__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Algebraic constraints:
flags__0_0 * ((flags__0_0 - 1) * (flags__0_0 - 2)) = 0

View File

@@ -7,19 +7,19 @@ APC advantage:
- Constraints: 18 -> 5 (3.60x reduction)
Symbolic machine using 24 unique main columns:
from_state__timestamp_0
rs1_data__0_0
rs1_data__1_0
rs1_data__2_0
rs1_data__3_0
rs1_aux_cols__base__prev_timestamp_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0
read_data_aux__base__prev_timestamp_0
read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0
read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0
mem_ptr_limbs__0_0
mem_ptr_limbs__1_0
write_base_aux__prev_timestamp_0
write_base_aux__timestamp_lt_aux__lower_decomp__0_0
write_base_aux__timestamp_lt_aux__lower_decomp__1_0
shift_most_sig_bit_0
data_most_sig_bit_0
shifted_read_data__0_0
@@ -33,27 +33,27 @@ Symbolic machine using 24 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - (rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 - 2 * shift_most_sig_bit_0, shift_most_sig_bit_0 * shifted_read_data__2_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__0_0, shift_most_sig_bit_0 * shifted_read_data__3_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__1_0, shift_most_sig_bit_0 * shifted_read_data__0_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__2_0, shift_most_sig_bit_0 * shifted_read_data__1_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - (read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 - 2 * shift_most_sig_bit_0, shift_most_sig_bit_0 * shifted_read_data__2_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__0_0, shift_most_sig_bit_0 * shifted_read_data__3_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__1_0, shift_most_sig_bit_0 * shifted_read_data__0_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__2_0, shift_most_sig_bit_0 * shifted_read_data__1_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, rs1_aux_cols__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 - 2 * shift_most_sig_bit_0, shift_most_sig_bit_0 * shifted_read_data__2_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__0_0, shift_most_sig_bit_0 * shifted_read_data__3_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__1_0, shift_most_sig_bit_0 * shifted_read_data__0_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__2_0, shift_most_sig_bit_0 * shifted_read_data__1_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__3_0, read_data_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 - 2 * shift_most_sig_bit_0, shift_most_sig_bit_0 * shifted_read_data__2_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__0_0, shift_most_sig_bit_0 * shifted_read_data__3_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__1_0, shift_most_sig_bit_0 * shifted_read_data__0_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__2_0, shift_most_sig_bit_0 * shifted_read_data__1_0 + (1 - shift_most_sig_bit_0) * shifted_read_data__3_0, from_state__timestamp_0 + 1]
mult=is_valid * -1, args=[1, 8, prev_data__0_0, prev_data__1_0, prev_data__2_0, prev_data__3_0, write_base_aux__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, shifted_read_data__0_0, shifted_read_data__1_0, 255 * data_most_sig_bit_0, 255 * data_most_sig_bit_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 8, shifted_read_data__0_0, shifted_read_data__1_0, 255 * data_most_sig_bit_0, 255 * data_most_sig_bit_0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[shifted_read_data__1_0 - 128 * data_most_sig_bit_0, 7]
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * rs1_aux_cols__base__prev_timestamp_0 + 15360 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[1006632960 * shift_most_sig_bit_0 - 503316480 * mem_ptr_limbs__0_0, 14]
mult=is_valid * 1, args=[mem_ptr_limbs__1_0, 13]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * read_data_aux__base__prev_timestamp_0 + 15360 * read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * write_base_aux__prev_timestamp_0 + 15360 * write_base_aux__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Algebraic constraints:
data_most_sig_bit_0 * (data_most_sig_bit_0 - 1) = 0

View File

@@ -7,15 +7,15 @@ APC advantage:
- Constraints: 25 -> 9 (2.78x reduction)
Symbolic machine using 18 unique main columns:
from_state__timestamp_0
rs1_data__0_0
rs1_data__1_0
rs1_data__2_0
rs1_data__3_0
rs1_aux_cols__base__prev_timestamp_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0
read_data_aux__base__prev_timestamp_0
read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0
read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0
mem_ptr_limbs__0_0
mem_ptr_limbs__1_0
flags__1_0
@@ -27,22 +27,22 @@ Symbolic machine using 18 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, read_data_aux__base__prev_timestamp_0 + read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * 1, args=[4, read_data_aux__base__prev_timestamp_0 + read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 3]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, read_data_aux__base__prev_timestamp_0 + read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, read_data_aux__base__prev_timestamp_0 + read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, rs1_aux_cols__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[2, 2 * flags__1_0 * (flags__1_0 + flags__2_0 - 2) + 3 * flags__2_0 * (flags__1_0 + flags__2_0 - 2) + mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 - flags__2_0 * (flags__2_0 - 1), read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, read_data_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[2, 2 * flags__1_0 * (flags__1_0 + flags__2_0 - 2) + 3 * flags__2_0 * (flags__1_0 + flags__2_0 - 2) + mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 - flags__2_0 * (flags__2_0 - 1), read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, read_data_aux__base__prev_timestamp_0 + read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[2, 2 * flags__1_0 * (flags__1_0 + flags__2_0 - 2) + 3 * flags__2_0 * (flags__1_0 + flags__2_0 - 2) + mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 - flags__2_0 * (flags__2_0 - 1), read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, from_state__timestamp_0 + 1]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * rs1_aux_cols__base__prev_timestamp_0 + 15360 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[503316480 * flags__2_0 * (flags__2_0 - 1) + 503316481 * flags__2_0 * (flags__1_0 + flags__2_0 - 2) + 503316480 * flags__1_0 * flags__2_0 - (1006632960 * flags__1_0 * (flags__1_0 + flags__2_0 - 2) + 503316480 * mem_ptr_limbs__0_0), 14]
mult=is_valid * 1, args=[mem_ptr_limbs__1_0, 13]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * read_data_aux__base__prev_timestamp_0 + 15360 * read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
// Algebraic constraints:
flags__1_0 * ((flags__1_0 - 1) * (flags__1_0 - 2)) = 0

View File

@@ -7,50 +7,50 @@ APC advantage:
- Constraints: 25 -> 3 (8.33x reduction)
Symbolic machine using 22 unique main columns:
from_state__timestamp_0
rs1_data__0_0
rs1_data__1_0
rs1_data__2_0
rs1_data__3_0
rs1_aux_cols__base__prev_timestamp_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0
read_data_aux__base__prev_timestamp_0
read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0
read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0
mem_ptr_limbs__0_0
mem_ptr_limbs__1_0
write_base_aux__prev_timestamp_0
write_base_aux__timestamp_lt_aux__lower_decomp__0_0
write_base_aux__timestamp_lt_aux__lower_decomp__1_0
read_data__0_0
read_data__1_0
read_data__2_0
read_data__3_0
prev_data__0_0
prev_data__1_0
prev_data__2_0
prev_data__3_0
write_data__0_0
write_data__1_0
write_data__2_0
write_data__3_0
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - (rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0, write_data__0_0, write_data__1_0, write_data__2_0, write_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - (read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0, write_data__0_0, write_data__1_0, write_data__2_0, write_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, rs1_aux_cols__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0, read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, read_data_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0, read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, from_state__timestamp_0 + 1]
mult=is_valid * -1, args=[1, 8, prev_data__0_0, prev_data__1_0, prev_data__2_0, prev_data__3_0, write_base_aux__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, write_data__0_0, write_data__1_0, write_data__2_0, write_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 8, read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * rs1_aux_cols__base__prev_timestamp_0 + 15360 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[-(503316480 * mem_ptr_limbs__0_0), 14]
mult=is_valid * 1, args=[mem_ptr_limbs__1_0, 13]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * read_data_aux__base__prev_timestamp_0 + 15360 * read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * write_base_aux__prev_timestamp_0 + 15360 * write_base_aux__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Algebraic constraints:
(30720 * mem_ptr_limbs__0_0 - (30720 * rs1_data__0_0 + 7864320 * rs1_data__1_0 + 614400 * is_valid)) * (30720 * mem_ptr_limbs__0_0 - (30720 * rs1_data__0_0 + 7864320 * rs1_data__1_0 + 614401)) = 0

View File

@@ -7,48 +7,48 @@ APC advantage:
- Constraints: 76 -> 1 (76.00x reduction)
Symbolic machine using 18 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__base__prev_timestamp_0
writes_aux__base__timestamp_lt_aux__lower_decomp__0_0
writes_aux__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__prev_data__0_0
writes_aux__prev_data__1_0
writes_aux__prev_data__2_0
writes_aux__prev_data__3_0
a__0_0
a__1_0
a__2_0
a__3_0
b__0_0
b__1_0
b__2_0
b__3_0
bit_shift_carry__0_0
bit_shift_carry__1_0
bit_shift_carry__2_0
bit_shift_carry__3_0
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 40, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 40, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[1, 40, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 40, b__0_0, b__1_0, b__2_0, b__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 68, writes_aux__prev_data__0_0, writes_aux__prev_data__1_0, writes_aux__prev_data__2_0, writes_aux__prev_data__3_0, writes_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 68, 8 * b__0_0 - 256 * bit_shift_carry__0_0, 8 * b__1_0 + bit_shift_carry__0_0 - 256 * bit_shift_carry__1_0, 8 * b__2_0 + bit_shift_carry__1_0 - 256 * bit_shift_carry__2_0, 8 * b__3_0 + bit_shift_carry__2_0 - 256 * bit_shift_carry__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 68, a__0_0, a__1_0, a__2_0, a__3_0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[bit_shift_carry__0_0, 3]
mult=is_valid * 1, args=[bit_shift_carry__1_0, 3]
mult=is_valid * 1, args=[bit_shift_carry__2_0, 3]
mult=is_valid * 1, args=[bit_shift_carry__3_0, 3]
mult=is_valid * 1, args=[7864320 * a__0_0 - 62914560 * b__0_0, 3]
mult=is_valid * 1, args=[30720 * a__0_0 + 7864320 * a__1_0 - (245760 * b__0_0 + 62914560 * b__1_0), 3]
mult=is_valid * 1, args=[120 * a__0_0 + 30720 * a__1_0 + 7864320 * a__2_0 - (960 * b__0_0 + 245760 * b__1_0 + 62914560 * b__2_0), 3]
mult=is_valid * 1, args=[120 * a__1_0 + 30720 * a__2_0 + 7864320 * a__3_0 - (943718400 * a__0_0 + 503316484 * b__0_0 + 960 * b__1_0 + 245760 * b__2_0 + 62914560 * b__3_0), 3]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * writes_aux__base__prev_timestamp_0 + 15360 * writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=is_valid * 1, args=[8 * b__0_0 - 256 * bit_shift_carry__0_0, 8 * b__1_0 + bit_shift_carry__0_0 - 256 * bit_shift_carry__1_0, 0, 0]
mult=is_valid * 1, args=[8 * b__2_0 + bit_shift_carry__1_0 - 256 * bit_shift_carry__2_0, 8 * b__3_0 + bit_shift_carry__2_0 - 256 * bit_shift_carry__3_0, 0, 0]
mult=is_valid * 1, args=[a__0_0, a__1_0, 0, 0]
mult=is_valid * 1, args=[a__2_0, a__3_0, 0, 0]
// Algebraic constraints:
is_valid * (is_valid - 1) = 0

View File

@@ -7,36 +7,36 @@ APC advantage:
- Constraints: 76 -> 1 (76.00x reduction)
Symbolic machine using 14 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__base__prev_timestamp_0
writes_aux__base__timestamp_lt_aux__lower_decomp__0_0
writes_aux__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__prev_data__0_0
writes_aux__prev_data__1_0
writes_aux__prev_data__2_0
writes_aux__prev_data__3_0
b__0_0
b__1_0
b__2_0
a__1_0
a__2_0
a__3_0
b__3_0
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 40, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 40, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[1, 40, a__1_0, a__2_0, a__3_0, b__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 40, a__1_0, a__2_0, a__3_0, b__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 68, writes_aux__prev_data__0_0, writes_aux__prev_data__1_0, writes_aux__prev_data__2_0, writes_aux__prev_data__3_0, writes_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 68, 0, b__0_0, b__1_0, b__2_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 68, 0, a__1_0, a__2_0, a__3_0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * writes_aux__base__prev_timestamp_0 + 15360 * writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Algebraic constraints:
is_valid * (is_valid - 1) = 0

View File

@@ -7,13 +7,13 @@ APC advantage:
- Constraints: 76 -> 38 (2.00x reduction)
Symbolic machine using 40 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
reads_aux__1__base__prev_timestamp_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__base__prev_timestamp_0
writes_aux__base__timestamp_lt_aux__lower_decomp__0_0
writes_aux__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__prev_data__0_0
writes_aux__prev_data__1_0
writes_aux__prev_data__2_0
@@ -32,16 +32,16 @@ Symbolic machine using 40 unique main columns:
c__3_0
bit_multiplier_right_0
b_sign_0
bit_shift_marker__0_0
bit_shift_marker__1_0
bit_shift_marker__2_0
bit_shift_marker__3_0
bit_shift_marker__4_0
bit_shift_marker__5_0
bit_shift_marker__6_0
bit_shift_marker__7_0
limb_shift_marker__0_0
limb_shift_marker__1_0
limb_shift_marker__2_0
limb_shift_marker__3_0
bit_shift_carry__0_0
bit_shift_carry__1_0
bit_shift_carry__2_0
@@ -49,29 +49,29 @@ Symbolic machine using 40 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 40, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 40, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[1, 3, c__0_0, c__1_0, c__2_0, c__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 3, c__0_0, c__1_0, c__2_0, c__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 40, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 40, b__0_0, b__1_0, b__2_0, b__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 3, c__0_0, c__1_0, c__2_0, c__3_0, reads_aux__1__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 3, c__0_0, c__1_0, c__2_0, c__3_0, from_state__timestamp_0 + 1]
mult=is_valid * -1, args=[1, 68, writes_aux__prev_data__0_0, writes_aux__prev_data__1_0, writes_aux__prev_data__2_0, writes_aux__prev_data__3_0, writes_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 68, a__0_0, a__1_0, a__2_0, a__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 68, a__0_0, a__1_0, a__2_0, a__3_0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[62914560 * bit_shift_marker__1_0 + 125829120 * bit_shift_marker__2_0 + 188743680 * bit_shift_marker__3_0 + 251658240 * bit_shift_marker__4_0 + 314572800 * bit_shift_marker__5_0 + 377487360 * bit_shift_marker__6_0 + 440401920 * bit_shift_marker__7_0 + 503316480 * limb_shift_marker__1_0 + 1006632960 * limb_shift_marker__2_0 - (62914560 * c__0_0 + 503316481 * limb_shift_marker__3_0), 3]
mult=is_valid * 1, args=[bit_shift_carry__0_0, bit_shift_marker__1_0 + 2 * bit_shift_marker__2_0 + 3 * bit_shift_marker__3_0 + 4 * bit_shift_marker__4_0 + 5 * bit_shift_marker__5_0 + 6 * bit_shift_marker__6_0 + 7 * bit_shift_marker__7_0]
mult=is_valid * 1, args=[bit_shift_carry__1_0, bit_shift_marker__1_0 + 2 * bit_shift_marker__2_0 + 3 * bit_shift_marker__3_0 + 4 * bit_shift_marker__4_0 + 5 * bit_shift_marker__5_0 + 6 * bit_shift_marker__6_0 + 7 * bit_shift_marker__7_0]
mult=is_valid * 1, args=[bit_shift_carry__2_0, bit_shift_marker__1_0 + 2 * bit_shift_marker__2_0 + 3 * bit_shift_marker__3_0 + 4 * bit_shift_marker__4_0 + 5 * bit_shift_marker__5_0 + 6 * bit_shift_marker__6_0 + 7 * bit_shift_marker__7_0]
mult=is_valid * 1, args=[bit_shift_carry__3_0, bit_shift_marker__1_0 + 2 * bit_shift_marker__2_0 + 3 * bit_shift_marker__3_0 + 4 * bit_shift_marker__4_0 + 5 * bit_shift_marker__5_0 + 6 * bit_shift_marker__6_0 + 7 * bit_shift_marker__7_0]
mult=is_valid * 1, args=[503316481 * limb_shift_marker__0_0 - (62914560 * c__0_0 + 440401920 * bit_shift_marker__0_0 + 377487360 * bit_shift_marker__1_0 + 314572800 * bit_shift_marker__2_0 + 251658240 * bit_shift_marker__3_0 + 188743680 * bit_shift_marker__4_0 + 125829120 * bit_shift_marker__5_0 + 62914560 * bit_shift_marker__6_0 + 1006632960 * limb_shift_marker__1_0 + 503316480 * limb_shift_marker__2_0 + 62914561), 3]
mult=is_valid * 1, args=[bit_shift_carry__0_0, 7 - (7 * bit_shift_marker__0_0 + 6 * bit_shift_marker__1_0 + 5 * bit_shift_marker__2_0 + 4 * bit_shift_marker__3_0 + 3 * bit_shift_marker__4_0 + 2 * bit_shift_marker__5_0 + bit_shift_marker__6_0)]
mult=is_valid * 1, args=[bit_shift_carry__1_0, 7 - (7 * bit_shift_marker__0_0 + 6 * bit_shift_marker__1_0 + 5 * bit_shift_marker__2_0 + 4 * bit_shift_marker__3_0 + 3 * bit_shift_marker__4_0 + 2 * bit_shift_marker__5_0 + bit_shift_marker__6_0)]
mult=is_valid * 1, args=[bit_shift_carry__2_0, 7 - (7 * bit_shift_marker__0_0 + 6 * bit_shift_marker__1_0 + 5 * bit_shift_marker__2_0 + 4 * bit_shift_marker__3_0 + 3 * bit_shift_marker__4_0 + 2 * bit_shift_marker__5_0 + bit_shift_marker__6_0)]
mult=is_valid * 1, args=[bit_shift_carry__3_0, 7 - (7 * bit_shift_marker__0_0 + 6 * bit_shift_marker__1_0 + 5 * bit_shift_marker__2_0 + 4 * bit_shift_marker__3_0 + 3 * bit_shift_marker__4_0 + 2 * bit_shift_marker__5_0 + bit_shift_marker__6_0)]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_0 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * writes_aux__base__prev_timestamp_0 + 15360 * writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=is_valid * 1, args=[b__3_0, 128, b__3_0 + 128 - 256 * b_sign_0, 1]
@@ -79,8 +79,8 @@ mult=is_valid * 1, args=[a__0_0, a__1_0, 0, 0]
mult=is_valid * 1, args=[a__2_0, a__3_0, 0, 0]
// Algebraic constraints:
-((1 - (bit_shift_marker__1_0 + bit_shift_marker__2_0 + bit_shift_marker__3_0 + bit_shift_marker__4_0 + bit_shift_marker__5_0 + bit_shift_marker__6_0 + bit_shift_marker__7_0)) * (bit_shift_marker__1_0 + bit_shift_marker__2_0 + bit_shift_marker__3_0 + bit_shift_marker__4_0 + bit_shift_marker__5_0 + bit_shift_marker__6_0 + bit_shift_marker__7_0)) = 0
(1 * is_valid - (bit_shift_marker__1_0 + bit_shift_marker__2_0 + bit_shift_marker__3_0 + bit_shift_marker__4_0 + bit_shift_marker__5_0 + bit_shift_marker__6_0 + bit_shift_marker__7_0)) * (bit_multiplier_right_0 - 1) = 0
bit_shift_marker__0_0 * (bit_shift_marker__0_0 - 1) = 0
bit_shift_marker__0_0 * (bit_multiplier_right_0 - 1) = 0
bit_shift_marker__1_0 * (bit_shift_marker__1_0 - 1) = 0
bit_shift_marker__1_0 * (bit_multiplier_right_0 - 2) = 0
bit_shift_marker__2_0 * (bit_shift_marker__2_0 - 1) = 0
@@ -93,13 +93,13 @@ bit_shift_marker__5_0 * (bit_shift_marker__5_0 - 1) = 0
bit_shift_marker__5_0 * (bit_multiplier_right_0 - 32) = 0
bit_shift_marker__6_0 * (bit_shift_marker__6_0 - 1) = 0
bit_shift_marker__6_0 * (bit_multiplier_right_0 - 64) = 0
bit_shift_marker__7_0 * (bit_shift_marker__7_0 - 1) = 0
bit_shift_marker__7_0 * (bit_multiplier_right_0 - 128) = 0
-((1 - (limb_shift_marker__1_0 + limb_shift_marker__2_0 + limb_shift_marker__3_0)) * (limb_shift_marker__1_0 + limb_shift_marker__2_0 + limb_shift_marker__3_0)) = 0
(1 - (limb_shift_marker__1_0 + limb_shift_marker__2_0 + limb_shift_marker__3_0)) * (a__0_0 * bit_multiplier_right_0 + bit_shift_carry__0_0 - (b__0_0 + 256 * bit_shift_carry__1_0)) = 0
(1 - (limb_shift_marker__1_0 + limb_shift_marker__2_0 + limb_shift_marker__3_0)) * (a__1_0 * bit_multiplier_right_0 + bit_shift_carry__1_0 - (b__1_0 + 256 * bit_shift_carry__2_0)) = 0
(1 - (limb_shift_marker__1_0 + limb_shift_marker__2_0 + limb_shift_marker__3_0)) * (a__2_0 * bit_multiplier_right_0 + bit_shift_carry__2_0 - (b__2_0 + 256 * bit_shift_carry__3_0)) = 0
(1 - (limb_shift_marker__1_0 + limb_shift_marker__2_0 + limb_shift_marker__3_0)) * (a__3_0 * bit_multiplier_right_0 + bit_shift_carry__3_0 - (256 * b_sign_0 * (bit_multiplier_right_0 - 1) + b__3_0)) = 0
-((1 - (bit_shift_marker__0_0 + bit_shift_marker__1_0 + bit_shift_marker__2_0 + bit_shift_marker__3_0 + bit_shift_marker__4_0 + bit_shift_marker__5_0 + bit_shift_marker__6_0)) * (bit_shift_marker__0_0 + bit_shift_marker__1_0 + bit_shift_marker__2_0 + bit_shift_marker__3_0 + bit_shift_marker__4_0 + bit_shift_marker__5_0 + bit_shift_marker__6_0)) = 0
(1 * is_valid - (bit_shift_marker__0_0 + bit_shift_marker__1_0 + bit_shift_marker__2_0 + bit_shift_marker__3_0 + bit_shift_marker__4_0 + bit_shift_marker__5_0 + bit_shift_marker__6_0)) * (bit_multiplier_right_0 - 128) = 0
limb_shift_marker__0_0 * (limb_shift_marker__0_0 - 1) = 0
limb_shift_marker__0_0 * (a__0_0 * bit_multiplier_right_0 + bit_shift_carry__0_0 - (b__0_0 + 256 * bit_shift_carry__1_0)) = 0
limb_shift_marker__0_0 * (a__1_0 * bit_multiplier_right_0 + bit_shift_carry__1_0 - (b__1_0 + 256 * bit_shift_carry__2_0)) = 0
limb_shift_marker__0_0 * (a__2_0 * bit_multiplier_right_0 + bit_shift_carry__2_0 - (b__2_0 + 256 * bit_shift_carry__3_0)) = 0
limb_shift_marker__0_0 * (a__3_0 * bit_multiplier_right_0 + bit_shift_carry__3_0 - (256 * b_sign_0 * (bit_multiplier_right_0 - 1) + b__3_0)) = 0
limb_shift_marker__1_0 * (limb_shift_marker__1_0 - 1) = 0
limb_shift_marker__1_0 * (a__0_0 * bit_multiplier_right_0 + bit_shift_carry__1_0 - (b__1_0 + 256 * bit_shift_carry__2_0)) = 0
limb_shift_marker__1_0 * (a__1_0 * bit_multiplier_right_0 + bit_shift_carry__2_0 - (b__2_0 + 256 * bit_shift_carry__3_0)) = 0
@@ -110,10 +110,10 @@ limb_shift_marker__2_0 * (a__0_0 * bit_multiplier_right_0 + bit_shift_carry__2_0
limb_shift_marker__2_0 * (a__1_0 * bit_multiplier_right_0 + bit_shift_carry__3_0 - (256 * b_sign_0 * (bit_multiplier_right_0 - 1) + b__3_0)) = 0
limb_shift_marker__2_0 * (a__2_0 - 255 * b_sign_0) = 0
limb_shift_marker__2_0 * (a__3_0 - 255 * b_sign_0) = 0
limb_shift_marker__3_0 * (limb_shift_marker__3_0 - 1) = 0
limb_shift_marker__3_0 * (a__0_0 * bit_multiplier_right_0 + bit_shift_carry__3_0 - (256 * b_sign_0 * (bit_multiplier_right_0 - 1) + b__3_0)) = 0
limb_shift_marker__3_0 * (a__1_0 - 255 * b_sign_0) = 0
limb_shift_marker__3_0 * (a__2_0 - 255 * b_sign_0) = 0
limb_shift_marker__3_0 * (a__3_0 - 255 * b_sign_0) = 0
-((1 - (limb_shift_marker__0_0 + limb_shift_marker__1_0 + limb_shift_marker__2_0)) * (limb_shift_marker__0_0 + limb_shift_marker__1_0 + limb_shift_marker__2_0)) = 0
(1 - (limb_shift_marker__0_0 + limb_shift_marker__1_0 + limb_shift_marker__2_0)) * (a__0_0 * bit_multiplier_right_0 + bit_shift_carry__3_0 - (256 * b_sign_0 * (bit_multiplier_right_0 - 1) + b__3_0)) = 0
(1 - (limb_shift_marker__0_0 + limb_shift_marker__1_0 + limb_shift_marker__2_0)) * (a__1_0 - 255 * b_sign_0) = 0
(1 - (limb_shift_marker__0_0 + limb_shift_marker__1_0 + limb_shift_marker__2_0)) * (a__2_0 - 255 * b_sign_0) = 0
(1 - (limb_shift_marker__0_0 + limb_shift_marker__1_0 + limb_shift_marker__2_0)) * (a__3_0 - 255 * b_sign_0) = 0
b_sign_0 * (b_sign_0 - 1) = 0
is_valid * (is_valid - 1) = 0

View File

@@ -7,41 +7,41 @@ APC advantage:
- Constraints: 76 -> 1 (76.00x reduction)
Symbolic machine using 15 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__base__prev_timestamp_0
writes_aux__base__timestamp_lt_aux__lower_decomp__0_0
writes_aux__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__prev_data__0_0
writes_aux__prev_data__1_0
writes_aux__prev_data__2_0
writes_aux__prev_data__3_0
a__0_0
b__0_0
b__1_0
b__2_0
b__3_0
bit_shift_carry__3_0
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 40, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 40, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[1, 40, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 40, b__0_0, b__1_0, b__2_0, b__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 68, writes_aux__prev_data__0_0, writes_aux__prev_data__1_0, writes_aux__prev_data__2_0, writes_aux__prev_data__3_0, writes_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 68, 1006632960 * bit_shift_carry__3_0 - 1006632960 * b__3_0, 0, 0, 0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 68, a__0_0, 0, 0, 0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[bit_shift_carry__3_0, 1]
mult=is_valid * 1, args=[b__3_0 - 2 * a__0_0, 1]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * writes_aux__base__prev_timestamp_0 + 15360 * writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=is_valid * 1, args=[1006632960 * bit_shift_carry__3_0 - 1006632960 * b__3_0, 0, 0, 0]
mult=is_valid * 1, args=[a__0_0, 0, 0, 0]
// Algebraic constraints:
is_valid * (is_valid - 1) = 0

View File

@@ -7,19 +7,19 @@ APC advantage:
- Constraints: 25 -> 11 (2.27x reduction)
Symbolic machine using 26 unique main columns:
from_state__timestamp_0
rs1_data__0_0
rs1_data__1_0
rs1_data__2_0
rs1_data__3_0
rs1_aux_cols__base__prev_timestamp_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0
read_data_aux__base__prev_timestamp_0
read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0
read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0
mem_ptr_limbs__0_0
mem_ptr_limbs__1_0
write_base_aux__prev_timestamp_0
write_base_aux__timestamp_lt_aux__lower_decomp__0_0
write_base_aux__timestamp_lt_aux__lower_decomp__1_0
flags__0_0
flags__1_0
flags__2_0
@@ -35,26 +35,26 @@ Symbolic machine using 26 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - (rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[1, 8, read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - (read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 8, read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, rs1_aux_cols__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 8, read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, read_data_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, from_state__timestamp_0 + 1]
mult=is_valid * -1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 - (flags__1_0 * flags__2_0 + 2 * flags__0_0 * flags__2_0 + 2 * flags__1_0 * flags__3_0 + 3 * flags__2_0 * flags__3_0), prev_data__0_0, prev_data__1_0, prev_data__2_0, prev_data__3_0, write_base_aux__prev_timestamp_0]
mult=is_valid * 1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 - (flags__1_0 * flags__2_0 + 2 * flags__0_0 * flags__2_0 + 2 * flags__1_0 * flags__3_0 + 3 * flags__2_0 * flags__3_0), (flags__0_0 * flags__1_0 + flags__0_0 * flags__3_0 - flags__3_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2)) * read_data__0_0 + (flags__0_0 * flags__2_0 + flags__1_0 * flags__2_0 + flags__1_0 * flags__3_0 + flags__2_0 * flags__3_0) * prev_data__0_0 - ((1006632960 * flags__0_0 * (flags__0_0 - 1) + 1006632960 * flags__1_0 * (flags__1_0 - 1) + 1006632960 * flags__3_0 * (flags__3_0 - 1)) * read_data__0_0 + flags__0_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) * read_data__1_0 + (1006632960 * flags__2_0 * (flags__2_0 - 1) + flags__1_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2)) * read_data__2_0 + flags__2_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) * read_data__3_0), (flags__0_0 * flags__1_0 - flags__3_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2)) * read_data__1_0 + flags__1_0 * flags__2_0 * read_data__0_0 + (flags__0_0 * flags__2_0 + flags__0_0 * flags__3_0 + flags__1_0 * flags__3_0 + flags__2_0 * flags__3_0) * prev_data__1_0 - ((1006632960 * flags__0_0 * (flags__0_0 - 1) + 1006632960 * flags__1_0 * (flags__1_0 - 1)) * read_data__1_0 + 1006632960 * flags__2_0 * (flags__2_0 - 1) * read_data__3_0), (flags__0_0 * flags__2_0 + flags__1_0 * flags__3_0) * read_data__0_0 + (flags__0_0 * flags__1_0 + flags__0_0 * flags__3_0 + flags__1_0 * flags__2_0 + flags__2_0 * flags__3_0) * prev_data__2_0 - (1006632960 * flags__0_0 * (flags__0_0 - 1) * read_data__2_0 + flags__3_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) * read_data__2_0), flags__2_0 * flags__3_0 * read_data__0_0 + flags__0_0 * flags__2_0 * read_data__1_0 + (flags__0_0 * flags__1_0 + flags__0_0 * flags__3_0 + flags__1_0 * flags__2_0 + flags__1_0 * flags__3_0) * prev_data__3_0 - (1006632960 * flags__0_0 * (flags__0_0 - 1) * read_data__3_0 + flags__3_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) * read_data__3_0), write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 - (flags__1_0 * flags__2_0 + 2 * flags__0_0 * flags__2_0 + 2 * flags__1_0 * flags__3_0 + 3 * flags__2_0 * flags__3_0), (flags__0_0 * flags__1_0 + flags__0_0 * flags__3_0 - flags__3_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2)) * read_data__0_0 + (flags__0_0 * flags__2_0 + flags__1_0 * flags__2_0 + flags__1_0 * flags__3_0 + flags__2_0 * flags__3_0) * prev_data__0_0 - ((1006632960 * flags__0_0 * (flags__0_0 - 1) + 1006632960 * flags__1_0 * (flags__1_0 - 1) + 1006632960 * flags__3_0 * (flags__3_0 - 1)) * read_data__0_0 + flags__0_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) * read_data__1_0 + (1006632960 * flags__2_0 * (flags__2_0 - 1) + flags__1_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2)) * read_data__2_0 + flags__2_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) * read_data__3_0), (flags__0_0 * flags__1_0 - flags__3_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2)) * read_data__1_0 + flags__1_0 * flags__2_0 * read_data__0_0 + (flags__0_0 * flags__2_0 + flags__0_0 * flags__3_0 + flags__1_0 * flags__3_0 + flags__2_0 * flags__3_0) * prev_data__1_0 - ((1006632960 * flags__0_0 * (flags__0_0 - 1) + 1006632960 * flags__1_0 * (flags__1_0 - 1)) * read_data__1_0 + 1006632960 * flags__2_0 * (flags__2_0 - 1) * read_data__3_0), (flags__0_0 * flags__2_0 + flags__1_0 * flags__3_0) * read_data__0_0 + (flags__0_0 * flags__1_0 + flags__0_0 * flags__3_0 + flags__1_0 * flags__2_0 + flags__2_0 * flags__3_0) * prev_data__2_0 - (1006632960 * flags__0_0 * (flags__0_0 - 1) * read_data__2_0 + flags__3_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) * read_data__2_0), flags__2_0 * flags__3_0 * read_data__0_0 + flags__0_0 * flags__2_0 * read_data__1_0 + (flags__0_0 * flags__1_0 + flags__0_0 * flags__3_0 + flags__1_0 * flags__2_0 + flags__1_0 * flags__3_0) * prev_data__3_0 - (1006632960 * flags__0_0 * (flags__0_0 - 1) * read_data__3_0 + flags__3_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) * read_data__3_0), from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * rs1_aux_cols__base__prev_timestamp_0 + 15360 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[503316480 * flags__2_0 * (flags__2_0 - 1) + 503316481 * flags__2_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) + 503316480 * flags__1_0 * flags__2_0 + 1006632960 * flags__0_0 * flags__2_0 + 1006632960 * flags__1_0 * flags__3_0 - (503316480 * flags__0_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) + 1006632960 * flags__1_0 * (flags__0_0 + flags__1_0 + flags__2_0 + flags__3_0 - 2) + 503316481 * flags__2_0 * flags__3_0 + 503316480 * mem_ptr_limbs__0_0), 14]
mult=is_valid * 1, args=[mem_ptr_limbs__1_0, 13]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * read_data_aux__base__prev_timestamp_0 + 15360 * read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * write_base_aux__prev_timestamp_0 + 15360 * write_base_aux__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Algebraic constraints:
flags__0_0 * ((flags__0_0 - 1) * (flags__0_0 - 2)) = 0

View File

@@ -7,19 +7,19 @@ APC advantage:
- Constraints: 25 -> 9 (2.78x reduction)
Symbolic machine using 24 unique main columns:
from_state__timestamp_0
rs1_data__0_0
rs1_data__1_0
rs1_data__2_0
rs1_data__3_0
rs1_aux_cols__base__prev_timestamp_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0
read_data_aux__base__prev_timestamp_0
read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0
read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0
mem_ptr_limbs__0_0
mem_ptr_limbs__1_0
write_base_aux__prev_timestamp_0
write_base_aux__timestamp_lt_aux__lower_decomp__0_0
write_base_aux__timestamp_lt_aux__lower_decomp__1_0
flags__1_0
flags__2_0
read_data__0_0
@@ -33,26 +33,26 @@ Symbolic machine using 24 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - (rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[1, 8, read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - (read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 8, read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, rs1_aux_cols__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 8, read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, read_data_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, from_state__timestamp_0 + 1]
mult=is_valid * -1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 - (flags__1_0 * flags__2_0 + 2 * flags__2_0), prev_data__0_0, prev_data__1_0, prev_data__2_0, prev_data__3_0, write_base_aux__prev_timestamp_0]
mult=is_valid * 1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 - (flags__1_0 * flags__2_0 + 2 * flags__2_0), (1 - (flags__1_0 + flags__2_0)) * read_data__1_0 + flags__1_0 * read_data__0_0 + (flags__1_0 * flags__2_0 + flags__2_0) * prev_data__0_0 - (1006632960 * flags__1_0 * (flags__1_0 - 1) * read_data__0_0 + (1006632960 * flags__2_0 * (flags__2_0 - 1) + flags__1_0 * (flags__1_0 + flags__2_0 - 1)) * read_data__2_0 + flags__2_0 * (flags__1_0 + flags__2_0 - 1) * read_data__3_0), flags__1_0 * read_data__1_0 + flags__1_0 * flags__2_0 * read_data__0_0 + flags__2_0 * prev_data__1_0 - (1006632960 * flags__1_0 * (flags__1_0 - 1) * read_data__1_0 + 1006632960 * flags__2_0 * (flags__2_0 - 1) * read_data__3_0), flags__2_0 * read_data__0_0 + (flags__1_0 * flags__2_0 + flags__1_0) * prev_data__2_0, flags__2_0 * read_data__1_0 + (flags__1_0 * flags__2_0 + flags__1_0) * prev_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0 - (flags__1_0 * flags__2_0 + 2 * flags__2_0), (1 - (flags__1_0 + flags__2_0)) * read_data__1_0 + flags__1_0 * read_data__0_0 + (flags__1_0 * flags__2_0 + flags__2_0) * prev_data__0_0 - (1006632960 * flags__1_0 * (flags__1_0 - 1) * read_data__0_0 + (1006632960 * flags__2_0 * (flags__2_0 - 1) + flags__1_0 * (flags__1_0 + flags__2_0 - 1)) * read_data__2_0 + flags__2_0 * (flags__1_0 + flags__2_0 - 1) * read_data__3_0), flags__1_0 * read_data__1_0 + flags__1_0 * flags__2_0 * read_data__0_0 + flags__2_0 * prev_data__1_0 - (1006632960 * flags__1_0 * (flags__1_0 - 1) * read_data__1_0 + 1006632960 * flags__2_0 * (flags__2_0 - 1) * read_data__3_0), flags__2_0 * read_data__0_0 + (flags__1_0 * flags__2_0 + flags__1_0) * prev_data__2_0, flags__2_0 * read_data__1_0 + (flags__1_0 * flags__2_0 + flags__1_0) * prev_data__3_0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * rs1_aux_cols__base__prev_timestamp_0 + 15360 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[503316480 * flags__2_0 * (flags__2_0 - 1) + 503316481 * flags__2_0 * (flags__1_0 + flags__2_0 - 1) + 503316480 * flags__1_0 * flags__2_0 + 503316480 * flags__2_0 + 503316480 - (1006632960 * flags__1_0 * (flags__1_0 + flags__2_0 - 1) + 503316480 * mem_ptr_limbs__0_0 + 503316480 * flags__1_0), 14]
mult=is_valid * 1, args=[mem_ptr_limbs__1_0, 13]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * read_data_aux__base__prev_timestamp_0 + 15360 * read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * write_base_aux__prev_timestamp_0 + 15360 * write_base_aux__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Algebraic constraints:
flags__1_0 * ((flags__1_0 - 1) * (flags__1_0 - 2)) = 0

View File

@@ -7,50 +7,50 @@ APC advantage:
- Constraints: 25 -> 3 (8.33x reduction)
Symbolic machine using 22 unique main columns:
from_state__timestamp_0
rs1_data__0_0
rs1_data__1_0
rs1_data__2_0
rs1_data__3_0
rs1_aux_cols__base__prev_timestamp_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0
read_data_aux__base__prev_timestamp_0
read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0
read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0
mem_ptr_limbs__0_0
mem_ptr_limbs__1_0
write_base_aux__prev_timestamp_0
write_base_aux__timestamp_lt_aux__lower_decomp__0_0
write_base_aux__timestamp_lt_aux__lower_decomp__1_0
read_data__0_0
read_data__1_0
read_data__2_0
read_data__3_0
prev_data__0_0
prev_data__1_0
prev_data__2_0
prev_data__3_0
write_data__0_0
write_data__1_0
write_data__2_0
write_data__3_0
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - (rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[1, 8, write_data__0_0, write_data__1_0, write_data__2_0, write_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 - (read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 8, write_data__0_0, write_data__1_0, write_data__2_0, write_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, rs1_aux_cols__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 8, read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, read_data_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, from_state__timestamp_0 + 1]
mult=is_valid * -1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0, prev_data__0_0, prev_data__1_0, prev_data__2_0, prev_data__3_0, write_base_aux__prev_timestamp_0]
mult=is_valid * 1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0, write_data__0_0, write_data__1_0, write_data__2_0, write_data__3_0, write_base_aux__prev_timestamp_0 + write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0, read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * rs1_aux_cols__base__prev_timestamp_0 + 15360 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[-(503316480 * mem_ptr_limbs__0_0), 14]
mult=is_valid * 1, args=[mem_ptr_limbs__1_0, 13]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * read_data_aux__base__prev_timestamp_0 + 15360 * read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * write_base_aux__prev_timestamp_0 + 15360 * write_base_aux__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Algebraic constraints:
(30720 * mem_ptr_limbs__0_0 - (30720 * rs1_data__0_0 + 7864320 * rs1_data__1_0 + 122880 * is_valid)) * (30720 * mem_ptr_limbs__0_0 - (30720 * rs1_data__0_0 + 7864320 * rs1_data__1_0 + 122881)) = 0

View File

@@ -7,13 +7,13 @@ APC advantage:
- Constraints: 22 -> 5 (4.40x reduction)
Symbolic machine using 24 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
reads_aux__1__base__prev_timestamp_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__base__prev_timestamp_0
writes_aux__base__timestamp_lt_aux__lower_decomp__0_0
writes_aux__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__prev_data__0_0
writes_aux__prev_data__1_0
writes_aux__prev_data__2_0
@@ -33,24 +33,24 @@ Symbolic machine using 24 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 7, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 7, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 7, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 7, b__0_0, b__1_0, b__2_0, b__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, reads_aux__1__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, from_state__timestamp_0 + 1]
mult=is_valid * -1, args=[1, 8, writes_aux__prev_data__0_0, writes_aux__prev_data__1_0, writes_aux__prev_data__2_0, writes_aux__prev_data__3_0, writes_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_0 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * writes_aux__base__prev_timestamp_0 + 15360 * writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=is_valid * 1, args=[a__0_0, a__1_0, 0, 0]

View File

@@ -7,13 +7,13 @@ APC advantage:
- Constraints: 22 -> 1 (22.00x reduction)
Symbolic machine using 24 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
reads_aux__1__base__prev_timestamp_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__base__prev_timestamp_0
writes_aux__base__timestamp_lt_aux__lower_decomp__0_0
writes_aux__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__prev_data__0_0
writes_aux__prev_data__1_0
writes_aux__prev_data__2_0
@@ -33,24 +33,24 @@ Symbolic machine using 24 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 7, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 7, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 7, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 7, b__0_0, b__1_0, b__2_0, b__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, reads_aux__1__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, from_state__timestamp_0 + 1]
mult=is_valid * -1, args=[1, 8, writes_aux__prev_data__0_0, writes_aux__prev_data__1_0, writes_aux__prev_data__2_0, writes_aux__prev_data__3_0, writes_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 8, a__0_0, a__1_0, a__2_0, a__3_0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_0 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * writes_aux__base__prev_timestamp_0 + 15360 * writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=is_valid * 1, args=[b__0_0, c__0_0, a__0_0, 1]

View File

@@ -7,13 +7,13 @@ APC advantage:
- Constraints: 28 -> 18 (1.56x reduction)
Symbolic machine using 23 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
reads_aux__1__base__prev_timestamp_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__base__prev_timestamp_0
writes_aux__base__timestamp_lt_aux__lower_decomp__0_0
writes_aux__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__prev_data__0_0
writes_aux__prev_data__1_0
writes_aux__prev_data__2_0
@@ -32,24 +32,24 @@ Symbolic machine using 23 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, b__0_0, b__1_0, b__2_0, b__3_0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, reads_aux__1__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, from_state__timestamp_0 + 1]
mult=is_valid * -1, args=[1, 8, writes_aux__prev_data__0_0, writes_aux__prev_data__1_0, writes_aux__prev_data__2_0, writes_aux__prev_data__3_0, writes_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, cmp_result_0, 0, 0, 0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 8, cmp_result_0, 0, 0, 0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_0 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * writes_aux__base__prev_timestamp_0 + 15360 * writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0, args=[diff_val_0 - 1, 0, 0, 0]

View File

@@ -7,13 +7,13 @@ APC advantage:
- Constraints: 28 -> 18 (1.56x reduction)
Symbolic machine using 23 unique main columns:
from_state__timestamp_0
reads_aux__0__base__prev_timestamp_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0
reads_aux__1__base__prev_timestamp_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0
reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__base__prev_timestamp_0
writes_aux__base__timestamp_lt_aux__lower_decomp__0_0
writes_aux__base__timestamp_lt_aux__lower_decomp__1_0
writes_aux__prev_data__0_0
writes_aux__prev_data__1_0
writes_aux__prev_data__2_0
@@ -32,24 +32,24 @@ Symbolic machine using 23 unique main columns:
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * 1, args=[4, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[4, from_state__timestamp_0 + 3]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0 + 2)]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - 1]
mult=is_valid * -1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 - (reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0 + 1)]
mult=is_valid * 1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0]
mult=is_valid * -1, args=[1, 0, 0, 0, 0, 0, reads_aux__0__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 0, 0, 0, 0, 0, from_state__timestamp_0]
mult=is_valid * -1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, reads_aux__1__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 5, c__0_0, c__1_0, c__2_0, c__3_0, from_state__timestamp_0 + 1]
mult=is_valid * -1, args=[1, 8, writes_aux__prev_data__0_0, writes_aux__prev_data__1_0, writes_aux__prev_data__2_0, writes_aux__prev_data__3_0, writes_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[1, 8, cmp_result_0, 0, 0, 0, writes_aux__base__prev_timestamp_0 + writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * writes_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 1]
mult=is_valid * 1, args=[1, 8, cmp_result_0, 0, 0, 0, from_state__timestamp_0 + 2]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__0__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__0__base__prev_timestamp_0 + 15360 * reads_aux__0__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[reads_aux__1__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * reads_aux__1__base__prev_timestamp_0 + 15360 * reads_aux__1__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[writes_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * writes_aux__base__prev_timestamp_0 + 15360 * writes_aux__base__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
// Bus 6 (OPENVM_BITWISE_LOOKUP):
mult=diff_marker__0_0 + diff_marker__1_0 + diff_marker__2_0 + diff_marker__3_0, args=[diff_val_0 - 1, 0, 0, 0]

View File

@@ -4,87 +4,83 @@ Instructions:
STOREW rd_rs2_ptr = 8, rs1_ptr = 2, imm = 24, mem_as = 2, needs_write = 1, imm_sign = 0
APC advantage:
- Main columns: 123 -> 38 (3.24x reduction)
- Bus interactions: 51 -> 28 (1.82x reduction)
- Main columns: 123 -> 36 (3.42x reduction)
- Bus interactions: 51 -> 26 (1.96x reduction)
- Constraints: 75 -> 5 (15.00x reduction)
Symbolic machine using 38 unique main columns:
Symbolic machine using 36 unique main columns:
from_state__timestamp_0
rs1_data__0_0
rs1_data__1_0
rs1_data__2_0
rs1_data__3_0
rs1_aux_cols__base__prev_timestamp_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0
rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0
read_data_aux__base__prev_timestamp_0
read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0
read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0
mem_ptr_limbs__0_0
mem_ptr_limbs__1_0
write_base_aux__prev_timestamp_0
write_base_aux__timestamp_lt_aux__lower_decomp__0_0
write_base_aux__timestamp_lt_aux__lower_decomp__1_0
read_data__0_0
read_data__1_0
read_data__2_0
read_data__3_0
prev_data__0_0
prev_data__1_0
prev_data__2_0
prev_data__3_0
read_data_aux__base__prev_timestamp_1
read_data_aux__base__timestamp_lt_aux__lower_decomp__0_1
read_data_aux__base__timestamp_lt_aux__lower_decomp__1_1
mem_ptr_limbs__0_1
mem_ptr_limbs__1_1
write_base_aux__prev_timestamp_1
write_base_aux__timestamp_lt_aux__lower_decomp__0_1
write_base_aux__timestamp_lt_aux__lower_decomp__1_1
read_data__0_1
read_data__1_1
read_data__2_1
read_data__3_1
prev_data__0_1
prev_data__1_1
prev_data__2_1
prev_data__3_1
rs1_data__0_2
rs1_data__1_2
rs1_data__2_2
rs1_data__3_2
write_base_aux__prev_timestamp_2
write_base_aux__timestamp_lt_aux__lower_decomp__0_2
write_base_aux__timestamp_lt_aux__lower_decomp__1_2
prev_data__0_2
prev_data__1_2
prev_data__2_2
prev_data__3_2
write_data__0_2
write_data__1_2
write_data__2_2
write_data__3_2
is_valid
// Bus 0 (EXECUTION_BRIDGE):
mult=is_valid * -1, args=[0, write_base_aux__prev_timestamp_2 + write_base_aux__timestamp_lt_aux__lower_decomp__0_2 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_2 - 7]
mult=is_valid * 1, args=[12, write_base_aux__prev_timestamp_2 + write_base_aux__timestamp_lt_aux__lower_decomp__0_2 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_2 + 2]
mult=is_valid * -1, args=[0, from_state__timestamp_0]
mult=is_valid * 1, args=[12, from_state__timestamp_0 + 9]
// Bus 1 (MEMORY):
mult=is_valid * -1, args=[1, 2, rs1_data__0_2, rs1_data__1_2, rs1_data__2_2, rs1_data__3_2, write_base_aux__prev_timestamp_2 + write_base_aux__timestamp_lt_aux__lower_decomp__0_2 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_2 - (rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0 + 8)]
mult=is_valid * -1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0, write_data__0_2, write_data__1_2, write_data__2_2, write_data__3_2, write_base_aux__prev_timestamp_2 + write_base_aux__timestamp_lt_aux__lower_decomp__0_2 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_2 - (read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 + 131072 * read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0 + 7)]
mult=is_valid * 1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0, write_data__0_2, write_data__1_2, write_data__2_2, write_data__3_2, write_base_aux__prev_timestamp_2 + write_base_aux__timestamp_lt_aux__lower_decomp__0_2 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_2 - 6]
mult=is_valid * -1, args=[1, 8, prev_data__0_0, prev_data__1_0, prev_data__2_0, prev_data__3_0, write_base_aux__prev_timestamp_2 + write_base_aux__timestamp_lt_aux__lower_decomp__0_2 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_2 - (write_base_aux__timestamp_lt_aux__lower_decomp__0_0 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_0 + 6)]
mult=is_valid * -1, args=[2, mem_ptr_limbs__0_1 + 65536 * mem_ptr_limbs__1_1, prev_data__0_2, prev_data__1_2, prev_data__2_2, prev_data__3_2, write_base_aux__prev_timestamp_2 + write_base_aux__timestamp_lt_aux__lower_decomp__0_2 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_2 - (read_data_aux__base__timestamp_lt_aux__lower_decomp__0_1 + 131072 * read_data_aux__base__timestamp_lt_aux__lower_decomp__1_1 + 4)]
mult=is_valid * -1, args=[1, 9, prev_data__0_1, prev_data__1_1, prev_data__2_1, prev_data__3_1, write_base_aux__prev_timestamp_2 + write_base_aux__timestamp_lt_aux__lower_decomp__0_2 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_2 - (write_base_aux__timestamp_lt_aux__lower_decomp__0_1 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_1 + 3)]
mult=is_valid * 1, args=[1, 9, prev_data__0_2, prev_data__1_2, prev_data__2_2, prev_data__3_2, write_base_aux__prev_timestamp_2 + write_base_aux__timestamp_lt_aux__lower_decomp__0_2 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_2 - 2]
mult=is_valid * 1, args=[1, 2, rs1_data__0_2, rs1_data__1_2, rs1_data__2_2, rs1_data__3_2, write_base_aux__prev_timestamp_2 + write_base_aux__timestamp_lt_aux__lower_decomp__0_2 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_2 - 1]
mult=is_valid * 1, args=[1, 8, write_data__0_2, write_data__1_2, write_data__2_2, write_data__3_2, write_base_aux__prev_timestamp_2 + write_base_aux__timestamp_lt_aux__lower_decomp__0_2 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_2]
mult=is_valid * 1, args=[2, mem_ptr_limbs__0_1 + 65536 * mem_ptr_limbs__1_1, write_data__0_2, write_data__1_2, write_data__2_2, write_data__3_2, write_base_aux__prev_timestamp_2 + write_base_aux__timestamp_lt_aux__lower_decomp__0_2 + 131072 * write_base_aux__timestamp_lt_aux__lower_decomp__1_2 + 1]
mult=is_valid * -1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, rs1_aux_cols__base__prev_timestamp_0]
mult=is_valid * -1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0, read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, read_data_aux__base__prev_timestamp_0]
mult=is_valid * 1, args=[2, mem_ptr_limbs__0_0 + 65536 * mem_ptr_limbs__1_0, read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, from_state__timestamp_0 + 1]
mult=is_valid * -1, args=[1, 8, prev_data__0_0, prev_data__1_0, prev_data__2_0, prev_data__3_0, write_base_aux__prev_timestamp_0]
mult=is_valid * -1, args=[2, mem_ptr_limbs__0_1 + 65536 * mem_ptr_limbs__1_1, read_data__0_1, read_data__1_1, read_data__2_1, read_data__3_1, read_data_aux__base__prev_timestamp_1]
mult=is_valid * -1, args=[1, 9, prev_data__0_1, prev_data__1_1, prev_data__2_1, prev_data__3_1, write_base_aux__prev_timestamp_1]
mult=is_valid * 1, args=[1, 9, read_data__0_1, read_data__1_1, read_data__2_1, read_data__3_1, from_state__timestamp_0 + 5]
mult=is_valid * 1, args=[1, 2, rs1_data__0_0, rs1_data__1_0, rs1_data__2_0, rs1_data__3_0, from_state__timestamp_0 + 6]
mult=is_valid * 1, args=[1, 8, read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, from_state__timestamp_0 + 7]
mult=is_valid * 1, args=[2, mem_ptr_limbs__0_1 + 65536 * mem_ptr_limbs__1_1, read_data__0_0, read_data__1_0, read_data__2_0, read_data__3_0, from_state__timestamp_0 + 8]
// Bus 3 (VARIABLE_RANGE_CHECKER):
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * rs1_aux_cols__base__prev_timestamp_0 + 15360 * rs1_aux_cols__base__timestamp_lt_aux__lower_decomp__0_0 + 15360 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[-(503316480 * mem_ptr_limbs__0_0), 14]
mult=is_valid * 1, args=[mem_ptr_limbs__1_0, 13]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * read_data_aux__base__prev_timestamp_0 + 15360 * read_data_aux__base__timestamp_lt_aux__lower_decomp__0_0 - 15360 * from_state__timestamp_0, 12]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__0_0, 17]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__1_0, 12]
mult=is_valid * 1, args=[15360 * write_base_aux__prev_timestamp_0 + 15360 * write_base_aux__timestamp_lt_aux__lower_decomp__0_0 - (15360 * from_state__timestamp_0 + 15360), 12]
mult=is_valid * 1, args=[-(503316480 * mem_ptr_limbs__0_1), 14]
mult=is_valid * 1, args=[mem_ptr_limbs__1_1, 13]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__0_1, 17]
mult=is_valid * 1, args=[read_data_aux__base__timestamp_lt_aux__lower_decomp__1_1, 12]
mult=is_valid * 1, args=[15360 * read_data_aux__base__prev_timestamp_1 + 15360 * read_data_aux__base__timestamp_lt_aux__lower_decomp__0_1 - (15360 * from_state__timestamp_0 + 46080), 12]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__0_1, 17]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__1_1, 12]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__0_2, 17]
mult=is_valid * 1, args=[write_base_aux__timestamp_lt_aux__lower_decomp__1_2, 12]
mult=is_valid * 1, args=[15360 * write_base_aux__prev_timestamp_1 + 15360 * write_base_aux__timestamp_lt_aux__lower_decomp__0_1 - (15360 * from_state__timestamp_0 + 61440), 12]
// Algebraic constraints:
(30720 * mem_ptr_limbs__0_0 - (30720 * rs1_data__0_2 + 7864320 * rs1_data__1_2 + 614400 * is_valid)) * (30720 * mem_ptr_limbs__0_0 - (30720 * rs1_data__0_2 + 7864320 * rs1_data__1_2 + 614401)) = 0
(30720 * mem_ptr_limbs__1_0 + 943718400 * rs1_data__0_2 + 754974711 * is_valid - (943718400 * mem_ptr_limbs__0_0 + 120 * rs1_data__1_2 + 30720 * rs1_data__2_2 + 7864320 * rs1_data__3_2)) * (30720 * mem_ptr_limbs__1_0 + 943718400 * rs1_data__0_2 + 754974710 - (943718400 * mem_ptr_limbs__0_0 + 120 * rs1_data__1_2 + 30720 * rs1_data__2_2 + 7864320 * rs1_data__3_2)) = 0
(30720 * mem_ptr_limbs__0_1 - (30720 * rs1_data__0_2 + 7864320 * rs1_data__1_2 + 737280 * is_valid)) * (30720 * mem_ptr_limbs__0_1 - (30720 * rs1_data__0_2 + 7864320 * rs1_data__1_2 + 737281)) = 0
(30720 * mem_ptr_limbs__1_1 + 943718400 * rs1_data__0_2 + 503316469 * is_valid - (943718400 * mem_ptr_limbs__0_1 + 120 * rs1_data__1_2 + 30720 * rs1_data__2_2 + 7864320 * rs1_data__3_2)) * (30720 * mem_ptr_limbs__1_1 + 943718400 * rs1_data__0_2 + 503316468 - (943718400 * mem_ptr_limbs__0_1 + 120 * rs1_data__1_2 + 30720 * rs1_data__2_2 + 7864320 * rs1_data__3_2)) = 0
(30720 * mem_ptr_limbs__0_0 - (30720 * rs1_data__0_0 + 7864320 * rs1_data__1_0 + 614400 * is_valid)) * (30720 * mem_ptr_limbs__0_0 - (30720 * rs1_data__0_0 + 7864320 * rs1_data__1_0 + 614401)) = 0
(943718400 * rs1_data__0_0 + 30720 * mem_ptr_limbs__1_0 + 754974711 * is_valid - (120 * rs1_data__1_0 + 30720 * rs1_data__2_0 + 7864320 * rs1_data__3_0 + 943718400 * mem_ptr_limbs__0_0)) * (943718400 * rs1_data__0_0 + 30720 * mem_ptr_limbs__1_0 + 754974710 - (120 * rs1_data__1_0 + 30720 * rs1_data__2_0 + 7864320 * rs1_data__3_0 + 943718400 * mem_ptr_limbs__0_0)) = 0
(30720 * mem_ptr_limbs__0_1 - (30720 * rs1_data__0_0 + 7864320 * rs1_data__1_0 + 737280 * is_valid)) * (30720 * mem_ptr_limbs__0_1 - (30720 * rs1_data__0_0 + 7864320 * rs1_data__1_0 + 737281)) = 0
(943718400 * rs1_data__0_0 + 30720 * mem_ptr_limbs__1_1 + 503316469 * is_valid - (120 * rs1_data__1_0 + 30720 * rs1_data__2_0 + 7864320 * rs1_data__3_0 + 943718400 * mem_ptr_limbs__0_1)) * (943718400 * rs1_data__0_0 + 30720 * mem_ptr_limbs__1_1 + 503316468 - (120 * rs1_data__1_0 + 30720 * rs1_data__2_0 + 7864320 * rs1_data__3_0 + 943718400 * mem_ptr_limbs__0_1)) = 0
is_valid * (is_valid - 1) = 0

View File

@@ -59,6 +59,6 @@ fn test_optimize() {
machine.bus_interactions.len(),
machine.constraints.len()
],
[2009, 1782, 165]
[2007, 1780, 165]
);
}