pub struct MacroSolver { /* private fields */ }Expand description
Macro solver that identifies quantifiers that can be solved as macros
A quantifier can be solved as a macro if it has the form: ∀x. f(x) = body(x) where f is an uninterpreted function and body doesn’t contain f
Implementations§
Source§impl MacroSolver
impl MacroSolver
Sourcepub fn solve_macros(
&mut self,
quantifiers: &[QuantifiedFormula],
manager: &mut TermManager,
) -> Result<FxHashMap<Spur, FunctionInterpretation>, CompletionError>
pub fn solve_macros( &mut self, quantifiers: &[QuantifiedFormula], manager: &mut TermManager, ) -> Result<FxHashMap<Spur, FunctionInterpretation>, CompletionError>
Try to solve quantifiers as macros
Sourcepub fn stats(&self) -> &MacroStats
pub fn stats(&self) -> &MacroStats
Get statistics
Trait Implementations§
Source§impl Debug for MacroSolver
impl Debug for MacroSolver
Auto Trait Implementations§
impl Freeze for MacroSolver
impl RefUnwindSafe for MacroSolver
impl Send for MacroSolver
impl Sync for MacroSolver
impl Unpin for MacroSolver
impl UnwindSafe for MacroSolver
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