This week I wrote up a little cheat sheet for the symbols used in propositional logic (also note: a link has been added to the top and bottom navigation for easy future access). This serves two-and-a-half purposes:
First, encountering unfamiliar glyphologies is easily the quickest way to intimidate me out of learning a thing. So it’s important to me to build a glossary right up top as I go so I can immediately call out and define new nomenclature in an effort to defang it a bit.
Second, the world of rigorous math is shockingly unrigorous when it comes to standardized sets of symbols. Pick up three books on logic and you could get three non-overlapping opinions on operators. So I wanted to have this list handy so you know which ones I’ve committed to using.
And a half: typing all this up drove me to build a custom keyboard layout to ease the burden on my character picker. So I added that as a download at the bottom of the page.
As blog coverage expands into extended logics, I’ll keep the sheet (and keyboard layout) updated with all the latest wingdings.
Why Logic Instead of Bool?
One last thing worth addressing: logical systems deal in truth values — that is, the values
false. So does the Boolean algebra we’re used to using in our programs. If this is supposed to be a programmer’s guide to logic, why bother with silly symbols like
¬ instead of the known
Ultimately, as EWD would say, this is “to further sever the links to intuition.”
Sure, both Boolean algebra and propositional logic deal in
falses. And yeah, when your system has only two values, there are a limited number of ways to combine them, and the same ways are going to pop up in every system.
But the reasons we combine them are very different. In programming, we usually use boolean operators to merge values for input into conditional statements. It’s like we’re answering a single question over and over again: “Should I?”
In logic, on the other hand, we’re often trying to solve for x. Given what we know, can this be true? Can it ever be true? What else would need to be true for this to be true, too?
So these are similar methods pursuing very different goals, answering different questions. Having a different symbology for each helps us keep our preconceptions of the one from invading the other.