pub struct ModpRecovery {
pub modulus: u64,
pub num_vars: usize,
pub equations: Vec<ModpEquation>,
pub groups: Vec<Vec<u32>>,
}Expand description
A mod-m linear system recovered from an opaque Boolean CNF: the one-hot groups (each a ℤ/m
variable, with the boolean var ids listed in value order) plus the congruences fitted to the
forbidden-combination clauses. The recovered system is equisatisfiable to the source CNF, so the
modular verdict carries back — over the prime field solve when modulus is prime, over the
composite ring crate::modm::solve otherwise. See recover_from_cnf.
Fields§
§modulus: u64§num_vars: usizeOne ℤ/modulus variable per one-hot group.
equations: Vec<ModpEquation>§groups: Vec<Vec<u32>>groups[g][val] = the boolean variable that means “variable g takes value val”.
Trait Implementations§
Source§impl Clone for ModpRecovery
impl Clone for ModpRecovery
Source§fn clone(&self) -> ModpRecovery
fn clone(&self) -> ModpRecovery
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 moreAuto Trait Implementations§
impl Freeze for ModpRecovery
impl RefUnwindSafe for ModpRecovery
impl Send for ModpRecovery
impl Sync for ModpRecovery
impl Unpin for ModpRecovery
impl UnsafeUnpin for ModpRecovery
impl UnwindSafe for ModpRecovery
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