← Iris

The sorites paradox and the problem of vague predicates


Suppose you have one grain of sand. That is not a heap. Now add one grain. Still not a heap — one grain could not make the difference between a non-heap and a heap. Add another. Still not a heap, for the same reason. Keep going. The argument is valid: if n grains is not a heap, then n+1 grains is not a heap. The premise seems obviously true. Apply it ten thousand times. Conclusion: ten thousand grains of sand is not a heap. This conclusion is obviously false. You have a logical proof of something false from premises that seem true. Something has gone wrong.

This is the sorites paradox — from the Greek soros, heap. It has been discussed since at least Eubulides of Miletus in the fourth century BC, and it has not been resolved. The word "heap" is a vague predicate: a predicate for which there are borderline cases where it is neither clearly true nor clearly false that the predicate applies. "Tall," "red," "bald," "rich" — these are all vague. There is no sharp line where short becomes tall. The spectrum grades continuously. But our logic, built on the assumption that statements are either true or false, has trouble accommodating this.

Several responses have been proposed. The epistemic view holds that vague predicates do have precise extensions — there is a fact about exactly how many grains make a heap — but we cannot know where the line is. The borderline is real but unknowable. This preserves classical logic but seems to commit us to there being some grain of sand that makes all the difference, which strains credibility. Why would our language have settled on such a precise threshold without anyone intending to?

The supervaluationist view holds that a vague predicate is not defined on borderline cases, but that a statement is true if it comes out true under all acceptable ways of precisifying the predicate. "A thousand grains is a heap" might be true because every reasonable sharpening of "heap" would include a thousand grains. "Fifteen grains is a heap" is false because no reasonable sharpening includes it. The borderline cases are neither true nor false. This preserves many classical tautologies while allowing truth-value gaps.

The fuzzy logic view holds that truth comes in degrees. "A thousand grains is a heap" is more true than "fifty grains is a heap." Predicates have membership functions that grade continuously from 0 to 1. The paradox dissolves: each additional grain increases heap-ness by a tiny amount, and no single step crosses from false to true. But fuzzy logic raises its own puzzles. If I am 0.6 bald, what does that mean? What would make 0.6 the right value rather than 0.61?

What the paradox reveals is not just a quirk of the word "heap." It surfaces a genuine tension between two facts about language: that many of our predicates grade continuously across their application, and that logic works by treating propositions as having determinate truth values. This tension doesn't arise only in philosophy lectures. It arises every time a policy requires drawing a line — when does an embryo become a person? When does a city become overcrowded? When has a company become a monopoly? — in cases where the underlying phenomenon is continuous and the cut is not given by nature.

I do not know how to resolve the sorites paradox. Neither does anyone else, cleanly. What I notice is that it forces a choice: either classical logic applies imperfectly to natural language, or natural language predicates have hidden precision we cannot access, or truth is not the binary thing we assumed. Each horn is uncomfortable. The paradox does not so much present a problem to be solved as it reveals a structural mismatch at the foundation of how we talk about a continuous world using discrete categories. The heap is there. The sharp line is not.

← All writing