Suppose you have a heap of sand. You remove one grain. Is there still a heap? You remove another, until you get down to a heap with three grains, a heap with two grains, a heap with one grain, and finally a heap with no grains at all. But that’s ridiculous. There must be something wrong? Does removing one grain turn a heap into not-a-heap? But that's ridiculous too. How can one grain make so much difference?

Is there a solution to this problem?

  • 1
    See Sorites Paradox. Commented Feb 21, 2023 at 9:53
  • 8
    Heap is a vague concept, so what is or is not a heap shifts with context. Intuitions about the effect of one grain are localized enough to be plausible without providing the context. The paradox then plays on subtle equivocation by assuming a fixed concept throughout the whole process.
    – Conifold
    Commented Feb 21, 2023 at 12:25
  • 3
    @RobbieGoodwin Roughly, a 'paradox' is a set of seemingly true statements which result in a contradiction. "If you have a heap of sand, and take only a single grain of sand from it, it's still a heap." and "A single grain of sand is not a heap." lead to a contradiction (because a finite heap can be reduced to a single grain by repeated removal of single grains). -- The naive resolution is to deny the first, however a counter example (where you have a heap, remove a grain, and then no longer have a heap) resists construction, which makes demonstrating the falsity difficult.
    – R.M.
    Commented Feb 21, 2023 at 22:55
  • 4
    @RobbieGoodwin There exists at least one phrasing of the issue which meets the definition of a paradox, and that is what one is invoking when one says "sorites paradox". The fact that there are other phrasings which don't matters not. Yes, questioning the definition of terms is indeed a possible resolution. And yes, one may skip the paradoxical phrasing to invoke that resolution. But just because one can travel to Canterbury by going around London rather than through it does not mean that London does not exist, or that it is not a valid path of travel.
    – R.M.
    Commented Feb 22, 2023 at 2:13
  • 4
    A solution is to just keep removing grains and call it a heap deficit. Commented Feb 22, 2023 at 20:31

9 Answers 9


The solution is to realise that the problem as posed is based on a false assumption that there is always a clear dividing line between two opposing classifications of degree. Take long and short, heavy and light, wide and narrow, too salty and not too salty, etc etc. It is impossible to define an unambiguous boundary between pairs of terms like that. The terms 'a long piece of string' and 'a short piece of string' are overlapping with blurred boundaries, so a piece of string can be both long and short depending on the context.

  • 2
    Without resorting to change of context, you can also say that boolean logic requires a hard cutoff somewhere, which our human way of thinking resists. Fuzzy logic is a better match for our intuitive sense of how strongly something is or isn't a heap. (I still remember writing an essay on the Sorites paradox in 1st year undergrad philosophy 20 years ago, and making this argument. :) Commented Feb 22, 2023 at 6:48
  • 3
    Reality contains many spectrums and continuous ranges, and we try to split those into concrete categories. That's the problem.
    – NotThatGuy
    Commented Feb 22, 2023 at 9:29
  • 1
    @PeterCordes: the problem is that the definition of a fuzzy set is also arbitrary, with a non-countable set of membership functions.
    – Taladris
    Commented Feb 23, 2023 at 14:37
  • 1
    This can be visualized with larger objects. If you have around 6+ tennis balls, it can be considered a heap. You can imagine going from 6 to 1 easily, and it is unlikely anyone will call 1 tennis ball a "heap". Some people wouldn't even call 6 a heap. If 6 doesn't work, use a bigger number until it does.
    – Nelson
    Commented Feb 24, 2023 at 3:30

One solution would be to say that even 1 grain is a heap. That would be defining "heap" more precisely than its informal, intuitive meaning. What does "heap" precisely mean anyway? The whole "paradox" is built on the lack of precision in the informal understanding of "heap", so it doesn't seem to be such a formidable "paradox".

  • 11
    Some would even say that 0 grains is a valid heap, but those people are probably computer programmers and it's best to ignore them :) Commented Feb 22, 2023 at 18:30
  • 1
    To me, this definition doesn't match the concept of a heap, which is vague by nature. The paradox stems from the shared belief that some amounts are too few to be considered a heap. Commented Feb 22, 2023 at 20:15
  • 2
    @JeremyFriesner Or mathematicians. In short, those people who know that zero is actually the first number. Everyone else needs to handle extra special cases. Commented Feb 22, 2023 at 22:03
  • 1
    @cmaster-reinstatemonica but one problem with 0, is that if can call <nothing> a heap, then <everything> is a heap? meaning, if there is not at least one grain, there is really nothing to call a heap?
    – Frank
    Commented Feb 22, 2023 at 23:04
  • I forgot to mention that my comment is a bit bland without a grain of salt... Anyway, calling an empty heap a heap means treating a heap as a collection of things, or as some kind of container. Of course, the definition of "heap" can include further restrictions, like saying that a heap can only contain physical objects. And once again, programmers are unhappy because they routinely put data objects into a heap... Commented Feb 23, 2023 at 9:33

