Translating from English to Logical Expressions
There may be a part of you that says “what’s the point of all these symbols and shit? Why can’t we just reason logically?”
I think people ask a similar equation about how scientists often force things into quantified mathematical equations, even when that’s imperfect (for example, in economics). Once you have something written in a mathematical format, you’ve done two important things.
First, you’ve removed ambiguity – mathematical terms and phrases are precisely defined, unlike human language. For example, a while back I remember reading the headline “President Bush opposes bloodless coup.” Presumably they meant he opposed the coup, though the sentence is ambiguous as to whether he was bothered by the coup or its bloodless nature. A more precise, but less human, way to say that might be “President Bush opposed the coup AND the the coup was bloodless.”
Second, you’ve tapped into all the mathematical rules that’ve been discovered so far. In calculus, for example, if you can create an equation that models many facets of the economy over time, you can look to see how that equation evolves. That is, once you have a mathematical description, you can ask all sorts of questions of it – what’s the derivative with respect to this, what’s the time till that happens, etc. For discrete math, as we’ve seen in the past, oftentimes you can draw surprising logical conclusions by manipulating mathematical statements. For example, it’d be pretty hard to deduce that NAND alone is functionally complete without taking logical steps in precise language.
Of course, if the equation is wrong, this questions aren’t super useful, but that’s obvious to anyone outside of finance
Now then, on to the actual translation. Let’s take a quote:
“Every time someone has sex with you, they go mad.”
First, note there’s a quantifier – every time. That’s “for every instance of sex” so it’s the universal quantifier.
Now, some statements:
x will refer to an individual
S(x) means “x had sex with you.”
M(x) means “x went mad.”
So, we can now rephrase as something like
“Every time S(x), M(x)”
In mathematically precise terms, that’s
I read that as “for all x, if S of x is true, then M of x is true.”
As the book notes, in cases like this it’s important that you don’t use AND. Why? Our statement is that madness is a result of having sex with you, so madness and sex with you often go together. However, putting AND in there would mean “All people have had sex with you and all people are mad.” And, of course, only half of that is true.
I tend to think this sort of thing is relatively easy, so I’m not going to stay here too long. In fact, from here on out it’s sort of a grab bag of stuff, which is interesting, but not terribly difficult. So, I’m gonna zip on through…
Using Quantifiers in System Specifications
This is just the logical extension into computer land of the last section. You use logic like what we’ve described in 1.3 all the time. For example, when you set your to always go off at 7am, you’re telling that machine “For every time it’s 7am, and I have not yet hit the snooze button, make noise.”
Examples From Lewis Carroll
The hummingbird example (the second one) is a good way to show how a conclusion might not be instantly obvious from the premises, mainly because your human meat-brain isn’t equipped to hold a ton of data at once.
I’m not really sure how useful this section is. Or, maybe a better way to say it would be that this is just extending what you already know into a programming-ish realm, but not in a way that’ll necessarily be useful for real programming. So… I think I’ll wait on going over this sort of thing until we get to doing a textblog on programming.
Next up: Interesting Problems in 1.3