pub struct FrameManager { /* private fields */ }Expand description
Global frame manager for all predicates
Implementations§
Source§impl FrameManager
impl FrameManager
Sourcepub fn get_or_create(&mut self, pred: PredId) -> &mut PredicateFrames
pub fn get_or_create(&mut self, pred: PredId) -> &mut PredicateFrames
Get or create frames for a predicate
Sourcepub fn get(&self, pred: PredId) -> Option<&PredicateFrames>
pub fn get(&self, pred: PredId) -> Option<&PredicateFrames>
Get frames for a predicate
Sourcepub fn get_mut(&mut self, pred: PredId) -> Option<&mut PredicateFrames>
pub fn get_mut(&mut self, pred: PredId) -> Option<&mut PredicateFrames>
Get mutable frames for a predicate
Sourcepub fn current_level(&self) -> u32
pub fn current_level(&self) -> u32
Get the current global level
Sourcepub fn next_level(&mut self)
pub fn next_level(&mut self)
Advance to the next level
Sourcepub fn add_lemma(
&mut self,
pred: PredId,
formula: TermId,
level: u32,
) -> LemmaId
pub fn add_lemma( &mut self, pred: PredId, formula: TermId, level: u32, ) -> LemmaId
Add a lemma for a predicate at a level
Sourcepub fn is_fixpoint(&self) -> bool
pub fn is_fixpoint(&self) -> bool
Check for fixpoint: all lemmas at current level are inductive
Sourcepub fn propagate(&mut self) -> bool
pub fn propagate(&mut self) -> bool
Try to propagate all frames Returns true if a fixpoint is detected
Sourcepub fn compress(&mut self, keep_above_level: u32) -> usize
pub fn compress(&mut self, keep_above_level: u32) -> usize
Compress all frames by removing old lemmas Returns the total number of lemmas removed
Sourcepub fn total_memory_stats(&self) -> (usize, usize, usize)
pub fn total_memory_stats(&self) -> (usize, usize, usize)
Get total memory usage statistics across all predicates
Sourcepub fn stats(&self) -> FrameStats
pub fn stats(&self) -> FrameStats
Get statistics
Trait Implementations§
Source§impl Debug for FrameManager
impl Debug for FrameManager
Auto Trait Implementations§
impl Freeze for FrameManager
impl RefUnwindSafe for FrameManager
impl Send for FrameManager
impl Sync for FrameManager
impl Unpin for FrameManager
impl UnsafeUnpin for FrameManager
impl UnwindSafe for FrameManager
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