Am I sufficient? Am I even necessary? If you’re plagued by these existential questions and have ended up here in your quest for an answer, then I’ve got some bad news for you. The answer to both is no. I keed. I keed. Actually, the bad news is that this post is about necessity and sufficiency and their rigid definitions in the domain of mathematical logic. If you are only interested in looking for meaning in your life then move along, but if you are one of the enlightened few that knows that math really is the answer to every question, then by all means, read on!

Many introductory logic courses may not mention necessity or sufficiency by name, but any class worth its salt will cover logical implications, and as it turns out, necessity and sufficiency are both types of implications, only differing by the strength of their assertions. Before we define either though, let’s step back and do some reviewing.

### Implications

In logic, an implication is a conditional statement that defines an “if … then” relationship between two statements. The implication operator symbol is a right arrow, →. Consider the following conditional statement that relates propositions *p* and *q*:

*p*→*q*

This is read as “if *p* then *q*” or “p implies q.” This simply means that whenever *p* is true then so is *q*. In implications, the proposition that precedes the arrow, in this case *p*, is called the **antecedent**. The proposition that follows the implication operator, in this case *q*, is, appropriately enough, called the **consequent**.

It’s worth noting, and emphasizing, that implications *do not* indicate causality. *q* may true whenever *q* is, but that doesn’t mean that *p causes q*. It may. It may not. All we know is that when *p* is true, so is *q*.

This leads us to another very important point. When we only know that *q* is true, the implication *p*→*q* tells us nothing at all about the value of *p*. In this case *p* can be either true or false.

The only way the state *p*→*q* is false is if *p* is true and *q* is false, as the truth table for implication illustrates:

p |
q |
p→q |
---|---|---|

T | T | T |

T | F | F |

F | T | T |

F | F | T |

A closer inspection of the truth table reveals that *p*→*q* is equivalent to ¬*p* ∨ *q* (not *p* or *q*).

We can also examine the three ways that binary logic relations can be transformed: contraposition, inversion, and conversion.

Contraposition involves negating both propositions and swapping their order. The contraposition of the implication *p*→*q* is ¬*q*→¬*p* (not *p* implies not *q*). If *q* is not true then *p* cannot be true. It shouldn’t be difficult to see that this is the same as the original implication. An implication and its contraposition are equivalent.

To invert an implication, negate both propositions but do not change their order. The inversion of *p*→*q* is ¬*p*→¬*q*. We said earlier that in the original implication that *q* could be true and *p* could be false, so an implication and its inversion are not equivalent.

Finally, if we just swap the order of the antecedent and consequent we have a conversion. The conversion of the implication *p*→*q* is *q*→*p*. Again, in the original implication knowing the value of *q* alone tells us nothing about the value of *p*. *q* cannot imply *p*. An implication and its conversion are not equivalent.

Armed with this background knowledge, we are ready to discuss the topic at hand.

### Sufficiency

In logic, declaring that statement *p* is sufficient for statement *q* means that knowing *p* is true is enough (sufficient) to say that *q* is true. If that sounds to you like a plain old implication, you are correct. The pronouncement that “*p* is sufficient for *q*,” is the exact same thing as *p*→*q. *

Sufficiency, like any implication, says nothing about the value of the antecedent when we only know the value of the consequent. When *p* is true, *q* will always be true, but *q* can be true even if *p* is false. If we want *p* to always be true in order for *q* to be true, then we need a stronger declaration, we need necessity.

### Necessity

Necessity, like sufficiency, is a binary relationship between two statements stating that one of the statements is true only when the other statement is true. If we want *p* to always be true in order for *q* to be true, we would say that “*p* is necessary for *q*.” Let’s think about what that really means. Reworded, we are saying that every time *q* is true we know that *p* is true as well. It’s just another implication! But this time the implication is that *q*→*p*. Necessity may be the mother of invention, but it is also the conversion of sufficiency.

Just like sufficiency didn’t encompass necessity, necessity does not ensure sufficiency. Although we can guarantee that *p* is true if *q* is, *p* can now be true without *q* being true, *p* is not necessarily sufficient for *q*. What if we want to *q* to be lock step with *p*? Then we need *p* to be *both* necessary and sufficient for *q*.

### Necessary and Sufficient

If we say that “*p* is necessary and sufficient for *q*” then we have two implications:

*q*→*p*(Necessity)*p*→*q*(Sufficiency)

Or

*q*→*p* ∧ *p*→*q*

In logic, this known as “if and only if,” often abbreviated iff. The iff operator is the double arrow ⇔. We can simplify the previous compound statement to:

*q*⇔*p*

*q* is true if *and only if p* is true. Either both *p* and *q* are true, or both are false. If we know the value of one, we definitely know the value of the other. Don’t believe me? Let’s look at the truth table.

p |
q |
q→p |
p→q |
q→p Λ p→q |
---|---|---|---|---|

T | T | T | T | T |

T | F | T | F | F |

F | T | F | T | F |

F | F | T | T | T |

We can examine the difference between necessity and sufficiency in the context of sets. Given the following Venn diagram:

For propositions *q* and *q* and set element *x* consider the following cases:

#### Case 1

*p*:*x*is in the purple region*q*:*x*is in the blue circle

It is true that *p*→*q .* If *x* is in the purple region then *x* must be in the blue circle, We can say that *p* is sufficient for *q,* or *x* being in the purple region is sufficient for *x* being in the blue circle.

The converse is not true: *q*→*p* is false. *q* can be true and *p* can be false. *x* can be in the blue circle and not in the purple region. This means that *p* is not necessary for *q*, or *x* being in the purple region is not necessary for *x* being in the blue circle.

#### Case 2

*p*:*x*is in the blue circle*q*:*x*is in the purple region

It is not true that *p*→*q*. It is possible for x to be in the blue circle but not in the purple region. So, *p* is not sufficient for *q*, or *x* being in the blue circle not sufficient for *x* being in the purple region.

Now it is true that *q*→*p*. Every time that *x* is in the purple region, it is also in the blue circle. So, *p* is necessary for *q*, or *x* being in the blue circle is necessary for *x* being in the purple region,

#### Case 3

*p*:*x*is in the blue and red circles*q*:*x*is in the purple region

It is true that *p*→*q*. If *x* is in the blue *and* red circles, it must be in the purple region. So, *p* is sufficient for *q*, or being in the blue and red circles is sufficient for being in the purple region.

It is also true that *q*→*p*. If x is in the purple region, it must be in the blue and red circles. So, *p* is necessary for *q*, or being in the blue and red circles is necessary for being in the purple region.

This means that *p*⇔*q*, or otherwise state, *q* if and only if (iff) *p*. *x* is in the purple region if and only if it is in the blue and red circles. When we represent the circles and regions with symbols this obvious: x∈A∧B (purple) iff x∈A (blue) ∧ x∈B (red).