pub struct SMTConfigMgr<CR, CC>where
CR: StepSMT,
CC: ConfigFromSMT,{
params: Rc<HashMap<Parameter, SMTExpr>>,
configs: Vec<Rc<CC>>,
configs_primed: Vec<Rc<CC>>,
step_steps: Vec<CR>,
steady_steps: Vec<CR>,
}Expand description
Manager of configurations for a threshold automaton
Fields§
§params: Rc<HashMap<Parameter, SMTExpr>>§configs: Vec<Rc<CC>>§configs_primed: Vec<Rc<CC>>§step_steps: Vec<CR>§steady_steps: Vec<CR>Implementations§
Source§impl<CR, CC> SMTConfigMgr<CR, CC>where
CR: StepSMT,
CC: ConfigFromSMT,
impl<CR, CC> SMTConfigMgr<CR, CC>where
CR: StepSMT,
CC: ConfigFromSMT,
Sourcepub fn params(&self) -> &Rc<HashMap<Parameter, SMTExpr>>
pub fn params(&self) -> &Rc<HashMap<Parameter, SMTExpr>>
Get a reference to the parameter variables
Sourcepub fn push_steady(&mut self, step_ctx: CR)
pub fn push_steady(&mut self, step_ctx: CR)
Push a new steady configuration
Sourcepub fn pop_steady(&mut self)
pub fn pop_steady(&mut self)
Pop the last steady configuration
Sourcepub fn configs_primed(&self) -> impl Iterator<Item = &Rc<CC>>
pub fn configs_primed(&self) -> impl Iterator<Item = &Rc<CC>>
Iterate over all primed configurations
Sourcepub fn push_cfg_primed(&mut self, cfg_ctx: Rc<CC>)
pub fn push_cfg_primed(&mut self, cfg_ctx: Rc<CC>)
Push a new primed config
Sourcepub fn pop_cfg_primed(&mut self)
pub fn pop_cfg_primed(&mut self)
Pop a primed config
Sourcepub fn extract_error_path(
&self,
res: SMTSolution,
solver: &mut SMTSolver,
ta: GeneralThresholdAutomaton,
) -> Path
pub fn extract_error_path( &self, res: SMTSolution, solver: &mut SMTSolver, ta: GeneralThresholdAutomaton, ) -> Path
Extract the error path of the computed solution
Sourcefn add_transitions_steady_step_to_builder(
builder: InitializedPathBuilder,
config: Configuration,
steady_step: &CR,
solver: &mut SMTSolver,
res: SMTSolution,
) -> InitializedPathBuilder
fn add_transitions_steady_step_to_builder( builder: InitializedPathBuilder, config: Configuration, steady_step: &CR, solver: &mut SMTSolver, res: SMTSolution, ) -> InitializedPathBuilder
Compute the transition defined by a steady step and add them to the error path
Sourcefn add_transition_to_builder_and_return_updated_config(
builder: InitializedPathBuilder,
config: Configuration,
rule: Rule,
n: u32,
) -> (InitializedPathBuilder, Configuration)
fn add_transition_to_builder_and_return_updated_config( builder: InitializedPathBuilder, config: Configuration, rule: Rule, n: u32, ) -> (InitializedPathBuilder, Configuration)
Create the transition that applies rule rule n times, compute the
resulting configuration and add it to the path builder.
Returns the computed configuration and updated builder.
Sourcefn add_transition_step_step_to_builder(
builder: InitializedPathBuilder,
step_step: &CR,
solver: &mut SMTSolver,
res: SMTSolution,
) -> InitializedPathBuilder
fn add_transition_step_step_to_builder( builder: InitializedPathBuilder, step_step: &CR, solver: &mut SMTSolver, res: SMTSolution, ) -> InitializedPathBuilder
Compute the transition defined by a step step and add them to the error path
Auto Trait Implementations§
impl<CR, CC> Freeze for SMTConfigMgr<CR, CC>
impl<CR, CC> RefUnwindSafe for SMTConfigMgr<CR, CC>where
CR: RefUnwindSafe,
CC: RefUnwindSafe,
impl<CR, CC> !Send for SMTConfigMgr<CR, CC>
impl<CR, CC> !Sync for SMTConfigMgr<CR, CC>
impl<CR, CC> Unpin for SMTConfigMgr<CR, CC>where
CR: Unpin,
impl<CR, CC> UnwindSafe for SMTConfigMgr<CR, CC>where
CR: UnwindSafe,
CC: RefUnwindSafe,
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