use std::collections::HashMap;
use std::sync::Mutex;
use crate::proof::algebra::checker::verify_laws;
use crate::proof::algebra::inference::{binary_candidate_laws, unary_candidate_laws};
use crate::spec::law::AlgebraicLaw;
pub use super::cross::infer_cross_op_laws;
fn compute_laws(op_id: &str, cpu_fn: fn(&[u8]) -> Vec<u8>, is_binary: bool) -> Vec<AlgebraicLaw> {
let mut proven = Vec::new();
let candidates = if is_binary {
binary_candidate_laws()
} else {
unary_candidate_laws()
};
for law in candidates {
try_law(op_id, cpu_fn, law, is_binary, &mut proven);
}
proven
}