From 6f65620ff2b467b8824ebd61a005501dd1138fa9 Mon Sep 17 00:00:00 2001 From: wborgeaud Date: Mon, 17 Jan 2022 06:33:23 +0100 Subject: [PATCH] Add fix for recursive verifier. --- plonky2/src/fri/oracle.rs | 2 ++ plonky2/src/fri/recursive_verifier.rs | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/plonky2/src/fri/oracle.rs b/plonky2/src/fri/oracle.rs index 27d3e129..88b0298b 100644 --- a/plonky2/src/fri/oracle.rs +++ b/plonky2/src/fri/oracle.rs @@ -155,6 +155,8 @@ impl, C: GenericConfig, const D: usize> final_poly += quotient; } final_poly.trim(); + // Multiply the final polynomial by `X`, so that `final_poly` has the maximum degree for + // which the LDT will pass. See github.com/mir-protocol/plonky2/pull/434 for details. final_poly.coeffs.insert(0, F::Extension::ZERO); let lde_final_poly = final_poly.lde(fri_params.config.rate_bits); diff --git a/plonky2/src/fri/recursive_verifier.rs b/plonky2/src/fri/recursive_verifier.rs index 526456b6..2a59d457 100644 --- a/plonky2/src/fri/recursive_verifier.rs +++ b/plonky2/src/fri/recursive_verifier.rs @@ -281,7 +281,7 @@ impl, const D: usize> CircuitBuilder { sum = self.div_add_extension(numerator, denominator, sum); } - sum + self.mul_extension(sum, subgroup_x) } fn fri_verifier_query_round>(