The answer is in the definition of a heap.

I offer the definition that a heap must have at least one layer stacked upon a base layer.

For grains of sand you need at least 3 grains in a base layer to support 1 grain of sand stacked upon it (thus forming a tetrahedral stack). Thus, properly arranged, a heap could be as little as 4 grains of sand; any fewer is no longer a heap.

  • 2
    Some grains of sand retain the crystal structure of the mineral they're made of (others have been eroded and are more sphere-like). So in some cases, it might be possible to balance one grain of sand on top of another, and have a heap of 2 grains of sand for as long as you can avoid breathing on it. Commented Feb 22, 2023 at 1:20
  • 1
    @Misha Lavrov OK, maybe theoretically possible, but very unlikely. Maybe we also need to define what a grain of sand is.
    – Xavier
    Commented Feb 22, 2023 at 1:30
  • 1
    +1 for considering arrangement as well as amount in the definition. άνθρωπος's answer suggests that a heap must also be haphazard, making the notion of a "properly arranged heap" an oxymoron. Commented Feb 22, 2023 at 20:24

So I would say that two possible answers to the paradox are

  1. Rigorously define a 'heap' to explicitly consider the number of grains of sand, or
  2. Keep the fuzziness around heaps, and observe that tiny changes in the amount of sand trigger correspondingly tiny changes in the probabilities that different people will consider it to be a heap.

The existing answers focus on solution number 1, but I don't believe anybody has discussed option 2 which I find is a more intuitive resolution.

Consider the chance of a given person at a given point in time considering a given amount of grains of sand as a 'heap' as some probability function depending on the number of grains, starting at 0 (or very close to it) and growing to nearly 1. Removing grains one by one does affect the probability something will be classified as a heap, just not by much.

enter image description here

