pub struct StructuredReduceIso {
pub cap: usize,
}Expand description
The reduction rung fused with the non-resolution crushers as terminals: reduce to fixpoint,
then if a non-resolution specialist (parity/GF(2), mod-p, exact-cover, algebraic collapse)
refutes the reduced cofactor, collapse it to one “crushed” class; otherwise canonicalize up to iso.
Coarser than ReduceIso (all non-resolution-crushable reduced cofactors merge into one), so
struct-reduce-iso ≤ reduce-iso. This is the rung that can beat the Chvátal–Szemerédi resolution
cap — GF(2)/mod-p are polynomial exactly where resolution is exponential — measured via
quotient_class_count (specialist verdicts certified by their routes; reduce by RUP).
Fields§
§cap: usizeTrait Implementations§
Source§impl Congruence for StructuredReduceIso
impl Congruence for StructuredReduceIso
Source§fn canonicalize(&self, clauses: &CanonClauses) -> (CanonClauses, Twist)
fn canonicalize(&self, clauses: &CanonClauses) -> (CanonClauses, Twist)
The canonical representative of
clauses’s class, and the twist mapping clauses onto it
(i.e. apply_twist(clauses, twist) == representative).Auto Trait Implementations§
impl Freeze for StructuredReduceIso
impl RefUnwindSafe for StructuredReduceIso
impl Send for StructuredReduceIso
impl Sync for StructuredReduceIso
impl Unpin for StructuredReduceIso
impl UnsafeUnpin for StructuredReduceIso
impl UnwindSafe for StructuredReduceIso
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more