Tidal Motions of Causality

A Review of Joseph Halpern’s A Modification of the Halpern-Pearl Definition of Causality

Waves: An Introduction

Before I start this review, I wanted to give a bit of an overview. Halpern and Pearl are primarily concerned with creating a definition for an actual cause, which I will define better later on. Intuitively, we think of an actual cause as the event that immediately caused some effect. I can make that claim that everything in your life so far has lead up to you reading these words, and while that’s kind of true, we don’t think of your entire life as a cause for this specific action. We think of you deciding to go onto Medium and you actively choosing to click on this article as the cause for you reading these words.

While it is easy enough to understand intuitively, coming up with a precise, general, mathematical definition for actual cause turns out to be pretty difficult.


Exogenous variables are those that do not have any causes that we care about for the purposes of the model. For example, the sky is blue. Or we are currently alive. Endogenous variables are those that are the effect of some exogenous and/or endogenous variables.

There are also structural equations that are part of the causal model, but they assign values to the variables in the model and we will not be disscussing them here today.

The other half of a causal model is the context. This basically assigns values to the exogenous variables and lets everything basically filter down as the structural equations determines the values of everything else. Different contexts essentially access different “possible worlds” and the context that is most useful is the one for the actual world, or the one that we are observing right now.

Actual Cause

Condition 1: That both the cause and effect have to happen (or be true) at the same time.

Condition 2: A) Had cause A not have happened, but all other variables stay the same, then effect B would not happen B) It must be true that if cause A happened and ALL possible subsets of all other variables maintained their values from what actually happened, then effect B would still happen

Part b creates the case of sufficiency. It states that if some cause A happens for sure and all other variables can but don’t have to change for all possible subsets of variables, then the effect B is still sure to happen. This will make more sense in the Wildfire example below.

Condition 3: Minimality. No subset of the set of variables of causes satisfies conditions 1 and 2.


As a foreigner entering this field, I thought it was rather odd and found it difficult to accept that Halpern could just simply create a definition that was so out of touch with reality. As in, his definition bent the model such that it could not have happened in real life in many interesting cases. I had a lot of difficulty resolving this issue that he was just able to change whatever he wanted. However, I have learned that it is actually pretty common. It is not rare for researchers to come up with many examples and edge cases and then to find some definition that fits all of them. In some cases it works well and in others, it doesn’t.

Halpern himself addresses these concerns in his talk, and mentions that it is very possible that this definition will change again, although he does not anticipate (and hopes that it will not) happen.


Throwing Rocks

How do we justify that Suzy is the actual cause?

This becomes difficult and I will leave it as an exercise for you to see why modified part a of condition 2 is important here. Please leave a comment if you need the answer.


Disjunction — This is the case where either match caused the fire. This means that in order for the fire to not happen, both must have NOT happened. This is where part b of condition 2 comes in. We verify that both matches are part of the clause, but they together are not both the clause.

Conjunction — This is the case where BOTH matches combined cause the fire. This means that the fire could only have NOT happened if either one did not happen. Therefore, it’s easy to see that both are causes by using part a of condition two.

More Factors

Normality is the thought that the more something deviates from normal, the more it is strange. For example, it is not odd if I eat ice cream in the summer, but if I do so in the winter, it stands out more. In the cause of a cause, let’s say there are two pens on a receptionist’s table. The pens can be taken by administrators but not professors. A professor takes one pen and then an administrator takes another. The receptionist, in dire need of a pen, has no more pens. Who is to blame? In most cases, people would say the professor since he is not supposed to take pens. Normality is defined by convention and tradition, it is what we are used to, so the more we deviate from it, the more likely we are to assign blame to that.

Responsibility is the calculation of how much we are to blame for some event. For example if an election wins 6–5 vs 11–0, there is a big difference between how we view those events/who is to blame for the loss (other than the candidate of course). Halpern discusses mathematical ways to specifically assign this, but I will not go into it right now.

Taking in models, variables, actual causes, normality, and responsibility into consideration, it seems that we have the building blocks for an AI that is able to find causes of many events. Perhaps in the future, it will be these machines instead of lawyers that we find in court. But of course, the progress of this will rely on the discovery of exotic edge cases and examples. Those that stretch the limits of logic and philosophy. It is up to us to find them.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store