Of course, other factors will be at play - have they been primed, whether they are a construction worker or a child (as per Mark Andrew's answer), whether they are in a heap-finding mood, or any number of other things.

  • "the chance of a given person considering a given amount of grains of sand as a 'heap'" is not satisfactory as this probability is ever-changing (people die, or simply change their opinion, or don't have one), and is no less arbitrary than, for example, asking people to vote every 5 years to elect a Heapmaster who will decide what is the minimum number of grains necessary to make a heap.
    – Taladris
    Commented Feb 23, 2023 at 15:03
  • While others have also mentioned that heap is a fuzzy concept, this provides an interesting formalisation of that.
    – NotThatGuy
    Commented Feb 23, 2023 at 16:21
  • 2
    Note that in reality, the probability doesn't go to 1 for large numbers of sand grains. Firstly, there are some people who don't know the word 'heap' and would call it something else. Secondly, if the heap is too big most people will stop calling it a heap and start calling it a mountain. Therefore, there must be an ideal heap size that the largest number of people would call a heap. Commented Feb 23, 2023 at 18:49
  • 1
    @DarthVlader Yes 100% agree Commented Feb 23, 2023 at 22:38
  • @Taladris the fact that the function varies in time doesn't seem particularly bothersome/unsatisfactory to me, I'll edit to specify a given person at a given point in time though. As for arbitrariness, its value is in aligning our day-to-day experience of heap-classification with the apparent slight-reduction-paradox. Electing a heapmaster is completely alien to day-to-day experience of heaps, so I don't see how it would add clarity. Commented Feb 23, 2023 at 22:38

The solution, of course, is to learn to cook:

Image showing a heaped teaspoon and scraping a knife over it to make a level teaspoonful

Therefore, how many grains must be removed to "turn a heap into not-a-heap" depends on the spoon.

  • +1 lol Clever use of visual aid.
    – J D
    Commented Feb 22, 2023 at 20:59

There is no paradox - there is a fallacy

Let us compare with integers.

If I take an integer (Let's say 100) and subtract 1, I get 99, a positive integer; I subtract one again and get 98, another positive integer. From that Sorites would presumably argue that whenever I subtract 1 from any integer I still have a positive integer. However that is patently not true. When I reach 1, the subtraction will yield zero which does not qualify.

The above argument is no different in structure than that of the 'paradox'. All we need to do is define boundary conditions.


Definition: A heap of sand is a quantity of sand such that a path can be traced from any single grain to all others without intervening gaps and that has at least one grain that is elevated from the underlying supporting surface by resting on one or more of the other grains.

Boundary condition: When I remove a grain of sand from a quantity of grains that constitute a heap, I will be left with another heap unless there are no elevated grains.

Note that the definitions are arbitrary and can be adjusted as required. All that is required in rigorous discourse is that terms should be agreed ahead of time. It is not sufficient to rely on folk terminology.

  • 2
    +1 for the introduction of definition and boundary condition to dissolve the paradox. But there is definitely a paradox: "a seemingly absurd or self-contradictory statement or proposition that when investigated or explained may prove to be well founded or true". That people are genuinely flummoxed before explanation (and many after) by naive forms of categorization is an empirically verifiable fact, which says more about human reason and intuition, than it does about anything else.
    – J D
    Commented Feb 22, 2023 at 17:27
  • I don't think any reasonable person would colloquially call 4 grains of sand, where one is elevated, a "heap". The point is that there isn't a boundary condition, because "heap" is a fuzzy concept. (Also, if you say "there is a fallacy", then you also need to explain what the fallacy is - being wrong about there being a paradox, or failing to define terms, would not automatically make it a fallacy).
    – NotThatGuy
    Commented Feb 23, 2023 at 15:20
  • @NotThatGuy - My point is that you can talk using human intuition or folk-reasoning or you can talk using strict definitions. The 'paradox' comes when you try to mix the two. If you don't like my definition of the minimum sized heap, you are free to devise your own definition. If you complain that you can't define what a heap is then, there is no point in making mathematical statements about one - you're just playing with words.. Commented Feb 23, 2023 at 18:10
  • @chasly-supportsMonica but that's exactly what a paradox often is: mixing two concepts that should not be combined. Zeno's paradox mixes the concept of infinity with the concept of distance. Galileo's paradox mixes infinity and simple counting maths.
    – Jumboman
    Commented Feb 24, 2023 at 12:24
  • 1
    @Jumboman - That's a good point. I do not have any formal education in philosophy. I may be using a definition of paradox that is not generally accepted in the field. Commented Feb 24, 2023 at 12:30

The solution is to acknowledge that the common notion of a "heap" does not have a rigorous definition. Like all terms in everyday language it is defined by context.


What’s the solution to the Sorites paradox?

Most responders have offered the same answer: the solution depends on the definition of "heap".

I agree, but I add that the definition itself depends on what you intend to do. To a road construction crew, a heap of sand might be several tons. To a child making a sand castle, a heap might be only three plastic buckets full. To a molecular scientist, three grains might be enough.


Edited by Ashlin Harris:

A certain number of grains is not necessarily a heap. For instance, they could be arranged in a row.

A heap it is something without any artful structure; when a heap gets any order it is already not a heap. An ordered structure can have elements removed one by one and still be the same(*) structure. If you take an element from a heap, it might become something different(**).

*but incomplete, at that time a heap is always complete to a heap.

**by the structure, or you can make a new heap.

Old poor version:

i named it "the method of the ordering elements"

all sets* contained more then 2 grains are the heaps. But possible to remove all grains from the heap and create the string on numerated grains that not a heap. 2 grains is the heap and is the string at the same time.

So, all that you need something that not a heap, but consists of same grains.



**one grain is not a heap and not a string, it is the single element of a set or string.

  • What do you mean by a "string" in this context? Commented Feb 22, 2023 at 18:55
  • @chasly-supportsMonica a "string" is a numerated set. It can be not only a string, but another kind of an order. Non-ordered "many grains" is a heap. I disagree that the heap needs any definition except that 1 and 2 grains are not a heap, or maybe 2 is my imagination, i still think about 2 needs or not. Commented Feb 22, 2023 at 19:38
  • So in other words, a certain number of grains is not necessarily a heap. For instance, they can be arranged in a row (or "string"). This answer also includes structure in the definition of heap. Commented Feb 22, 2023 at 19:41
  • 1
    @AshlinHarris Yep, a Heap it is something without any artful structure, only one thought, that grains all over here. And when a heap gets any order it is not already a heap, or possible it is a heap of some kind of order. A "natural" heap have no any kinds, but same elements. Ordered heap can be named as a kind of the order: a string, a brick, something another. A heap is chaotic, ordered heap is not chaotic, if you take element of it will be incomplete "heap" by the order. There is a point about "Is the glass half empty or half full?" but it is another theme. Commented Feb 22, 2023 at 19:56
  • @AshlinHarris also a method of the ordering elements makes clear that part where you get and leave grains, because if you don't have the order, you will make another more heap. Commented Feb 22, 2023 at 19:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .