Class CounterfactualStatement


public class CounterfactualStatement extends InterventionalStatement
This class describes a counterfactual causal statement wrt. some CausalKnowledgeBase of the form:
"Given phi, if 'v' had been 'x' then psi would be true"
where 'v' is some atom and 'x' is a truth value
Author:
Julian Sander, Lars Bengel
See Also:
  • "'Argumentation-based Causal and Counterfactual Reasoning' by Lars Bengel, Lydia Blümel, Tjitze Rienstra and Matthias Thimm, published at 1st International Workshop on Argumentation for eXplainable AI (ArgXAI, co-located with COMMA ’22), September 12, 2022"
  • Constructor Details

    • CounterfactualStatement

      public CounterfactualStatement(Collection<PlFormula> observations, Map<Proposition, Boolean> interventions, PlFormula conclusion)
      Initializes a new counterfactual causal statement
      Parameters:
      observations - Observations of causal atoms
      interventions - A set of interventions on causal atoms
      conclusion - Conclusion of the causal statement
    • CounterfactualStatement

      public CounterfactualStatement(Collection<PlFormula> observations, PlFormula conclusion)
      Initializes a new counterfactual causal statement without interventions
      Parameters:
      observations - Observations of causal atoms
      conclusion - Conclusion of the causal statement
    • CounterfactualStatement

      public CounterfactualStatement()
      Initializes a new empty counterfactual causal statement
  • Method Details

    • addCounterfactualIntervention

      public boolean addCounterfactualIntervention(Proposition atom, boolean value)
      Add a new intervention which sets the counterfactual copy of the given atom to the given truth value
      Parameters:
      atom - some causal atom
      value - some truth value
      Returns:
      TRUE iff the intervention is added successfully