pub struct InterfaceEqualityManager { /* private fields */ }Expand description
Interface equality manager.
Implementations§
Source§impl InterfaceEqualityManager
impl InterfaceEqualityManager
Sourcepub fn with_config(config: InterfaceEqualityConfig) -> Self
pub fn with_config(config: InterfaceEqualityConfig) -> Self
Create with configuration.
Sourcepub fn stats(&self) -> &InterfaceEqualityStats
pub fn stats(&self) -> &InterfaceEqualityStats
Get statistics.
Sourcepub fn register_term(&mut self, term: TermId, theory: TheoryId)
pub fn register_term(&mut self, term: TermId, theory: TheoryId)
Register a term with theory.
Sourcepub fn assert_equality(
&mut self,
lhs: TermId,
rhs: TermId,
) -> Result<(), String>
pub fn assert_equality( &mut self, lhs: TermId, rhs: TermId, ) -> Result<(), String>
Assert equality and merge equivalence classes.
Sourcepub fn get_pending_batch(&mut self) -> Vec<InterfaceEquality>
pub fn get_pending_batch(&mut self) -> Vec<InterfaceEquality>
Get pending equalities (batch).
Sourcepub fn get_all_pending(&mut self) -> Vec<InterfaceEquality>
pub fn get_all_pending(&mut self) -> Vec<InterfaceEquality>
Get all pending equalities.
Sourcepub fn set_strategy(
&mut self,
term: TermId,
strategy: GenerationStrategy,
) -> Result<(), String>
pub fn set_strategy( &mut self, term: TermId, strategy: GenerationStrategy, ) -> Result<(), String>
Set generation strategy for a term’s equivalence class.
Sourcepub fn minimize_equalities(&mut self)
pub fn minimize_equalities(&mut self)
Minimize pending equalities.
Remove redundant equalities that can be inferred from others.
Sourcepub fn update_relevancy(&mut self, term: TermId, score: u32)
pub fn update_relevancy(&mut self, term: TermId, score: u32)
Update relevancy score for a term.
Sourcepub fn push_decision_level(&mut self)
pub fn push_decision_level(&mut self)
Push new decision level.
Sourcepub fn backtrack(&mut self, level: DecisionLevel) -> Result<(), String>
pub fn backtrack(&mut self, level: DecisionLevel) -> Result<(), String>
Backtrack to decision level.
Sourcepub fn reset_stats(&mut self)
pub fn reset_stats(&mut self)
Reset statistics.
Sourcepub fn pending_count(&self) -> usize
pub fn pending_count(&self) -> usize
Get number of pending equalities.
Sourcepub fn is_generated(&self, eq: &Equality) -> bool
pub fn is_generated(&self, eq: &Equality) -> bool
Check if equality has been generated.
Sourcepub fn force_generate_all(&mut self) -> Result<(), String>
pub fn force_generate_all(&mut self) -> Result<(), String>
Force generation of all equalities for shared classes.
Sourcepub fn get_eclass(&self, term: TermId) -> Option<&InterfaceEClass>
pub fn get_eclass(&self, term: TermId) -> Option<&InterfaceEClass>
Get equivalence class for a term.
Sourcepub fn get_representative(&self, term: TermId) -> Option<TermId>
pub fn get_representative(&self, term: TermId) -> Option<TermId>
Get representative for a term.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for InterfaceEqualityManager
impl RefUnwindSafe for InterfaceEqualityManager
impl Send for InterfaceEqualityManager
impl Sync for InterfaceEqualityManager
impl Unpin for InterfaceEqualityManager
impl UnwindSafe for InterfaceEqualityManager
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