Calculate required degree of lookup
This commit is contained in:
parent
aca6de61f8
commit
2f2de13887
|
@ -472,7 +472,7 @@ fn test_proving() {
|
|||
let sl_ = meta.query_any(sl.into(), Rotation::cur());
|
||||
let sl2_ = meta.query_any(sl2.into(), Rotation::cur());
|
||||
meta.lookup(&[a_.clone()], &[sl_.clone()]);
|
||||
meta.lookup(&[a_ + b_], &[sl_ + sl2_]);
|
||||
meta.lookup(&[a_ * b_], &[sl_ * sl2_]);
|
||||
|
||||
meta.create_gate("Combined add-mult", |meta| {
|
||||
let d = meta.query_advice(d, Rotation::next());
|
||||
|
|
|
@ -25,7 +25,7 @@ impl<F: Field> Argument<F> {
|
|||
// degree 2:
|
||||
// l_0(X) * (1 - z'(X)) = 0
|
||||
//
|
||||
// degree 3:
|
||||
// degree (1 + input_degree + table_degree):
|
||||
// z'(X) (a'(X) + \beta) (s'(X) + \gamma)
|
||||
// - z'(\omega^{-1} X) (\theta^{m-1} a_0(X) + ... + a_{m-1}(X) + \beta) (\theta^{m-1} s_0(X) + ... + s_{m-1}(X) + \gamma)
|
||||
//
|
||||
|
@ -34,6 +34,15 @@ impl<F: Field> Argument<F> {
|
|||
//
|
||||
// degree 2:
|
||||
// (a′(X)−s′(X))⋅(a′(X)−a′(\omega{-1} X)) = 0
|
||||
3
|
||||
let mut input_degree = 1;
|
||||
for expr in self.input_columns.iter() {
|
||||
input_degree = std::cmp::max(input_degree, expr.degree());
|
||||
}
|
||||
let mut table_degree = 1;
|
||||
for expr in self.table_columns.iter() {
|
||||
table_degree = std::cmp::max(table_degree, expr.degree());
|
||||
}
|
||||
|
||||
1 + input_degree + table_degree
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue