Skip to main content

Subsection 8.11.2 Guards

Sometimes, we’d like to prove some very general claim, say something of the form:

[1] ∀x (P(x))

But when we try to prove [1], we find that we’re stuck unless we can make one or more additional assumptions.

When this happens, what we’d like to do is simply to add those assumptions. We can’t of course just do that and still claim to have a proof of [1]. What we can do is to add the assumptions, push through the proof, and then use the Conditionalization rule, thus enabling us to prove something of the form:

[2] ∀x ((Q(x) ∧ R(x)) → P(x))

Recall that, in implications such as [2], we’ve called expressions like (Q(x) ∧ R(x)) guards: they restrict the circumstances under which we can conclude P(x). Of course, we’d rather not be restricted. But restricted is better than nothing.

As a very simple example, let’s return to our initial Who Drives Me problem. We don’t even need quantifiers. J: John must drive me to the store. M: Mary must drive me to the store. L: John will be late for work. Using those statements, we will state the two premises that we will assume: [1] J  M John or Mary must drive me to the store. [2] J  L If John drives me to the store, he will be late for work. The conclusion that we’d like to draw is: M Mary must drive me to the store. We can begin the proof as follows: [1] J  M Premise [2] J  L Premise [3] L  J Contrapositive [2] Now we’re stuck. If we knew L, we could conclude J. Then, using [1], we could conclude M. So we need to exploit the Conditionalization rule. We’ll assume L and see what we can do: [4] L (Conditional) Premise [5] J Modus Ponens [3], [4] [6] M Disjunctive Syllogism [1], [5] [7] L  M Conditionalization Discharge [4], [6] We can’t prove the (comparatively) strong claim that Mary must drive me. We can prove that if it’s true that John can’t be late, then Mary must drive. So we now know what we’d have to prove if we wanted to convince Mary to get in the car.

We just saw that introducing guards can be useful in everyday reasoning. It is also very often useful in mathematics.

Assume an x-y plane. Let L be any line in the plane. Prove that there is a point on L whose y coordinate is positive and one whose y coordinate is negative. Let’s first use case enumeration and consider two cases: 1) L is vertical. In this case, since it extends infinitely in both directions, it must have both positive and negative values of y. 2) L isn’t vertical. In this case, it can be described as: y = ax + b, where a is the slope and b is the y-intercept. We need to show that, for any line (i.e., for any values of a and b), the required points exist. Let’s first think about whether our claim is in fact true for all non-vertical lines. What about: y L x What we see is that if L has a slope of 0 (i.e., L is horizontal and its equation is y = b) our claim is false. So let’s add a guard. Our new problem is: Let L be any line with slope  0. Prove that there is a point on L whose y coordinate is positive and one whose y coordinate is negative. We still have a proof that the claim is true for vertical lines. Let’s now do the rest. Let’s try to do a proof by construction. (This means that we’ll not just prove that the required points exist. We’ll actually know what they are.) Compute the two points as follows: Let x1 = 1/a  2 |b| So y1 = ax1 + b = a  (1/a  2  |b|) + b = 2  |b| + b Let x2 = (-1)/a  2 |b| So y2 = ax2 + b = -a  (1/a  2  |b|) + b = -2  |b| + b Do these two points meet our requirements? They do as long as b  0. Then 2  |b| is positive and larger than b. So, even if b is negative, 2  |b| + b is positive. Similarly, -2 |b| is negative and larger in absolute value than b. So, even if b is positive, -2  |b| + b is negative. But what about the case in which b = 0? Then both (x1, y1) and (x2, y2) are in fact (0, 0). But, if b = 0, these two points meet our requirements: Let x1 = 1 So y1 = a Let x2 = -1 So y1 = -a Since we’ve already restricted a to be nonzero, one of those values must be positive and one must be negative. Let’s review the structure of this proof: We used case enumeration to separate two cases. We handled vertical lines as a special case and then went on to consider all non-vertical lines. Then we realized that horizontal lines posed a more serious problem. Our claim isn’t true of them. So we added a guard and then went on to prove a more restricted claim. Then we used proof by construction to show how to find the required points given some arbitrary line L. But, again, we realized that there was a special case (b = 0) for which a separate construction was required. This proof is interesting because of the way that it combines all of these proof techniques into a single proof.

