Skip to main content

FalsifiableSimulation

Trait FalsifiableSimulation 

Source
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§

Source

fn falsification_criteria(&self) -> Vec<FalsificationCriterion>

Define conditions that would falsify this simulation.

Source

fn evaluate(&self, params: &HashMap<String, f64>) -> Trajectory

Evaluate the simulation with given parameters.

Source

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§

Source

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).

Source

fn robustness(&self, trajectory: &Trajectory) -> f64

Compute overall robustness for a trajectory.

Returns the minimum robustness across all criteria.

Implementors§