use crate::spec::law::{AlgebraicLaw, LawViolation};
#[cfg(not(loom))]
use rayon::prelude::*;
use super::support::{check_unary_law_exhaustive_u8, check_unary_law_witnessed_u32};
use super::rebuild::{minimize_binary_violation, minimize_unary_violation};
use super::{LawResult, verify_one_law_exhaustive};
#[inline]
pub fn verify_laws(
op_id: &str,
cpu_fn: fn(&[u8]) -> Vec<u8>,
laws: &[AlgebraicLaw],
is_binary: bool,
) -> Vec<LawResult> {
laws.iter()
.map(|law| verify_one_law_exhaustive(op_id, cpu_fn, law, is_binary))
.collect()
}