diff --git a/plonky2/src/plonk/circuit_builder.rs b/plonky2/src/plonk/circuit_builder.rs index d045aa6e..8e2f2e10 100644 --- a/plonky2/src/plonk/circuit_builder.rs +++ b/plonky2/src/plonk/circuit_builder.rs @@ -639,6 +639,7 @@ impl, const D: usize> CircuitBuilder { let mut timing = TimingTree::new("preprocess", Level::Trace); let start = Instant::now(); let rate_bits = self.config.fri_config.rate_bits; + let cap_height = self.config.fri_config.cap_height; // Hash the public inputs, and route them to a `PublicInputGate` which will enforce that // those hash wires match the claimed public inputs. @@ -664,7 +665,7 @@ impl, const D: usize> CircuitBuilder { let degree_bits = log2_strict(degree); let fri_params = self.fri_params(degree_bits); assert!( - fri_params.total_arities() <= degree_bits - self.config.fri_config.cap_height, + fri_params.total_arities() <= degree_bits + rate_bits - cap_height, "FRI total reduction arity is too large.", ); @@ -705,7 +706,7 @@ impl, const D: usize> CircuitBuilder { constants_sigmas_vecs, rate_bits, PlonkOracle::CONSTANTS_SIGMAS.blinding, - self.config.fri_config.cap_height, + cap_height, &mut timing, Some(&fft_root_table), ); diff --git a/starky/src/prover.rs b/starky/src/prover.rs index 4fef0b4a..be1f198b 100644 --- a/starky/src/prover.rs +++ b/starky/src/prover.rs @@ -41,8 +41,10 @@ where let degree = trace.len(); let degree_bits = log2_strict(degree); let fri_params = config.fri_params(degree_bits); + let rate_bits = config.fri_config.rate_bits; + let cap_height = config.fri_config.cap_height; assert!( - fri_params.total_arities() <= degree_bits - config.fri_config.cap_height, + fri_params.total_arities() <= degree_bits + rate_bits - cap_height, "FRI total reduction arity is too large.", ); @@ -58,8 +60,6 @@ where .collect() ); - let rate_bits = config.fri_config.rate_bits; - let cap_height = config.fri_config.cap_height; let trace_commitment = timed!( timing, "compute trace commitment",