So, mathematics has this concept of an expression being &quot;well-defined&quot;.  It means you can always tell if something meets the definition, exactly, in every case.<p>Almost no definitions in the real world are well-defined.  Heaps are just the tip of the iceberg.  Any practical thing, a cat, a tree, a table, a car -- if you mutilate it enough, it turns into something else, and the transition point is rarely sharp.  And the reason is very simple; it&#x27;s that in practical life, we don&#x27;t define things propositionally, we define them inductively.  This is a cat, and that&#x27;s a cat, and that&#x27;s another cat, and cats are things with this constellation of properties that you learn over time, so when you come across an item where some of those properties are true and some aren&#x27;t, you say, &quot;Well, that&#x27;s sort of a weird cat&quot;.<p>It is such an incredibly common thing in daily life to run up against fuzzy definition boundaries.  &quot;Can you get milk from the store for me if it&#x27;s open?&quot; &quot;Well, there&#x27;s some sort of demonstration going on right outside -- how bad do you need it?&quot;  We handle it just fine.  We recognize when &quot;open&quot; may not be well-defined in every circumstance and valid in the same way for every intent, and we&#x27;re able to discard the simple definition for something more complex as needed.  It&#x27;s not even weird when you consider that definitions are just models you are using to describe the world, and those models can be made simple or complex.  We rarely describe the world as it IS, down to the atom.  We simplify.<p>Sure, when you throw inductively defined practical models intended for communication into a rigorous logical framework, they don&#x27;t have the sharp edges such a framework expects.  So?  That really shouldn&#x27;t be unexpected. :)<p>Everything we have to say about the real world is an abstraction.  Some ideas are leakier abstractions than others, but it&#x27;s all simplification and modeling in the end.