Physical Address

304 North Cardinal St.
Dorchester Center, MA 02124

Logical Equivalence

Using truth tables, we saw some examples of propositions that have the same truth value for all possible combinations of values for its constituent parts. In other words, consider the two compound propositions s and t. If s and t have the same truth value for all of their constituent parts, then s is true whenever t is true, and s is false whenever t is false.

Being able to recognize such a relationship will prove to be useful when we start dealing with much more complicated logical expressions.

A Simple Example

Our first example deals with multiple negations.

p¬¬pp ↔ ¬¬p
001
111

Figure 1.3.1: Because p and ¬¬p share truth values, the statement

p ↔ ¬¬p

is always true (a tautology.)

Example 1.3.1

We start by examining the truth table for p, ¬p, and ¬¬p.

p¬p¬¬p
010
101

We can add an additional column at the end of the above table specifically for the statement p ↔ ¬¬p:

p¬p¬¬pp ↔ ¬¬p
0101
1011

Here, we see that p ↔ ¬¬p is a tautology: it is always true. In other words p will always have the same truth value as ¬¬p. This was perhaps not too difficult to figure out even if we hadn’t used a truth table. It seems as if every pair of negation signs cancels out.

Thinking about this example from a different context, consider the compound statement

¬¬p ∧ q

Seeing as p and ¬¬p share the same truth values, we could perhaps substitute p for ¬¬p to get

p ∧ q

because we replace one part (¬¬p) with another part (p) that has the same truth value. Because they have the same truth values, a conjunction with q would result in the same truth value. We prefer to work with the second compound statement (p ∧ q) because it is much simpler than the first (¬¬p ∧ q.)

A Cautionary Example

Before continuing, let’s look at an example that may be somewhat ambiguous. Consider a statement like

p ∨ q ∧ r.

Do we evaluate the above expression as (p ∨ q) ∧ r or as p ∨ (q ∧ r). Does it matter which of the two expressions we use to evaluate? As always, let’s look at a truth table. First, we create a table with intermediate results (that is, a table tracking the values of p, q, r, (p ∨ q), and (q ∧ r).)

pqr(p ∨ q)(q ∧ r)
00000
00100
01010
01111
10010
10110
11010
11111

Now we construct a final truth table with the expressions we’re interested in.

(p ∨ q) ∧ rp ∨ (q ∧ r)
00
00
00
11
01
11
01
11

Notice that (p ∨ q) ∧ r and p ∨ (q ∧ r) have very different rows, so apparently the order in which we evaluate the expression

p ∨ q ∧ r

matters. As such, we would need parenthesis in order to avoid any ambiguity.

Logical Equivalence

¬(p ∧ q)¬p ∨¬q¬(p ∧ q) ↔ ¬p ∨¬q
111
111
111
001

(a)

¬(p ∨ q)¬p ∧¬q¬(p ∨ q) ↔ ¬p ∧¬q
111
001
001
001

(b)

Figure 1.3.2: In (a), we create a truth table just for the statements ¬(p ∧ q), ¬p ∨¬q, and ¬(p ∧ q) ↔ ¬p ∨¬q. Notice that

¬(p ∧ q) ↔ ¬p ∨¬q

is always true (a tautology.) In truth table (b) above, notice that

¬(p ∨ q) ↔ ¬p ∧¬q

is also a tautology.

Example 1.3.2

Let’s construct the truth table for statements ¬(p ∧ q), ¬p ∧¬q, ¬(p ∨ q), and ¬p ∨¬q. It will help us to keep track of ¬p and ¬q as we construct our table. We can also make things easy by tracking p ∧ q and p ∨ q. First, we’ll create a table containing a bunch intermediate expressions that will be needed when evaluating the expressions we want:

pq¬p¬qp ∧ qp ∨ q
001100
011001
100101
110011

Now, we construct the truth table for the expressions we want to evaluate:

¬(p ∧ q)¬(p ∨ q)¬p ∧ ¬q¬p ∨ ¬q
1111
1001
1001
0000

It looks like ¬(p ∧ q) and ¬p ∨¬q share truth values. That means that if we’re working with a complicated expression, and we see either of these two in the mix, we may be able to swap it for the other one. This may help simplify larger examples.

¬(p ∧ q)¬(p ∨ q)¬p ∧ ¬q¬p ∨ ¬q
1111
1001
1001
0000

Likewise, ¬(p ∨ q) and ¬p ∧¬q share truth values.

¬(p ∧ q)¬(p ∨ q)¬p ∧ ¬q¬p ∨ ¬q
1111
1001
1001
0000

So far, we’ve seen three pairs of statements that share truth values;

p and ¬¬p
¬(p ∧ q) and ¬p ∨¬q
¬(p ∨ q) and ¬p ∧¬q

As discussed after the first example, it appears as if we can essentially replace one statement of each pair above with the other statement in its pair without affecting the truth value of anything. We’ve also seen that when two statements s1 and s2 always have the same truth values, we have that the statement s1 ↔ s2 is a tautology. This observation yields the following definition:

Logically Equivalent

Two statements s1 and s2 are called logically equivalent, and we write

s1 ⟺ s2

when s1 is true whenever s2 is true, and s1 is false whenever s2 is false. Alternatively, we also say that s1 and s2 are logically equivalent when the biconditional statement s1 ↔ s2 is a tautology.

This gives us a concise way to describe the relationship between two statements that share truth values, as we’ll see in the next example.

Example 1.3.3

Suppose we want to construct the truth table for the following expressions:

p ∧ (q ∨ r)
p ∨ (q ∧ r)
(p ∧ q) ∨ (p ∧ r)
(p ∨ q) ∧ (p ∨ r)

It may be easier to start by constructing a truth table for a bunch of the intermediate expressions involved, which we’ll do below:

pqrq ∨ rq ∧ rp ∧ qp ∧ rp ∨ qp ∨ r
000000000
001100001
010100010
011110011
100000011
101100111
110101011
111111111

Now we make the truth table we’re interested in:

p ∧ (q ∨ r)p ∨ (q ∧ r)(p ∧ q) ∨ (p ∧ r)(p ∨ q) ∧ (p ∨ r)
0000
0000
0000
0101
0101
1111
1111
1111

Looking at the table above, we see that p ∧ (q ∨ r) and (p ∧ q) ∨ (p ∧ r) share the same truth values:

p ∧ (q ∨ r)p ∨ (q ∧ r)(p ∧ q) ∨ (p ∧ r)(p ∨ q) ∧ (p ∨ r)
0000
0000
0000
0101
0101
1111
1111
1111

Likewise, we see that p ∨ (q ∧ r) and (p ∨ q) ∧ (p ∨ r) share the same truth values:

p ∧ (q ∨ r)p ∨ (q ∧ r)(p ∧ q) ∨ (p ∧ r)(p ∨ q) ∧ (p ∨ r)
0000
0000
0000
0101
0101
1111
1111
1111

Hence, using our newly acquired terminology, we can say that

p ∧ (q ∨ r) ⇔ (p ∧ q) ∨ (p ∧ r)
p ∨ (q ∧ r) ⇔ (p ∨ q) ∧ (p ∨ r)