pub trait LyapunovMeasure {
// Required methods
fn num_vars(&self) -> usize;
fn formula(&self) -> &[Vec<Lit_>];
fn initial_potential(&self) -> u64;
fn width(&self) -> u64;
fn descent_step(
&self,
level: u64,
db: &[Vec<Lit_>],
) -> Vec<(Vec<Lit_>, Witness)>;
}Expand description
The hypothesis of the ⟸ theorem: a Lyapunov measure that generates certified descent steps for a formula, independent of any particular family.
Required Methods§
Sourcefn initial_potential(&self) -> u64
fn initial_potential(&self) -> u64
The initial potential L (the number of descent levels).
Sourcefn 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.