this post was submitted on 18 Oct 2025
783 points (99.2% liked)
Programmer Humor
27237 readers
1420 users here now
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Can I have everything? Inside and outside the Venn circles!
That would be the symbol\operation called TRUE or TOP or "tautology" which is always true. They're actually missing quite a few of the weirder ops, including implication and ~~biconditional\iff\if-and-only-if~~. (Edit: Actually I think XNOR is also the biconditional. I guess pretend like I said "material implication" and "reverse implication". Fricken booleans man!)
I never got why "implies" is called that. How does the phrase "A implies B" relate to the output's truth table?
I have my own "head canon" to remember it but I'll share it later, want to hear someone else's first.
Yeah, that one's always bothered me too. I think the difference in meaning from colloquial "implication" and logical "material implication" are also involved in the raven paradox.
So the statement that "all ravens are black" can be taken as "if RAVEN then BLACK". Is this statement true? If you see a black raven then trivially yes, if you see a white raven then trivially false (via counter example).
However if you see a non-raven, it is evidence for the truth of the statement because it doesn't go against it: not-ravens being black-or-not-black both reduce the universe of possible objects without proving not-black-ravens exist.
Or something like that, I think it's stupid too. Trinary logic can adopt a more sensible (IMHO) definition of implication that makes A being false always lead to the third value (usually defined as indeterminate or neither-true-nor-false).
The AND and OR also have slightly different meanings than in "real life". That's what always happens if you use natural language terms in the context of formal languages.
In English (and many other natural languages), "or" means either XOR or OR, and "and" can also mean OR in some contexts.
So it just follows that IMPLIES doesn't mean the exact same as "implies".
To take your example with the ravens: IMPLIES is just about whether the inputs contradict the statement. The statement "raven IMPLIES black" should be translated to "raven is black", not "all ravens are black", since you only ever test the statement against specific inputs.
So if you now give it "raven" and "black" as inputs, the statement is true. If you give it "dove" and "white" as inputs, it doesn't contradict the statement, so the result is still true. Only if you give it "raven" and "white" as inputs does it contradict the statement.
Remember: Boolean logic isn't about statements of truth, but instead as a mathematical operation. Same as you use mathematical functions and operators to "calculate x", you also use boolean operations to calculate a result.