INNER CODE UNIT · Rust
verify_with_processed_vk
arkworks-rs/groth16 · src/constraints.rs:248
fn verify_with_processed_vk(
circuit_pvk: &Self::ProcessedVerifyingKeyVar,
x: &Self::InputVar,
proof: &Self::ProofVar,
) -> Result<Boolean<BasePrimeField<E>>, SynthesisError> {
let circuit_pvk = circuit_pvk.clone();
let g_ic = {
let mut g_ic: P::G1Var = circuit_pvk.gamma_abc_g1[0].clone();
let mut input_len = 1;
let mut public_inputs = x.clone().into_iter();
for (input, b) in public_inputs
.by_ref()
.zip(circuit_pvk.gamma_abc_g1.iter().skip(1))
{
let encoded_input_i: P::G1Var = b.scalar_mul_le(input.to_bits_le()?.iter())?;
g_ic += encoded_input_i;
input_len += 1;