Author’s Note: Please don’t get scared off by the first sentence. I promise it's not as bad as it sounds.

There’s a theorem from the early days of group theory which says that any continuous, monotonic function which does not depend on the order of its inputs can be transformed to addition. A good example is multiplication of positive numbers: f(x, y, z) = x*y*z. It’s continuous, it’s monotonic (increasing any of x, y, or z increases f), and we can change around the order of inputs without changing the result. In this case, f is transformed to addition using a logarithm: log(f(x, y, z)) = log(x) + log(y) + log(z).

Now, at first glance, we might say this is a very specialized theorem. “Continuous” and “monotonic” are very strong conditions; they’re not both going to apply very often. But if we actually look through the proof, it becomes clear that these assumptions aren’t as important as they look. Weakening them does change the theorem, but the core idea remains. For instance, if we remove monotonicity, then our function can still be written in terms of vector addition.

Many theorems/proofs contain pieces which are really just there for modelling purposes. The central idea of the proof can apply in many different settings, but we need to pick one of those settings in order to formalize it. This creates some mathematical boilerplate. Typically, we pick a setting which keeps the theorem simple - but that may involve stronger boilerplate assumptions than are strictly necessary for the main idea.

In such cases, we can usually relax the boilerplate assumptions and end up with slightly weaker forms of the theorem, which nonetheless maintain the central concepts.

Unfortunately, the boilerplate occasionally distracts people who aren’t familiar with the full idea underlying the proof. For some reason, I see this problem most with theorems in economics, game theory and decision theory - the sort of theorems which say “either X, or somebody is giving away free money”. People will come along and say “but wait, the theorem assumes Y, which is completely unrealistic!” But really, Y is often just boilerplate, and the core ideas still apply even if Y is relaxed to something more realistic. In fact, in many cases, the confusion is over the wording of the boilerplate! Just because we use the word “bet”, doesn’t mean people need to be at a casino for the theorem to apply.

A few examples:

“VNM utility theorem is unrealistic! It requires that we have preferences over every possible state of the universe.” Response: Completeness is really just there to keep the math clean. The core ideas of the proof still show that, if we don’t have a utility function over some neighborhood of world-states, then we can be exploited using only those world-states.

“All these rationality theorems are unrealistic! They’re only relevant to worlds where evil agents are constantly running around looking to exploit us.” Response: We face trade-offs in the real world, and if we don’t choose between the options consistently, we’ll end up throwing away resources unnecessarily. Whether an evil person manipulates us into it, or we stumble into it, isn’t really relevant. The more situations where we locally violate VNM utility, the more situations where we’ll lose resources.

“VNM utility theorem is unrealistic! It assumes we’re willing to accept either a trade or its opposite (or both) - rather than just ignoring offers.” Response: We face trade-offs in the real world where “ignore” is not an option, and if we don’t choose between the options consistently, we’ll end up throwing away resources unnecessarily.

“Dutch Book theorems are unrealistic! They assume we’re willing to accept either a bet or it’s opposite, rather than ignoring both.” Response: same as previous. Alternatively, we can build bid-ask spreads into the model, and most of the structure remains.

“Dutch Book Theorems are unrealistic! They assume we’re constantly making bets on everything possible.” Response: every time we make a decision under uncertainty, we make a bet. Do so inconsistently, and we throw away resources unnecessarily.

In closing, one important note: I definitely do not want to claim that all objections to the use of VNM utility theorem, Dutch Book theorems, etc make this kind of mistake.