SpecificationTrait

Trait SpecificationTrait 

Source
pub trait SpecificationTrait<C: ModelCheckerContext>: Sized + Debug {
    type TransformationError: Error + Sized;
    type InternalSpecType: Sized + TargetSpec;

    // Required methods
    fn try_from_eltl(
        spec: impl Iterator<Item = (String, ELTLExpression)>,
        ctx: &C,
    ) -> Result<Vec<Self>, Self::TransformationError>;
    fn transform_threshold_automaton<TA: ThresholdAutomaton + ModifiableThresholdAutomaton>(
        ta: TA,
        specs: Vec<Self>,
        ctx: &C,
    ) -> Vec<(Self::InternalSpecType, TA)>;
}
Expand description

Trait that needs to be implemented by an internal specification representation

Required Associated Types§

Source

type TransformationError: Error + Sized

Error occurring when transformation from ELTL specification fails

Source

type InternalSpecType: Sized + TargetSpec

Internal specification type the model checker works on

Required Methods§

Source

fn try_from_eltl( spec: impl Iterator<Item = (String, ELTLExpression)>, ctx: &C, ) -> Result<Vec<Self>, Self::TransformationError>

Try to derive the specification type from ELTL specification

Source

fn transform_threshold_automaton<TA: ThresholdAutomaton + ModifiableThresholdAutomaton>( ta: TA, specs: Vec<Self>, ctx: &C, ) -> Vec<(Self::InternalSpecType, TA)>

Create threshold automata to check

This function allows to pair a specification with a threshold automaton

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§