pub struct ImplicationGraph { /* private fields */ }Expand description
Implication graph for CDCL.
Implementations§
Source§impl ImplicationGraph
impl ImplicationGraph
Sourcepub fn with_config(config: ImplicationGraphConfig) -> Self
pub fn with_config(config: ImplicationGraphConfig) -> Self
Create with configuration.
Sourcepub fn stats(&self) -> &ImplicationGraphStats
pub fn stats(&self) -> &ImplicationGraphStats
Get statistics.
Sourcepub fn add_decision(&mut self, lit: Lit, level: Level)
pub fn add_decision(&mut self, lit: Lit, level: Level)
Add decision literal.
Sourcepub fn add_propagation(&mut self, lit: Lit, level: Level, antecedents: Vec<Lit>)
pub fn add_propagation(&mut self, lit: Lit, level: Level, antecedents: Vec<Lit>)
Add propagated literal.
Sourcepub fn find_first_uip(
&mut self,
conflict_lits: &[Lit],
decision_level: Level,
) -> Option<Lit>
pub fn find_first_uip( &mut self, conflict_lits: &[Lit], decision_level: Level, ) -> Option<Lit>
Find first UIP (Unique Implication Point) for conflict.
Returns the literal that is the first UIP cut point.
Sourcepub fn get_antecedents(&self, lit: Lit) -> Option<&[Lit]>
pub fn get_antecedents(&self, lit: Lit) -> Option<&[Lit]>
Get antecedents of literal.
Sourcepub fn compute_backjump_level(&self, clause: &[Lit]) -> Level
pub fn compute_backjump_level(&self, clause: &[Lit]) -> Level
Compute backjump level for learned clause.
Returns the second-highest decision level in the clause.
Sourcepub fn current_level(&self) -> Level
pub fn current_level(&self) -> Level
Get current decision level.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ImplicationGraph
impl RefUnwindSafe for ImplicationGraph
impl Send for ImplicationGraph
impl Sync for ImplicationGraph
impl Unpin for ImplicationGraph
impl UnwindSafe for ImplicationGraph
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more