pub trait FalsifiableSimulation {
// Required methods
fn falsification_criteria(&self) -> Vec<FalsificationCriterion>;
fn evaluate(&self, params: &HashMap<String, f64>) -> Trajectory;
fn check_criterion(&self, criterion: &str, trajectory: &Trajectory) -> f64;
// Provided methods
fn seek_falsification(&self, params: &ParamSpace) -> FalsificationResult { ... }
fn robustness(&self, trajectory: &Trajectory) -> f64 { ... }
}Expand description
Trait for simulations that can be falsified.
Every simulation in the EDD framework must implement this trait to provide explicit falsification criteria and support active search for falsifying conditions.
§Example
ⓘ
impl FalsifiableSimulation for MySimulation {
fn falsification_criteria(&self) -> Vec<FalsificationCriterion> {
vec![
FalsificationCriterion::new(
"energy_conservation",
"|E(t) - E(0)| / E(0) > 1e-6",
FalsificationAction::RejectModel,
),
]
}
fn evaluate(&self, params: &HashMap<String, f64>) -> Trajectory {
// Run simulation with given parameters
}
fn check_criterion(&self, criterion: &str, trajectory: &Trajectory) -> f64 {
// Return robustness: positive = satisfied, negative = violated
}
}Required Methods§
Sourcefn falsification_criteria(&self) -> Vec<FalsificationCriterion>
fn falsification_criteria(&self) -> Vec<FalsificationCriterion>
Define conditions that would falsify this simulation.
Sourcefn evaluate(&self, params: &HashMap<String, f64>) -> Trajectory
fn evaluate(&self, params: &HashMap<String, f64>) -> Trajectory
Evaluate the simulation with given parameters.
Sourcefn check_criterion(&self, criterion: &str, trajectory: &Trajectory) -> f64
fn check_criterion(&self, criterion: &str, trajectory: &Trajectory) -> f64
Check a specific criterion against a trajectory.
Returns robustness degree:
- ρ > 0 → satisfies criterion with margin ρ
- ρ < 0 → violates criterion by margin |ρ|
Provided Methods§
Sourcefn seek_falsification(&self, params: &ParamSpace) -> FalsificationResult
fn seek_falsification(&self, params: &ParamSpace) -> FalsificationResult
Actively search for falsifying conditions.
Explores the parameter space looking for conditions that would falsify the model (violate any falsification criterion).
Sourcefn robustness(&self, trajectory: &Trajectory) -> f64
fn robustness(&self, trajectory: &Trajectory) -> f64
Compute overall robustness for a trajectory.
Returns the minimum robustness across all criteria.