pub struct SubsumptionChecker { /* private fields */ }Expand description
Subsumption checker for learned clauses
Implementations§
Source§impl SubsumptionChecker
impl SubsumptionChecker
Sourcepub fn stats(&self) -> &SubsumptionStats
pub fn stats(&self) -> &SubsumptionStats
Get statistics
Sourcepub fn check_forward_subsumption(
&mut self,
new_clause: &[Lit],
clauses: &ClauseDatabase,
) -> Vec<ClauseId>
pub fn check_forward_subsumption( &mut self, new_clause: &[Lit], clauses: &ClauseDatabase, ) -> Vec<ClauseId>
Check if a newly learned clause subsumes any existing clauses
Returns a list of clause IDs that are subsumed by the new clause
Sourcepub fn check_backward_subsumption(
&mut self,
new_clause: &[Lit],
clauses: &ClauseDatabase,
) -> bool
pub fn check_backward_subsumption( &mut self, new_clause: &[Lit], clauses: &ClauseDatabase, ) -> bool
Check if a newly learned clause is subsumed by any existing clause
Returns true if the new clause is subsumed (redundant)
Sourcepub fn check_subsumption(
&mut self,
new_clause: &[Lit],
clauses: &ClauseDatabase,
) -> (bool, Vec<ClauseId>)
pub fn check_subsumption( &mut self, new_clause: &[Lit], clauses: &ClauseDatabase, ) -> (bool, Vec<ClauseId>)
Perform full subsumption check for a new clause
Returns (is_subsumed, subsumed_clauses)
- is_subsumed: true if the new clause is redundant
- subsumed_clauses: list of clause IDs that the new clause makes redundant
Sourcepub fn reset_stats(&mut self)
pub fn reset_stats(&mut self)
Reset statistics
Auto Trait Implementations§
impl Freeze for SubsumptionChecker
impl RefUnwindSafe for SubsumptionChecker
impl Send for SubsumptionChecker
impl Sync for SubsumptionChecker
impl Unpin for SubsumptionChecker
impl UnsafeUnpin for SubsumptionChecker
impl UnwindSafe for SubsumptionChecker
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