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§
Sourcefn eventually_identity() -> Self
fn eventually_identity() -> Self
Identity element for eventuality aggregation.
Sourcefn globally_identity() -> Self
fn globally_identity() -> Self
Identity element for globally aggregation.
Sourcefn atomic_true() -> Self
fn atomic_true() -> Self
Value representing a tautologically true atomic predicate.
Sourcefn atomic_false() -> Self
fn atomic_false() -> Self
Value representing a tautologically false atomic predicate.
Sourcefn atomic_greater_than(value: f64, c: f64) -> Self
fn atomic_greater_than(value: f64, c: f64) -> Self
Evaluates atomic predicate value > c in this semantics.
Sourcefn atomic_less_than(value: f64, c: f64) -> Self
fn atomic_less_than(value: f64, c: f64) -> Self
Evaluates atomic predicate value < c in this semantics.
Sourcefn unknown() -> Self
fn unknown() -> Self
Representation of an unresolved/unknown value.
Used by incremental temporal operators where windows are not yet closed.
Sourcefn prune_dominated(old: Self, new: Self, is_max: bool) -> bool
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 dominationnew- The potentially dominating valueis_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.