Skip to main content

RobustnessSemantics

Trait RobustnessSemantics 

Source
pub trait RobustnessSemantics: Clone + PartialEq {
    // Required methods
    fn and(l: Self, r: Self) -> Self;
    fn or(l: Self, r: Self) -> Self;
    fn not(val: Self) -> Self;
    fn implies(antecedent: Self, consequent: Self) -> Self;
    fn eventually_identity() -> Self;
    fn globally_identity() -> Self;
    fn atomic_true() -> Self;
    fn atomic_false() -> Self;
    fn atomic_greater_than(value: f64, c: f64) -> Self;
    fn atomic_less_than(value: f64, c: f64) -> Self;
    fn unknown() -> Self;
    fn prune_dominated(old: Self, new: Self, is_max: bool) -> bool;
}
Expand description

Semantic operations required by STL operators for a robustness domain.

This trait abstracts the algebra used by boolean, quantitative (f64), and interval-valued (RobustnessInterval) monitoring.

Required Methods§

Source

fn and(l: Self, r: Self) -> Self

Conjunction semantics.

Source

fn or(l: Self, r: Self) -> Self

Disjunction semantics.

Source

fn not(val: Self) -> Self

Negation semantics.

Source

fn implies(antecedent: Self, consequent: Self) -> Self

Implication semantics.

Source

fn eventually_identity() -> Self

Identity element for eventuality aggregation.

Source

fn globally_identity() -> Self

Identity element for globally aggregation.

Source

fn atomic_true() -> Self

Value representing a tautologically true atomic predicate.

Source

fn atomic_false() -> Self

Value representing a tautologically false atomic predicate.

Source

fn atomic_greater_than(value: f64, c: f64) -> Self

Evaluates atomic predicate value > c in this semantics.

Source

fn atomic_less_than(value: f64, c: f64) -> Self

Evaluates atomic predicate value < c in this semantics.

Source

fn unknown() -> Self

Representation of an unresolved/unknown value.

Used by incremental temporal operators where windows are not yet closed.

Source

fn prune_dominated(old: Self, new: Self, is_max: bool) -> bool

Returns true if ‘old’ is strictly dominated by ‘new’ such that ‘old’ can be safely discarded from a Lemire sliding window.

For RoSI, this requires strict separation of intervals.

§Arguments
  • old - The value to check for domination
  • new - The potentially dominating value
  • is_max - If true, checks domination for max operations; if false, for min operations

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.

Implementations on Foreign Types§

Source§

impl RobustnessSemantics for bool

Source§

fn and(l: bool, r: bool) -> bool

Source§

fn or(l: bool, r: bool) -> bool

Source§

fn not(val: bool) -> bool

Source§

fn implies(antecedent: bool, consequent: bool) -> bool

Source§

fn eventually_identity() -> Self

Source§

fn globally_identity() -> Self

Source§

fn atomic_true() -> Self

Source§

fn atomic_false() -> Self

Source§

fn atomic_greater_than(value: f64, c: f64) -> Self

Source§

fn atomic_less_than(value: f64, c: f64) -> Self

Source§

fn unknown() -> Self

Source§

fn prune_dominated(old: Self, new: Self, is_max: bool) -> bool

Source§

impl RobustnessSemantics for f64

Source§

fn and(l: f64, r: f64) -> f64

Source§

fn or(l: f64, r: f64) -> f64

Source§

fn not(val: f64) -> f64

Source§

fn implies(antecedent: f64, consequent: f64) -> f64

Source§

fn eventually_identity() -> Self

Source§

fn globally_identity() -> Self

Source§

fn atomic_true() -> Self

Source§

fn atomic_false() -> Self

Source§

fn atomic_greater_than(value: f64, c: f64) -> Self

Source§

fn atomic_less_than(value: f64, c: f64) -> Self

Source§

fn unknown() -> Self

Source§

fn prune_dominated(old: Self, new: Self, is_max: bool) -> bool

Implementors§