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 #
- A structural equation is a deterministic Boolean equation at the effect over its parents; the
cause and the accessory variable are exogenous, read off the context. Entailment is strict
causal entailment from an observation (
CausalModel.CausallyEntails), on which an effect with an unsettled parent entails nothing: this is the paper's uncertainty when the accessory is unknown. Necessity is read in every context and under every intervention that leaves the effect open and turns the cause off: the effect is then off. - The paper's experimental results stay in prose. In Experiments 1 to 3 confidence that the effect occurs was high only for a cause without an accessory and near the midpoint of the scale otherwise; in Experiment 4 one-link vignettes drew cause and two-link vignettes drew enable, help or allow. Of the sixteen two-premise argument forms of Goldvarg and Johnson-Laird's fourth experiment, the theory agrees with mental model theory on thirteen and predicts A prevents C for allows then prevents and for allows then not B causes C, and A causes C for prevents then prevents.
References #
A causes B asserts a link from A to B.
Equations
- SlomanBarbeyHotaling2009.Causes M a b = M.graph.Adj a b
Instances For
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
- SlomanBarbeyHotaling2009.Necessary M a b = ∀ (u : U) (I : V → Flat Bool), I b = ⊥ → I a = ↑false → M.solve I u b = false
Instances For
A enables B asserts a link from A to B, an accessory variable also linked to B, and A necessary for B.
Equations
- SlomanBarbeyHotaling2009.Enables M a b = (M.graph.Adj a b ∧ (∃ (x : V), x ≠ a ∧ M.graph.Adj x b) ∧ SlomanBarbeyHotaling2009.Necessary M a b)
Instances For
A prevents B on the observation s asserts a link from A to B along which A being on
entails B off.
Equations
- SlomanBarbeyHotaling2009.Prevents M s a b = (M.graph.Adj a b ∧ M.CausallyEntails (Function.update s a ↑true) b false)
Instances For
Equations
- One or more equations did not get rendered due to their size.
The model realizes c := a on the observation s.
Equations
- SlomanBarbeyHotaling2009.EqCauses M s a c = ∀ (v : Bool), M.CausallyEntails (Function.update s a ↑v) c v
Instances For
The model realizes c := ¬a on the observation s.
Equations
- SlomanBarbeyHotaling2009.EqPrevents M s a c = ∀ (v : Bool), M.CausallyEntails (Function.update s a ↑v) c !v
Instances For
Experiment 4: with A alone the source of B, the relation is not an enabling one.
The equations c := a and c := ¬a exclude each other on an observation.
The equations of section 3 #
Equations
- SlomanBarbeyHotaling2009.instDecidableEqV x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
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
Equations
- SlomanBarbeyHotaling2009.instDecidableEqContext.decEq { A := a, X := a_1 } { A := b, X := b_1 } = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
Instances For
Equations
- SlomanBarbeyHotaling2009.instFintypeContext = Fintype.ofEquiv ((_ : Bool) × Bool) SlomanBarbeyHotaling2009.Context.proxyTypeEquiv
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
B reads its only parent A.
Equations
Instances For
B reads A and the accessory X.
Equations
Instances For
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
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
Instances For
Equations
- SlomanBarbeyHotaling2009.enables = SlomanBarbeyHotaling2009.twoLinkModel fun (x1 x2 : Bool) => x1 && x2
Instances For
(4a) A prevents B with no accessory: B := ¬A.
Equations
- SlomanBarbeyHotaling2009.prevents = SlomanBarbeyHotaling2009.oneLinkModel fun (x : Bool) => !x
Instances For
(4b) A prevents B with an accessory: B := ¬A ∧ X.
Equations
- SlomanBarbeyHotaling2009.preventsAnd = SlomanBarbeyHotaling2009.twoLinkModel fun (a x : Bool) => !a && x
Instances For
(4c) A prevents B with an accessory: B := ¬(A ∧ X).
Equations
- SlomanBarbeyHotaling2009.preventsNand = SlomanBarbeyHotaling2009.twoLinkModel fun (a x : Bool) => !(a && x)
Instances For
The accessory present.
Equations
- SlomanBarbeyHotaling2009.accessory = Function.update ⊥ SlomanBarbeyHotaling2009.V.X ↑true
Instances For
Experiments 2 and 3: from A causes B and A, B follows with no accessory settled.
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.
Equations
- SlomanBarbeyHotaling2009.instDecidableEqW x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
B reads A, and C reads B.
Equations
Instances For
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
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
The first premise's accessory present.
Equations
- SlomanBarbeyHotaling2009.chainAccessory = Function.update ⊥ SlomanBarbeyHotaling2009.W.X ↑true
Instances For
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.
A prevents B, B prevents C compose to C := A, the conclusion A causes C.
A three-premise argument, section 4.2 #
Equations
- SlomanBarbeyHotaling2009.instDecidableEqT x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
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
- SlomanBarbeyHotaling2009.instDecidableEqThreePremiseContext.decEq { A := a } { A := b } = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.