pub struct DropUnreachableLocations {}Expand description
Preprocessor that drops unreachable locations from the threshold automaton
This preprocessor constructs the underlying graph of the threshold automaton without considering the guards of the transition rules.
It then performs a reachability analysis to determine the reachable locations. If a location is not reachable, i.e. it is not reachable through any transition and not initial, it is removed from the threshold automaton. If there are any outgoing rules, they are also removed from the threshold automaton.
This step should generally be applied, when rules have been removed from the threshold automaton, or if locations are no longer considered to be initial.
Implementations§
Trait Implementations§
Source§impl Default for DropUnreachableLocations
impl Default for DropUnreachableLocations
Source§fn default() -> DropUnreachableLocations
fn default() -> DropUnreachableLocations
Source§impl<S: TargetSpec, C: ModelCheckerContext> Preprocessor<GeneralThresholdAutomaton, S, C> for DropUnreachableLocations
impl<S: TargetSpec, C: ModelCheckerContext> Preprocessor<GeneralThresholdAutomaton, S, C> for DropUnreachableLocations
Source§fn process(&self, ta: &mut GeneralThresholdAutomaton, spec: &S, _ctx: &C)
fn process(&self, ta: &mut GeneralThresholdAutomaton, spec: &S, _ctx: &C)
Preprocessor that drops unreachable locations from the threshold automaton
This preprocessing step constructs the graph of the threshold automaton without considering the guards of the transition rules.
It then performs a reachability analysis to determine the reachable locations. If a location is not reachable, it is removed from the threshold automaton.
Auto Trait Implementations§
impl Freeze for DropUnreachableLocations
impl RefUnwindSafe for DropUnreachableLocations
impl Send for DropUnreachableLocations
impl Sync for DropUnreachableLocations
impl Unpin for DropUnreachableLocations
impl UnwindSafe for DropUnreachableLocations
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
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>
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>
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