Documentation

Linglib.Phenomena.Causation.Studies.Lewis1973

@cite{lewis-1973-causation}: Causation #

@cite{lewis-1973-causation}

Formalization of Lewis's counterfactual analysis of causation against the V2 SEM substrate.

Three Key Concepts #

  1. Causal dependence (p. 563): e depends causally on c iff the counterfactual "if c had not occurred, e would not have occurred" holds — the but-for test.

  2. Causation (p. 563): the transitive closure of causal dependence. c causes e iff there exists a causal chain from c to e where each consecutive pair is a causal dependence. Defined via mathlib's Relation.TransGen.

  3. Epiphenomena asymmetry (p. 565): intervention-based counterfactuals correctly distinguish genuine causes from mere correlates. The barometer does not cause the storm, even though they are correlated via atmospheric pressure.

Bridge to Linglib Infrastructure #

Lewis's causal dependence corresponds to the simple but-for test in our V2 SEM framework. For exogenous causes, lewisButFor is structurally identical to ¬ BoolSEM.causallySufficient with the alternative cause-value.

The key difference from @cite{nadathur-2024} Def 10b (causallyNecessary): Lewis's but-for operates on the actual world via minimal intervention, while Def 10b quantifies over consistent supersituations. For simple models they agree; for complex models with alternative pathways, Def 10b is strictly stronger. Bridge theorems comparing Lewis to Nadathur 2024 await the Necessity hub migration to V2.

Limitations #

@cite{lewis-1973-causation} acknowledges two limitations:

noncomputable def Lewis1973.lewisButFor {W : Type u_1} [Fintype W] [DecidableEq W] (M : Core.Causal.BoolSEM W) [Core.Causal.SEM.IsDeterministic M] (vs : List W) (bg : Core.Causal.Valuation fun (x : W) => Bool) (cause effect : W) :

Lewis's but-for counterfactual: setting cause to false (the absent value) prevents the effect under developDetOn.

"If c had not occurred, e would not have occurred." Polymorphic over the vertex type W so each scenario can use its own enum.

Equations
Instances For
    @[implicit_reducible]
    noncomputable instance Lewis1973.instDecidableLewisButFor {W : Type u_1} [Fintype W] [DecidableEq W] (M : Core.Causal.BoolSEM W) [Core.Causal.SEM.IsDeterministic M] (vs : List W) (bg : Core.Causal.Valuation fun (x : W) => Bool) (cause effect : W) :
    Decidable (lewisButFor M vs bg cause effect)
    Equations
    noncomputable def Lewis1973.lewisDependence {W : Type u_1} [Fintype W] [DecidableEq W] (M : Core.Causal.BoolSEM W) [Core.Causal.SEM.IsDeterministic M] (vs : List W) (bg : Core.Causal.Valuation fun (x : W) => Bool) (cause effect : W) :

    Lewis's causal dependence (@cite{lewis-1973-causation} p. 563).

    Three conjuncts: cause develops, effect develops, and without cause the effect does not developDet.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[implicit_reducible]
      noncomputable instance Lewis1973.instDecidableLewisDependence {W : Type u_1} [Fintype W] [DecidableEq W] (M : Core.Causal.BoolSEM W) [Core.Causal.SEM.IsDeterministic M] (vs : List W) (bg : Core.Causal.Valuation fun (x : W) => Bool) (cause effect : W) :
      Decidable (lewisDependence M vs bg cause effect)
      Equations
      def Lewis1973.lewisCausation {W : Type u_1} [Fintype W] [DecidableEq W] (M : Core.Causal.BoolSEM W) [Core.Causal.SEM.IsDeterministic M] (vs : List W) (bg : Core.Causal.Valuation fun (x : W) => Bool) (cause effect : W) :

      Lewis's causation: transitive closure of causal dependence (@cite{lewis-1973-causation} p. 563), via Relation.TransGen.

      Equations
      Instances For
        theorem Lewis1973.dependence_implies_causation {W : Type u_1} [Fintype W] [DecidableEq W] (M : Core.Causal.BoolSEM W) [Core.Causal.SEM.IsDeterministic M] (vs : List W) (bg : Core.Causal.Valuation fun (x : W) => Bool) (cause effect : W) (h : lewisDependence M vs bg cause effect) :
        lewisCausation M vs bg cause effect

        Causal dependence implies causation (one-step chain).

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

                Lewis's but-for holds for a simple cause.

                Lewis's causal dependence holds for a simple cause.

                Lewis's causation holds (trivially, one-step chain).

                • a : V
                • b : V
                • c : V
                Instances For
                  @[implicit_reducible]
                  instance Lewis1973.Chain.instDecidableEqV :
                  DecidableEq V
                  Equations
                  @[implicit_reducible]
                  Equations
                  def Lewis1973.Chain.instReprV.repr :
                  VStd.Format
                  Equations
                  Instances For
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[implicit_reducible]
                        Equations
                        • One or more equations did not get rendered due to their size.

                        In the chain A→B→C, removing A prevents C.

                        Lewis's causation via the full chain A→B→C.

                        @cite{lewis-1973-causation} p. 565: barometer reading (B) and storm (S) are both effects of atmospheric pressure (P). The counterfactual analysis correctly identifies P as the common cause and rejects spurious "barometer causes storm" inference.

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

                                The barometer does NOT cause the storm.

                                @cite{lewis-1973-causation} p. 565: intervention on the barometer (do(B=false)) cuts B's incoming law (P→B) but leaves P→S intact. P still causes S regardless of B.

                                @cite{lewis-1973-causation} fn. 12: symmetric overdetermination cases are excluded — neither overdetermining factor passes the but-for test.

                                Model: A ∨ B → E. With both present, neither is necessary. 
                                
                                • a : V
                                • b : V
                                • e : V
                                Instances For
                                  @[implicit_reducible]
                                  Equations
                                  @[implicit_reducible]
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  def Lewis1973.Overdetermination.instReprV.repr :
                                  VStd.Format
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        @[implicit_reducible]
                                        Equations
                                        • One or more equations did not get rendered due to their size.

                                        Neither overdetermining cause passes the but-for test (B alive when A removed; A alive when B removed).

                                        Neither overdetermining cause is a Lewis causal dependent.