pub struct DelayedCombination { /* private fields */ }Expand description
Delayed theory combination engine.
Implementations§
Source§impl DelayedCombination
impl DelayedCombination
Sourcepub fn new(config: DelayedCombinationConfig) -> Self
pub fn new(config: DelayedCombinationConfig) -> Self
Create a new delayed combination engine.
Sourcepub fn default_config() -> Self
pub fn default_config() -> Self
Create with default configuration.
Register a shared term.
Check if a term is shared between multiple theories.
Sourcepub fn defer_equality(&mut self, lhs: TermId, rhs: TermId, source: TheoryId)
pub fn defer_equality(&mut self, lhs: TermId, rhs: TermId, source: TheoryId)
Defer an equality for later propagation.
Sourcepub fn force_propagation(&mut self)
pub fn force_propagation(&mut self)
Force propagation of all deferred equalities.
Sourcepub fn handle_conflict(&mut self)
pub fn handle_conflict(&mut self)
Handle a conflict by activating theory combination.
Sourcepub fn activate_theory(&mut self, theory: TheoryId)
pub fn activate_theory(&mut self, theory: TheoryId)
Activate a theory.
Sourcepub fn is_theory_active(&self, theory: TheoryId) -> bool
pub fn is_theory_active(&self, theory: TheoryId) -> bool
Check if a theory is active.
Sourcepub fn get_sharing_theories(&self, term: TermId) -> Vec<TheoryId> ⓘ
pub fn get_sharing_theories(&self, term: TermId) -> Vec<TheoryId> ⓘ
Get theories that share a term.
Sourcepub fn stats(&self) -> &DelayedCombinationStats
pub fn stats(&self) -> &DelayedCombinationStats
Get statistics.
Sourcepub fn reset_stats(&mut self)
pub fn reset_stats(&mut self)
Reset statistics.
Trait Implementations§
Source§impl Debug for DelayedCombination
impl Debug for DelayedCombination
Auto Trait Implementations§
impl Freeze for DelayedCombination
impl RefUnwindSafe for DelayedCombination
impl Send for DelayedCombination
impl Sync for DelayedCombination
impl Unpin for DelayedCombination
impl UnwindSafe for DelayedCombination
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