Documentation

Studies.Lewis1973

Lewis (1973): Causation #

This file formalizes the counterfactual analysis of causation of [Lew73a] on deterministic Boolean structural equation models. An event depends causally on another when, had the cause not occurred, the effect would not have occurred (lewisButFor, lewisDependence), and causation is the ancestral of causal dependence, a chain of stepwise dependences (lewisCausation, via Relation.TransGen). Four scenarios exercise the analysis: a single cause, a chain, in which the distal cause is a cause through two steps (Chain.chain_causation), the common-cause case of the barometer and the storm, where neither effect depends on the other (Epiphenomena.barometer_not_causes_storm), and symmetric overdetermination, where neither of two sufficient causes passes the but-for test (Overdetermination.overdetermination_no_dependence_a), the limitation the paper concedes.

Implementation notes #

The actual world is a context of a causal model, and the counterfactual is an intervention setting the cause to false in that context (CausalModel.solve), so the analysis is the but-for test of the model rather than a similarity ordering over worlds; the two agree on these deterministic scenarios. The paper's treatment of preemption is not represented.

References #

def Lewis1973.lewisButFor {U : Type u_1} {W : Type u_2} [DecidableEq W] (M : CausalModel U W fun (x : W) => Bool) [M.IsAcyclic] (u : U) (cause effect : W) :

The but-for counterfactual holds when, had the cause not occurred, the effect would not have occurred, the counterfactual being an intervention setting the cause to false in the actual context u.

Equations
Instances For
    def Lewis1973.lewisDependence {U : Type u_1} {W : Type u_2} [DecidableEq W] (M : CausalModel U W fun (x : W) => Bool) [M.IsAcyclic] (u : U) (cause effect : W) :

    The effect depends causally on the cause (p. 562) when both occur and the effect would not have occurred without the cause.

    Equations
    Instances For
      @[instance_reducible]
      noncomputable instance Lewis1973.instDecidableLewisButForOfFintype {U : Type u_1} {W : Type u_2} [DecidableEq W] (M : CausalModel U W fun (x : W) => Bool) [M.IsAcyclic] (u : U) [Fintype W] (cause effect : W) :
      Decidable (lewisButFor M u cause effect)
      Equations
      @[instance_reducible]
      noncomputable instance Lewis1973.instDecidableLewisDependenceOfFintype {U : Type u_1} {W : Type u_2} [DecidableEq W] (M : CausalModel U W fun (x : W) => Bool) [M.IsAcyclic] (u : U) [Fintype W] (cause effect : W) :
      Decidable (lewisDependence M u cause effect)
      Equations
      • One or more equations did not get rendered due to their size.
      def Lewis1973.lewisCausation {U : Type u_1} {W : Type u_2} [DecidableEq W] (M : CausalModel U W fun (x : W) => Bool) [M.IsAcyclic] (u : U) (cause effect : W) :

      Causation is the ancestral of causal dependence (p. 563).

      Equations
      Instances For
        theorem Lewis1973.dependence_implies_causation {U : Type u_1} {W : Type u_2} [DecidableEq W] {M : CausalModel U W fun (x : W) => Bool} [M.IsAcyclic] {u : U} {cause effect : W} (h : lewisDependence M u cause effect) :
        lewisCausation M u cause effect

        Causal dependence is causation through a chain of one step.

        theorem Lewis1973.not_lewisDependence_of_not_reflTransGen {U : Type u_1} {W : Type u_2} [DecidableEq W] {M : CausalModel U W fun (x : W) => Bool} [M.IsAcyclic] {u : U} {cause effect : W} (h : ¬Relation.ReflTransGen M.graph.Adj cause effect) :
        ¬lewisDependence M u cause effect

        An effect does not depend on an event from which no directed path reaches it, since intervening on the event leaves the effect as it was.

        • a : V
        • b : V
        Instances For
          @[instance_reducible]
          Equations
          @[instance_reducible]
          Equations
          • One or more equations did not get rendered due to their size.
          def Lewis1973.SimpleCause.instReprV.repr :
          V → ℕ → Std.Format
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            The context settles whether a occurs.

            • a : Bool
            Instances For

              b occurs when a does.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                A single cause passes the but-for test.

                The effect depends on its single cause.

                A single cause is a cause.

                • a : V
                • b : V
                • c : V
                Instances For
                  @[instance_reducible]
                  instance Lewis1973.Chain.instDecidableEqV :
                  DecidableEq V
                  Equations
                  def Lewis1973.Chain.instReprV.repr :
                  V → ℕ → Std.Format
                  Equations
                  Instances For
                    @[instance_reducible]
                    Equations

                    The context settles whether a occurs.

                    • a : Bool
                    Instances For
                      def Lewis1973.Chain.sem :
                      CausalModel Context V fun (x : V) => Bool

                      The chain passes a on to b and b on to c.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For

                        In a chain the distal cause passes the but-for test for the final effect.

                        The middle event depends on the first.

                        The final event depends on the middle one.

                        The first event causes the last through the chain.

                        The barometer reading and the storm are both effects of atmospheric pressure (pp. 561 and 564–565): the analysis makes the pressure the cause of each and neither effect a cause of the other.

                        • pressure : V
                        • barometer : V
                        • storm : V
                        Instances For
                          @[instance_reducible]
                          Equations
                          @[instance_reducible]
                          Equations
                          • One or more equations did not get rendered due to their size.
                          def Lewis1973.Epiphenomena.instReprV.repr :
                          V → ℕ → Std.Format
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For

                            The context settles the pressure.

                            • pressure : Bool
                            Instances For

                              The barometer and the storm both follow the pressure.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For

                                Pressure causes the barometer reading.

                                Pressure causes the storm.

                                The barometer does not cause the storm. No path runs from the barometer to the storm, so intervening on the barometer leaves the pressure, and so the storm, in place.

                                The storm does not cause the barometer reading.

                                Symmetric overdetermination (fn. 12): with two sufficient causes both present, neither is necessary, so neither passes the but-for test.

                                • a : V
                                • b : V
                                • e : V
                                Instances For
                                  @[instance_reducible]
                                  Equations
                                  @[instance_reducible]
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  def Lewis1973.Overdetermination.instReprV.repr :
                                  V → ℕ → Std.Format
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For

                                    The context settles the two causes.

                                    • a : Bool
                                    • b : Bool
                                    Instances For

                                      The effect occurs when either cause does.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For

                                        Neither overdetermining cause passes the but-for test, both being present.

                                        Neither overdetermining cause is one the effect depends on.