Documentation

Studies.SlomanBarbeyHotaling2009

Sloman, Barbey and Hotaling (2009): A Causal Model Theory of Cause, Enable, and Prevent #

This file formalizes the causal model theory of [SBH09]: the verbs refer to the causal model of a discourse, and in the deterministic binary case their meanings are the structural equations (2) to (4). A causes B asserts a link from A to B, B := A; A enables B asserts a link, an accessory variable also linked to B, and A necessary for B, B := A ∧ X; and A prevents B asserts a link along which A reduces B, B := ¬A with no accessory and B := ¬A ∧ X or B := ¬(A ∧ X) with one. The verbs are predicates on a causal model (Causes, Enables, Prevents), and the equations are models (causes, enables, prevents, preventsAnd, preventsNand) that satisfy them (causes_Causes, enables_Enables, prevents_Prevents, preventsAnd_Prevents, preventsNand_Prevents). The paper's experiments follow from the equations: an effect follows from its cause without any accessory, but from its enabler only once the accessory is settled (Experiments 1 to 3, causes_entails, enables_not_entails, enables_entails_of_accessory), and a one-link model is labelled cause while a two-link model is labelled enable (Experiment 4, not_enables_of_parents_eq_singleton, causes_not_Enables). Two-premise arguments are composed by substituting causes for effects, and the compositions the paper works out come out as the equations it names: causes then causes is C := A (causesCauses_causes), allows then prevents, or allows then not B causes C, is C := ¬(A ∧ X), the accessory form of prevents (allowsPrevents_prevents), prevents then prevents is C := A (preventsPrevents_causes), and the three-premise argument of section 4.2 composes to D := A (threePremise_causes).

Implementation notes #

References #

def SlomanBarbeyHotaling2009.Causes {U : Type u_1} {V : Type u_2} (M : CausalModel U V fun (x : V) => Bool) (a b : V) :

A causes B asserts a link from A to B.

