pub struct MBQISolver { /* private fields */ }Expand description
Model-Based Quantifier Instantiation solver
Implementations§
Source§impl MBQISolver
impl MBQISolver
Sourcepub fn with_limit(max_total: usize) -> Self
pub fn with_limit(max_total: usize) -> Self
Create with custom instantiation limit
Sourcepub fn set_enabled(&mut self, enabled: bool)
pub fn set_enabled(&mut self, enabled: bool)
Enable or disable MBQI
Sourcepub fn is_enabled(&self) -> bool
pub fn is_enabled(&self) -> bool
Check if MBQI is enabled
Sourcepub fn add_quantifier(&mut self, term: TermId, manager: &TermManager)
pub fn add_quantifier(&mut self, term: TermId, manager: &TermManager)
Add a quantified formula to track
Sourcepub fn add_candidate(&mut self, term: TermId, sort: SortId)
pub fn add_candidate(&mut self, term: TermId, sort: SortId)
Register a candidate term for instantiation
Sourcepub fn collect_ground_terms(&mut self, term: TermId, manager: &TermManager)
pub fn collect_ground_terms(&mut self, term: TermId, manager: &TermManager)
Collect ground terms from a formula for use as instantiation candidates
Sourcepub fn get_candidates(&self, sort: SortId) -> &[TermId]
pub fn get_candidates(&self, sort: SortId) -> &[TermId]
Get candidates for a given sort
Sourcepub fn check_with_model(
&mut self,
model: &FxHashMap<TermId, TermId>,
manager: &mut TermManager,
) -> MBQIResult
pub fn check_with_model( &mut self, model: &FxHashMap<TermId, TermId>, manager: &mut TermManager, ) -> MBQIResult
Perform MBQI with the given model
This is the main entry point for MBQI. Given a partial model from the main solver, it tries to find counterexamples to universal quantifiers and generates instantiation lemmas.
Trait Implementations§
Source§impl Debug for MBQISolver
impl Debug for MBQISolver
Auto Trait Implementations§
impl Freeze for MBQISolver
impl RefUnwindSafe for MBQISolver
impl Send for MBQISolver
impl Sync for MBQISolver
impl Unpin for MBQISolver
impl UnwindSafe for MBQISolver
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