jf_relation/gadgets/
mod.rspub mod ecc;
pub mod ultraplonk;
mod arithmetic;
mod cmp;
mod emulated;
mod logic;
mod range;
#[allow(unused_imports)]
pub use arithmetic::*;
#[allow(unused_imports)]
pub use cmp::*;
#[allow(unused_imports)]
pub use emulated::*;
#[allow(unused_imports)]
pub use logic::*;
#[allow(unused_imports)]
pub use range::*;
mod utils;
pub mod test_utils {
use crate::{Arithmetization, Circuit, CircuitError, PlonkCircuit};
use ark_ff::PrimeField;
pub fn test_variable_independence_for_circuit<F: PrimeField>(
circuit_1: PlonkCircuit<F>,
circuit_2: PlonkCircuit<F>,
) -> Result<(), CircuitError> {
assert_eq!(circuit_1.num_gates(), circuit_2.num_gates());
assert_eq!(circuit_1.num_vars(), circuit_2.num_vars());
let sigma_polys_1 = circuit_1.compute_extended_permutation_polynomials()?;
let sigma_polys_2 = circuit_2.compute_extended_permutation_polynomials()?;
sigma_polys_1
.iter()
.zip(sigma_polys_2.iter())
.for_each(|(p1, p2)| assert_eq!(p1, p2));
Ok(())
}
}