6 ms·
all: "there is none in the array that is false".
by pacala 7y ago
all: "there is none in the array that is false".
- thaumasiotes 7y ago>> all means "all in the array are true" > all: "there is none in the array that is false" You... are aware that those statements are exactly the same, right?
- Benjamin_Dobell 7y agoThey're not. In fact, that's what this entire article is about.
- thaumasiotes 7y agoI don't know what to say to this. They are exactly the same. It's not a controversial point. You could write an article on the theme "why apples fall upward in the winter", but that wouldn't make apples fall upward in the winter. See e.g. https://en.wikipedia.org/wiki/Universal_quantification#Negation https://en.wikipedia.org/wiki/Universal_quantification#Negat...
- Benjamin_Dobell 7y ago> It's not a controversial point. I wouldn't have thought so personally, but alas, here we are ;)
- eru 7y agoPerhaps you two are not using precise enough language? The common definitions for 'all' and 'any' as used in math are certainly on thaumasiotes' side. But English as a natural, every-day language is a bit more fuzzy.
- Benjamin_Dobell 7y agoCorrect. That is the point this article is making. "all in the array are true" is not specific about how the empty case ought to be interpreted. That's not at all to say all([]) ought to be False; the wording is simply under-specified. Where as "there is none in the array that is false" is clearly True when all([]) is encountered. Thus the statement cannot be simplified to the English statement "all in the array are true", without introducing ambiguities. As a general rule, this is why we don't perform mathematics (or programming) in English. EDIT: Just to clarify why this is ambiguous, in case anyone reading is still not following (although I'd suggest reading the article!) English is an (informally) consensus based language. Understanding boolean logic is not a precursor to being able to interpret common language, in particular English. Just because one has knowledge of logic (mathematics) and we happen to have given some operation the English name "all", that does not mean the English word "all" in general speech refers to this logical operation. Especially since, as the article describes, the mathematical consensus for this logic has only largely shifted to be interpreted this way in the last several hundred years. The English word "all" predates the current mathematical consensus (which isn't even universal) by thousands of years. Additionally, if for some reason you are interpreting the written word "all" (no matter the context) as the logical operation, then "all in the array are true" is not a viable definition for this word, it's self-referential and thus ambiguous. "there is none in the array that is false" on the other hand is clear in its meaning (if not slightly grammatically incorrect).
- eru 7y agoMostly agreed about the vernacular. Though a minor nitpick: mathematics has been around for longer than English. As for eg Python: when in doubt, going with the mathematical usage of the term is the Right Choice here. For another interesting example: the negation of must and may in English vs their German equivalents. In English 'You must not do X.' means that refraining from X is obligatory. In German the equivalent 'Du musst nicht X-en.' means that engaging in X is not obligatory. Both usages make sense in their respective languages. And both usages have translations into formal logic. Just different ones.
- thaumasiotes 7y ago
- QuinnWilton 7y ago> It's not a controversial point It's not important to the discussion at hand, but I enjoyed your wording here, because even though you're right, in a sense this is one of the most controversial points in mathematics: https://en.m.wikipedia.org/wiki/Constructivism_(philosophy_of_mathematics) https://en.m.wikipedia.org/wiki/Constructivism_(philosophy_o...
- jbverschoor 7y agoThey are not. If there’s adres zero entries, the first one isn’t true.