pub trait FalsifiableHypothesis {
type State;
// Required methods
fn predict(&self, state: &Self::State) -> Predictions;
fn falsification_criteria(&self) -> Vec<FalsificationCriteria>;
fn robustness(&self, state: &Self::State) -> f64;
fn null_hypothesis_test(
&self,
predictions: &Predictions,
observations: &Observations,
significance: f64,
) -> NHSTResult;
}Expand description
Trait for falsifiable hypotheses.
Implements Popper’s demarcation criterion: a hypothesis is scientific only if it can be falsified by observation.
Required Associated Types§
Required Methods§
Sourcefn predict(&self, state: &Self::State) -> Predictions
fn predict(&self, state: &Self::State) -> Predictions
Generate testable predictions from state.
Sourcefn falsification_criteria(&self) -> Vec<FalsificationCriteria>
fn falsification_criteria(&self) -> Vec<FalsificationCriteria>
Define what would falsify this hypothesis.
Sourcefn robustness(&self, state: &Self::State) -> f64
fn robustness(&self, state: &Self::State) -> f64
Compute robustness degree (distance to falsification).
Positive values indicate satisfaction with margin. Negative values indicate violation. Zero indicates boundary (maximally falsifiable).
Sourcefn null_hypothesis_test(
&self,
predictions: &Predictions,
observations: &Observations,
significance: f64,
) -> NHSTResult
fn null_hypothesis_test( &self, predictions: &Predictions, observations: &Observations, significance: f64, ) -> NHSTResult
Perform null hypothesis significance test.