pub struct ErrorGraph {
initial_leafs: Vec<Rc<RefCell<ErrorGraphNode>>>,
ta: ACSThresholdAutomaton,
spec: DisjunctionTargetConfig,
}Expand description
Error Graph storing all paths from initial abstract configurations to error configurations
Fields§
§initial_leafs: Vec<Rc<RefCell<ErrorGraphNode>>>All nodes that have an initial configuration
ta: ACSThresholdAutomatonThreshold automaton for which the error graph has been constructed
spec: DisjunctionTargetConfigSpecification for which the error graph has been constructed
Implementations§
Source§impl ErrorGraph
impl ErrorGraph
Sourcepub fn compute_error_graph(
spec: DisjunctionTargetConfig,
ta: ACSThresholdAutomaton,
) -> Self
pub fn compute_error_graph( spec: DisjunctionTargetConfig, ta: ACSThresholdAutomaton, ) -> Self
Compute the error graph of the given specification
Constructing the error graph can be a time and memory heavy operation.
Sourcefn construct_full_error_graph(
spec: &DisjunctionTargetConfig,
ta: &ACSThresholdAutomaton,
) -> PartiallyOrderedConfigMap<Rc<RefCell<ErrorGraphNode>>>
fn construct_full_error_graph( spec: &DisjunctionTargetConfig, ta: &ACSThresholdAutomaton, ) -> PartiallyOrderedConfigMap<Rc<RefCell<ErrorGraphNode>>>
Compute the full error graph for the ACSThresholdAutomaton and the
given [DisjunctionTargetConfig]
Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Check whether the error graph is empty, i.e. whether no counter example exists
Sourcepub fn check_for_non_spurious_counter_example(
self,
context: SMTSolver,
) -> ModelCheckerResult
pub fn check_for_non_spurious_counter_example( self, context: SMTSolver, ) -> ModelCheckerResult
Check whether a non-spurious counter example exists
This method might not terminate for threshold automata with resets
Auto Trait Implementations§
impl Freeze for ErrorGraph
impl !RefUnwindSafe for ErrorGraph
impl !Send for ErrorGraph
impl !Sync for ErrorGraph
impl Unpin for ErrorGraph
impl !UnwindSafe for ErrorGraph
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> 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