pub struct CoveringMeasure {
pub num_vars: usize,
pub formula: Vec<Vec<Lit>>,
pub items: usize,
pub bins: usize,
}Expand description
A covering Lyapunov measure: items into bins (var(i,b) = i*bins + b) with item-swap
witnesses. ONE measure type that instantiates the theorem for every covering family — PHP
(items = n, bins = n-1), clique-coloring (items = n, bins = k), and any other generalized
pigeonhole. The “lift”: the family is data, the measure is uniform.
Fields§
§num_vars: usize§formula: Vec<Vec<Lit>>§items: usize§bins: usizeTrait Implementations§
Source§impl Clone for CoveringMeasure
impl Clone for CoveringMeasure
Source§fn clone(&self) -> CoveringMeasure
fn clone(&self) -> CoveringMeasure
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 LyapunovMeasure for CoveringMeasure
impl LyapunovMeasure for CoveringMeasure
Source§fn initial_potential(&self) -> u64
fn initial_potential(&self) -> u64
The initial potential
L (the number of descent levels).Source§fn descent_step(
&self,
level: u64,
_db: &[Vec<Lit_>],
) -> Vec<(Vec<Lit_>, Witness)>
fn descent_step( &self, level: u64, _db: &[Vec<Lit_>], ) -> Vec<(Vec<Lit_>, Witness)>
The certified-redundant clause additions descending from
level to level-1, given the
current database. Each MUST be RUP/PR/SR against db (the constructor re-checks, fail-closed),
and there must be at most width() of them.Auto Trait Implementations§
impl Freeze for CoveringMeasure
impl RefUnwindSafe for CoveringMeasure
impl Send for CoveringMeasure
impl Sync for CoveringMeasure
impl Unpin for CoveringMeasure
impl UnsafeUnpin for CoveringMeasure
impl UnwindSafe for CoveringMeasure
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