pub struct CounterExampleGuidedRefinement {
pub domain: AbstractDomain,
pub iterations: usize,
pub verified: bool,
}Expand description
CEGAR loop: counterexample-guided abstraction refinement.
Fields§
§domain: AbstractDomainCurrent abstract domain.
iterations: usizeNumber of refinement iterations performed.
verified: boolWhether a proof has been found.
Implementations§
Source§impl CounterExampleGuidedRefinement
impl CounterExampleGuidedRefinement
Sourcepub fn new(domain: AbstractDomain) -> Self
pub fn new(domain: AbstractDomain) -> Self
Create a CEGAR instance with the given initial abstraction.
Sourcepub fn abstract_states(&self, states: &[usize]) -> AbstractDomain
pub fn abstract_states(&self, states: &[usize]) -> AbstractDomain
Map concrete states to their abstract representation.
Sourcepub fn refine_abstraction(&mut self, spurious: &SpuriousCounterexample)
pub fn refine_abstraction(&mut self, spurious: &SpuriousCounterexample)
Refine the abstraction using a spurious counterexample.
Sourcepub fn check_feasibility(&self, cex: &CounterExample) -> bool
pub fn check_feasibility(&self, cex: &CounterExample) -> bool
Check whether a counterexample is feasible (true = feasible, false = spurious).
Trait Implementations§
Source§impl Clone for CounterExampleGuidedRefinement
impl Clone for CounterExampleGuidedRefinement
Source§fn clone(&self) -> CounterExampleGuidedRefinement
fn clone(&self) -> CounterExampleGuidedRefinement
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for CounterExampleGuidedRefinement
impl RefUnwindSafe for CounterExampleGuidedRefinement
impl Send for CounterExampleGuidedRefinement
impl Sync for CounterExampleGuidedRefinement
impl Unpin for CounterExampleGuidedRefinement
impl UnsafeUnpin for CounterExampleGuidedRefinement
impl UnwindSafe for CounterExampleGuidedRefinement
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