pub struct LinearRigidityCert {
pub num_vars: usize,
pub rows: Vec<u64>,
pub rank: usize,
pub kernel_basis: Vec<Vec<bool>>,
pub solution_count_log2: u32,
}Expand description
A re-checkable certificate that F’s parity structure admits no linear symmetry shortcut beyond
its exposed kernel: the GF(2) coefficient system has rank rank, its solution space is exactly
2^solution_count_log2 (spanned by kernel_basis), and this is the complete linear structure.
Fields§
§num_vars: usizeThe number of Boolean variables F is over.
rows: Vec<u64>The GF(2) coefficient rows recovered from F — bit v set iff variable v occurs in that
parity equation (the right-hand side is irrelevant to the linear structure).
rank: usizeThe rank of the coefficient system — the number of independent parity constraints.
kernel_basis: Vec<Vec<bool>>A basis for the null space (the linear symmetry directions). Exactly num_vars − rank vectors.
solution_count_log2: u32log₂ of the number of GF(2) solutions — = kernel_basis.len().
Trait Implementations§
Source§impl Clone for LinearRigidityCert
impl Clone for LinearRigidityCert
Source§fn clone(&self) -> LinearRigidityCert
fn clone(&self) -> LinearRigidityCert
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 LinearRigidityCert
impl Debug for LinearRigidityCert
Source§impl PartialEq for LinearRigidityCert
impl PartialEq for LinearRigidityCert
Source§fn eq(&self, other: &LinearRigidityCert) -> bool
fn eq(&self, other: &LinearRigidityCert) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Eq for LinearRigidityCert
impl StructuralPartialEq for LinearRigidityCert
Auto Trait Implementations§
impl Freeze for LinearRigidityCert
impl RefUnwindSafe for LinearRigidityCert
impl Send for LinearRigidityCert
impl Sync for LinearRigidityCert
impl Unpin for LinearRigidityCert
impl UnsafeUnpin for LinearRigidityCert
impl UnwindSafe for LinearRigidityCert
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