pub struct InitRestriction {
precondition_par: Conjunction<BooleanExpression<Parameter>>,
precondition_loc: Conjunction<BooleanExpression<Location>>,
precondition_var: Conjunction<BooleanExpression<Variable>>,
}Expand description
Restriction on the initial configuration of a run
The restriction is a conjunction of arbitrary boolean constraints, split by the kind of atoms they range over. Constraints on parameters are rigid, i.e., they hold at every position of a run.
Fields§
§precondition_par: Conjunction<BooleanExpression<Parameter>>Conjunction of conditions on the parameters
precondition_loc: Conjunction<BooleanExpression<Location>>Conjunction of conditions on the initial distribution of processes in the threshold automaton
precondition_var: Conjunction<BooleanExpression<Variable>>Conjunction of conditions on the initial valuation of the shared variables
Implementations§
Source§impl InitRestriction
impl InitRestriction
Sourcepub fn new_parameter_constraint(constr: BooleanExpression<Parameter>) -> Self
pub fn new_parameter_constraint(constr: BooleanExpression<Parameter>) -> Self
Create a restriction consisting of a single parameter constraint
Sourcepub fn new_location_constraint(constr: BooleanExpression<Location>) -> Self
pub fn new_location_constraint(constr: BooleanExpression<Location>) -> Self
Create a restriction consisting of a single constraint on the initial distribution of processes
Sourcepub fn new_variable_constraint(constr: BooleanExpression<Variable>) -> Self
pub fn new_variable_constraint(constr: BooleanExpression<Variable>) -> Self
Create a restriction consisting of a single constraint on the initial valuation of the shared variables
Sourcepub fn try_or(&self, other: &Self) -> Option<Self>
pub fn try_or(&self, other: &Self) -> Option<Self>
Disjunction of two restrictions, if a sound merge exists
The restriction is a conjunction of one condition per kind of atom.
Because of this, the disjunction is only representable if both
restrictions differ in at most one kind:
(p && l1 && v) || (p && l2 && v) is equal to p && (l1 || l2) && v.
Sourcepub fn parameter_constraints(
&self,
) -> &Conjunction<BooleanExpression<Parameter>>
pub fn parameter_constraints( &self, ) -> &Conjunction<BooleanExpression<Parameter>>
Conditions on the parameters
Sourcepub fn location_constraints(&self) -> &Conjunction<BooleanExpression<Location>>
pub fn location_constraints(&self) -> &Conjunction<BooleanExpression<Location>>
Conditions on the initial distribution of processes
Sourcepub fn variable_constraints(&self) -> &Conjunction<BooleanExpression<Variable>>
pub fn variable_constraints(&self) -> &Conjunction<BooleanExpression<Variable>>
Conditions on the initial valuation of the shared variables
Trait Implementations§
Source§impl And for InitRestriction
impl And for InitRestriction
Source§impl BitAnd for InitRestriction
impl BitAnd for InitRestriction
Source§impl Clone for InitRestriction
impl Clone for InitRestriction
Source§fn clone(&self) -> InitRestriction
fn clone(&self) -> InitRestriction
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for InitRestriction
impl Debug for InitRestriction
Source§impl Default for InitRestriction
impl Default for InitRestriction
Source§fn default() -> InitRestriction
fn default() -> InitRestriction
Source§impl Display for InitRestriction
impl Display for InitRestriction
Source§impl PartialEq for InitRestriction
impl PartialEq for InitRestriction
Source§fn eq(&self, other: &InitRestriction) -> bool
fn eq(&self, other: &InitRestriction) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for InitRestriction
Auto Trait Implementations§
impl Freeze for InitRestriction
impl RefUnwindSafe for InitRestriction
impl Send for InitRestriction
impl Sync for InitRestriction
impl Unpin for InitRestriction
impl UnsafeUnpin for InitRestriction
impl UnwindSafe for InitRestriction
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