pub struct ZCS<'a> {
bdd_mgr: BddVarManager,
ata: &'a IntervalThresholdAutomaton,
initial_states: ZCSStates,
transitions: Vec<SymbolicTransition>,
transition_relation: BDD,
}Expand description
Type representing a symbolic 01-CS (ZCS)
Fields§
§bdd_mgr: BddVarManagerbdd manager to perform all bdd operations
ata: &'a IntervalThresholdAutomatonunderlying abstract threshold automaton
initial_states: ZCSStatesinitial states of the 01-CS (ZCS)
transitions: Vec<SymbolicTransition>set of transitions of the 01-CS (ZCS)
transition_relation: BDDtransition relation of the 01-CS (ZCS) as a single bdd
Implementations§
Source§impl ZCS<'_>
impl ZCS<'_>
Sourcepub fn compute_successor(
&self,
from: ZCSStates,
with: SymbolicTransition,
) -> ZCSStates
pub fn compute_successor( &self, from: ZCSStates, with: SymbolicTransition, ) -> ZCSStates
Computes the set of successors for a symbolic state from
rule_ids for with are not abstracted
Sourcepub fn compute_predecessor(&self, to: ZCSStates) -> ZCSStates
pub fn compute_predecessor(&self, to: ZCSStates) -> ZCSStates
Computes the set of predecessors for a symbolic state to
Bdd variables for rule_ids are not abstracted
Sourcepub fn new_empty_sym_state(&self) -> ZCSStates
pub fn new_empty_sym_state(&self) -> ZCSStates
returns a new empty set of states
Sourcepub fn new_full_sym_state(&self) -> ZCSStates
pub fn new_full_sym_state(&self) -> ZCSStates
returns a new “full” set of states
Sourcepub fn get_sym_state_for_loc(&self, loc: &Location) -> ZCSStates
pub fn get_sym_state_for_loc(&self, loc: &Location) -> ZCSStates
returns the set of states where a given location is occupied
returns the set of states where a given shared variable is in the given ‘interval’
Sourcepub fn get_sym_state_for_rule(&self, rule: &IntervalTARule) -> ZCSStates
pub fn get_sym_state_for_rule(&self, rule: &IntervalTARule) -> ZCSStates
returns the set of states where the rule_id of a given ‘rule’ is applied
Sourcepub fn abstract_rule_vars(&self, states: ZCSStates) -> ZCSStates
pub fn abstract_rule_vars(&self, states: ZCSStates) -> ZCSStates
returns the symbolic states that abstracts rule_ids from ‘states’
Sourcepub fn initial_states(&self) -> ZCSStates
pub fn initial_states(&self) -> ZCSStates
set of initial states of the 01-CS (ZCS)
Sourcepub fn transitions(&self) -> impl Iterator<Item = &SymbolicTransition>
pub fn transitions(&self) -> impl Iterator<Item = &SymbolicTransition>
returns an iterator over the encoded transition rules
Sourcepub fn locations(&self) -> impl Iterator<Item = &Location>
pub fn locations(&self) -> impl Iterator<Item = &Location>
returns an iterator over the locations of the underlying threshold automaton
Sourcepub fn variables(&self) -> impl Iterator<Item = &Variable>
pub fn variables(&self) -> impl Iterator<Item = &Variable>
returns an iterator over the shared variables of the underlying threshold automaton
returns an iterator over the ordered intervals for a given shared variable
Sourcepub fn get_sym_var_assignment(
&self,
assign: VariableAssignment,
) -> SymbolicVariableAssignment
pub fn get_sym_var_assignment( &self, assign: VariableAssignment, ) -> SymbolicVariableAssignment
returns the symbolic variable assignment for a given variable assignment
Sourcepub fn has_decrements(&self) -> bool
pub fn has_decrements(&self) -> bool
returns if the underlying threshold automaton contains any decrementing rules
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for ZCS<'a>
impl<'a> !RefUnwindSafe for ZCS<'a>
impl<'a> !Send for ZCS<'a>
impl<'a> !Sync for ZCS<'a>
impl<'a> Unpin for ZCS<'a>
impl<'a> !UnwindSafe for ZCS<'a>
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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