diff --git a/src/circuit/gadget/sinsemilla/chip.rs b/src/circuit/gadget/sinsemilla/chip.rs index 5ba54834..3baaf5d0 100644 --- a/src/circuit/gadget/sinsemilla/chip.rs +++ b/src/circuit/gadget/sinsemilla/chip.rs @@ -123,6 +123,9 @@ impl SinsemillaChip { perm, }; + // Set up lookup argument + GeneratorTableConfig::configure(meta, config.clone()); + let two = Expression::Constant(pallas::Base::from_u64(2)); // Check that the initial x_A, x_P, lambda_1, lambda_2 are consistent with y_Q. meta.create_gate("Initial y_Q", |meta| { diff --git a/src/circuit/gadget/sinsemilla/chip/generator_table.rs b/src/circuit/gadget/sinsemilla/chip/generator_table.rs index e4df0fdc..73db7abd 100644 --- a/src/circuit/gadget/sinsemilla/chip/generator_table.rs +++ b/src/circuit/gadget/sinsemilla/chip/generator_table.rs @@ -56,7 +56,7 @@ impl GeneratorTableConfig { let x_p = meta.query_advice(config.x_p, Rotation::cur()); - // y_{p,i} = (Y_{A,i} / 2) - lambda1 * (x_{A,i} - x_{R,i}), + // y_{p,i} = (Y_{A,i} / 2) - lambda1 * (x_{A,i} - x_{P,i}), // where Y_{A,i} = (lambda1_i + lambda2_i) * (x_{A,i} - x_{R,i}), // x_{R,i} = lambda1^2 - x_{A,i} - x_{P,i} // @@ -66,9 +66,9 @@ impl GeneratorTableConfig { let x_a = meta.query_advice(config.x_a, Rotation::cur()); let x_r = lambda1.clone().square() - x_a.clone() - x_p.clone(); - let Y_A = (lambda1.clone() + lambda2) * (x_a.clone() - x_r.clone()); + let Y_A = (lambda1.clone() + lambda2) * (x_a.clone() - x_r); - (Y_A * pallas::Base::TWO_INV) * (lambda1 * (x_a - x_r)) + (Y_A * pallas::Base::TWO_INV) - (lambda1 * (x_a - x_p.clone())) }; // Lookup expressions default to the first entry when `q_s1`