Sorites is Greek for heap, and the argument is straightforward enough that its persistence is embarrassing.

One grain of sand is not a heap. If some number of grains is not a heap, then that number plus one grain is not a heap either — a single grain cannot be the difference. Therefore no number of grains is a heap.

The reasoning is valid. The first premise is obviously true. The second looks obviously true. The conclusion is obviously false.

The same argument runs on every vague predicate: a man with no hairs is bald, one hair cannot make the difference, therefore nobody is not bald. Rich, tall, old, heap, red, and most of the words anyone uses.

Why the obvious replies fail

"Define the boundary." Say a heap is exactly ten thousand grains. This works and it is not an answer to the question asked, because it describes a language we do not speak. The interesting fact is that heap functions perfectly well with no such boundary, and an account of how it does that is what is missing.

"The predicate is meaningless." It plainly is not. Heap is used successfully thousands of times a day, and a term nobody misunderstands is not meaningless.

"There is a boundary and we do not know where." This is a serious position — epistemicism, defended by Timothy Williamson. There is a precise number of grains at which a heap appears, it is a genuine fact, and it is unknowable, because our use of the word is not fine-grained enough to fix which fact it is.

That preserves classical logic entirely, at the cost of believing that somewhere there is a grain whose addition creates a heap and that the truth of this is inaccessible in principle. Most people find that harder to swallow than the paradox.

The live options

Degrees of truth. This is a heap is not simply true or false but true to a degree, between 0 and 1. Adding a grain raises the degree fractionally. The cost is that the logic has to be rebuilt, and that the degrees themselves turn out to need sharp boundaries — is it 0.7 true or 0.71? — which is the original problem one level up.

Supervaluationism. The term has many admissible precise readings. A statement is true if it comes out true on all of them, false if false on all, and neither if they disagree. So a borderline heap is genuinely neither, and either it is a heap or it is not stays true even though neither disjunct is, which is the elegant part and the part that takes some getting used to.

It is about us. Vagueness is a feature of language rather than of the world. There are exactly as many grains as there are, and that is all the world contains. The imprecision is in our coarse instrument for describing it.

Why it is not a curiosity

The paradox shows something general: almost every concept anyone uses has this structure, and reasoning that is locally valid at every step can be globally wrong.

That last point is the practical one. Each individual step of a sorites is unimpeachable, and the accumulation is absurd. Any process where no single increment changes the classification is a sorites — one more feature, one more exception, one more small favor for a client — and at no point does anyone make the decision that turned out to matter, because there was no such point.

It sits beside the ship of Theseus as the other great argument for indeterminacy. The ship shows that an object can have no fact about its identity; the heap shows that a predicate can have no fact about its application. Both point at the same conclusion, which is that the concepts work by being loose, and that tightening them is a different project from understanding them.