vyre-conform 0.1.0

Conformance suite for vyre backends — proves byte-identical output to CPU reference
Documentation
//! Verification level taxonomy for law checking.

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};

/// Verification level.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum VerificationLevel {
    /// Exhaustive on u8 domain. Proof within domain.
    ExhaustiveU8,
    /// Random witnesses on u32 domain.
    WitnessedU32 {
        /// Number of witnesses.
        count: u64,
    },
    /// Random witnesses on u32 domain through a GPU backend.
    GpuWitnessedU32 {
        /// Number of witnesses.
        count: u64,
    },
    /// Both exhaustive u8 and witnessed u32.
    Combined {
        /// Number of u32 witnesses.
        witness_count: u64,
    },
}