pub enum ModmOutcome {
Sat(Vec<u64>),
Unsat {
modulus: u64,
combo: Vec<(usize, u64)>,
},
}Expand description
The outcome of deciding a linear system over ℤ/m.
Variants§
Sat(Vec<u64>)
Satisfiable, with an assignment over 0..m for each variable (re-checkable via satisfies).
Unsat
Unsatisfiable: inconsistent already over the quotient ring ℤ/modulus for a prime-power factor
modulus = pᵏ of m (a prime field when k = 1), witnessed by a combination of the equations
whose left side cancels mod modulus while the right side does not. Because modulus | m, any
solution mod m would reduce to one mod modulus, so this certifies UNSAT mod m. Re-checkable
via is_refutation.
Trait Implementations§
Source§impl Clone for ModmOutcome
impl Clone for ModmOutcome
Source§fn clone(&self) -> ModmOutcome
fn clone(&self) -> ModmOutcome
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ModmOutcome
impl Debug for ModmOutcome
Source§impl PartialEq for ModmOutcome
impl PartialEq for ModmOutcome
Source§fn eq(&self, other: &ModmOutcome) -> bool
fn eq(&self, other: &ModmOutcome) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Eq for ModmOutcome
impl StructuralPartialEq for ModmOutcome
Auto Trait Implementations§
impl Freeze for ModmOutcome
impl RefUnwindSafe for ModmOutcome
impl Send for ModmOutcome
impl Sync for ModmOutcome
impl Unpin for ModmOutcome
impl UnsafeUnpin for ModmOutcome
impl UnwindSafe for ModmOutcome
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