“This statement is false.”

The statement *says* it is false, and if we *believe* what it says, then the statement must be false. But if the statement *is* false, and it *says* that it’s false, then the statement must be telling the truth.

We can never settle on an answer for very long, and that is deeply disturbing. As we’ll see in a moment, the consequences for logic are dire.

Logic allows us to *reason* about ideas. For example, suppose that “It’s raining,” and “If it’s raining, then I should take an umbrella.” **Well?** Should I take an umbrella, or not?

Let’s start by listing what we know:

1. | R | Assumption |

2. | if R then U | Assumption |

Here we’re using a shorthand: *R* = “It’s raining,” and *U* = “I should take an umbrella.”

Now let’s apply one of the rules of inference to reach a new conclusion:

1. | R | Assumption |

2. | if R then U | Assumption |

3. | U | Modus ponens (1 and 2) |

So, yes, you should take an umbrella!

Although this was a simple example, logic problems can become tricky very quickly. The rules of inference allow us to continue to reason far beyond the limits of what would otherwise be possible.

When given *valid* assumptions, deductive logic is infallible. However, when given *paradoxical* assumptions, deductive logic fails *catastrophically*.

Let’s see this for ourselves:

1. | A | Assumption |

2. | not A | Assumption |

There is *one statement* that we should *never* be able to derive: the doomsday scenario, *X* = "Humanity must be destroyed."

Now watch as deductive logic drags us straight into the apocalypse:

1. | A | Assumption |

2. | not A | Assumption |

3. | A or X | Addition (1) |

4. | X | Disjunctive argument (3 and 2) |

A lot of thought has gone into finding ways to protect us from drawing invalid conclusions from a paradox.

However, there is a very simple, and very satisfying, solution.

In logic, we take a statement, such as “It’s raining,” and we replace it with a symbol like “*R*.” This seems so reasonable that no one would ever think to challenge it. But it is, in fact, a very strange thing to do.

In mathematics, we would never take an equation, such as “*x* = 1,” and replace it with a symbol like “*X*.” We prefer to keep value *separate* from the variable, so we can *reason* about the value.

We should be doing the exact same thing for logic.

Let’s take a statement, such as “It’s raining,” and represent it like this:

*r* = true, where *r* represents “It’s raining.”

If we don’t know whether it’s raining, then:

*r* ∈ {true, false}

And, now that we can express logic in terms of variables and equations, we can *solve* those equations. It turns out this is the same as proving a theorem.

Let’s prove the following theorem, but *without* using any of the rules of inference:

1. | not P | Assumption |

2. | if Q then P | Assumption |

3. | if (not Q) then R | Assumption |

4. | if R then S | Assumption |

5. | not Q | Modus tollens using (2) and (1) |

6. | R | Modus ponens using (3) and (5) |

7. | S | Modus ponens using (4) and (6) |

Let’s start by listing the assumptions as *equations* that we’ll need to solve:

not *p* = true, if *q* then *p* = true, if (not *q*) then *r* = true, if *r* then *s* = true

These equations are *constraints*, and we’ll apply them one by one.

First, let’s list all possible values for *p*. Then cross off any rows that fail to satisfy the first constraint, not *p* = true:

p | not p |
---|---|

false | true |

true | false |

That leaves us with:

p |
---|

false |

And we’ve made our first deduction: *p* = false. Now let’s apply the rest of the constraints:

p | q | if q then p |
---|---|---|

false | false | true |

false | true | false |

p | q | r | if (not q) then r |
---|---|---|---|

false | false | false | false |

false | false | true | true |

p | q | r | s | if r then s |
---|---|---|---|---|

false | false | true | false | false |

false | false | true | true | true |

By the time we’ve finished applying the constraints, the solution is ready:

p | q | r | s |
---|---|---|---|

false | false | true | true |

Not only did we prove that *s* = true, we also found the value for every other variable as well.

*And* we now have a way to check the truth of *any statement* involving *p*, *q*, *r*, or *s*.

For example, does (*P* or *R*) and *S* logically follow from the four initial assumptions?

The answer is *yes*, because (*p* or *r*) and *s* = true for every combination of values that satisfies the initial constraints:

p | q | r | s | (p or r) and s |
---|---|---|---|---|

false | false | true | true | true |

Does *Q* and *S* logically follow from the four initial asumptions?

The answer is *no*, because *q* and *s* = false when *q* = false and *s* = true.

p | q | r | s | q and s |
---|---|---|---|---|

false | false | true | true | false |

Not only are we able to determine whether any statement logically follows from the assumptions, we’re *also* able to provide *counterexamples*.

Furthermore, we’re now immune to logical paradoxes.

Let’s try to reproduce the failure from earlier, where the rules of inference led to an apocalypse:

1. | A | Assumption |

2. | not A | Assumption |

3. | A or X | Addition (1) |

4. | X | Disjunctive argument (3 and 2) |

If our new way of reasoning is sound, then we’ll be able to spot the flaw in that argument.

Let’s start by listing the constraints that we need to satisfy:

*a* = true, not *a* = true

As before, let’s construct a truth table. Then we’ll cross off any rows that fail to satisfy both equations:

a | not a |
---|---|

false | true |

true | false |

And *now* we can see what was so different about this set of assumptions: it has no solutions!

But that’s not exactly a *paradox*, is it? Equations may have many solutions, one solution, or no solutions: All of those outcomes are expected, and all of those outcomes are *perfectly fine*.

*Also* note that our new way of thinking *protected us* from making the doomsday deduction. We are able to reason in perfect safety, *even* when the input is paradoxical.

Now that we have a system for analyzing paradoxes, let’s return to the Liar’s paradox:

“This statement is false.”

Let’s use *a* to represent the statement as a whole.

Because we’re *asserting* the statement, we’re claiming that:

*a* = true

But the statement *itself* makes a *further* claim. The statement claims that:

*a* = false

Taken together, this gives us those paradoxical assumptions:

*a* = true, not *a* = true.

Consequently, the Liar’s paradox is *really* the apocalypse scenario that we solved earlier.

Copyright © 2011 by Spencer Mortensen. All rights reserved.