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 sl_ = meta.query_any(sl.into(), Rotation::cur());
|
||||||
let sl2_ = meta.query_any(sl2.into(), Rotation::cur());
|
let sl2_ = meta.query_any(sl2.into(), Rotation::cur());
|
||||||
meta.lookup(&[a_.clone()], &[sl_.clone()]);
|
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| {
|
meta.create_gate("Combined add-mult", |meta| {
|
||||||
let d = meta.query_advice(d, Rotation::next());
|
let d = meta.query_advice(d, Rotation::next());
|
||||||
|
|
|
@ -25,7 +25,7 @@ impl<F: Field> Argument<F> {
|
||||||
// degree 2:
|
// degree 2:
|
||||||
// l_0(X) * (1 - z'(X)) = 0
|
// l_0(X) * (1 - z'(X)) = 0
|
||||||
//
|
//
|
||||||
// degree 3:
|
// degree (1 + input_degree + table_degree):
|
||||||
// z'(X) (a'(X) + \beta) (s'(X) + \gamma)
|
// 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)
|
// - 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:
|
// degree 2:
|
||||||
// (a′(X)−s′(X))⋅(a′(X)−a′(\omega{-1} X)) = 0
|
// (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