Sometimes, when we have to introduce guards, we end up with a claim that’s the best we’re going to be able to do. Ever. For example, if we must restrict a numerical value to be nonzero, that’s that. No amount of additional information will let us clear such guards.

But sometimes, when we have to introduce guards, we end up with a claim that might be strengthenable. In other words, maybe if we did some more research, we’d find out that the guard is, in fact, always satisfied. Then we can add it as a real premise and remove it as a guard.

Recall the Eradicate Ucklufery example. We gave names to the following statements: V Ucklufery (a very nasty tropical disease) is caused by a virus. E: We might be able to eradicate ucklufery by developing a vaccine against it. When we started this example, we assumed the following fact: [1] V  E If ucklufery is caused by a virus, we might be able to eradicate it by developing a vaccine against it. In other words, we were forced to introduce the guard, V . But we realized that if we could do research and discover that, in fact, ucklufery is caused by a virus, then we’d be able to release the guard and assert the stronger claim: [2] E Now we know that we should search for a vaccine.

When we’re working in the real world, examples like this arise often. When they do, they can help direct future research in useful directions.

While perhaps rarer in mathematics (where no amount of additional research will get us to a point where we can divide by zero, for example), cases where we can do research to try to remove guards do arise.

Exercises Exercises

1.

Let the domain be the real numbers. Try to prove: ∀x (x2 > 0).

If this claim isn’t true, add the weakest guard that makes it true.

What happened?

  1. No guard is necessary. The original claim is true.

  2. It was necessary to add a guard to create the new claim, x ((x > 0)  (x2 > 0)).

  3. It was necessary to add a guard to create the new claim, x ((x  0)  (x2 > 0)).

  4. It was necessary to add a guard to create the new claim, x ((x >1)  (x2 > 0)).

  5. It was necessary to add a guard to create the new claim, x ((x  1)  (x2 > 0)).

Answer.
Correct answer is C.
Solution.
Explanation: The correct guard is (x  0). We need this guard because 02 = 0. Both (x > 0) and (x >1), when used as guards, produce true statements. But they are stronger than we need.

2.

Let the domain be the real numbers. Try to prove: ∀x (x2 > x).

If this claim isn’t true, add the weakest guard that makes it true.

What happened?

  1. No guard is necessary. The original claim is true.

  2. It was necessary to add a guard to create the new claim, x ((x > 1)  (x2 > x)).

  3. It was necessary to add a guard to create the new claim, x (((x < 0)  (x > 1))  (x2 > x)).

  4. It was necessary to add a guard to create the new claim, x (((x  0)  (x  1))  (x2 > x)).

  5. It was necessary to add a guard to create the new claim, x ((|x|  1)  (x2 > x)).

Answer.
Correct answer is C
Solution.
Explanation: The correct guard is ((x < 0)  (x > 1)). Since x2 is never negative, it is guaranteed to be be greater than x if x is negative. If x is greater than 1, then x2 > x. But if x is 0 or 1, then x2 = x. And, if x is strictly between 0 and 1, then x2 is less than x. (For example (1/2)2 = 1/4.)

3.

Recall that, for any positive integer n, n! (read, “n factorial”) is n ⋅ (n – 1) ⋅ (n – 2) … ⋅ 1.

Try to prove: ∀x (Even(x!)).

If this claim isn’t true, add the weakest guard that makes it true.

What happened?

  1. No guard is necessary. The original claim is true.

  2. There is no reasonable guard that makes this claim true.

  3. It was necessary to add a guard to create the new claim, x ((x > 1)  (Even(x!)).

  4. It was necessary to add a guard to create the new claim, x ((Even(x))  (Even(x!)).

Answer.
Correct answer is C
Solution.
Explanation. The correct guard is (x > 1). For any integer greater than 1, n! is n  (n – 1)  (n – 2) …  2  1. So it must be even.