pub struct SymbolicAsyncGraph { /* private fields */ }
Expand description
A symbolic encoding of asynchronous transition system of a BooleanNetwork
.
Provides standard pre/post operations for exploring the graph symbolically.
Implementations
sourceimpl SymbolicAsyncGraph
impl SymbolicAsyncGraph
pub fn new(network: BooleanNetwork) -> Result<SymbolicAsyncGraph, String>
sourceimpl SymbolicAsyncGraph
impl SymbolicAsyncGraph
Examine the general properties of the graph.
sourcepub fn as_network(&self) -> &BooleanNetwork
pub fn as_network(&self) -> &BooleanNetwork
Return a reference to the original Boolean network.
sourcepub fn symbolic_context(&self) -> &SymbolicContext
pub fn symbolic_context(&self) -> &SymbolicContext
Return a reference to the symbolic context of this graph.
sourcepub fn fix_network_variable(
&self,
variable: VariableId,
value: bool
) -> GraphColoredVertices
pub fn fix_network_variable(
&self,
variable: VariableId,
value: bool
) -> GraphColoredVertices
Create a colored vertex set with a fixed value of the given variable.
sourcepub fn pick_witness(&self, colors: &GraphColors) -> BooleanNetwork
pub fn pick_witness(&self, colors: &GraphColors) -> BooleanNetwork
Make a witness network for one color in the given set.
sourcepub fn empty_colors(&self) -> &GraphColors
pub fn empty_colors(&self) -> &GraphColors
Reference to an empty color set.
sourcepub fn mk_empty_colors(&self) -> GraphColors
pub fn mk_empty_colors(&self) -> GraphColors
Make a new copy of empty color set.
sourcepub fn unit_colors(&self) -> &GraphColors
pub fn unit_colors(&self) -> &GraphColors
Reference to a unit color set.
sourcepub fn mk_unit_colors(&self) -> GraphColors
pub fn mk_unit_colors(&self) -> GraphColors
Make a new copy of unit color set.
sourcepub fn empty_vertices(&self) -> &GraphColoredVertices
pub fn empty_vertices(&self) -> &GraphColoredVertices
Reference to an empty colored vertex set.
sourcepub fn mk_empty_vertices(&self) -> GraphColoredVertices
pub fn mk_empty_vertices(&self) -> GraphColoredVertices
Make a new copy of empty vertex set.
sourcepub fn unit_colored_vertices(&self) -> &GraphColoredVertices
pub fn unit_colored_vertices(&self) -> &GraphColoredVertices
Reference to a unit colored vertex set.
sourcepub fn mk_unit_colored_vertices(&self) -> GraphColoredVertices
pub fn mk_unit_colored_vertices(&self) -> GraphColoredVertices
Make a new copy of unit vertex set.
sourcepub fn vertex(&self, state: &ArrayBitVector) -> GraphColoredVertices
pub fn vertex(&self, state: &ArrayBitVector) -> GraphColoredVertices
Construct a vertex set that only contains one vertex, but all colors
sourceimpl SymbolicAsyncGraph
impl SymbolicAsyncGraph
Basic symbolic graph operators.
sourcepub fn var_post(
&self,
variable: VariableId,
initial: &GraphColoredVertices
) -> GraphColoredVertices
pub fn var_post(
&self,
variable: VariableId,
initial: &GraphColoredVertices
) -> GraphColoredVertices
Compute the colored vertex set which is a result of applying the update function
of the given variable
to the initial
set.
sourcepub fn var_can_post(
&self,
variable: VariableId,
set: &GraphColoredVertices
) -> GraphColoredVertices
pub fn var_can_post(
&self,
variable: VariableId,
set: &GraphColoredVertices
) -> GraphColoredVertices
Compute the subset of set
that can perform post
using given variable
.
sourcepub fn var_pre(
&self,
variable: VariableId,
initial: &GraphColoredVertices
) -> GraphColoredVertices
pub fn var_pre(
&self,
variable: VariableId,
initial: &GraphColoredVertices
) -> GraphColoredVertices
Compute the colored vertex set which can create some valuation in initial
by
applying the update function of the given variable
.
sourcepub fn var_can_pre(
&self,
variable: VariableId,
set: &GraphColoredVertices
) -> GraphColoredVertices
pub fn var_can_pre(
&self,
variable: VariableId,
set: &GraphColoredVertices
) -> GraphColoredVertices
Compute the subset of set
that can perform pre
using given variable
.
sourcepub fn var_can_post_within(
&self,
variable: VariableId,
set: &GraphColoredVertices
) -> GraphColoredVertices
pub fn var_can_post_within(
&self,
variable: VariableId,
set: &GraphColoredVertices
) -> GraphColoredVertices
Compute the subset of set
that can perform post
using the given variable
,
such that the successor is also within set
.
sourcepub fn var_can_pre_within(
&self,
variable: VariableId,
set: &GraphColoredVertices
) -> GraphColoredVertices
pub fn var_can_pre_within(
&self,
variable: VariableId,
set: &GraphColoredVertices
) -> GraphColoredVertices
Compute the subset of set
that can perform pre
using the given variable
,
such that the predecessor is also within set
.
sourceimpl SymbolicAsyncGraph
impl SymbolicAsyncGraph
Derived operators.
sourcepub fn post(&self, initial: &GraphColoredVertices) -> GraphColoredVertices
pub fn post(&self, initial: &GraphColoredVertices) -> GraphColoredVertices
Compute the result of applying post
with all update functions to the initial
set.
sourcepub fn pre(&self, initial: &GraphColoredVertices) -> GraphColoredVertices
pub fn pre(&self, initial: &GraphColoredVertices) -> GraphColoredVertices
Compute the result of applying pre
with all update functions to the initial
set.
sourcepub fn can_post(&self, set: &GraphColoredVertices) -> GraphColoredVertices
pub fn can_post(&self, set: &GraphColoredVertices) -> GraphColoredVertices
Compute the subset of set
that can perform some post
operation.
sourcepub fn can_pre(&self, set: &GraphColoredVertices) -> GraphColoredVertices
pub fn can_pre(&self, set: &GraphColoredVertices) -> GraphColoredVertices
Compute the subset of set
that can perform some pre
operation.
sourcepub fn can_post_within(
&self,
set: &GraphColoredVertices
) -> GraphColoredVertices
pub fn can_post_within(
&self,
set: &GraphColoredVertices
) -> GraphColoredVertices
Compute the subset of set
that can perform some post
operation which leads
to a state within set
.
sourcepub fn will_post_within(
&self,
set: &GraphColoredVertices
) -> GraphColoredVertices
pub fn will_post_within(
&self,
set: &GraphColoredVertices
) -> GraphColoredVertices
Compute the subset of set
such that every post
operation leads to a state
within the same set
.
sourcepub fn can_pre_within(&self, set: &GraphColoredVertices) -> GraphColoredVertices
pub fn can_pre_within(&self, set: &GraphColoredVertices) -> GraphColoredVertices
Compute the subset of set
that can perform some pre
operation which leads
to a state within set
.
sourcepub fn will_pre_within(
&self,
set: &GraphColoredVertices
) -> GraphColoredVertices
pub fn will_pre_within(
&self,
set: &GraphColoredVertices
) -> GraphColoredVertices
Compute the subset of set
such that every pre
operation leads to a state
within the same set
.
Trait Implementations
sourceimpl Clone for SymbolicAsyncGraph
impl Clone for SymbolicAsyncGraph
sourcefn clone(&self) -> SymbolicAsyncGraph
fn clone(&self) -> SymbolicAsyncGraph
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
Auto Trait Implementations
impl RefUnwindSafe for SymbolicAsyncGraph
impl Send for SymbolicAsyncGraph
impl Sync for SymbolicAsyncGraph
impl Unpin for SymbolicAsyncGraph
impl UnwindSafe for SymbolicAsyncGraph
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more