//! Admission minimums for operation specifications.
/// Minimum number of algebraic laws an op spec must declare.
///
/// An op with zero laws has no structural properties for the conform gate to
/// verify. Requiring at least one law guarantees that every operation enters
/// the registry with a falsifiable behavioral claim.
pub const MIN_LAWS: usize = 1;
/// Minimum number of boundary values an op spec must declare.
///
/// Boundary values are the cheapest adversarial inputs: they catch off-by-one
/// errors, truncation at extremes, and NaN/Inf mishandling without running a
/// full generator. Four values cover the typical `min`, `max`, `zero`, and
/// `one` corners for unary and binary ops.
pub const MIN_BOUNDARY_VALUES: usize = 4;
/// Minimum number of equivalence classes an op spec must declare.
///
/// Equivalence classes partition the input space into regions that should
/// exercise different code paths in the implementation. Declaring at least
/// one class forces the spec author to think about input-space structure
/// rather than treating the op as a black box.
pub const MIN_EQUIVALENCE_CLASSES: usize = 1;