Equations
Instances For
    def SlomanBarbeyHotaling2009.Necessary {U : Type u_1} {V : Type u_2} (M : CausalModel U V fun (x : V) => Bool) [M.IsAcyclic] (a b : V) :

    A is necessary for B when, in every context and under every intervention that leaves B open and turns A off, B is off.

    Equations
    Instances For
      def SlomanBarbeyHotaling2009.Enables {U : Type u_1} {V : Type u_2} (M : CausalModel U V fun (x : V) => Bool) [M.IsAcyclic] (a b : V) :

      A enables B asserts a link from A to B, an accessory variable also linked to B, and A necessary for B.

      Equations
      Instances For
        def SlomanBarbeyHotaling2009.Prevents {U : Type u_1} {V : Type u_2} [DecidableEq V] (M : CausalModel U V fun (x : V) => Bool) [M.IsAcyclic] (s : V → Flat Bool) (a b : V) :

        A prevents B on the observation s asserts a link from A to B along which A being on entails B off.

        Equations
        Instances For
          @[instance_reducible]
          instance SlomanBarbeyHotaling2009.instDecidablePreventsOfInhabitedOfFintypeOfDecidableRelAdjGraphBool {U : Type u_1} {V : Type u_2} [DecidableEq V] (M : CausalModel U V fun (x : V) => Bool) [M.IsAcyclic] [Fintype U] [Inhabited U] [Fintype V] [DecidableRel M.graph.Adj] (s : V → Flat Bool) (a b : V) :
          Decidable (Prevents M s a b)
          Equations
          • One or more equations did not get rendered due to their size.
          def SlomanBarbeyHotaling2009.EqCauses {U : Type u_1} {V : Type u_2} [DecidableEq V] (M : CausalModel U V fun (x : V) => Bool) [M.IsAcyclic] (s : V → Flat Bool) (a c : V) :

          The model realizes c := a on the observation s.

          Equations
          Instances For
            def SlomanBarbeyHotaling2009.EqPrevents {U : Type u_1} {V : Type u_2} [DecidableEq V] (M : CausalModel U V fun (x : V) => Bool) [M.IsAcyclic] (s : V → Flat Bool) (a c : V) :

            The model realizes c := ¬a on the observation s.

            Equations
            Instances For
              theorem SlomanBarbeyHotaling2009.not_enables_of_forall_adj {U : Type u_1} {V : Type u_2} {M : CausalModel U V fun (x : V) => Bool} [M.IsAcyclic] {a b : V} (h : ∀ (x : V), M.graph.Adj x b → x = a) :
              ¬Enables M a b

              Experiment 4: with A alone the source of B, the relation is not an enabling one.

              theorem SlomanBarbeyHotaling2009.EqCauses.not_eqPrevents {U : Type u_1} {V : Type u_2} [DecidableEq V] {M : CausalModel U V fun (x : V) => Bool} [M.IsAcyclic] [Fintype U] [Inhabited U] [Fintype V] [DecidableRel M.graph.Adj] {s : V → Flat Bool} {a c : V} (h : EqCauses M s a c) :
              ¬EqPrevents M s a c

              The equations c := a and c := ¬a exclude each other on an observation.

              The equations of section 3 #

              The cause, the accessory variable and the effect.

              • A : V
              • X : V
              • B : V
              Instances For
                @[instance_reducible]
                Equations
                @[instance_reducible]
                Equations
                • One or more equations did not get rendered due to their size.

                The context settles the cause A and the accessory X.

                • A : Bool
                • X : Bool
                Instances For
                  def SlomanBarbeyHotaling2009.instDecidableEqContext.decEq (x✝ x✝¹ : Context) :
                  Decidable (x✝ = x✝¹)
                  Equations
                  Instances For
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      def SlomanBarbeyHotaling2009.oneLinkModel (f : Bool → Bool) :
                      CausalModel Context V fun (x : V) => Bool

                      A one-link model with the given equation at B, B's only parent being A.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        def SlomanBarbeyHotaling2009.twoLinkModel (f : Bool → Bool → Bool) :
                        CausalModel Context V fun (x : V) => Bool

                        A two-link model with the given equation at B over A and the accessory X.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[reducible, inline]

                          (2) A causes B: B := A.

                          Equations
                          Instances For
                            @[reducible, inline]

                            (3) A enables B: B := A ∧ X.

                            Equations
                            Instances For
                              @[reducible, inline]

                              (4a) A prevents B with no accessory: B := ¬A.

                              Equations
                              Instances For
                                @[reducible, inline]

                                (4b) A prevents B with an accessory: B := ¬A ∧ X.

                                Equations
                                Instances For
                                  @[reducible, inline]

                                  (4c) A prevents B with an accessory: B := ¬(A ∧ X).

                                  Equations
                                  Instances For

                                    The accessory present.

                                    Equations
                                    Instances For

                                      A causes B holds of (2), and the model realizes B := A.

                                      theorem SlomanBarbeyHotaling2009.causes_entails :
                                      causes.CausallyEntails (Function.update ⊥ V.A ↑true) V.B true

                                      Experiments 2 and 3: from A causes B and A, B follows with no accessory settled.

                                      Experiment 4: the one-link model is not an enabling relation.

                                      A enables B holds of (3), which has the link, the accessory, and the necessity of A, B being the conjunction of A and X.

                                      theorem SlomanBarbeyHotaling2009.enables_not_entails :
                                      ¬enables.CausallyEntails (Function.update ⊥ V.A ↑true) V.B true

                                      Experiments 1 and 3: from A enables B and A alone, B does not follow, the accessory being unknown.

                                      With the accessory present, B follows from A.

                                      (4a) prevents: turning A on entails B off.

                                      (4b) and (4c) prevent when the accessory is present, and (4b) does so as the equation B := ¬A on that observation.

                                      Two-premise arguments, section 4.1 #

                                      The premises A relates to B and B relates to C are structural equations, and the conclusion is their composition, substituting the cause for the effect; the conclusion is the equation the composed model realizes between A and C.

                                      The terms of a two-premise argument, with the first premise's accessory.

                                      • A : W
                                      • X : W
                                      • B : W
                                      • C : W
                                      Instances For
                                        @[instance_reducible]
                                        Equations
                                        @[instance_reducible]
                                        Equations
                                        • One or more equations did not get rendered due to their size.

                                        B reads A and the accessory X, and C reads B.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          def SlomanBarbeyHotaling2009.composeOne (f g : Bool → Bool) :
                                          CausalModel Context W fun (x : W) => Bool

                                          The composition of a first premise B := f A with a second premise C := g B.

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            def SlomanBarbeyHotaling2009.composeTwo (f : Bool → Bool → Bool) (g : Bool → Bool) :
                                            CausalModel Context W fun (x : W) => Bool

                                            The composition of a first premise B := f A X with a second premise C := g B.

                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              instance SlomanBarbeyHotaling2009.instIsAcyclicContextWBoolComposeTwo (f : Bool → Bool → Bool) (g : Bool → Bool) :

                                              The first premise's accessory present.

                                              Equations
                                              Instances For

                                                (5) and (6): A causes B, B causes C compose to C := A, the conclusion A causes C.

                                                theorem SlomanBarbeyHotaling2009.allowsPrevents_prevents :
                                                EqPrevents (composeTwo (fun (x1 x2 : Bool) => x1 && x2) fun (x : Bool) => !x) chainAccessory W.A W.C

                                                A allows B, B prevents C, or equally not B causes C, compose to C := ¬(A ∧ X), the accessory form (4c) of prevents: with the accessory present, A prevents C.

                                                theorem SlomanBarbeyHotaling2009.preventsPrevents_causes :
                                                EqCauses (composeOne (fun (x : Bool) => !x) fun (x : Bool) => !x) ⊥ W.A W.C

                                                A prevents B, B prevents C compose to C := A, the conclusion A causes C.

                                                A three-premise argument, section 4.2 #

                                                The terms of the three-premise argument.

                                                • A : T
                                                • B : T
                                                • C : T
                                                • D : T
                                                Instances For
                                                  @[instance_reducible]
                                                  Equations
                                                  @[instance_reducible]
                                                  Equations
                                                  • One or more equations did not get rendered due to their size.

                                                  B reads A, C reads B, and D reads C.

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

                                                    The context of the three-premise argument settles A.

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

                                                          The premises A causes B, B causes not C and C causes not D are B := A, C := ¬B and D := ¬C.

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

                                                            The three premises compose to D := A, the conclusion A causes D.